diff --git a/hyperdbg/include/ScriptEngineCommon.h b/hyperdbg/include/ScriptEngineCommon.h index 8d707138..8e9c8298 100644 --- a/hyperdbg/include/ScriptEngineCommon.h +++ b/hyperdbg/include/ScriptEngineCommon.h @@ -89,6 +89,7 @@ typedef struct _GUEST_REGS_USER_MODE_USER_MODE { #define FUNC_HI 20 #define FUNC_LOW 21 #define FUNC_MOV 22 +#define FUNC_PRINT 23 #define SYMBOL_ID_TYPE 0 #define SYMBOL_NUM_TYPE 1 @@ -687,5 +688,28 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, printf("DesVal = %d\n", DesVal); #endif // SCRIPT_ENGINE_USER_MODE return; + + case FUNC_PRINT: + Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + + (unsigned long long)(*Indx * sizeof(SYMBOL))); + *Indx = *Indx + 1; + + DesVal = SrcVal0; + SetValue(GuestRegs, Des, DesVal); + if (Des->Type == SYMBOL_ID_TYPE) { +#ifdef SCRIPT_ENGINE_USER_MODE + printf("Result is %llx\n", DesVal); +#endif // SCRIPT_ENGINE_USER_MODE + +#ifdef SCRIPT_ENGINE_KERNEL_MODE + DbgBreakPoint(); + LogInfo("Result is %llx\n", DesVal); +#endif // SCRIPT_ENGINE_KERNEL_MODE + } + +#ifdef SCRIPT_ENGINE_USER_MODE + printf("DesVal = %d\n", DesVal); +#endif // SCRIPT_ENGINE_USER_MODE + return; } } diff --git a/hyperdbg/script-engine/python/Grammer.txt b/hyperdbg/script-engine/python/Grammer.txt index 2a124003..55067c7b 100644 --- a/hyperdbg/script-engine/python/Grammer.txt +++ b/hyperdbg/script-engine/python/Grammer.txt @@ -2,6 +2,7 @@ S->C ; S' S'->C ; S' S'->eps C->@PUSH _id = E0 @MOV C' +C->print ( E0 @PRINT ) C'->eps # E0->E1 E0' diff --git a/hyperdbg/script-engine/python/parse_table_generator.py b/hyperdbg/script-engine/python/parse_table_generator.py index c52c6f07..6944c32e 100644 --- a/hyperdbg/script-engine/python/parse_table_generator.py +++ b/hyperdbg/script-engine/python/parse_table_generator.py @@ -30,7 +30,7 @@ class Parser: self.GrammerFile = open("Grammer.txt", "r") # The file which is used by parser for parsing the input - self.OutputFile = open("..\src\ParseTable.h", "w") + self.OutputFile = open("..\src\parse_table.h", "w") # Lists which used for storing the rules: # Right Hand Side(Rhs) @@ -183,13 +183,14 @@ class Parser: print("2)Error in input!") exit() else: - Op0 = MatchedStack.pop() - Op1 = MatchedStack.pop() - - if Top == "@MOV": + if Top == "@PRINT": + print(Top,"\t", Op0 ) + elif Top == "@MOV": + Op1 = MatchedStack.pop() print(Top,"\t", Op1, ", ", Op0 ) else: + Op1 = MatchedStack.pop() MatchedStack.append("t" + str(TempCounter)) print(Top, "\t", "t"+ str(TempCounter), ", ", Op1, ",", Op0 ) TempCounter += 1 @@ -600,6 +601,6 @@ class Parser: parser = Parser() parser.Run() -Tokens = ['_id', '=', '(', '_hex', '*', '_hex', ')', '*', '_hex', '*', '_decimal', '*', '_octal', ';', '$'] +Tokens = ['print', '(', '_hex', ')', ';', '$'] Stack = parser.Parse(Tokens) print(Stack) diff --git a/hyperdbg/script-engine/src/ParseTable.h b/hyperdbg/script-engine/src/ParseTable.h deleted file mode 100644 index acb82d70..00000000 --- a/hyperdbg/script-engine/src/ParseTable.h +++ /dev/null @@ -1,277 +0,0 @@ -#ifndef PARSE_TABLE_H -#define PARSE_TABLE_H -#include "scanner.h" -#define RULES_COUNT 55 -#define TERMINAL_COUNT 35 -#define NONETERMINAL_COUNT 25 -#define START_VARIABLE "S" -#define MAX_RHS_LEN 6 -const struct _TOKEN Lhs[RULES_COUNT]= -{ - {NON_TERMINAL, "S"}, - {NON_TERMINAL, "S'"}, - {NON_TERMINAL, "S'"}, - {NON_TERMINAL, "C"}, - {NON_TERMINAL, "C'"}, - {NON_TERMINAL, "E0"}, - {NON_TERMINAL, "E0'"}, - {NON_TERMINAL, "E0'"}, - {NON_TERMINAL, "E1"}, - {NON_TERMINAL, "E1'"}, - {NON_TERMINAL, "E1'"}, - {NON_TERMINAL, "E2"}, - {NON_TERMINAL, "E2'"}, - {NON_TERMINAL, "E2'"}, - {NON_TERMINAL, "E3"}, - {NON_TERMINAL, "E3'"}, - {NON_TERMINAL, "E3'"}, - {NON_TERMINAL, "E4"}, - {NON_TERMINAL, "E4'"}, - {NON_TERMINAL, "E4'"}, - {NON_TERMINAL, "E5"}, - {NON_TERMINAL, "E5'"}, - {NON_TERMINAL, "E5'"}, - {NON_TERMINAL, "E6"}, - {NON_TERMINAL, "E6'"}, - {NON_TERMINAL, "E6'"}, - {NON_TERMINAL, "E7"}, - {NON_TERMINAL, "E7'"}, - {NON_TERMINAL, "E7'"}, - {NON_TERMINAL, "E8"}, - {NON_TERMINAL, "E8'"}, - {NON_TERMINAL, "E8'"}, - {NON_TERMINAL, "E9"}, - {NON_TERMINAL, "E9'"}, - {NON_TERMINAL, "E9'"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"}, - {NON_TERMINAL, "E10"} -}; -const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]= -{ - {{NON_TERMINAL, "C"},{SPECIAL_TOKEN, ";"},{NON_TERMINAL, "S'"}}, - {{NON_TERMINAL, "C"},{SPECIAL_TOKEN, ";"},{NON_TERMINAL, "S'"}}, - {{EPSILON, "eps"}}, - {{SEMANTIC_RULE, "@PUSH"},{ID, "_id"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@MOV"},{NON_TERMINAL, "C'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E1"},{NON_TERMINAL, "E0'"}}, - {{SPECIAL_TOKEN, "|"},{NON_TERMINAL, "E1"},{SEMANTIC_RULE, "@OR"},{NON_TERMINAL, "E0'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E2"},{NON_TERMINAL, "E1'"}}, - {{SPECIAL_TOKEN, "^"},{NON_TERMINAL, "E2"},{SEMANTIC_RULE, "@XOR"},{NON_TERMINAL, "E1'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E3"},{NON_TERMINAL, "E2'"}}, - {{SPECIAL_TOKEN, "&"},{NON_TERMINAL, "E3"},{SEMANTIC_RULE, "@AND"},{NON_TERMINAL, "E2'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E4"},{NON_TERMINAL, "E3'"}}, - {{SPECIAL_TOKEN, ">>"},{NON_TERMINAL, "E4"},{SEMANTIC_RULE, "@ASR"},{NON_TERMINAL, "E3'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E5"},{NON_TERMINAL, "E4'"}}, - {{SPECIAL_TOKEN, "<<"},{NON_TERMINAL, "E5"},{SEMANTIC_RULE, "@ASL"},{NON_TERMINAL, "E4'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E6"},{NON_TERMINAL, "E5'"}}, - {{SPECIAL_TOKEN, "+"},{NON_TERMINAL, "E6"},{SEMANTIC_RULE, "@ADD"},{NON_TERMINAL, "E5'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E7"},{NON_TERMINAL, "E6'"}}, - {{SPECIAL_TOKEN, "-"},{NON_TERMINAL, "E7"},{SEMANTIC_RULE, "@SUB"},{NON_TERMINAL, "E6'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E8"},{NON_TERMINAL, "E7'"}}, - {{SPECIAL_TOKEN, "*"},{NON_TERMINAL, "E8"},{SEMANTIC_RULE, "@MUL"},{NON_TERMINAL, "E7'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E9"},{NON_TERMINAL, "E8'"}}, - {{SPECIAL_TOKEN, "/"},{NON_TERMINAL, "E9"},{SEMANTIC_RULE, "@DIV"},{NON_TERMINAL, "E8'"}}, - {{EPSILON, "eps"}}, - {{NON_TERMINAL, "E10"},{NON_TERMINAL, "E9'"}}, - {{SPECIAL_TOKEN, "%"},{NON_TERMINAL, "E10"},{SEMANTIC_RULE, "@MOD"},{NON_TERMINAL, "E9'"}}, - {{EPSILON, "eps"}}, - {{KEYWORD, "poi"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@POI"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "db"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@DB"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "dd"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@DD"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "dw"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@DW"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "dq"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@DQ"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "str"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@STR"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "wstr"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@WSTR"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "sizeof"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@SIZEOF"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "not"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@NOT"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "neg"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@NEG"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "hi"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@HI"},{SPECIAL_TOKEN, ")"}}, - {{KEYWORD, "low"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@LOW"},{SPECIAL_TOKEN, ")"}}, - {{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SPECIAL_TOKEN, ")"}}, - {{SEMANTIC_RULE, "@PUSH"},{REGISTER, "_register"}}, - {{SEMANTIC_RULE, "@PUSH"},{HEX, "_hex"}}, - {{SEMANTIC_RULE, "@PUSH"},{DECIMAL, "_decimal"}}, - {{SEMANTIC_RULE, "@PUSH"},{OCTAL, "_octal"}}, - {{SEMANTIC_RULE, "@PUSH"},{BINARY, "_binary"}}, - {{SEMANTIC_RULE, "@PUSH"},{KEYWORD, "func"}}, - {{SEMANTIC_RULE, "@PUSH"},{PSEUDO_REGISTER, "_pseudo_register"}} -}; -const unsigned int RhsSize[RULES_COUNT]= -{ -3, -3, -1, -6, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -1, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -3, -2, -2, -2, -2, -2, -2, -2 -}; -const char* NoneTerminalMap[NONETERMINAL_COUNT]= -{ -"E7'", -"E8", -"E4'", -"E6'", -"E0", -"C'", -"E6", -"E0'", -"C", -"S'", -"E2", -"E3'", -"E1'", -"E1", -"E5", -"E7", -"E4", -"E9", -"E10", -"E8'", -"E2'", -"E5'", -"E3", -"E9'", -"S" -}; -const char* TerminalMap[TERMINAL_COUNT]= -{ -"_hex", -"_decimal", -")", -"*", -"_id", -"db", -"|", -"/", -"(", -"wstr", -"$", -"&", -"_register", -"<<", -"low", -"str", -"sizeof", -"=", -"dw", -"func", -"+", -"dq", -";", -"_binary", -"^", -"-", -"hi", -"poi", -"_pseudo_register", -"_octal", -">>", -"dd", -"%", -"neg", -"not" -}; -const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]= -{ - {-1 ,-1 ,28 ,27 ,-1 ,-1 ,28 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,28 ,28 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,-1 ,-1 ,-1 }, - {29 ,29 ,-1 ,-1 ,-1 ,29 ,-1 ,-1 ,29 ,29 ,-1 ,-1 ,29 ,-1 ,29 ,29 ,29 ,-1 ,29 ,29 ,-1 ,29 ,-1 ,29 ,-1 ,-1 ,29 ,29 ,29 ,29 ,-1 ,29 ,-1 ,29 ,29 }, - {-1 ,-1 ,19 ,-1 ,-1 ,-1 ,19 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,18 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,19 ,-1 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,25 ,-1 ,-1 ,-1 ,25 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,25 ,24 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,-1 ,-1 ,-1 }, - {5 ,5 ,-1 ,-1 ,-1 ,5 ,-1 ,-1 ,5 ,5 ,-1 ,-1 ,5 ,-1 ,5 ,5 ,5 ,-1 ,5 ,5 ,-1 ,5 ,-1 ,5 ,-1 ,-1 ,5 ,5 ,5 ,5 ,-1 ,5 ,-1 ,5 ,5 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,4 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {23 ,23 ,-1 ,-1 ,-1 ,23 ,-1 ,-1 ,23 ,23 ,-1 ,-1 ,23 ,-1 ,23 ,23 ,23 ,-1 ,23 ,23 ,-1 ,23 ,-1 ,23 ,-1 ,-1 ,23 ,23 ,23 ,23 ,-1 ,23 ,-1 ,23 ,23 }, - {-1 ,-1 ,7 ,-1 ,-1 ,-1 ,6 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,7 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,3 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,1 ,-1 ,-1 ,-1 ,-1 ,-1 ,2 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {11 ,11 ,-1 ,-1 ,-1 ,11 ,-1 ,-1 ,11 ,11 ,-1 ,-1 ,11 ,-1 ,11 ,11 ,11 ,-1 ,11 ,11 ,-1 ,11 ,-1 ,11 ,-1 ,-1 ,11 ,11 ,11 ,11 ,-1 ,11 ,-1 ,11 ,11 }, - {-1 ,-1 ,16 ,-1 ,-1 ,-1 ,16 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,16 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,10 ,-1 ,-1 ,-1 ,10 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,10 ,-1 ,9 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {8 ,8 ,-1 ,-1 ,-1 ,8 ,-1 ,-1 ,8 ,8 ,-1 ,-1 ,8 ,-1 ,8 ,8 ,8 ,-1 ,8 ,8 ,-1 ,8 ,-1 ,8 ,-1 ,-1 ,8 ,8 ,8 ,8 ,-1 ,8 ,-1 ,8 ,8 }, - {20 ,20 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,20 ,20 ,-1 ,-1 ,20 ,-1 ,20 ,20 ,20 ,-1 ,20 ,20 ,-1 ,20 ,-1 ,20 ,-1 ,-1 ,20 ,20 ,20 ,20 ,-1 ,20 ,-1 ,20 ,20 }, - {26 ,26 ,-1 ,-1 ,-1 ,26 ,-1 ,-1 ,26 ,26 ,-1 ,-1 ,26 ,-1 ,26 ,26 ,26 ,-1 ,26 ,26 ,-1 ,26 ,-1 ,26 ,-1 ,-1 ,26 ,26 ,26 ,26 ,-1 ,26 ,-1 ,26 ,26 }, - {17 ,17 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,17 ,17 ,-1 ,-1 ,17 ,-1 ,17 ,17 ,17 ,-1 ,17 ,17 ,-1 ,17 ,-1 ,17 ,-1 ,-1 ,17 ,17 ,17 ,17 ,-1 ,17 ,-1 ,17 ,17 }, - {32 ,32 ,-1 ,-1 ,-1 ,32 ,-1 ,-1 ,32 ,32 ,-1 ,-1 ,32 ,-1 ,32 ,32 ,32 ,-1 ,32 ,32 ,-1 ,32 ,-1 ,32 ,-1 ,-1 ,32 ,32 ,32 ,32 ,-1 ,32 ,-1 ,32 ,32 }, - {49 ,50 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,47 ,41 ,-1 ,-1 ,48 ,-1 ,46 ,40 ,42 ,-1 ,38 ,53 ,-1 ,39 ,-1 ,52 ,-1 ,-1 ,45 ,35 ,54 ,51 ,-1 ,37 ,-1 ,44 ,43 }, - {-1 ,-1 ,31 ,31 ,-1 ,-1 ,31 ,30 ,-1 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,31 ,-1 ,-1 ,-1 ,-1 ,31 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,13 ,-1 ,-1 ,-1 ,13 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,13 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,22 ,-1 ,-1 ,-1 ,22 ,-1 ,-1 ,-1 ,-1 ,22 ,-1 ,22 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,-1 ,22 ,-1 ,22 ,-1 ,-1 ,-1 ,-1 ,-1 ,22 ,-1 ,-1 ,-1 ,-1 }, - {14 ,14 ,-1 ,-1 ,-1 ,14 ,-1 ,-1 ,14 ,14 ,-1 ,-1 ,14 ,-1 ,14 ,14 ,14 ,-1 ,14 ,14 ,-1 ,14 ,-1 ,14 ,-1 ,-1 ,14 ,14 ,14 ,14 ,-1 ,14 ,-1 ,14 ,14 }, - {-1 ,-1 ,34 ,34 ,-1 ,-1 ,34 ,34 ,-1 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,34 ,-1 ,-1 ,-1 ,-1 ,34 ,-1 ,33 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 } -}; -#endif diff --git a/hyperdbg/script-engine/src/ScriptEngine.c b/hyperdbg/script-engine/src/ScriptEngine.c index aebc11ad..ee09cd79 100644 --- a/hyperdbg/script-engine/src/ScriptEngine.c +++ b/hyperdbg/script-engine/src/ScriptEngine.c @@ -60,7 +60,7 @@ PSYMBOL_BUFFER ScriptEngineParse(char *str) Push(Stack, StartToken); InputIdx = 0; - WaitForID = 1; + WaitForID = 0; c = sgetc(str); @@ -796,6 +796,10 @@ unsigned long long int SemanticRuleToInt(char *str) { return (unsigned long long int)FUNC_MOV; } + else if (!strcmp(str, "@PRINT")) + { + return (unsigned long long int)FUNC_PRINT; + } return -1; } diff --git a/hyperdbg/script-engine/src/ScriptEngine.h b/hyperdbg/script-engine/src/ScriptEngine.h index bb4d473a..02814c8d 100644 --- a/hyperdbg/script-engine/src/ScriptEngine.h +++ b/hyperdbg/script-engine/src/ScriptEngine.h @@ -39,7 +39,8 @@ const char* OneOperandSemanticRules[] = "@NOT", "@NEG", "@HI", - "@LOW" + "@LOW", + "@PRINT" }; char TempMap[MAX_TEMP_COUNT] = { 0 }; diff --git a/hyperdbg/script-engine/src/parse_table.h b/hyperdbg/script-engine/src/parse_table.h index 23014272..e388c8ad 100644 --- a/hyperdbg/script-engine/src/parse_table.h +++ b/hyperdbg/script-engine/src/parse_table.h @@ -1,8 +1,8 @@ #ifndef PARSE_TABLE_H #define PARSE_TABLE_H #include "scanner.h" -#define RULES_COUNT 55 -#define TERMINAL_COUNT 35 +#define RULES_COUNT 56 +#define TERMINAL_COUNT 36 #define NONETERMINAL_COUNT 25 #define START_VARIABLE "S" #define MAX_RHS_LEN 6 @@ -12,6 +12,7 @@ const struct _TOKEN Lhs[RULES_COUNT]= {NON_TERMINAL, "S'"}, {NON_TERMINAL, "S'"}, {NON_TERMINAL, "C"}, + {NON_TERMINAL, "C"}, {NON_TERMINAL, "C'"}, {NON_TERMINAL, "E0"}, {NON_TERMINAL, "E0'"}, @@ -70,6 +71,7 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]= {{NON_TERMINAL, "C"},{SPECIAL_TOKEN, ";"},{NON_TERMINAL, "S'"}}, {{EPSILON, "eps"}}, {{SEMANTIC_RULE, "@PUSH"},{ID, "_id"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@MOV"},{NON_TERMINAL, "C'"}}, + {{KEYWORD, "print"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@PRINT"},{SPECIAL_TOKEN, ")"}}, {{EPSILON, "eps"}}, {{NON_TERMINAL, "E1"},{NON_TERMINAL, "E0'"}}, {{SPECIAL_TOKEN, "|"},{NON_TERMINAL, "E1"},{SEMANTIC_RULE, "@OR"},{NON_TERMINAL, "E0'"}}, @@ -128,6 +130,7 @@ const unsigned int RhsSize[RULES_COUNT]= 3, 1, 6, +5, 1, 2, 4, @@ -182,96 +185,97 @@ const unsigned int RhsSize[RULES_COUNT]= }; const char* NoneTerminalMap[NONETERMINAL_COUNT]= { -"E4'", -"E7", -"C'", -"E5'", -"E1", -"S'", -"E9", -"E4", -"C", "E5", -"E6'", -"E0'", -"E8", -"E8'", -"E10", -"E0", -"E2", -"E2'", -"E9'", -"E3'", "E1'", -"S", -"E6", +"E3'", +"E1", +"E2", +"S'", +"C'", +"E8", +"C", "E7'", -"E3" +"E0", +"E9", +"E4'", +"E8'", +"S", +"E2'", +"E0'", +"E4", +"E9'", +"E7", +"E10", +"E6'", +"E3", +"E6", +"E5'" }; const char* TerminalMap[TERMINAL_COUNT]= { -"/", -"_id", -"low", -"db", -"func", -"wstr", -"hi", -"$", -"=", -"_register", "_decimal", -"^", -"sizeof", -")", -"_octal", -"_binary", -"str", -"not", -"+", -"neg", -"<<", -"_hex", -"*", -"|", -"_pseudo_register", -";", "-", +"hi", +"_octal", +"low", +"<<", +"sizeof", +"_register", +"func", "dw", -"%", +"|", +"_binary", +")", +"/", +"_hex", +"str", +"+", +"^", +"$", +"print", +"_pseudo_register", "dq", +"neg", +"_id", +"*", "poi", "dd", -">>", +";", +"db", +"(", +"=", +"wstr", +"not", "&", -"(" +">>", +"%" }; const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]= { - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,19 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,19 ,-1 ,19 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,19 ,19 ,-1 }, - {-1 ,-1 ,26 ,26 ,26 ,26 ,26 ,-1 ,-1 ,26 ,26 ,-1 ,26 ,-1 ,26 ,26 ,26 ,26 ,-1 ,26 ,-1 ,26 ,-1 ,-1 ,26 ,-1 ,-1 ,26 ,-1 ,26 ,26 ,26 ,-1 ,-1 ,26 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,4 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,22 ,-1 ,22 ,-1 ,-1 ,-1 ,-1 ,21 ,-1 ,22 ,-1 ,-1 ,22 ,-1 ,22 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,22 ,22 ,-1 }, - {-1 ,-1 ,8 ,8 ,8 ,8 ,8 ,-1 ,-1 ,8 ,8 ,-1 ,8 ,-1 ,8 ,8 ,8 ,8 ,-1 ,8 ,-1 ,8 ,-1 ,-1 ,8 ,-1 ,-1 ,8 ,-1 ,8 ,8 ,8 ,-1 ,-1 ,8 }, - {-1 ,1 ,-1 ,-1 ,-1 ,-1 ,-1 ,2 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,32 ,32 ,32 ,32 ,32 ,-1 ,-1 ,32 ,32 ,-1 ,32 ,-1 ,32 ,32 ,32 ,32 ,-1 ,32 ,-1 ,32 ,-1 ,-1 ,32 ,-1 ,-1 ,32 ,-1 ,32 ,32 ,32 ,-1 ,-1 ,32 }, - {-1 ,-1 ,17 ,17 ,17 ,17 ,17 ,-1 ,-1 ,17 ,17 ,-1 ,17 ,-1 ,17 ,17 ,17 ,17 ,-1 ,17 ,-1 ,17 ,-1 ,-1 ,17 ,-1 ,-1 ,17 ,-1 ,17 ,17 ,17 ,-1 ,-1 ,17 }, - {-1 ,3 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,20 ,20 ,20 ,20 ,20 ,-1 ,-1 ,20 ,20 ,-1 ,20 ,-1 ,20 ,20 ,20 ,20 ,-1 ,20 ,-1 ,20 ,-1 ,-1 ,20 ,-1 ,-1 ,20 ,-1 ,20 ,20 ,20 ,-1 ,-1 ,20 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,-1 ,25 ,-1 ,25 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,25 ,25 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,7 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,6 ,-1 ,7 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,29 ,29 ,29 ,29 ,29 ,-1 ,-1 ,29 ,29 ,-1 ,29 ,-1 ,29 ,29 ,29 ,29 ,-1 ,29 ,-1 ,29 ,-1 ,-1 ,29 ,-1 ,-1 ,29 ,-1 ,29 ,29 ,29 ,-1 ,-1 ,29 }, - {30 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,-1 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,31 ,-1 ,31 ,31 ,-1 ,-1 ,-1 ,-1 ,-1 ,31 ,31 ,-1 }, - {-1 ,-1 ,46 ,36 ,53 ,41 ,45 ,-1 ,-1 ,48 ,50 ,-1 ,42 ,-1 ,51 ,52 ,40 ,43 ,-1 ,44 ,-1 ,49 ,-1 ,-1 ,54 ,-1 ,-1 ,38 ,-1 ,39 ,35 ,37 ,-1 ,-1 ,47 }, - {-1 ,-1 ,5 ,5 ,5 ,5 ,5 ,-1 ,-1 ,5 ,5 ,-1 ,5 ,-1 ,5 ,5 ,5 ,5 ,-1 ,5 ,-1 ,5 ,-1 ,-1 ,5 ,-1 ,-1 ,5 ,-1 ,5 ,5 ,5 ,-1 ,-1 ,5 }, - {-1 ,-1 ,11 ,11 ,11 ,11 ,11 ,-1 ,-1 ,11 ,11 ,-1 ,11 ,-1 ,11 ,11 ,11 ,11 ,-1 ,11 ,-1 ,11 ,-1 ,-1 ,11 ,-1 ,-1 ,11 ,-1 ,11 ,11 ,11 ,-1 ,-1 ,11 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,13 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,13 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 }, - {34 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,-1 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,34 ,-1 ,34 ,34 ,-1 ,33 ,-1 ,-1 ,-1 ,34 ,34 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,16 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,16 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 ,16 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,9 ,-1 ,10 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,10 ,-1 ,10 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,23 ,23 ,23 ,23 ,23 ,-1 ,-1 ,23 ,23 ,-1 ,23 ,-1 ,23 ,23 ,23 ,23 ,-1 ,23 ,-1 ,23 ,-1 ,-1 ,23 ,-1 ,-1 ,23 ,-1 ,23 ,23 ,23 ,-1 ,-1 ,23 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,27 ,28 ,-1 ,28 ,28 ,-1 ,-1 ,-1 ,-1 ,-1 ,28 ,28 ,-1 }, - {-1 ,-1 ,14 ,14 ,14 ,14 ,14 ,-1 ,-1 ,14 ,14 ,-1 ,14 ,-1 ,14 ,14 ,14 ,14 ,-1 ,14 ,-1 ,14 ,-1 ,-1 ,14 ,-1 ,-1 ,14 ,-1 ,14 ,14 ,14 ,-1 ,-1 ,14 } + {21 ,-1 ,21 ,21 ,21 ,-1 ,21 ,21 ,21 ,21 ,-1 ,21 ,-1 ,-1 ,21 ,21 ,-1 ,-1 ,-1 ,-1 ,21 ,21 ,21 ,-1 ,-1 ,21 ,21 ,-1 ,21 ,21 ,-1 ,21 ,21 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,11 ,-1 ,11 ,-1 ,-1 ,-1 ,-1 ,10 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,11 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,17 ,-1 ,17 ,-1 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 ,-1 ,-1 ,17 ,16 ,-1 }, + {9 ,-1 ,9 ,9 ,9 ,-1 ,9 ,9 ,9 ,9 ,-1 ,9 ,-1 ,-1 ,9 ,9 ,-1 ,-1 ,-1 ,-1 ,9 ,9 ,9 ,-1 ,-1 ,9 ,9 ,-1 ,9 ,9 ,-1 ,9 ,9 ,-1 ,-1 ,-1 }, + {12 ,-1 ,12 ,12 ,12 ,-1 ,12 ,12 ,12 ,12 ,-1 ,12 ,-1 ,-1 ,12 ,12 ,-1 ,-1 ,-1 ,-1 ,12 ,12 ,12 ,-1 ,-1 ,12 ,12 ,-1 ,12 ,12 ,-1 ,12 ,12 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,2 ,1 ,-1 ,-1 ,-1 ,1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,5 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {30 ,-1 ,30 ,30 ,30 ,-1 ,30 ,30 ,30 ,30 ,-1 ,30 ,-1 ,-1 ,30 ,30 ,-1 ,-1 ,-1 ,-1 ,30 ,30 ,30 ,-1 ,-1 ,30 ,30 ,-1 ,30 ,30 ,-1 ,30 ,30 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,4 ,-1 ,-1 ,-1 ,3 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,29 ,-1 ,-1 ,-1 ,29 ,-1 ,-1 ,-1 ,-1 ,29 ,-1 ,29 ,-1 ,-1 ,-1 ,29 ,29 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,-1 ,29 ,-1 ,-1 ,-1 ,-1 ,-1 ,29 ,29 ,-1 }, + {6 ,-1 ,6 ,6 ,6 ,-1 ,6 ,6 ,6 ,6 ,-1 ,6 ,-1 ,-1 ,6 ,6 ,-1 ,-1 ,-1 ,-1 ,6 ,6 ,6 ,-1 ,-1 ,6 ,6 ,-1 ,6 ,6 ,-1 ,6 ,6 ,-1 ,-1 ,-1 }, + {33 ,-1 ,33 ,33 ,33 ,-1 ,33 ,33 ,33 ,33 ,-1 ,33 ,-1 ,-1 ,33 ,33 ,-1 ,-1 ,-1 ,-1 ,33 ,33 ,33 ,-1 ,-1 ,33 ,33 ,-1 ,33 ,33 ,-1 ,33 ,33 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,-1 ,20 ,20 ,-1 }, + {-1 ,32 ,-1 ,-1 ,-1 ,32 ,-1 ,-1 ,-1 ,-1 ,32 ,-1 ,32 ,31 ,-1 ,-1 ,32 ,32 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,32 ,-1 ,-1 ,32 ,-1 ,-1 ,-1 ,-1 ,-1 ,32 ,32 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,0 ,-1 ,-1 ,-1 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,14 ,-1 ,14 ,-1 ,-1 ,-1 ,-1 ,14 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,14 ,-1 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,7 ,-1 ,8 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,8 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {18 ,-1 ,18 ,18 ,18 ,-1 ,18 ,18 ,18 ,18 ,-1 ,18 ,-1 ,-1 ,18 ,18 ,-1 ,-1 ,-1 ,-1 ,18 ,18 ,18 ,-1 ,-1 ,18 ,18 ,-1 ,18 ,18 ,-1 ,18 ,18 ,-1 ,-1 ,-1 }, + {-1 ,35 ,-1 ,-1 ,-1 ,35 ,-1 ,-1 ,-1 ,-1 ,35 ,-1 ,35 ,35 ,-1 ,-1 ,35 ,35 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,35 ,-1 ,-1 ,35 ,-1 ,-1 ,-1 ,-1 ,-1 ,35 ,35 ,34 }, + {27 ,-1 ,27 ,27 ,27 ,-1 ,27 ,27 ,27 ,27 ,-1 ,27 ,-1 ,-1 ,27 ,27 ,-1 ,-1 ,-1 ,-1 ,27 ,27 ,27 ,-1 ,-1 ,27 ,27 ,-1 ,27 ,27 ,-1 ,27 ,27 ,-1 ,-1 ,-1 }, + {51 ,-1 ,46 ,52 ,47 ,-1 ,43 ,49 ,54 ,39 ,-1 ,53 ,-1 ,-1 ,50 ,41 ,-1 ,-1 ,-1 ,-1 ,55 ,40 ,45 ,-1 ,-1 ,36 ,38 ,-1 ,37 ,48 ,-1 ,42 ,44 ,-1 ,-1 ,-1 }, + {-1 ,25 ,-1 ,-1 ,-1 ,26 ,-1 ,-1 ,-1 ,-1 ,26 ,-1 ,26 ,-1 ,-1 ,-1 ,26 ,26 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,26 ,-1 ,-1 ,-1 ,-1 ,-1 ,26 ,26 ,-1 }, + {15 ,-1 ,15 ,15 ,15 ,-1 ,15 ,15 ,15 ,15 ,-1 ,15 ,-1 ,-1 ,15 ,15 ,-1 ,-1 ,-1 ,-1 ,15 ,15 ,15 ,-1 ,-1 ,15 ,15 ,-1 ,15 ,15 ,-1 ,15 ,15 ,-1 ,-1 ,-1 }, + {24 ,-1 ,24 ,24 ,24 ,-1 ,24 ,24 ,24 ,24 ,-1 ,24 ,-1 ,-1 ,24 ,24 ,-1 ,-1 ,-1 ,-1 ,24 ,24 ,24 ,-1 ,-1 ,24 ,24 ,-1 ,24 ,24 ,-1 ,24 ,24 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,23 ,-1 ,-1 ,-1 ,-1 ,23 ,-1 ,23 ,-1 ,-1 ,-1 ,22 ,23 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,23 ,-1 ,-1 ,-1 ,-1 ,-1 ,23 ,23 ,-1 } }; #endif diff --git a/hyperdbg/script-engine/src/scanner.c b/hyperdbg/script-engine/src/scanner.c index 18872496..75e18dc0 100644 --- a/hyperdbg/script-engine/src/scanner.c +++ b/hyperdbg/script-engine/src/scanner.c @@ -568,7 +568,7 @@ TOKEN GetToken(char* c, char* str) case ';': strcpy(Token->Value, ";"); Token->Type = SPECIAL_TOKEN; - WaitForID = 1; + WaitForID = 0; *c = sgetc(str); return Token; @@ -658,7 +658,7 @@ TOKEN GetToken(char* c, char* str) strcpy(Token->Value, ""); Token->Type = WHITE_SPACE; *c = sgetc(str); - WaitForID = 1; + WaitForID = 0; return Token; case '0':