summaryrefslogtreecommitdiff
path: root/misc/pascal/include
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-01-06 15:13:24 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-01-06 15:13:24 +0000
commit9714df0891d803f1e2311e7acf29a9fbabe72a49 (patch)
tree229d5d563003947ec0310bb43de284a102dcaedc /misc/pascal/include
parentbe612b780f0d2ff1a201fad343244895e53978fc (diff)
downloadnuttx-9714df0891d803f1e2311e7acf29a9fbabe72a49.tar.gz
nuttx-9714df0891d803f1e2311e7acf29a9fbabe72a49.tar.bz2
nuttx-9714df0891d803f1e2311e7acf29a9fbabe72a49.zip
Move private types out of common header file
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@514 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'misc/pascal/include')
-rw-r--r--misc/pascal/include/pdefs.h236
1 files changed, 8 insertions, 228 deletions
diff --git a/misc/pascal/include/pdefs.h b/misc/pascal/include/pdefs.h
index daa73736b..15879dca2 100644
--- a/misc/pascal/include/pdefs.h
+++ b/misc/pascal/include/pdefs.h
@@ -1,6 +1,6 @@
/***********************************************************************
- * pdefs.h
- * General definitions for the Pascal Compiler/Optimizer
+ * include/pdefs.h
+ * Common definitions
*
* Copyright (C) 2008 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
@@ -48,20 +48,12 @@
* Definitions
***********************************************************************/
-/* Size Parameters -- some of these can be overridden from the
- * command line.
- */
+/* Common Sizing Parameters */
-#define MAX_SYM (4096)
-#define MAX_STRINGS (65536)
-#define MAX_INCL 3
-#define MAX_FILES 8 /* max number of opened files */
-#define FNAME_SIZE 40 /* max size file name */
-#define LINE_SIZE 256 /* max size of input line buffer */
-#define FNAME_SIZE 40 /* max size of file name */
-#define MAX_INCPATHES 8 /* max number of include pathes */
+#define FNAME_SIZE 40 /* Max size file name */
+#define LINE_SIZE 256 /* Max size of input line buffer */
-/* Data Storage Sizes */
+/* Target P-Machine Data Storage Sizes */
#ifdef CONFIG_INSN16
# define sINT_SIZE 2
@@ -96,180 +88,11 @@
#define MAXCHAR 255
#define MINCHAR 0
-/* Bit values for the 'flags' field of the symType_t, symProc_t, and
- * symVar_t (see below)
- */
-
-#define STYPE_VARSIZE 0x01 /* Type has variable size */
-#define SPROC_EXTERNAL 0x01 /* Proc/func. is defined externally */
-#define SVAR_EXTERNAL 0x01 /* Variable is defined externally */
-
-/***********************************************************************
- * Public Enumeration Types
- ***********************************************************************/
-
-/* This enumeration identies what kind of binary object we are creating
- * with the compilation. At present, we may be generating either a
- * program binary or a unit binary.
- */
-
-enum fileKind_e
-{
- eIsProgram = 0,
- eIsUnit
-};
-typedef enum fileKind_e fileKind_t;
-
-/* This enumeration determines what part of a file that we are
- * processing now.
- */
-
-enum fileSection_e
-{
- eIsOtherSection = 0, /* Unspecified part of the file */
- eIsProgramSection, /* Any part of a program file */
- eIsInterfaceSection, /* INTERFACE section of a unit file */
- eIsImplementationSection, /* IMPLEMENTATION section of a unit file */
- eIsInitializationSection, /* INITIALIZATION section of a unit file */
-};
-typedef enum fileSection_e fileSection_t;
-
/***********************************************************************
- * Public Structure Types
+ * Public Structure/Types
***********************************************************************/
-/* Reserved word table entry */
-
-struct R
-{
- char *rname; /* pointer to name in string stack */
- ubyte rtype; /* reserved word type */
- ubyte subtype; /* reserved word extended type */
-};
-typedef struct R RTYPE;
-
-/* Symbol table entry */
-
-struct symType_s /* for sKind = sTYPE */
-{
- ubyte type; /* specific type */
- ubyte rtype; /* reference to type */
- ubyte subType; /* constant type for subrange types */
- ubyte flags; /* flags to customize a type (see above) */
- uint32 asize; /* size of allocated instances of this type */
- uint32 rsize; /* size of reference to an instances of this type */
- sint32 minValue; /* minimum value taken subrange */
- sint32 maxValue; /* maximum value taken by subrange or scalar */
- struct S *parent; /* pointer to parent type */
-};
-typedef struct symType_s symType_t;
-
-struct symConst_s /* for sKind == constant type */
-{
- union
- {
- float64 f; /* real value */
- sint32 i; /* integer value */
- } val;
- struct S *parent; /* pointer to parent type */
-};
-typedef struct symConst_s symConst_t;
-
-struct symStringConst_s /* for sKind == sSTRING_CONST */
-{
- uint32 offset; /* RO data section offset of string */
- uint32 size; /* length of string in bytes */
-};
-typedef struct symStringConst_s symStringConst_t;
-
-struct symVarString_s /* for sKind == sSTRING */
-{
- uint16 label; /* label at string declaration */
- uint16 size; /* valid length of string in bytes */
- uint16 alloc; /* max length of string in bytes */
-};
-typedef struct symVarString_s symVarString_t;
-
-struct symLabel_s /* for sKind == sLABEL */
-{
- uint16 label; /* label number */
- boolean unDefined; /* set false when defined */
-};
-typedef struct symLabel_s symLabel_t;
-
-struct symVar_s /* for sKind == type identifier */
-{
- sint32 offset; /* Data stack offset */
- uint32 size; /* Size of variable */
- ubyte flags; /* flags to customize a variable (see above) */
- uint32 symIndex; /* POFF symbol table index (if undefined) */
- struct S *parent; /* pointer to parent type */
-};
-typedef struct symVar_s symVar_t;
-
-struct symProc_s /* for sKind == sPROC or sFUNC */
-{
- uint16 label; /* entry point label */
- uint16 nParms; /* number of parameters that follow */
- ubyte flags; /* flags to customize a proc/func (see above) */
- uint32 symIndex; /* POFF symbol table index (if undefined) */
- struct S *parent; /* pointer to parent type (sFUNC only) */
-};
-typedef struct symProc_s symProc_t;
-
-struct symRecord_s /* for sKind == sRECORD_OBJECT */
-{
- uint32 size; /* size of this field */
- uint32 offset; /* offset into the RECORD */
- struct S *record; /* pointer to parent sRECORD type */
- struct S *parent; /* pointer to parent field type */
-};
-typedef struct symRecord_s symRecord_t;
-
-struct S
-{
- char *sName; /* pointer to name in string stack */
- ubyte sKind; /* kind of symbol */
- ubyte sLevel; /* static nesting level */
- union
- {
- symType_t t; /* for type definitions */
- symConst_t c; /* for constants */
- symStringConst_t s; /* for strings of constant size*/
- symVarString_t vs; /* for strings of variable size*/
- uint16 fileNumber; /* for files */
- symLabel_t l; /* for labels */
- symVar_t v; /* for variables */
- symProc_t p; /* for functions & procedures */
- symRecord_t r; /* for files of RECORDS */
- } sParm;
-};
-typedef struct S STYPE;
-
-/* WITH structure */
-
-struct W
-{
- ubyte level; /* static nesting level */
- boolean pointer; /* TRUE if offset is to pointer to RECORD */
- boolean varParm; /* TRUE if VAR param (+pointer) */
- sint32 offset; /* Data stack offset */
- uint16 index; /* RECORD offset (if pointer) */
- STYPE *parent; /* pointer to parent RECORD type */
-};
-typedef struct W WTYPE;
-
-/* File table record */
-
-struct F
-{
- sint16 defined;
- sint16 flevel;
- sint16 ftype;
- sint32 faddr;
- sint16 fsize;
-};
-typedef struct F FTYPE;
+/* Representation of one P-Code */
#ifdef CONFIG_INSN16
typedef struct P
@@ -288,47 +111,4 @@ typedef struct P
} OPTYPE;
#endif
-/* This structure captures the parsing state of the compiler for a particular
- * file. Since multiple, nested files can be processed, this represents
- * only level in the "stack" of nested files.
- */
-
-struct fileState_s
-{
- /* These fields are managed by the higher level parsing logic
- *
- * stream - Stream pointer the input stream associated with this
- * file.
- * kind - Kind of file we are processing. If include > 0,
- * this should be eIsUnit.
- * section - This is the part of the program that we are parsing
- * now.
- * dstack - Level zero dstack offset at the time the unit was
- * included. This is used to convert absolute program
- * stack offsets into relative unit stack offsets.
- * include - Is a unique number that identifies the file. In
- * POFF ouput file, this would be the index to the
- * entry in the .files section.
- */
-
- FILE *stream;
- fileKind_t kind;
- fileSection_t section;
- sint32 dstack;
- sint16 include;
-
- /* These fields are managed by the tokenizer. These are all
- * initialized by primeTokenizer().
- *
- * buffer[] - Holds the current input line
- * line - Is the line number in this file for the current line
- * cp - Is the current pointer into buffer[]
- */
-
- uint32 line;
- unsigned char *cp;
- unsigned char buffer[LINE_SIZE + 1];
-};
-typedef struct fileState_s fileState_t;
-
#endif /* __PDEFS_H */