X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2FSDCCast.h;h=3e5f763231dd49cd9c1f7c316b97c5e0a8f4b29c;hb=b5d29d69138a09774f423a86270ca058a545cfd2;hp=a6ddbfb9fe3cf135119ecfcf9e1ab814a9f78124;hpb=9be3db2ae30121352125653520083dbc47b08afe;p=fw%2Fsdcc diff --git a/src/SDCCast.h b/src/SDCCast.h index a6ddbfb9..3e5f7632 100644 --- a/src/SDCCast.h +++ b/src/SDCCast.h @@ -29,6 +29,7 @@ #include "SDCCsymt.h" #include "SDCCval.h" #include "SDCCset.h" +#include "SDCCmem.h" #define EX_OP 0 #define EX_VALUE 1 @@ -42,7 +43,6 @@ typedef struct ast unsigned type:3; unsigned decorated:1; - unsigned hasVargs:1; unsigned isError:1; unsigned funcName:1; unsigned rvalue:1; @@ -65,6 +65,7 @@ typedef struct ast union { char *inlineasm; /* pointer to inline assembler code */ + literalList *constlist; /* init list for array initializer. */ symbol *sym; /* if block then -> symbols */ value *args; /* if function then args */ /* if switch then switch values */ @@ -99,8 +100,6 @@ typedef struct ast sym_link *ftype; /* start of type chain for this subtree */ sym_link *etype; /* end of type chain for this subtree */ - symbol *argSym; /* argument symbols */ - value *args; /* args of a function */ struct ast *left; /* pointer to left tree */ struct ast *right; /* pointer to right tree */ symbol *trueLabel; /* if statement trueLabel */ @@ -130,6 +129,8 @@ ast; x->opval.op == EQ_OP || \ x->opval.op == NE_OP )) #define IS_CAST_OP(x) (IS_AST_OP(x) && x->opval.op == CAST) +#define IS_TERNARY_OP(x) (IS_AST_OP(x) && x->opval.op == '?') +#define IS_COLON_OP(x) (IS_AST_OP(x) && x->opval.op == ':') #define IS_ADDRESS_OF_OP(x) (IS_AST_OP(x) && \ x->opval.op == '&' && \ x->right == NULL ) @@ -168,7 +169,7 @@ ast; /* forward declarations for global variables */ extern ast *staticAutos; extern FILE *codeOutFile; -extern memmap *GcurMemmap; +extern struct memmap *GcurMemmap; /* forward definitions for functions */ ast *newAst_VALUE (value * val); @@ -205,5 +206,6 @@ void addSymToBlock (symbol *, ast *); // exported variables extern set *operKeyReset; extern int noAlloc; +extern int inInitMode; #endif