diff options
| author | jiang <30155751@qq.com> | 2014-05-02 11:23:54 +0800 |
|---|---|---|
| committer | jiang <30155751@qq.com> | 2014-05-02 11:23:54 +0800 |
| commit | 6c8207633fd42e420e32bdf4912be9fbf307f5ad (patch) | |
| tree | f2bf62fb1288ac5fe026d2d6a54447e733154bb1 /tcc.h | |
| parent | 5b52a44b524916bf564a9c399ce536a7ea5b5201 (diff) | |
| download | tinycc-6c8207633fd42e420e32bdf4912be9fbf307f5ad.tar.gz tinycc-6c8207633fd42e420e32bdf4912be9fbf307f5ad.tar.bz2 | |
Fixes include the double quotes bug
Added push_macro, pop_macro support
Fix pack bug, when output with-E will pack the bug
Diffstat (limited to 'tcc.h')
| -rw-r--r-- | tcc.h | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -305,15 +305,22 @@ #define VSTACK_SIZE 256 #define STRING_MAX_SIZE 1024 #define PACK_STACK_SIZE 8 +#define MACRO_STACK_SIZE 4 #define TOK_HASH_SIZE 8192 /* must be a power of two */ #define TOK_ALLOC_INCR 512 /* must be a power of two */ #define TOK_MAX_SIZE 4 /* token max size in int unit when stored in string */ +typedef struct CSym { + int off; + int size;/* size in *sym */ + struct Sym **data; /* if non NULL, data has been malloced */ +} CSym; + /* token symbol management */ typedef struct TokenSym { struct TokenSym *hash_next; - struct Sym *sym_define; /* direct pointer to define */ + struct CSym sym_define; /* direct pointer to define */ struct Sym *sym_label; /* direct pointer to label */ struct Sym *sym_struct; /* direct pointer to structure */ struct Sym *sym_identifier; /* direct pointer to identifier */ @@ -1129,7 +1136,8 @@ ST_DATA TokenSym **table_ident; token. line feed is also returned at eof */ #define PARSE_FLAG_ASM_COMMENTS 0x0008 /* '#' can be used for line comment */ -#define PARSE_FLAG_SPACES 0x0010 /* next() returns space tokens (for -E) */ +#define PARSE_FLAG_SPACES 0x0010 /* next() returns space tokens (for -E) */ +#define PARSE_FLAG_PACK 0x0020 /* #pragma pack */ ST_FUNC TokenSym *tok_alloc(const char *str, int len); ST_FUNC char *get_tok_str(int v, CValue *cv); |
