mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-30 03:15:51 +00:00
306 lines
11 KiB
C
306 lines
11 KiB
C
#include "parse_table.h"
|
|
#include "common.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, "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'"}},
|
|
{{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'"}},
|
|
{{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, "gg"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "E0"},{SEMANTIC_RULE, "@GG"},{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,
|
|
5,
|
|
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]=
|
|
{
|
|
"E1'",
|
|
"E5'",
|
|
"S'",
|
|
"E2",
|
|
"E0",
|
|
"E7",
|
|
"E5",
|
|
"E9",
|
|
"E2'",
|
|
"E3",
|
|
"C'",
|
|
"E4'",
|
|
"E8",
|
|
"E8'",
|
|
"E7'",
|
|
"C",
|
|
"E1",
|
|
"E3'",
|
|
"E4",
|
|
"E6",
|
|
"E10",
|
|
"S",
|
|
"E0'",
|
|
"E9'",
|
|
"E6'"
|
|
};
|
|
const char* TerminalMap[TERMINAL_COUNT]=
|
|
{
|
|
"_id",
|
|
"_register",
|
|
"_octal",
|
|
"%",
|
|
"gg",
|
|
"*",
|
|
"=",
|
|
"dd",
|
|
">>",
|
|
"+",
|
|
"sizeof",
|
|
"_pseudo_register",
|
|
"_binary",
|
|
"^",
|
|
"db",
|
|
"_hex",
|
|
"print",
|
|
"$",
|
|
"neg",
|
|
"str",
|
|
"-",
|
|
"&",
|
|
"func",
|
|
"wstr",
|
|
"poi",
|
|
"/",
|
|
"(",
|
|
"|",
|
|
";",
|
|
"<<",
|
|
"hi",
|
|
"_decimal",
|
|
")",
|
|
"dw",
|
|
"dq",
|
|
"low"
|
|
};
|
|
const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]=
|
|
{
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,10 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,11 ,11 ,-1 ,-1 ,-1 ,11 ,-1 ,-1 ,-1 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,23 ,22 ,-1 ,-1 ,-1 ,23 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,23 ,-1 ,-1 ,-1 ,-1 ,-1 ,23 ,23 ,23 ,-1 ,-1 ,23 ,-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 ,12 ,12 ,-1 ,12 ,-1 ,-1 ,12 ,-1 ,-1 ,12 ,12 ,12 ,-1 ,12 ,12 ,-1 ,-1 ,12 ,12 ,-1 ,-1 ,12 ,12 ,12 ,-1 ,12 ,-1 ,-1 ,-1 ,12 ,12 ,-1 ,12 ,12 ,12 },
|
|
{-1 ,6 ,6 ,-1 ,6 ,-1 ,-1 ,6 ,-1 ,-1 ,6 ,6 ,6 ,-1 ,6 ,6 ,-1 ,-1 ,6 ,6 ,-1 ,-1 ,6 ,6 ,6 ,-1 ,6 ,-1 ,-1 ,-1 ,6 ,6 ,-1 ,6 ,6 ,6 },
|
|
{-1 ,27 ,27 ,-1 ,27 ,-1 ,-1 ,27 ,-1 ,-1 ,27 ,27 ,27 ,-1 ,27 ,27 ,-1 ,-1 ,27 ,27 ,-1 ,-1 ,27 ,27 ,27 ,-1 ,27 ,-1 ,-1 ,-1 ,27 ,27 ,-1 ,27 ,27 ,27 },
|
|
{-1 ,21 ,21 ,-1 ,21 ,-1 ,-1 ,21 ,-1 ,-1 ,21 ,21 ,21 ,-1 ,21 ,21 ,-1 ,-1 ,21 ,21 ,-1 ,-1 ,21 ,21 ,21 ,-1 ,21 ,-1 ,-1 ,-1 ,21 ,21 ,-1 ,21 ,21 ,21 },
|
|
{-1 ,33 ,33 ,-1 ,33 ,-1 ,-1 ,33 ,-1 ,-1 ,33 ,33 ,33 ,-1 ,33 ,33 ,-1 ,-1 ,33 ,33 ,-1 ,-1 ,33 ,33 ,33 ,-1 ,33 ,-1 ,-1 ,-1 ,33 ,33 ,-1 ,33 ,33 ,33 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,14 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,-1 ,-1 ,-1 ,-1 ,14 ,14 ,-1 ,-1 ,-1 ,14 ,-1 ,-1 ,-1 },
|
|
{-1 ,15 ,15 ,-1 ,15 ,-1 ,-1 ,15 ,-1 ,-1 ,15 ,15 ,15 ,-1 ,15 ,15 ,-1 ,-1 ,15 ,15 ,-1 ,-1 ,15 ,15 ,15 ,-1 ,15 ,-1 ,-1 ,-1 ,15 ,15 ,-1 ,15 ,15 ,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 ,-1 ,-1 ,-1 ,5 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,-1 ,20 ,20 ,19 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 },
|
|
{-1 ,30 ,30 ,-1 ,30 ,-1 ,-1 ,30 ,-1 ,-1 ,30 ,30 ,30 ,-1 ,30 ,30 ,-1 ,-1 ,30 ,30 ,-1 ,-1 ,30 ,30 ,30 ,-1 ,30 ,-1 ,-1 ,-1 ,30 ,30 ,-1 ,30 ,30 ,30 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,32 ,-1 ,-1 ,32 ,32 ,-1 ,-1 ,-1 ,32 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,32 ,32 ,-1 ,-1 ,-1 ,31 ,-1 ,32 ,32 ,32 ,-1 ,-1 ,32 ,-1 ,-1 ,-1 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,-1 ,29 ,29 ,-1 ,-1 ,-1 ,29 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,29 ,29 ,-1 ,-1 ,-1 ,-1 ,-1 ,29 ,29 ,29 ,-1 ,-1 ,29 ,-1 ,-1 ,-1 },
|
|
{3 ,-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 ,9 ,9 ,-1 ,9 ,-1 ,-1 ,9 ,-1 ,-1 ,9 ,9 ,9 ,-1 ,9 ,9 ,-1 ,-1 ,9 ,9 ,-1 ,-1 ,9 ,9 ,9 ,-1 ,9 ,-1 ,-1 ,-1 ,9 ,9 ,-1 ,9 ,9 ,9 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 ,-1 ,-1 ,17 ,17 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 },
|
|
{-1 ,18 ,18 ,-1 ,18 ,-1 ,-1 ,18 ,-1 ,-1 ,18 ,18 ,18 ,-1 ,18 ,18 ,-1 ,-1 ,18 ,18 ,-1 ,-1 ,18 ,18 ,18 ,-1 ,18 ,-1 ,-1 ,-1 ,18 ,18 ,-1 ,18 ,18 ,18 },
|
|
{-1 ,24 ,24 ,-1 ,24 ,-1 ,-1 ,24 ,-1 ,-1 ,24 ,24 ,24 ,-1 ,24 ,24 ,-1 ,-1 ,24 ,24 ,-1 ,-1 ,24 ,24 ,24 ,-1 ,24 ,-1 ,-1 ,-1 ,24 ,24 ,-1 ,24 ,24 ,24 },
|
|
{-1 ,49 ,52 ,-1 ,47 ,-1 ,-1 ,38 ,-1 ,-1 ,43 ,55 ,53 ,-1 ,37 ,50 ,-1 ,-1 ,44 ,41 ,-1 ,-1 ,54 ,42 ,36 ,-1 ,48 ,-1 ,-1 ,-1 ,45 ,51 ,-1 ,39 ,40 ,46 },
|
|
{0 ,-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 ,-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 ,7 ,8 ,-1 ,-1 ,-1 ,8 ,-1 ,-1 ,-1 },
|
|
{-1 ,-1 ,-1 ,34 ,-1 ,35 ,-1 ,-1 ,35 ,35 ,-1 ,-1 ,-1 ,35 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,35 ,35 ,-1 ,-1 ,-1 ,35 ,-1 ,35 ,35 ,35 ,-1 ,-1 ,35 ,-1 ,-1 ,-1 },
|
|
{-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,26 ,26 ,-1 ,-1 ,-1 ,26 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,25 ,26 ,-1 ,-1 ,-1 ,-1 ,-1 ,26 ,26 ,26 ,-1 ,-1 ,26 ,-1 ,-1 ,-1 }
|
|
};
|
|
const char* KeywordList[]= {
|
|
"print",
|
|
"poi",
|
|
"db",
|
|
"dd",
|
|
"dw",
|
|
"dq",
|
|
"str",
|
|
"wstr",
|
|
"sizeof",
|
|
"neg",
|
|
"hi",
|
|
"low",
|
|
"gg"
|
|
};
|
|
const char* OneOpFunc1[] = {
|
|
"@POI",
|
|
"@DB",
|
|
"@DD",
|
|
"@DW",
|
|
"@DQ",
|
|
"@STR",
|
|
"@WSTR",
|
|
"@SIZEOF",
|
|
"@NEG",
|
|
"@HI",
|
|
"@LOW",
|
|
"@GG",
|
|
};
|
|
const char* OneOpFunc2[] = {
|
|
"@PRINT"
|
|
};
|