diff options
-rw-r--r-- | ast.c | 1 | ||||
-rw-r--r-- | grammar.peg | 6 |
2 files changed, 3 insertions, 4 deletions
@@ -74,5 +74,4 @@ void astnode_disp(AstNode *a) { printf("s:%s ",a->as.str); break; } - } diff --git a/grammar.peg b/grammar.peg index 9b8e882..12847e5 100644 --- a/grammar.peg +++ b/grammar.peg @@ -22,10 +22,10 @@ list <- { $$ = astnode_new_list(); } )* ')' _ -number <- < [0-9]+ > _ { $$ = astnode_new_num(atoi($1)); } -symbol <- < [a-z]+ > _ { $$ = astnode_new_symbol(strdup($1)); } - +number <- < [0-9]+ > _ (! ident_char) { $$ = astnode_new_num(atoi($1)); } +symbol <- < ident_char+ > _ { $$ = astnode_new_symbol(strdup($1)); } +ident_char <- [-_a-zA-Z'+*0-9] _ <- [ \t]* %% |