]> git.bts.cx Git - sun.git/commitdiff
Fixed syntax for definitions
authorBen Sherratt <redacted>
Tue, 30 Jan 2024 18:09:04 +0000 (18:09 +0000)
committerBen Sherratt <redacted>
Tue, 30 Jan 2024 18:09:04 +0000 (18:09 +0000)
runtime/src/sun/compiler/sun.y

index b71f4de442f7da6a17e8c808f04a6a2ab6897349..2464ffac0abdb7ab0ac73dc5ace7169d48812573 100644 (file)
 %%
 
 module
 %%
 
 module
-       : optional_statements_or_definitions {
+       : optional_statements {
                $$ = sltNodeMakeModule($1);
                *moduleOut = $$;
        }
        ;
 
                $$ = sltNodeMakeModule($1);
                *moduleOut = $$;
        }
        ;
 
-optional_statements_or_definitions
-       : /* Nothing */ {
+/*optional_statements_or_definitions
+       : *//* Nothing *//* {
                $$ = NULL;
        }
        | statements_or_definitions
        ;
 
 statements_or_definitions
                $$ = NULL;
        }
        | statements_or_definitions
        ;
 
 statements_or_definitions
-       : definition {
+       : function_definition {
                $$ = sltNodeMakeSequence(NULL, $1);
        }
        | statement {
                $$ = sltNodeMakeSequence(NULL, $1);
        }
                $$ = sltNodeMakeSequence(NULL, $1);
        }
        | statement {
                $$ = sltNodeMakeSequence(NULL, $1);
        }
-       | statements_or_definitions definition {
+       | statements_or_definitions function_definition {
                $$ = sltNodeMakeSequence($1, $2);
        }
        | statements_or_definitions statement {
                $$ = sltNodeMakeSequence($1, $2);
        }
                $$ = sltNodeMakeSequence($1, $2);
        }
        | statements_or_definitions statement {
                $$ = sltNodeMakeSequence($1, $2);
        }
-       ;
+       ;*/
 
 
-definition
+/*definition
        : function_definition
        : function_definition
-       /*| type_definition*/
+       | type_definition
        | variable_definition ';'
        | variable_definition ';'
-       ;
+       ;*/
 
 function_definition
        : IDENTIFIER IDENTIFIER '(' optional_parameter_definitions ')' '{' optional_statements '}' {
 
 function_definition
        : IDENTIFIER IDENTIFIER '(' optional_parameter_definitions ')' '{' optional_statements '}' {
@@ -198,6 +198,7 @@ statement
        : ';' {
                $$ = NULL; /* Otherwise this will pass up the ';' character */
        }
        : ';' {
                $$ = NULL; /* Otherwise this will pass up the ';' character */
        }
+       | function_definition
        | variable_definition ';'
        | "return" optional_expression ';' {
                $$ = sltNodeMakeReturn($2);
        | variable_definition ';'
        | "return" optional_expression ';' {
                $$ = sltNodeMakeReturn($2);