From e16701e8d0146d2d34ec9ea5db75ee88f94fc224 Mon Sep 17 00:00:00 2001 From: Moammad97 Date: Thu, 25 Feb 2021 19:09:13 +0330 Subject: [PATCH] Fix printf bug --- .../include/ScriptEngineCommonDefinitions.h | 1 + hyperdbg/script-engine/ScriptEngine.c | 2 +- hyperdbg/script-engine/parse_table.c | 376 +++++++++--------- hyperdbg/script-engine/python/Grammar.txt | 8 +- hyperdbg/script-engine/python/ll1_parser.py | 4 +- 5 files changed, 197 insertions(+), 194 deletions(-) diff --git a/hyperdbg/include/ScriptEngineCommonDefinitions.h b/hyperdbg/include/ScriptEngineCommonDefinitions.h index 938839ad..43f8e75b 100644 --- a/hyperdbg/include/ScriptEngineCommonDefinitions.h +++ b/hyperdbg/include/ScriptEngineCommonDefinitions.h @@ -64,6 +64,7 @@ typedef struct ACTION_BUFFER { #define FUNC_LOW 26 #define FUNC_NOT 27 #define FUNC_MOV 28 +#define FUNC_VARGSTART 29 #define REGISTER_RAX 0 #define REGISTER_RCX 1 diff --git a/hyperdbg/script-engine/ScriptEngine.c b/hyperdbg/script-engine/ScriptEngine.c index 54b7c952..ddf896fa 100644 --- a/hyperdbg/script-engine/ScriptEngine.c +++ b/hyperdbg/script-engine/ScriptEngine.c @@ -182,7 +182,7 @@ PSYMBOL_BUFFER ScriptEngineParse(char* str) if (!IsEqual(TopToken, CurrentIn)) { char* Message = HandleError(SYNTAX_ERROR, str); - CodeBuffer->Message = Message; + CodeBuffer->Message = Message; RemoveToken(StartToken); RemoveToken(EndToken); diff --git a/hyperdbg/script-engine/parse_table.c b/hyperdbg/script-engine/parse_table.c index daec0819..ae5c01b4 100644 --- a/hyperdbg/script-engine/parse_table.c +++ b/hyperdbg/script-engine/parse_table.c @@ -87,7 +87,7 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]= {{NON_TERMINAL, "IF_STATEMENT"}}, {{NON_TERMINAL, "ASSIGN_STATEMENT"},{SPECIAL_TOKEN, ";"}}, {{NON_TERMINAL, "CALL_FUNC_STATEMENT"},{SPECIAL_TOKEN, ";"}}, - {{SEMANTIC_RULE, "@PUSH"},{NON_TERMINAL, "L_VALUE"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"},{NON_TERMINAL, "NULL"}}, + {{NON_TERMINAL, "L_VALUE"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"},{NON_TERMINAL, "NULL"}}, {{KEYWORD, "print"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@PRINT"},{SPECIAL_TOKEN, ")"}}, {{KEYWORD, "formats"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@FORMATS"},{SPECIAL_TOKEN, ")"}}, {{KEYWORD, "disableevent"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@DISABLEEVENT"},{SPECIAL_TOKEN, ")"}}, @@ -152,9 +152,9 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]= {{SPECIAL_TOKEN, "+"},{NON_TERMINAL, "E12"},{NON_TERMINAL, "E13"}}, {{KEYWORD, "~"},{NON_TERMINAL, "E12"},{SEMANTIC_RULE, "@NOT"},{NON_TERMINAL, "E13"}}, {{EPSILON, "eps"}}, - {{STRING, "_string"}}, - {{ID, "_id"}}, - {{REGISTER, "_register"}}, + {{SEMANTIC_RULE, "@PUSH"},{STRING, "_string"}}, + {{SEMANTIC_RULE, "@PUSH"},{ID, "_id"}}, + {{SEMANTIC_RULE, "@PUSH"},{REGISTER, "_register"}}, {{EPSILON, "eps"}} }; const unsigned int RhsSize[RULES_COUNT]= @@ -165,7 +165,7 @@ const unsigned int RhsSize[RULES_COUNT]= 1, 2, 2, -6, +5, 5, 5, 5, @@ -230,133 +230,133 @@ const unsigned int RhsSize[RULES_COUNT]= 3, 4, 1, -1, -1, -1, +2, +2, +2, 1 }; const char* NoneTerminalMap[NONETERMINAL_COUNT]= { -"S", -"E4'", -"E4", -"E5'", -"E10", -"E13", -"VA", -"E9", -"E5", -"S'", -"E3'", -"STATEMENT", -"E9'", -"NULL", -"BOOLEAN_EXPRESSION", -"E3", -"E6'", -"E8'", -"E1'", -"IF_STATEMENT", -"CALL_FUNC_STATEMENT", -"E12", -"E2", -"E1", -"E7'", -"E0'", "E6", -"ASSIGN_STATEMENT", -"E8", +"STATEMENT", "E7", -"STRING", +"E4", "EXPRESSION", +"ASSIGN_STATEMENT", +"E6'", +"E1", +"E2", +"E5'", +"E8", +"E9", +"E13", "E2'", -"L_VALUE" +"E4'", +"BOOLEAN_EXPRESSION", +"E10", +"E9'", +"E7'", +"E5", +"E12", +"E3'", +"L_VALUE", +"E0'", +"E3", +"S", +"E8'", +"IF_STATEMENT", +"E1'", +"NULL", +"S'", +"STRING", +"CALL_FUNC_STATEMENT", +"VA" }; const char* TerminalMap[TERMINAL_COUNT]= { -"str", +"_octal", +"low", +"_pseudo_register", "{", -"(", -"%", -"_string", -"neg", -"break", -"-", -"printf", -"=", -"formats", -"}", -"^", -"&", -"hi", -"sizeof", -"_register", +"_binary", "dw", -"_id", +"wstr", +"neg", +"dd", +")", +"}", +"hi", +"_string", +"dq", +";", +"break", +"<<", +"_register", +"_hex", +"enableevent", +"|", +"^", +"print", +"printf", "db", +"if", +"_decimal", +"disableevent", +"$", +"-", +"&", +"(", +",", +"formats", +"%", +"_id", "+", "not", -"_binary", -"<<", -"wstr", -"|", -"*", -";", -")", -"_pseudo_register", -"enableevent", -"low", -"/", -"~", -"disableevent", -",", -"_hex", +"=", "poi", -"dq", -"if", -"_octal", -"_decimal", -"print", -"$", -"dd", -">>" +"sizeof", +"*", +"str", +"~", +">>", +"/" }; const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]= { - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,0 ,-99 ,0 ,-99 ,0 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,0 ,-99 ,-99 ,-99 ,0 ,-99 ,-99 ,-99 ,-99 ,0 ,-99 ,-99 ,0 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,31 ,31 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,30 ,-99 ,31 ,-99 ,31 ,31 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,31 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,31 }, - {29 ,-99 ,29 ,-99 ,-99 ,29 ,-99 ,29 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,29 ,29 ,29 ,29 ,-99 ,29 ,29 ,29 ,29 ,-99 ,29 ,-99 ,-99 ,-99 ,-99 ,29 ,-99 ,29 ,-99 ,29 ,-99 ,-99 ,29 ,29 ,29 ,-99 ,29 ,29 ,-99 ,-99 ,29 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 ,34 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,33 ,-99 ,-99 ,34 ,-99 ,34 ,-99 ,34 ,34 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 }, - {47 ,-99 ,47 ,-99 ,-99 ,47 ,-99 ,47 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,47 ,47 ,47 ,47 ,-99 ,47 ,47 ,47 ,47 ,-99 ,47 ,-99 ,-99 ,-99 ,-99 ,47 ,-99 ,47 ,-99 ,47 ,-99 ,-99 ,47 ,47 ,47 ,-99 ,47 ,47 ,-99 ,-99 ,47 ,-99 }, - {-99 ,-99 ,-99 ,70 ,-99 ,-99 ,-99 ,70 ,-99 ,-99 ,-99 ,-99 ,70 ,70 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,70 ,-99 ,-99 ,70 ,-99 ,70 ,70 ,70 ,70 ,-99 ,-99 ,-99 ,70 ,-99 ,-99 ,70 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,70 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,14 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {44 ,-99 ,44 ,-99 ,-99 ,44 ,-99 ,44 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,44 ,44 ,44 ,44 ,-99 ,44 ,44 ,44 ,44 ,-99 ,44 ,-99 ,-99 ,-99 ,-99 ,44 ,-99 ,44 ,-99 ,44 ,-99 ,-99 ,44 ,44 ,44 ,-99 ,44 ,44 ,-99 ,-99 ,44 ,-99 }, - {32 ,-99 ,32 ,-99 ,-99 ,32 ,-99 ,32 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,32 ,32 ,32 ,32 ,-99 ,32 ,32 ,32 ,32 ,-99 ,32 ,-99 ,-99 ,-99 ,-99 ,32 ,-99 ,32 ,-99 ,32 ,-99 ,-99 ,32 ,32 ,32 ,-99 ,32 ,32 ,-99 ,-99 ,32 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,1 ,-99 ,1 ,-99 ,1 ,2 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,1 ,-99 ,-99 ,-99 ,1 ,-99 ,-99 ,-99 ,-99 ,1 ,-99 ,-99 ,1 ,2 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,28 ,28 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,28 ,-99 ,28 ,28 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,28 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,27 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,5 ,-99 ,5 ,-99 ,5 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,5 ,-99 ,-99 ,-99 ,5 ,-99 ,-99 ,-99 ,-99 ,3 ,-99 ,-99 ,5 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,45 ,-99 ,-99 ,-99 ,46 ,-99 ,-99 ,-99 ,-99 ,46 ,46 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,46 ,-99 ,-99 ,46 ,-99 ,46 ,46 ,46 ,46 ,-99 ,-99 ,-99 ,46 ,-99 ,-99 ,46 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,46 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,74 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,16 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {26 ,-99 ,26 ,-99 ,-99 ,26 ,-99 ,26 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,26 ,26 ,26 ,26 ,-99 ,26 ,26 ,26 ,26 ,-99 ,26 ,-99 ,-99 ,-99 ,-99 ,26 ,-99 ,26 ,-99 ,26 ,-99 ,-99 ,26 ,26 ,26 ,-99 ,26 ,26 ,-99 ,-99 ,26 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,36 ,-99 ,-99 ,-99 ,-99 ,37 ,37 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 ,-99 ,-99 ,37 ,-99 ,37 ,-99 ,37 ,37 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,43 ,-99 ,-99 ,-99 ,-99 ,43 ,43 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,43 ,-99 ,-99 ,43 ,-99 ,43 ,43 ,43 ,43 ,-99 ,-99 ,-99 ,42 ,-99 ,-99 ,43 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,43 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,21 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,22 ,-99 ,22 ,22 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,22 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,15 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,12 ,-99 ,11 ,-99 ,8 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,10 ,-99 ,-99 ,-99 ,9 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,7 ,-99 ,-99 ,-99 }, - {53 ,-99 ,60 ,-99 ,-99 ,56 ,-99 ,67 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,57 ,55 ,61 ,51 ,-99 ,49 ,68 ,59 ,65 ,-99 ,54 ,-99 ,-99 ,-99 ,-99 ,66 ,-99 ,58 ,-99 ,69 ,-99 ,-99 ,62 ,48 ,52 ,-99 ,64 ,63 ,-99 ,-99 ,50 ,-99 }, - {23 ,-99 ,23 ,-99 ,-99 ,23 ,-99 ,23 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,23 ,23 ,23 ,23 ,-99 ,23 ,23 ,23 ,23 ,-99 ,23 ,-99 ,-99 ,-99 ,-99 ,23 ,-99 ,23 ,-99 ,23 ,-99 ,-99 ,23 ,23 ,23 ,-99 ,23 ,23 ,-99 ,-99 ,23 ,-99 }, - {20 ,-99 ,20 ,-99 ,-99 ,20 ,-99 ,20 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,20 ,20 ,20 ,20 ,-99 ,20 ,20 ,20 ,20 ,-99 ,20 ,-99 ,-99 ,-99 ,-99 ,20 ,-99 ,20 ,-99 ,20 ,-99 ,-99 ,20 ,20 ,20 ,-99 ,20 ,20 ,-99 ,-99 ,20 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 ,-99 ,-99 ,-99 ,-99 ,40 ,40 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 ,-99 ,-99 ,40 ,-99 ,40 ,39 ,40 ,40 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,18 ,-99 ,19 ,19 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,19 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {35 ,-99 ,35 ,-99 ,-99 ,35 ,-99 ,35 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,35 ,35 ,35 ,35 ,-99 ,35 ,35 ,35 ,35 ,-99 ,35 ,-99 ,-99 ,-99 ,-99 ,35 ,-99 ,35 ,-99 ,35 ,-99 ,-99 ,35 ,35 ,35 ,-99 ,35 ,35 ,-99 ,-99 ,35 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,6 ,-99 ,6 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {41 ,-99 ,41 ,-99 ,-99 ,41 ,-99 ,41 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,41 ,41 ,41 ,41 ,-99 ,41 ,41 ,41 ,41 ,-99 ,41 ,-99 ,-99 ,-99 ,-99 ,41 ,-99 ,41 ,-99 ,41 ,-99 ,-99 ,41 ,41 ,41 ,-99 ,41 ,41 ,-99 ,-99 ,41 ,-99 }, - {38 ,-99 ,38 ,-99 ,-99 ,38 ,-99 ,38 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,38 ,38 ,38 ,38 ,-99 ,38 ,38 ,38 ,38 ,-99 ,38 ,-99 ,-99 ,-99 ,-99 ,38 ,-99 ,38 ,-99 ,38 ,-99 ,-99 ,38 ,38 ,38 ,-99 ,38 ,38 ,-99 ,-99 ,38 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,71 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {17 ,-99 ,17 ,-99 ,-99 ,17 ,-99 ,17 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,17 ,17 ,17 ,17 ,-99 ,17 ,17 ,17 ,17 ,-99 ,17 ,-99 ,-99 ,-99 ,-99 ,17 ,-99 ,17 ,-99 ,17 ,-99 ,-99 ,17 ,17 ,17 ,-99 ,17 ,17 ,-99 ,-99 ,17 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,25 ,24 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,25 ,-99 ,25 ,25 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,25 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,73 ,-99 ,72 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 } + {35 ,35 ,35 ,-99 ,35 ,35 ,35 ,35 ,35 ,-99 ,-99 ,35 ,-99 ,35 ,-99 ,-99 ,-99 ,35 ,35 ,-99 ,-99 ,-99 ,-99 ,-99 ,35 ,-99 ,35 ,-99 ,-99 ,35 ,-99 ,35 ,-99 ,-99 ,-99 ,-99 ,35 ,35 ,-99 ,35 ,35 ,-99 ,35 ,35 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,5 ,-99 ,4 ,-99 ,5 ,-99 ,-99 ,5 ,5 ,-99 ,3 ,-99 ,5 ,-99 ,-99 ,-99 ,-99 ,-99 ,5 ,-99 ,4 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {38 ,38 ,38 ,-99 ,38 ,38 ,38 ,38 ,38 ,-99 ,-99 ,38 ,-99 ,38 ,-99 ,-99 ,-99 ,38 ,38 ,-99 ,-99 ,-99 ,-99 ,-99 ,38 ,-99 ,38 ,-99 ,-99 ,38 ,-99 ,38 ,-99 ,-99 ,-99 ,-99 ,38 ,38 ,-99 ,38 ,38 ,-99 ,38 ,38 ,-99 ,-99 }, + {29 ,29 ,29 ,-99 ,29 ,29 ,29 ,29 ,29 ,-99 ,-99 ,29 ,-99 ,29 ,-99 ,-99 ,-99 ,29 ,29 ,-99 ,-99 ,-99 ,-99 ,-99 ,29 ,-99 ,29 ,-99 ,-99 ,29 ,-99 ,29 ,-99 ,-99 ,-99 ,-99 ,29 ,29 ,-99 ,29 ,29 ,-99 ,29 ,29 ,-99 ,-99 }, + {17 ,17 ,17 ,-99 ,17 ,17 ,17 ,17 ,17 ,-99 ,-99 ,17 ,-99 ,17 ,-99 ,-99 ,-99 ,17 ,17 ,-99 ,-99 ,-99 ,-99 ,-99 ,17 ,-99 ,17 ,-99 ,-99 ,17 ,-99 ,17 ,-99 ,-99 ,-99 ,-99 ,17 ,17 ,-99 ,17 ,17 ,-99 ,17 ,17 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,6 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,6 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 ,-99 ,-99 ,-99 ,-99 ,37 ,-99 ,37 ,-99 ,-99 ,-99 ,37 ,37 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,36 ,37 ,-99 ,37 ,-99 ,-99 ,-99 ,37 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 ,-99 }, + {20 ,20 ,20 ,-99 ,20 ,20 ,20 ,20 ,20 ,-99 ,-99 ,20 ,-99 ,20 ,-99 ,-99 ,-99 ,20 ,20 ,-99 ,-99 ,-99 ,-99 ,-99 ,20 ,-99 ,20 ,-99 ,-99 ,20 ,-99 ,20 ,-99 ,-99 ,-99 ,-99 ,20 ,20 ,-99 ,20 ,20 ,-99 ,20 ,20 ,-99 ,-99 }, + {23 ,23 ,23 ,-99 ,23 ,23 ,23 ,23 ,23 ,-99 ,-99 ,23 ,-99 ,23 ,-99 ,-99 ,-99 ,23 ,23 ,-99 ,-99 ,-99 ,-99 ,-99 ,23 ,-99 ,23 ,-99 ,-99 ,23 ,-99 ,23 ,-99 ,-99 ,-99 ,-99 ,23 ,23 ,-99 ,23 ,23 ,-99 ,23 ,23 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 ,-99 ,-99 ,-99 ,-99 ,34 ,-99 ,34 ,-99 ,-99 ,-99 ,34 ,34 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 ,-99 ,34 ,-99 ,-99 ,-99 ,33 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 ,-99 }, + {41 ,41 ,41 ,-99 ,41 ,41 ,41 ,41 ,41 ,-99 ,-99 ,41 ,-99 ,41 ,-99 ,-99 ,-99 ,41 ,41 ,-99 ,-99 ,-99 ,-99 ,-99 ,41 ,-99 ,41 ,-99 ,-99 ,41 ,-99 ,41 ,-99 ,-99 ,-99 ,-99 ,41 ,41 ,-99 ,41 ,41 ,-99 ,41 ,41 ,-99 ,-99 }, + {44 ,44 ,44 ,-99 ,44 ,44 ,44 ,44 ,44 ,-99 ,-99 ,44 ,-99 ,44 ,-99 ,-99 ,-99 ,44 ,44 ,-99 ,-99 ,-99 ,-99 ,-99 ,44 ,-99 ,44 ,-99 ,-99 ,44 ,-99 ,44 ,-99 ,-99 ,-99 ,-99 ,44 ,44 ,-99 ,44 ,44 ,-99 ,44 ,44 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,70 ,-99 ,-99 ,-99 ,-99 ,70 ,-99 ,70 ,-99 ,-99 ,-99 ,70 ,70 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,70 ,70 ,-99 ,70 ,-99 ,70 ,-99 ,70 ,-99 ,-99 ,-99 ,-99 ,70 ,-99 ,-99 ,70 ,70 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,25 ,-99 ,-99 ,-99 ,-99 ,25 ,-99 ,-99 ,-99 ,-99 ,-99 ,25 ,25 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,24 ,-99 ,25 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,31 ,-99 ,-99 ,-99 ,-99 ,31 ,-99 ,30 ,-99 ,-99 ,-99 ,31 ,31 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,31 ,-99 ,31 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,31 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,16 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {47 ,47 ,47 ,-99 ,47 ,47 ,47 ,47 ,47 ,-99 ,-99 ,47 ,-99 ,47 ,-99 ,-99 ,-99 ,47 ,47 ,-99 ,-99 ,-99 ,-99 ,-99 ,47 ,-99 ,47 ,-99 ,-99 ,47 ,-99 ,47 ,-99 ,-99 ,-99 ,-99 ,47 ,47 ,-99 ,47 ,47 ,-99 ,47 ,47 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,46 ,-99 ,-99 ,-99 ,-99 ,46 ,-99 ,46 ,-99 ,-99 ,-99 ,46 ,46 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,46 ,46 ,-99 ,46 ,-99 ,45 ,-99 ,46 ,-99 ,-99 ,-99 ,-99 ,46 ,-99 ,-99 ,46 ,46 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 ,-99 ,-99 ,-99 ,-99 ,40 ,-99 ,40 ,-99 ,-99 ,-99 ,40 ,40 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 ,40 ,-99 ,40 ,-99 ,-99 ,-99 ,40 ,-99 ,-99 ,-99 ,-99 ,39 ,-99 ,-99 ,40 ,-99 }, + {32 ,32 ,32 ,-99 ,32 ,32 ,32 ,32 ,32 ,-99 ,-99 ,32 ,-99 ,32 ,-99 ,-99 ,-99 ,32 ,32 ,-99 ,-99 ,-99 ,-99 ,-99 ,32 ,-99 ,32 ,-99 ,-99 ,32 ,-99 ,32 ,-99 ,-99 ,-99 ,-99 ,32 ,32 ,-99 ,32 ,32 ,-99 ,32 ,32 ,-99 ,-99 }, + {64 ,58 ,66 ,-99 ,65 ,51 ,54 ,56 ,50 ,-99 ,-99 ,57 ,-99 ,52 ,-99 ,-99 ,-99 ,61 ,62 ,-99 ,-99 ,-99 ,-99 ,-99 ,49 ,-99 ,63 ,-99 ,-99 ,67 ,-99 ,60 ,-99 ,-99 ,-99 ,-99 ,68 ,59 ,-99 ,48 ,55 ,-99 ,53 ,69 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,28 ,-99 ,-99 ,-99 ,-99 ,28 ,-99 ,-99 ,-99 ,-99 ,-99 ,28 ,28 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,28 ,-99 ,28 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,27 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,73 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,72 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,19 ,-99 ,-99 ,-99 ,-99 ,19 ,-99 ,-99 ,-99 ,-99 ,-99 ,18 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,19 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {26 ,26 ,26 ,-99 ,26 ,26 ,26 ,26 ,26 ,-99 ,-99 ,26 ,-99 ,26 ,-99 ,-99 ,-99 ,26 ,26 ,-99 ,-99 ,-99 ,-99 ,-99 ,26 ,-99 ,26 ,-99 ,-99 ,26 ,-99 ,26 ,-99 ,-99 ,-99 ,-99 ,26 ,26 ,-99 ,26 ,26 ,-99 ,26 ,26 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,0 ,-99 ,0 ,-99 ,0 ,-99 ,-99 ,0 ,0 ,-99 ,0 ,-99 ,0 ,-99 ,-99 ,-99 ,-99 ,-99 ,0 ,-99 ,0 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,43 ,-99 ,-99 ,-99 ,-99 ,43 ,-99 ,43 ,-99 ,-99 ,-99 ,43 ,43 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,43 ,43 ,-99 ,43 ,-99 ,-99 ,-99 ,43 ,-99 ,-99 ,-99 ,-99 ,43 ,-99 ,-99 ,43 ,42 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,15 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,22 ,-99 ,-99 ,-99 ,-99 ,22 ,-99 ,-99 ,-99 ,-99 ,-99 ,22 ,21 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,22 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,74 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,2 ,-99 ,-99 ,-99 ,-99 ,1 ,-99 ,1 ,-99 ,1 ,-99 ,-99 ,1 ,1 ,-99 ,1 ,-99 ,1 ,2 ,-99 ,-99 ,-99 ,-99 ,1 ,-99 ,1 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,71 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,12 ,-99 ,-99 ,-99 ,10 ,-99 ,-99 ,7 ,11 ,-99 ,-99 ,-99 ,9 ,-99 ,-99 ,-99 ,-99 ,-99 ,8 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,14 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 } }; const char* KeywordList[]= { "print", @@ -553,70 +553,70 @@ const unsigned int LalrRhsSize[RULES_COUNT]= }; const char* LalrNoneTerminalMap[NONETERMINAL_COUNT]= { -"S", -"CMP", "B2", -"E2", "B1'", -"BE", +"E2'", "EXP", "B3", +"BE", +"CMP", "E1", -"E3", -"E2'", -"B2'", +"E2", +"E1'", "B1", -"E1'" +"E3", +"S", +"B2'" }; const char* LalrTerminalMap[TERMINAL_COUNT]= { -"+", -"(", -"&&", -"|", -"<", -"*", ">", -")", +"<", +"&&", +"+", +"*", "$", -"_id" +"(", +"|", +"_id", +")" }; const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= { - {1 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,1 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,7 ,5 ,10 ,-99 ,3 ,8 ,6 ,9 ,11 ,-99 ,-99 ,4 ,-99 }, + {5 ,-99 ,-99 ,8 ,6 ,3 ,7 ,9 ,10 ,-99 ,4 ,11 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,15 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,17 ,-99 ,-99 }, + {-99 ,15 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,17 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,21 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,23 ,-99 ,-99 ,-99 }, - {-99 ,25 ,-99 ,10 ,-99 ,-99 ,26 ,-99 ,9 ,11 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,21 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,23 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,26 ,-99 ,-99 ,25 ,9 ,10 ,-99 ,-99 ,11 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {27 ,-99 ,-99 ,8 ,6 ,-99 ,7 ,9 ,10 ,-99 ,-99 ,11 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,7 ,27 ,10 ,-99 ,-99 ,8 ,6 ,9 ,11 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,8 ,28 ,-99 ,7 ,9 ,10 ,-99 ,-99 ,11 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,29 ,-99 ,-99 ,-99 ,9 ,10 ,-99 ,-99 ,11 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,31 ,-99 ,-99 ,-99 ,9 ,10 ,-99 ,-99 ,11 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,7 ,-99 ,10 ,-99 ,-99 ,8 ,28 ,9 ,11 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,10 ,-99 ,-99 ,29 ,-99 ,9 ,11 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,10 ,-99 ,-99 ,31 ,-99 ,9 ,11 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,32 ,-99 ,-99 ,11 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,32 ,-99 ,-99 ,-99 ,-99 ,-99 ,11 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,33 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,33 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,36 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 ,-99 ,-99 }, + {-99 ,36 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,37 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,10 ,-99 ,-99 ,38 ,-99 ,9 ,11 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,38 ,-99 ,-99 ,-99 ,9 ,10 ,-99 ,-99 ,11 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,39 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,40 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,39 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,40 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, @@ -627,45 +627,45 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= }; const int LalrActionTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= { - {-99 ,2 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,99 ,-99 }, - {-99 ,12 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,14 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-2 ,-99 ,-99 }, - {-99 ,-99 ,16 ,-99 ,-99 ,-99 ,-99 ,-5 ,-99 ,-99 }, - {-99 ,-99 ,-8 ,18 ,-99 ,-99 ,-99 ,-8 ,-99 ,-99 }, - {-99 ,-99 ,-9 ,-9 ,-99 ,-99 ,-99 ,-9 ,-99 ,-99 }, - {-99 ,-99 ,-10 ,-10 ,19 ,-99 ,20 ,-10 ,-99 ,-99 }, - {-99 ,-99 ,-14 ,-14 ,-14 ,-99 ,-14 ,-14 ,-99 ,-99 }, - {22 ,-99 ,-17 ,-17 ,-17 ,-99 ,-17 ,-17 ,-99 ,-99 }, - {-20 ,-99 ,-20 ,-20 ,-20 ,24 ,-20 ,-20 ,-99 ,-99 }, - {-99 ,12 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-21 ,-99 ,-21 ,-21 ,-21 ,-21 ,-21 ,-21 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-1 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-3 ,-99 ,-99 }, - {-99 ,12 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,-99 ,-6 ,-99 ,-99 ,-99 ,-99 ,-6 ,-99 ,-99 }, - {-99 ,12 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,30 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,30 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,-99 ,-15 ,-15 ,-15 ,-99 ,-15 ,-15 ,-99 ,-99 }, - {-99 ,30 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-18 ,-99 ,-18 ,-18 ,-18 ,-99 ,-18 ,-18 ,-99 ,-99 }, - {-99 ,30 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,19 ,-99 ,20 ,35 ,-99 ,-99 }, - {-99 ,-99 ,16 ,-99 ,-99 ,-99 ,-99 ,-5 ,-99 ,-99 }, - {-99 ,-99 ,-8 ,18 ,-99 ,-99 ,-99 ,-8 ,-99 ,-99 }, - {-99 ,-99 ,-12 ,-12 ,-99 ,-99 ,-99 ,-12 ,-99 ,-99 }, - {-99 ,30 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 }, - {-99 ,-99 ,-11 ,-11 ,-99 ,-99 ,-99 ,-11 ,-99 ,-99 }, - {22 ,-99 ,-17 ,-17 ,-17 ,-99 ,-17 ,-17 ,-99 ,-99 }, - {-20 ,-99 ,-20 ,-20 ,-20 ,24 ,-20 ,-20 ,-99 ,-99 }, - {-99 ,-99 ,-13 ,-13 ,-99 ,-99 ,-99 ,-13 ,-99 ,-99 }, - {-22 ,-99 ,-22 ,-22 ,-22 ,-22 ,-22 ,-22 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-4 ,-99 ,-99 }, - {-99 ,-99 ,-7 ,-99 ,-99 ,-99 ,-99 ,-7 ,-99 ,-99 }, - {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,35 ,-99 ,-99 }, - {-99 ,-99 ,-16 ,-16 ,-16 ,-99 ,-16 ,-16 ,-99 ,-99 }, - {-19 ,-99 ,-19 ,-19 ,-19 ,-99 ,-19 ,-19 ,-99 ,-99 } + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,2 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,99 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,14 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-2 }, + {-99 ,-99 ,16 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-5 }, + {-99 ,-99 ,-8 ,-99 ,-99 ,-99 ,-99 ,18 ,-99 ,-8 }, + {-99 ,-99 ,-9 ,-99 ,-99 ,-99 ,-99 ,-9 ,-99 ,-9 }, + {20 ,19 ,-10 ,-99 ,-99 ,-99 ,-99 ,-10 ,-99 ,-10 }, + {-14 ,-14 ,-14 ,-99 ,-99 ,-99 ,-99 ,-14 ,-99 ,-14 }, + {-17 ,-17 ,-17 ,22 ,-99 ,-99 ,-99 ,-17 ,-99 ,-17 }, + {-20 ,-20 ,-20 ,-20 ,24 ,-99 ,-99 ,-20 ,-99 ,-20 }, + {-21 ,-21 ,-21 ,-21 ,-21 ,-99 ,-99 ,-21 ,-99 ,-21 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-1 ,-99 ,-99 ,-99 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-3 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-6 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-6 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,13 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,30 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,30 ,-99 ,12 ,-99 }, + {-15 ,-15 ,-15 ,-99 ,-99 ,-99 ,-99 ,-15 ,-99 ,-15 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,30 ,-99 ,12 ,-99 }, + {-18 ,-18 ,-18 ,-18 ,-99 ,-99 ,-99 ,-18 ,-99 ,-18 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,30 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,34 }, + {20 ,19 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,35 }, + {-99 ,-99 ,16 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-5 }, + {-99 ,-99 ,-8 ,-99 ,-99 ,-99 ,-99 ,18 ,-99 ,-8 }, + {-99 ,-99 ,-12 ,-99 ,-99 ,-99 ,-99 ,-12 ,-99 ,-12 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,30 ,-99 ,12 ,-99 }, + {-99 ,-99 ,-11 ,-99 ,-99 ,-99 ,-99 ,-11 ,-99 ,-11 }, + {-17 ,-17 ,-17 ,22 ,-99 ,-99 ,-99 ,-17 ,-99 ,-17 }, + {-20 ,-20 ,-20 ,-20 ,24 ,-99 ,-99 ,-20 ,-99 ,-20 }, + {-99 ,-99 ,-13 ,-99 ,-99 ,-99 ,-99 ,-13 ,-99 ,-13 }, + {-22 ,-22 ,-22 ,-22 ,-22 ,-99 ,-99 ,-22 ,-99 ,-22 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-4 }, + {-99 ,-99 ,-7 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-7 }, + {-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,-99 ,35 }, + {-16 ,-16 ,-16 ,-99 ,-99 ,-99 ,-99 ,-16 ,-99 ,-16 }, + {-19 ,-19 ,-19 ,-19 ,-99 ,-99 ,-99 ,-19 ,-99 ,-19 } }; diff --git a/hyperdbg/script-engine/python/Grammar.txt b/hyperdbg/script-engine/python/Grammar.txt index f8e20f10..41bebab2 100644 --- a/hyperdbg/script-engine/python/Grammar.txt +++ b/hyperdbg/script-engine/python/Grammar.txt @@ -22,7 +22,7 @@ STATEMENT->ASSIGN_STATEMENT ; STATEMENT->CALL_FUNC_STATEMENT ; -ASSIGN_STATEMENT->@PUSH L_VALUE = EXPRESSION @MOV NULL +ASSIGN_STATEMENT->L_VALUE = EXPRESSION @MOV NULL CALL_FUNC_STATEMENT->.OneOpFunc2 ( EXPRESSION @.OneOpFunc2 ) CALL_FUNC_STATEMENT->.VarArgFunc1 ( STRING @VARGSTART VA @.VarArgFunc1 ) CALL_FUNC_STATEMENT->.ZeroOpFunc1 ( @.ZeroOpFunc1 ) @@ -106,9 +106,9 @@ E12->~ E12 @NOT E13 E13->eps -STRING->_string -L_VALUE->_id -L_VALUE->_register +STRING->@PUSH _string +L_VALUE->@PUSH _id +L_VALUE->@PUSH _register NULL->eps diff --git a/hyperdbg/script-engine/python/ll1_parser.py b/hyperdbg/script-engine/python/ll1_parser.py index a1a7bb8f..229ee076 100644 --- a/hyperdbg/script-engine/python/ll1_parser.py +++ b/hyperdbg/script-engine/python/ll1_parser.py @@ -382,7 +382,9 @@ class LL1Parser: for X in self.keywordList: self.CommonHeaderFile.write("#define " + "FUNC_" + X.upper() + " " + str(Counter) + "\n") Counter += 1 - self.CommonHeaderFile.write("#define "+ "FUNC_MOV " + str(Counter) + "\n\n") + self.CommonHeaderFile.write("#define "+ "FUNC_MOV " + str(Counter) + "\n") + self.CommonHeaderFile.write("#define "+ "FUNC_VARGSTART " + str(Counter+1) + "\n\n") + self.SourceFile.write("const SYMBOL_MAP SemanticRulesMapList[]= {\n")