4 * Ullrich von Bassewitz, 20.06.1998
19 /*****************************************************************************/
21 /*****************************************************************************/
25 /* Masks for the Flags field in DeclSpec */
26 #define DS_DEF_STORAGE 0x0001U /* Default storage class used */
27 #define DS_DEF_TYPE 0x0002U /* Default type used */
29 /* Result of ParseDeclSpec */
30 typedef struct DeclSpec DeclSpec;
32 unsigned StorageClass; /* One of the SC_xxx flags */
33 type Type [MAXTYPELEN]; /* Type of the declaration spec */
34 unsigned Flags; /* Bitmapped flags */
37 /* Result of ParseDecl */
38 typedef struct Declaration Declaration;
40 ident Ident; /* The identifier if any, else empty */
41 type Type [MAXTYPELEN]; /* The type */
43 /* Working variables */
44 type* T; /* Used to build Type */
47 /* Modes for ParseDecl */
48 #define DM_NEED_IDENT 0U /* We must have an identifier */
49 #define DM_NO_IDENT 1U /* We won't read an identifier */
50 #define DM_ACCEPT_IDENT 2U /* We will accept an id if there is one */
54 /*****************************************************************************/
56 /*****************************************************************************/
60 type* ParseType (type* Type);
61 /* Parse a complete type specification */
63 void ParseDecl (const DeclSpec* Spec, Declaration* D, unsigned Mode);
64 /* Parse a variable, type or function declaration */
66 void ParseDeclSpec (DeclSpec* D, unsigned DefStorage, int DefType);
67 /* Parse a declaration specification */
69 void ParseInit (type* tptr);
70 /* Parse initialization of variables */
74 /* End of declare.h */