]> git.rm.cloudns.org Git - xonotic/gmqcc.git/commitdiff
Ah right, 'var' is not an actual keyword, support TOKEN_IDENT-var inside functions
authorWolfgang (Blub) Bumiller <blub@speed.at>
Sun, 25 Nov 2012 21:26:28 +0000 (22:26 +0100)
committerWolfgang (Blub) Bumiller <blub@speed.at>
Sun, 25 Nov 2012 21:26:28 +0000 (22:26 +0100)
parser.c

index 48b01a48a5e1a5eed71c446db91cb03a079b19de..e8fddc91b5c21d64d2faf1649a200a54625a6567 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -2269,6 +2269,7 @@ static bool parse_goto(parser_t *parser, ast_expression **out)
 
 static bool parse_statement(parser_t *parser, ast_block *block, ast_expression **out, bool allow_cases)
 {
+    int cvq;
     ast_value *typevar = NULL;
     *out = NULL;
 
@@ -2291,13 +2292,17 @@ static bool parse_statement(parser_t *parser, ast_block *block, ast_expression *
         *out = NULL;
         return true;
     }
+    else if (parser->tok == TOKEN_IDENT && !strcmp(parser_tokval(parser), "var"))
+    {
+        goto ident_var;
+    }
     else if (parser->tok == TOKEN_KEYWORD)
     {
         if (!strcmp(parser_tokval(parser), "local") ||
             !strcmp(parser_tokval(parser), "const") ||
             !strcmp(parser_tokval(parser), "var"))
         {
-            int cvq;
+ident_var:
             if (parser_tokval(parser)[0] == 'c')
                 cvq = CV_CONST;
             else if (parser_tokval(parser)[0] == 'v')