@@ -117,19 +117,19 @@ function:
117117 | T_VAR_NUMBER T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_NUMBER); }
118118 | T_VAR_STRING T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_STRING); }
119119 | T_VAR_ANY T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_ANY); }
120- | T_VAR_LIST T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_LIST); }
120+ | T_VAR_LIST T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_LIST); }
121121 | T_VAR_DICT T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_DICT); }
122122 | T_VOID T_FUNCTION T_VAR function_parameters_start { startFunction($3 , K_VOID); }
123123 | T_PRINT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($2 , NULL ); printFunctionReturn($2 , NULL , " \n " , false , true ); } free($2 ); }
124124 | T_ECHO T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($2 , NULL ); printFunctionReturn($2 , NULL , " " , false , true ); } free($2 ); }
125125 | T_PRETTY T_PRINT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($3 , NULL ); printFunctionReturn($3 , NULL , " \n " , true , true ); } free($3 ); }
126126 | T_PRETTY T_ECHO T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($3 , NULL ); printFunctionReturn($3 , NULL , " " , true , true ); } free($3 ); }
127- | T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($1 , NULL ); if (is_interactive && !isFunctionType($1 , NULL , K_VOID)) printFunctionReturn($1 , NULL , " \n " , false , false ); } free($1 ); }
127+ | T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($1 , NULL ); if (is_interactive && !isFunctionType($1 , NULL , K_VOID) && !inject_mode && !decision_execution_mode ) printFunctionReturn($1 , NULL , " \n " , false , false ); } free($1 ); }
128128 | T_PRINT T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($4 , $2 ); printFunctionReturn($4 , $2 , " \n " , false , true ); } free($4 ); free($2 ); }
129129 | T_ECHO T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($4 , $2 ); printFunctionReturn($4 , $2 , " " , false , true ); } free($4 ); free($2 ); }
130130 | T_PRETTY T_PRINT T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($5 , $3 ); printFunctionReturn($5 , $3 , " \n " , true , true ); } free($5 ); free($3 ); }
131131 | T_PRETTY T_ECHO T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($5 , $3 ); printFunctionReturn($5 , $3 , " " , true , true ); } free($5 ); free($3 ); }
132- | T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($3 , $1 ); if (is_interactive && !isFunctionType($3 , $1 , K_VOID)) printFunctionReturn($3 , $1 , " \n " , false , false ); } free($3 ); free($1 ); }
132+ | T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($3 , $1 ); if (is_interactive && !isFunctionType($3 , $1 , K_VOID) && !inject_mode && !decision_execution_mode ) printFunctionReturn($3 , $1 , " \n " , false , false ); } free($3 ); free($1 ); }
133133 | error T_NEWLINE { if (is_interactive) { yyerrok ; yyclearin ; } }
134134;
135135
@@ -160,7 +160,7 @@ function_parameters: T_VAR_STRING T_VAR { addFunctio
160160 | function_parameters T_NEWLINE { }
161161;
162162
163- function_parameters : T_VAR_LIST T_VAR { addFunctionParameter($2 , K_LIST); }
163+ function_parameters : T_VAR_LIST T_VAR { addFunctionParameter($2 , K_LIST); }
164164 | function_parameters T_COMMA function_parameters { }
165165 | function_parameters T_NEWLINE { }
166166;
@@ -213,9 +213,9 @@ parser:
213213;
214214
215215line : T_NEWLINE
216- | mixed_expression T_NEWLINE { if (is_interactive && isStreamOpen()) printf(" %Lg\n " , $1 ); }
217- | expression T_NEWLINE { if (is_interactive && isStreamOpen()) printf(" %lld\n " , $1 ); }
218- | variable T_NEWLINE { if ($1 [0 ] != ' \0 ' && is_interactive) { printSymbolValueEndWithNewLine(getSymbol($1 ), false , false ); free($1 ); } }
216+ | mixed_expression T_NEWLINE { if (is_interactive && isStreamOpen() && !inject_mode ) printf(" %Lg\n " , $1 ); }
217+ | expression T_NEWLINE { if (is_interactive && isStreamOpen() && !inject_mode ) printf(" %lld\n " , $1 ); }
218+ | variable T_NEWLINE { if ($1 [0 ] != ' \0 ' && is_interactive && !inject_mode ) { printSymbolValueEndWithNewLine(getSymbol($1 ), false , false ); free($1 ); } }
219219 | loop T_NEWLINE { }
220220 | quit T_NEWLINE { }
221221 | T_PRINT print T_NEWLINE { }
@@ -500,12 +500,12 @@ variable: T_VAR { $$ = $1; }
500500 | variable T_EQUAL mixed_expression { updateSymbolFloat($1 , $3 ); $$ = " " ; }
501501 | variable T_EQUAL expression { updateSymbolFloat($1 , $3 ); $$ = " " ; }
502502 | variable T_EQUAL boolean_expression { updateSymbolBool($1 , $3 ); $$ = " " ; }
503- | variable T_EQUAL liststart { finishComplexModeWithUpdate($1 ); $$ = " " ; free($1 ); }
503+ | variable T_EQUAL liststart { finishComplexModeWithUpdate($1 ); $$ = " " ; free($1 ); }
504504 | variable T_EQUAL dictionarystart { finishComplexModeWithUpdate($1 ); $$ = " " ; free($1 ); }
505505 | variable T_EQUAL T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($3 , NULL ); updateSymbolByClonningFunctionReturn($1 , $3 , NULL ); } else { free($1 ); free($3 ); } $$ = " " ; }
506506 | variable T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($5 , $3 ); updateSymbolByClonningFunctionReturn($1 , $5 , $3 ); } else { free($1 ); free($3 ); free($5 ); } $$ = " " ; }
507507 | T_RETURN variable { returnSymbol($2 ); $$ = " " ; }
508- | variable_complex_element { if (is_interactive) { printSymbolValueEndWithNewLine(getComplexElementBySymbolId(variable_complex_element, variable_complex_element_symbol_id), false , false ); $$ = " " ; } else { yyerror (" Syntax error" ); } }
508+ | variable_complex_element { if (is_interactive && !inject_mode ) { printSymbolValueEndWithNewLine(getComplexElementBySymbolId(variable_complex_element, variable_complex_element_symbol_id), false , false ); $$ = " " ; } else { yyerror (" Syntax error" ); } }
509509 | variable_complex_element T_EQUAL T_TRUE { updateComplexElementBool($3 ); $$ = " " ; }
510510 | variable_complex_element T_EQUAL T_FALSE { updateComplexElementBool($3 ); $$ = " " ; }
511511 | variable_complex_element T_EQUAL T_STRING { updateComplexElementString($3 ); $$ = " " ; }
@@ -514,7 +514,7 @@ variable: T_VAR { $$ = $1; }
514514 | variable_complex_element T_EQUAL mixed_expression { updateComplexElementFloat($3 ); $$ = " " ; }
515515 | variable_complex_element T_EQUAL expression { updateComplexElementFloat($3 ); $$ = " " ; }
516516 | variable_complex_element T_EQUAL boolean_expression { updateComplexElementBool($3 ); $$ = " " ; }
517- | variable_complex_element T_EQUAL liststart { updateComplexElementComplex(); $$ = " " ; }
517+ | variable_complex_element T_EQUAL liststart { updateComplexElementComplex(); $$ = " " ; }
518518 | variable_complex_element T_EQUAL dictionarystart { updateComplexElementComplex(); $$ = " " ; }
519519 | variable_complex_element T_EQUAL T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($3 , NULL ); updateComplexSymbolByClonningFunctionReturn($3 , NULL ); } else { free($3 ); } $$ = " " ; }
520520 | variable_complex_element T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($5 , $3 ); updateComplexSymbolByClonningFunctionReturn($5 , $3 ); } else { free($3 ); free($5 ); } $$ = " " ; }
@@ -530,9 +530,9 @@ variable: { }
530530 | T_VAR_BOOL T_VAR T_EQUAL boolean_expression { addSymbolBool($2 , $4 ); $$ = " " ; }
531531 | T_VAR_BOOL T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($2 , K_BOOL, $4 , K_ANY); $$ = " " ; }
532532 | T_VAR_BOOL T_VAR T_EQUAL T_VAR left_right_bracket { createCloneFromComplexElement($2 , K_BOOL, $4 , K_ANY); $$ = " " ; }
533- | T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_LIST, $5 , K_BOOL); $$ = " " ; }
533+ | T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_LIST, $5 , K_BOOL); $$ = " " ; }
534534 | T_VAR_BOOL T_VAR_DICT T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_DICT, $5 , K_BOOL); $$ = " " ; }
535- | T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL liststart { finishComplexMode($3 , K_BOOL); $$ = " " ; free($3 ); }
535+ | T_VAR_BOOL T_VAR_LIST T_VAR T_EQUAL liststart { finishComplexMode($3 , K_BOOL); $$ = " " ; free($3 ); }
536536 | T_VAR_BOOL T_VAR_DICT T_VAR T_EQUAL dictionarystart { finishComplexMode($3 , K_BOOL); $$ = " " ; free($3 ); }
537537 | T_VAR_BOOL T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($4 , NULL ); createCloneFromFunctionReturn($2 , K_BOOL, $4 , NULL , K_ANY); } else { free($2 ); free($4 ); } $$ = " " ; }
538538 | T_VAR_BOOL T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($6 , $4 ); createCloneFromFunctionReturn($2 , K_BOOL, $6 , $4 , K_ANY); } else { free($2 ); free($4 ); free($6 ); } $$ = " " ; }
@@ -541,9 +541,9 @@ variable: { }
541541variable : { }
542542 | T_VAR_NUMBER T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($2 , K_NUMBER, $4 , K_ANY); $$ = " " ; }
543543 | T_VAR_NUMBER T_VAR T_EQUAL T_VAR left_right_bracket { createCloneFromComplexElement($2 , K_NUMBER, $4 , K_ANY); $$ = " " ; }
544- | T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_LIST, $5 , K_NUMBER); $$ = " " ; }
544+ | T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_LIST, $5 , K_NUMBER); $$ = " " ; }
545545 | T_VAR_NUMBER T_VAR_DICT T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_DICT, $5 , K_NUMBER); $$ = " " ; }
546- | T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL liststart { finishComplexMode($3 , K_NUMBER); $$ = " " ; free($3 ); }
546+ | T_VAR_NUMBER T_VAR_LIST T_VAR T_EQUAL liststart { finishComplexMode($3 , K_NUMBER); $$ = " " ; free($3 ); }
547547 | T_VAR_NUMBER T_VAR_DICT T_VAR T_EQUAL dictionarystart { finishComplexMode($3 , K_NUMBER); $$ = " " ; free($3 ); }
548548 | T_VAR_NUMBER T_VAR T_EQUAL mixed_expression { addSymbolFloat($2 , $4 ); $$ = " " ; }
549549 | T_VAR_NUMBER T_VAR T_EQUAL expression { addSymbolFloat($2 , $4 ); $$ = " " ; }
@@ -555,9 +555,9 @@ variable: { }
555555 | T_VAR_STRING T_VAR T_EQUAL T_STRING { addSymbolString($2 , $4 ); $$ = " " ; }
556556 | T_VAR_STRING T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($2 , K_STRING, $4 , K_ANY); $$ = " " ; }
557557 | T_VAR_STRING T_VAR T_EQUAL T_VAR left_right_bracket { createCloneFromComplexElement($2 , K_STRING, $4 , K_ANY); $$ = " " ; }
558- | T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_LIST, $5 , K_STRING); $$ = " " ; }
558+ | T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_LIST, $5 , K_STRING); $$ = " " ; }
559559 | T_VAR_STRING T_VAR_DICT T_VAR T_EQUAL T_VAR { createCloneFromSymbolByName($3 , K_DICT, $5 , K_STRING); $$ = " " ; }
560- | T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL liststart { finishComplexMode($3 , K_STRING); $$ = " " ; free($3 ); }
560+ | T_VAR_STRING T_VAR_LIST T_VAR T_EQUAL liststart { finishComplexMode($3 , K_STRING); $$ = " " ; free($3 ); }
561561 | T_VAR_STRING T_VAR_DICT T_VAR T_EQUAL dictionarystart { finishComplexMode($3 , K_STRING); $$ = " " ; free($3 ); }
562562 | T_VAR_STRING T_VAR T_EQUAL T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($4 , NULL ); createCloneFromFunctionReturn($2 , K_STRING, $4 , NULL , K_ANY); } else { free($2 ); free($4 ); } $$ = " " ; }
563563 | T_VAR_STRING T_VAR T_EQUAL T_VAR T_DOT T_VAR T_LEFT function_call_parameters_start { if (phase == PROGRAM) { callFunction($6 , $4 ); createCloneFromFunctionReturn($2 , K_STRING, $6 , $4 , K_ANY); } else { free($2 ); free($4 ); free($6 ); } $$ = " " ; }
@@ -770,7 +770,7 @@ quit: { }
770770 freeEverything ();
771771 exit (E_SUCCESS);
772772 }
773- | T_QUIT expression T_NEWLINE {
773+ | T_QUIT expression T_NEWLINE {
774774 if (is_interactive) {
775775 print_bye_bye ();
776776 } else {
@@ -779,7 +779,7 @@ quit: { }
779779 freeEverything ();
780780 exit ($2 );
781781 }
782- | T_QUIT T_VAR T_NEWLINE {
782+ | T_QUIT T_VAR T_NEWLINE {
783783 long long code = getSymbolValueInt($2 );
784784 if (is_interactive) {
785785 print_bye_bye ();
0 commit comments