aboutsummaryrefslogtreecommitdiff
path: root/tccpp.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccpp.c')
-rw-r--r--tccpp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/tccpp.c b/tccpp.c
index f38e41a..111ea2b 100644
--- a/tccpp.c
+++ b/tccpp.c
@@ -2286,7 +2286,10 @@ maybe_newline:
}
}
break;
-
+
+ /* treat $ as allowed char in indentifier */
+ case '$': if (!tcc_state->dollars_in_identifiers) goto parse_simple;
+
case 'a': case 'b': case 'c': case 'd':
case 'e': case 'f': case 'g': case 'h':
case 'i': case 'j': case 'k': case 'l':
@@ -2589,8 +2592,8 @@ maybe_newline:
case ':':
case '?':
case '~':
- case '$': /* only used in assembler */
- case '@': /* dito */
+ case '@': /* only used in assembler */
+ parse_simple:
tok = c;
p++;
break;
@@ -3174,7 +3177,8 @@ ST_FUNC void preprocess_new(void)
/* init isid table */
for(i=CH_EOF;i<256;i++)
- isidnum_table[i-CH_EOF] = isid(i) || isnum(i);
+ isidnum_table[i-CH_EOF] = (isid(i) || isnum(i) ||
+ (tcc_state->dollars_in_identifiers ? i == '$' : 0));
/* add all tokens */
if (table_ident) {