@@ -506,7 +506,7 @@ left_right_bracket: T_UNSIGNED_LONG_LONG_INT
506
506
507
507
variable : { }
508
508
| T_VAR { char *strings[] = {$1 }; ASTNode* ast_node = addASTNode(AST_PRINT_INTERACTIVE_VAR, strings, 1 ); ASTNodeNext(ast_node); }
509
- | T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
509
+ | T_VAR T_EQUAL T_NEWLINE { free( $1 ); yyerror (__KAOS_SYNTAX_ERROR__); }
510
510
| T_VAR T_EQUAL T_STRING { char *strings[] = {$1 }; ASTNode* ast_node = addASTNodeString(AST_VAR_UPDATE_STRING, strings, 1 , $3 , NULL ); ASTNodeNext(ast_node); }
511
511
| T_VAR T_EQUAL T_VAR { char *strings[] = {$1 , $3 }; ASTNode* ast_node = addASTNode(AST_VAR_UPDATE_VAR, strings, 2 ); ASTNodeNext(ast_node); }
512
512
| T_VAR T_EQUAL T_VAR left_right_bracket { char *strings[] = {$1 , $3 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_UPDATE_VAR_EL, strings, 2 , $4 ); ASTNodeNext(ast_node); }
@@ -530,12 +530,12 @@ variable:
530
530
| variable_complex_element T_EQUAL dictionarystart { char *strings[] = {}; ASTNode* ast_node = addASTNodeFull(AST_COMPLEX_EL_UPDATE_DICT, strings, 0 , $1 , $3 ); ASTNodeNext(ast_node); is_complex_parsing = false ; }
531
531
| variable_complex_element T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 }; ASTNode* ast_node = addASTNodeFull(AST_COMPLEX_EL_UPDATE_FUNC_RETURN, strings, 1 , $5 , $1 ); ASTNodeNext(ast_node); }
532
532
| variable_complex_element T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNodeFull(AST_COMPLEX_EL_UPDATE_FUNC_RETURN, strings, 2 , $7 , $1 ); ASTNodeNext(ast_node); }
533
- | T_VAR_BOOL T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
533
+ | T_VAR_BOOL T_VAR T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
534
534
| T_VAR_BOOL T_VAR T_EQUAL boolean_expression { char *strings[] = {$2 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_BOOL, strings, 1 , $4 ); ASTNodeNext(ast_node); }
535
535
| T_VAR_BOOL T_VAR T_EQUAL T_VAR { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_BOOL_VAR, strings, 2 ); ASTNodeNext(ast_node); }
536
536
| T_VAR_BOOL T_VAR T_EQUAL T_VAR left_right_bracket { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_BOOL_VAR_EL, strings, 2 , $5 ); ASTNodeNext(ast_node); }
537
- | T_VAR_BOOL T_VAR T_VAR_LIST T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
538
- | T_VAR_BOOL T_VAR T_VAR_DICT T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
537
+ | T_VAR_BOOL T_VAR T_VAR_LIST T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
538
+ | T_VAR_BOOL T_VAR T_VAR_DICT T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
539
539
| T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL T_VAR { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_BOOL_LIST_VAR, strings, 2 ); ASTNodeNext(ast_node); }
540
540
| T_VAR_BOOL T_VAR_DICT T_VAR T_EQUAL T_VAR { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_BOOL_DICT_VAR, strings, 2 ); ASTNodeNext(ast_node); }
541
541
| T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL liststart { char *strings[] = {$3 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_BOOL_LIST, strings, 1 , $5 ); ASTNodeNext(ast_node); is_complex_parsing = false ; }
@@ -546,11 +546,11 @@ variable:
546
546
| T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 , $7 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_BOOL_LIST_FUNC_RETURN, strings, 3 , $9 ); ASTNodeNext(ast_node); }
547
547
| T_VAR_BOOL T_VAR_DICT T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_BOOL_DICT_FUNC_RETURN, strings, 2 , $7 ); ASTNodeNext(ast_node); }
548
548
| T_VAR_BOOL T_VAR_DICT T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 , $7 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_BOOL_DICT_FUNC_RETURN, strings, 3 , $9 ); ASTNodeNext(ast_node); }
549
- | T_VAR_NUMBER T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
549
+ | T_VAR_NUMBER T_VAR T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
550
550
| T_VAR_NUMBER T_VAR T_EQUAL T_VAR { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_NUMBER_VAR, strings, 2 ); ASTNodeNext(ast_node); }
551
551
| T_VAR_NUMBER T_VAR T_EQUAL T_VAR left_right_bracket { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_NUMBER_VAR_EL, strings, 2 , $5 ); ASTNodeNext(ast_node); }
552
- | T_VAR_NUMBER T_VAR T_VAR_LIST T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
553
- | T_VAR_NUMBER T_VAR T_VAR_DICT T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
552
+ | T_VAR_NUMBER T_VAR T_VAR_LIST T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
553
+ | T_VAR_NUMBER T_VAR T_VAR_DICT T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
554
554
| T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL T_VAR { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_NUMBER_LIST_VAR, strings, 2 ); ASTNodeNext(ast_node); }
555
555
| T_VAR_NUMBER T_VAR_DICT T_VAR T_EQUAL T_VAR { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_NUMBER_DICT_VAR, strings, 2 ); ASTNodeNext(ast_node); }
556
556
| T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL liststart { char *strings[] = {$3 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_NUMBER_LIST, strings, 1 , $5 ); ASTNodeNext(ast_node); is_complex_parsing = false ; }
@@ -563,12 +563,12 @@ variable:
563
563
| T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 , $7 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_NUMBER_LIST_FUNC_RETURN, strings, 3 , $9 ); ASTNodeNext(ast_node); }
564
564
| T_VAR_NUMBER T_VAR_DICT T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_NUMBER_DICT_FUNC_RETURN, strings, 2 , $7 ); ASTNodeNext(ast_node); }
565
565
| T_VAR_NUMBER T_VAR_DICT T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 , $7 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_NUMBER_DICT_FUNC_RETURN, strings, 3 , $9 ); ASTNodeNext(ast_node); }
566
- | T_VAR_STRING T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
566
+ | T_VAR_STRING T_VAR T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
567
567
| T_VAR_STRING T_VAR T_EQUAL T_STRING { char *strings[] = {$2 }; ASTNode* ast_node = addASTNodeString(AST_VAR_CREATE_STRING, strings, 1 , $4 , NULL ); ASTNodeNext(ast_node); }
568
568
| T_VAR_STRING T_VAR T_EQUAL T_VAR { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_STRING_VAR, strings, 2 ); ASTNodeNext(ast_node); }
569
569
| T_VAR_STRING T_VAR T_EQUAL T_VAR left_right_bracket { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_STRING_VAR_EL, strings, 2 , $5 ); ASTNodeNext(ast_node); }
570
- | T_VAR_STRING T_VAR T_VAR_LIST T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
571
- | T_VAR_STRING T_VAR T_VAR_DICT T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
570
+ | T_VAR_STRING T_VAR T_VAR_LIST T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
571
+ | T_VAR_STRING T_VAR T_VAR_DICT T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
572
572
| T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL T_VAR { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_STRING_LIST_VAR, strings, 2 ); ASTNodeNext(ast_node); }
573
573
| T_VAR_STRING T_VAR_DICT T_VAR T_EQUAL T_VAR { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_STRING_DICT_VAR, strings, 2 ); ASTNodeNext(ast_node); }
574
574
| T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL liststart { char *strings[] = {$3 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_STRING_LIST, strings, 1 , $5 ); ASTNodeNext(ast_node); is_complex_parsing = false ; }
@@ -579,7 +579,7 @@ variable:
579
579
| T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 , $7 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_STRING_LIST_FUNC_RETURN, strings, 3 , $9 ); ASTNodeNext(ast_node); }
580
580
| T_VAR_STRING T_VAR_DICT T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_STRING_DICT_FUNC_RETURN, strings, 2 , $7 ); ASTNodeNext(ast_node); }
581
581
| T_VAR_STRING T_VAR_DICT T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$3 , $5 , $7 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_STRING_DICT_FUNC_RETURN, strings, 3 , $9 ); ASTNodeNext(ast_node); }
582
- | T_VAR_ANY T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
582
+ | T_VAR_ANY T_VAR T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
583
583
| T_VAR_ANY T_VAR T_EQUAL T_STRING { char *strings[] = {$2 }; ASTNode* ast_node = addASTNodeString(AST_VAR_CREATE_ANY_STRING, strings, 1 , $4 , NULL ); ASTNodeNext(ast_node); }
584
584
| T_VAR_ANY T_VAR T_EQUAL T_VAR { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_ANY_VAR, strings, 2 ); ASTNodeNext(ast_node); }
585
585
| T_VAR_ANY T_VAR T_EQUAL T_VAR left_right_bracket { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_ANY_VAR_EL, strings, 2 , $5 ); ASTNodeNext(ast_node); }
@@ -588,17 +588,16 @@ variable:
588
588
| T_VAR_ANY T_VAR T_EQUAL expression { char *strings[] = {$2 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_ANY_NUMBER, strings, 1 , $4 ); ASTNodeNext(ast_node); }
589
589
| T_VAR_ANY T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_ANY_FUNC_RETURN, strings, 2 , $6 ); ASTNodeNext(ast_node); }
590
590
| T_VAR_ANY T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$2 , $4 , $6 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_ANY_FUNC_RETURN, strings, 3 , $8 ); ASTNodeNext(ast_node); }
591
- | T_VAR_LIST T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
591
+ | T_VAR_LIST T_VAR T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
592
592
| T_VAR_LIST T_VAR T_EQUAL T_VAR { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_LIST_VAR, strings, 2 ); ASTNodeNext(ast_node); }
593
593
| T_VAR_LIST T_VAR T_EQUAL liststart { char *strings[] = {$2 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_LIST, strings, 1 , $4 ); ASTNodeNext(ast_node); is_complex_parsing = false ; }
594
594
| T_VAR_LIST T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_LIST_FUNC_RETURN, strings, 2 , $6 ); ASTNodeNext(ast_node); }
595
595
| T_VAR_LIST T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$2 , $4 , $6 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_LIST_FUNC_RETURN, strings, 3 , $8 ); ASTNodeNext(ast_node); }
596
- | T_VAR_DICT T_VAR T_EQUAL T_NEWLINE { yyerror (__KAOS_SYNTAX_ERROR__); }
596
+ | T_VAR_DICT T_VAR T_EQUAL T_NEWLINE { free( $2 ); yyerror (__KAOS_SYNTAX_ERROR__); }
597
597
| T_VAR_DICT T_VAR T_EQUAL T_VAR { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNode(AST_VAR_CREATE_DICT_VAR, strings, 2 ); ASTNodeNext(ast_node); }
598
598
| T_VAR_DICT T_VAR T_EQUAL dictionarystart { char *strings[] = {$2 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_DICT, strings, 1 , $4 ); ASTNodeNext(ast_node); is_complex_parsing = false ; }
599
599
| T_VAR_DICT T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$2 , $4 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_DICT_FUNC_RETURN, strings, 2 , $6 ); ASTNodeNext(ast_node); }
600
600
| T_VAR_DICT T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { char *strings[] = {$2 , $4 , $6 }; ASTNode* ast_node = addASTNodeAssign(AST_VAR_CREATE_DICT_FUNC_RETURN, strings, 3 , $8 ); ASTNodeNext(ast_node); }
601
- | error T_NEWLINE parser { if (is_interactive) { yyerrok ; yyclearin ; } }
602
601
;
603
602
604
603
variable_complex_element : { }
0 commit comments