HyperDbg/hyperdbg/script-engine/parse_table.c
SinaKarvandi 9163ba8371 as
2021-01-14 03:09:31 -08:00

390 lines
13 KiB
C

#include "parse_table.h"
#include "common.h"
#include "ScriptEngineCommonDefinitions.h"
const struct _TOKEN Lhs[RULES_COUNT]=
{
{NON_TERMINAL, "S"},
{NON_TERMINAL, "S'"},
{NON_TERMINAL, "S'"},
{NON_TERMINAL, "C"},
{NON_TERMINAL, "C"},
{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"},
{NON_TERMINAL, "E11"}
};
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'"}},
{{KEYWORD, "print"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@PRINT"},{SPECIAL_TOKEN, ")"}},
{{KEYWORD, "json"},{SPECIAL_TOKEN, "("},{SEMANTIC_RULE, "@PUSH"},{NON_TERMINAL, "E11"},{SPECIAL_TOKEN, ","},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@JSON"},{SPECIAL_TOKEN, ")"}},
{{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, "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, ")"}},
{{KEYWORD, "not"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@NOT"},{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"}},
{{STRING, "_string"}}
};
const unsigned int RhsSize[RULES_COUNT]=
{
3,
3,
1,
6,
5,
8,
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,
1
};
const char* NoneTerminalMap[NONETERMINAL_COUNT]=
{
"E2",
"E7'",
"E2'",
"E11",
"E8'",
"E6'",
"E4",
"E5'",
"E3",
"E7",
"E0",
"E9'",
"E9",
"S'",
"E6",
"E1",
"E8",
"E10",
"E1'",
"E3'",
"E0'",
"E5",
"C",
"S",
"C'",
"E4'"
};
const char* TerminalMap[TERMINAL_COUNT]=
{
"^",
"=",
"wstr",
"sizeof",
"_hex",
"$",
"json",
"dw",
"hi",
"-",
"db",
"dd",
"not",
"+",
"/",
"|",
"*",
"_octal",
";",
"print",
"func",
",",
">>",
"_register",
"_string",
"dq",
"_id",
"neg",
"str",
"(",
"_decimal",
"_pseudo_register",
"poi",
"&",
"<<",
"_binary",
"%",
")",
"low"
};
const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]=
{
{-1 ,-1 ,13 ,13 ,13 ,-1 ,-1 ,13 ,13 ,-1 ,13 ,13 ,13 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,-1 ,13 ,-1 ,-1 ,13 ,-1 ,13 ,-1 ,13 ,13 ,13 ,13 ,13 ,13 ,-1 ,-1 ,13 ,-1 ,-1 ,13 },
{30 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,30 ,-1 ,30 ,29 ,-1 ,30 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,30 ,30 ,-1 ,-1 ,30 ,-1 },
{15 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,14 ,-1 ,-1 ,-1 ,15 ,-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 ,57 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 },
{33 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,33 ,-1 ,-1 ,-1 ,33 ,32 ,33 ,33 ,-1 ,33 ,-1 ,-1 ,-1 ,33 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,33 ,33 ,-1 ,-1 ,33 ,-1 },
{27 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,26 ,-1 ,-1 ,-1 ,27 ,-1 ,27 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,27 ,27 ,-1 ,-1 ,27 ,-1 },
{-1 ,-1 ,19 ,19 ,19 ,-1 ,-1 ,19 ,19 ,-1 ,19 ,19 ,19 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,-1 ,19 ,-1 ,-1 ,19 ,-1 ,19 ,-1 ,19 ,19 ,19 ,19 ,19 ,19 ,-1 ,-1 ,19 ,-1 ,-1 ,19 },
{24 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,23 ,-1 ,24 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,24 ,24 ,-1 ,-1 ,24 ,-1 },
{-1 ,-1 ,16 ,16 ,16 ,-1 ,-1 ,16 ,16 ,-1 ,16 ,16 ,16 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,-1 ,16 ,-1 ,-1 ,16 ,-1 ,16 ,-1 ,16 ,16 ,16 ,16 ,16 ,16 ,-1 ,-1 ,16 ,-1 ,-1 ,16 },
{-1 ,-1 ,28 ,28 ,28 ,-1 ,-1 ,28 ,28 ,-1 ,28 ,28 ,28 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,-1 ,28 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,28 ,28 ,28 ,28 ,28 ,28 ,-1 ,-1 ,28 ,-1 ,-1 ,28 },
{-1 ,-1 ,7 ,7 ,7 ,-1 ,-1 ,7 ,7 ,-1 ,7 ,7 ,7 ,-1 ,-1 ,-1 ,-1 ,7 ,-1 ,-1 ,7 ,-1 ,-1 ,7 ,-1 ,7 ,-1 ,7 ,7 ,7 ,7 ,7 ,7 ,-1 ,-1 ,7 ,-1 ,-1 ,7 },
{36 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,-1 ,36 ,36 ,36 ,36 ,-1 ,36 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,36 ,36 ,-1 ,35 ,36 ,-1 },
{-1 ,-1 ,34 ,34 ,34 ,-1 ,-1 ,34 ,34 ,-1 ,34 ,34 ,34 ,-1 ,-1 ,-1 ,-1 ,34 ,-1 ,-1 ,34 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,34 ,34 ,34 ,34 ,34 ,-1 ,-1 ,34 ,-1 ,-1 ,34 },
{-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 ,25 ,25 ,25 ,-1 ,-1 ,25 ,25 ,-1 ,25 ,25 ,25 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,-1 ,25 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,25 ,25 ,25 ,25 ,25 ,25 ,-1 ,-1 ,25 ,-1 ,-1 ,25 },
{-1 ,-1 ,10 ,10 ,10 ,-1 ,-1 ,10 ,10 ,-1 ,10 ,10 ,10 ,-1 ,-1 ,-1 ,-1 ,10 ,-1 ,-1 ,10 ,-1 ,-1 ,10 ,-1 ,10 ,-1 ,10 ,10 ,10 ,10 ,10 ,10 ,-1 ,-1 ,10 ,-1 ,-1 ,10 },
{-1 ,-1 ,31 ,31 ,31 ,-1 ,-1 ,31 ,31 ,-1 ,31 ,31 ,31 ,-1 ,-1 ,-1 ,-1 ,31 ,-1 ,-1 ,31 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,31 ,31 ,31 ,31 ,31 ,-1 ,-1 ,31 ,-1 ,-1 ,31 },
{-1 ,-1 ,43 ,44 ,51 ,-1 ,-1 ,40 ,46 ,-1 ,38 ,39 ,48 ,-1 ,-1 ,-1 ,-1 ,53 ,-1 ,-1 ,55 ,-1 ,-1 ,50 ,-1 ,41 ,-1 ,45 ,42 ,49 ,52 ,56 ,37 ,-1 ,-1 ,54 ,-1 ,-1 ,47 },
{11 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 ,-1 ,12 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 },
{18 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,18 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,-1 ,18 ,-1 },
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,8 ,-1 ,-1 ,9 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,9 ,-1 },
{-1 ,-1 ,22 ,22 ,22 ,-1 ,-1 ,22 ,22 ,-1 ,22 ,22 ,22 ,-1 ,-1 ,-1 ,-1 ,22 ,-1 ,-1 ,22 ,-1 ,-1 ,22 ,-1 ,22 ,-1 ,22 ,22 ,22 ,22 ,22 ,22 ,-1 ,-1 ,22 ,-1 ,-1 ,22 },
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,5 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,4 ,-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 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,0 ,-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 ,6 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 },
{21 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,20 ,-1 ,-1 ,21 ,-1 }
};
const char* KeywordList[]= {
"print",
"json",
"poi",
"db",
"dd",
"dw",
"dq",
"str",
"wstr",
"sizeof",
"neg",
"hi",
"low",
"not"
};
const char* OperatorsList[]= {
"@OR",
"@XOR",
"@AND",
"@ASR",
"@ASL",
"@ADD",
"@SUB",
"@MUL",
"@DIV",
"@MOD"
};
const char* OneOpFunc1[] = {
"@POI",
"@DB",
"@DD",
"@DW",
"@DQ",
"@STR",
"@WSTR",
"@SIZEOF",
"@NEG",
"@HI",
"@LOW",
"@NOT",
};
const char* OneOpFunc2[] = {
"@PRINT"
};
const char* TwoOpFunc1[] = {
"@JSON"
};
const SYMBOL_MAP SemanticRulesMapList[]= {
{"@OR", FUNC_OR},
{"@XOR", FUNC_XOR},
{"@AND", FUNC_AND},
{"@ASR", FUNC_ASR},
{"@ASL", FUNC_ASL},
{"@ADD", FUNC_ADD},
{"@SUB", FUNC_SUB},
{"@MUL", FUNC_MUL},
{"@DIV", FUNC_DIV},
{"@MOD", FUNC_MOD},
{"@PRINT", FUNC_PRINT},
{"@JSON", FUNC_JSON},
{"@POI", FUNC_POI},
{"@DB", FUNC_DB},
{"@DD", FUNC_DD},
{"@DW", FUNC_DW},
{"@DQ", FUNC_DQ},
{"@STR", FUNC_STR},
{"@WSTR", FUNC_WSTR},
{"@SIZEOF", FUNC_SIZEOF},
{"@NEG", FUNC_NEG},
{"@HI", FUNC_HI},
{"@LOW", FUNC_LOW},
{"@NOT", FUNC_NOT},
{"@MOV", FUNC_MOV}
};
const SYMBOL_MAP RegisterMapList[]= {
{"rax", REGISTER_RAX},
{"rcx", REGISTER_RCX},
{"rdx", REGISTER_RDX},
{"rbx", REGISTER_RBX},
{"rsp", REGISTER_RSP},
{"rbp", REGISTER_RBP},
{"rsi", REGISTER_RSI},
{"rdi", REGISTER_RDI},
{"r8", REGISTER_R8},
{"r9", REGISTER_R9},
{"r10", REGISTER_R10},
{"r11", REGISTER_R11},
{"r12", REGISTER_R12},
{"r13", REGISTER_R13},
{"r14", REGISTER_R14},
{"r15", REGISTER_R15}
};
const SYMBOL_MAP PseudoRegisterMapList[]= {
{"pid", PSEUDO_REGISTER_PID},
{"tid", PSEUDO_REGISTER_TID},
{"proc", PSEUDO_REGISTER_PROC},
{"thread", PSEUDO_REGISTER_THREAD},
{"peb", PSEUDO_REGISTER_PEB},
{"teb", PSEUDO_REGISTER_TEB},
{"ip", PSEUDO_REGISTER_IP},
{"buffer", PSEUDO_REGISTER_BUFFER},
{"context", PSEUDO_REGISTER_CONTEXT}
};