diff options
Diffstat (limited to 'c_compiler/src/c_parser.y')
-rw-r--r-- | c_compiler/src/c_parser.y | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/c_compiler/src/c_parser.y b/c_compiler/src/c_parser.y index 2c5d215..81293ba 100644 --- a/c_compiler/src/c_parser.y +++ b/c_compiler/src/c_parser.y @@ -41,7 +41,7 @@ void yyerror(const char *); T_VOID T_CHAR T_SHORT T_INT T_LONG T_FLOAT T_DOUBLE T_SIGNED T_UNSIGNED T_TYPEDEF T_EXTERN T_STATIC T_AUTO T_REGISTER T_CONST T_VOLATILE T_GOTO T_BREAK T_CONTINUE - T_CASE T_DEFAULT T_SWITCH T_ELLIPSIS + T_CASE T_DEFAULT T_SWITCH T_ELLIPSIS T_STRINGLITERAL %nonassoc T_RRB %nonassoc T_ELSE @@ -74,8 +74,9 @@ void yyerror(const char *); %type <number> T_INT_CONST %type <string> T_IDENTIFIER ASSIGN_OPER T_ASSIGN_OPER T_EQ T_AND T_ADDSUB_OP T_TILDE T_NOT - T_MULT T_DIV T_REM T_EQUALITY_OP T_REL_OP T_SHIFT_OP T_INCDEC MultDivRemOP - UnaryOperator DeclarationSpecifier TypeQualifier TypeQualifierList + T_MULT T_DIV T_REM T_EQUALITY_OP T_REL_OP T_SHIFT_OP T_INCDEC T_STRINGLITERAL + MultDivRemOP UnaryOperator DeclarationSpecifier TypeQualifier + TypeQualifierList %start ROOT @@ -467,6 +468,7 @@ ArgumentExpressionList: PrimaryExpression: T_IDENTIFIER { $$ = new Identifier(*$1); delete $1; } | Constant { $$ = $1; } + | T_STRINGLITERAL { $$ = new StringLiteral(*$1); delete $1; } | T_LRB Expression T_RRB { $$ = $2; } ; |