Method object refactor

This commit is contained in:
IlyaShurupov 2024-03-25 13:57:31 +03:00
parent add66e6cac
commit 7332e72bb2
25 changed files with 420 additions and 529 deletions

View file

@ -123,7 +123,7 @@ const ParserSymbol symbols [] =
{48, (SymbolType) 1, "print_terminal", "print", "print"},
{49, (SymbolType) 2, "expr_list", "expr_list", "expr_list"},
{50, (SymbolType) 1, "comma_terminal", ",", ","},
{51, (SymbolType) 1, "id", "[a-z]", "id"},
{51, (SymbolType) 1, "id", "([a-z]|[A-Z])+", "id"},
{52, (SymbolType) 1, "boolean", "true|false", "boolean"},
{53, (SymbolType) 1, "integer", "(\\+|\\-)?[0-9]+", "integer"},
{54, (SymbolType) 1, "real", "(\\+|\\-)?[0-9]+(\\.[0-9]+)?((e|E)(\\+|\\-)?[0-9]+)?", "real"},
@ -1383,12 +1383,13 @@ const LexerTransition lexer_transitions [] =
{60, 61, &lexer_states[26], nullptr},
{61, 62, &lexer_states[23], nullptr},
{62, 63, &lexer_states[25], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 98, &lexer_states[76], nullptr},
{98, 99, &lexer_states[50], nullptr},
{99, 100, &lexer_states[40], nullptr},
{100, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[1], nullptr},
{102, 103, &lexer_states[78], nullptr},
{102, 103, &lexer_states[80], nullptr},
{103, 105, &lexer_states[76], nullptr},
{105, 106, &lexer_states[45], nullptr},
{106, 109, &lexer_states[76], nullptr},
@ -1405,11 +1406,26 @@ const LexerTransition lexer_transitions [] =
{120, 123, &lexer_states[76], nullptr},
{123, 124, &lexer_states[32], nullptr},
{125, 126, &lexer_states[33], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 108, &lexer_states[76], nullptr},
{108, 109, &lexer_states[47], nullptr},
{109, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[2], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[3], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 111, &lexer_states[76], nullptr},
{111, 112, &lexer_states[4], nullptr},
{112, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[5], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{119, 120, &lexer_states[7], nullptr},
{104, 105, &lexer_states[8], nullptr},
{105, 106, &lexer_states[9], nullptr},
@ -1426,44 +1442,176 @@ const LexerTransition lexer_transitions [] =
{61, 62, &lexer_states[27], nullptr},
{61, 62, &lexer_states[28], nullptr},
{61, 62, &lexer_states[30], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[35], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 116, &lexer_states[76], nullptr},
{116, 117, &lexer_states[36], nullptr},
{117, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 104, &lexer_states[76], nullptr},
{104, 105, &lexer_states[37], nullptr},
{105, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 111, &lexer_states[76], nullptr},
{111, 112, &lexer_states[38], nullptr},
{112, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 100, &lexer_states[76], nullptr},
{100, 101, &lexer_states[39], nullptr},
{101, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 108, &lexer_states[76], nullptr},
{108, 109, &lexer_states[41], nullptr},
{109, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 98, &lexer_states[42], nullptr},
{98, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 115, &lexer_states[76], nullptr},
{115, 116, &lexer_states[43], nullptr},
{116, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 115, &lexer_states[76], nullptr},
{115, 116, &lexer_states[44], nullptr},
{116, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 102, &lexer_states[76], nullptr},
{102, 103, &lexer_states[46], nullptr},
{103, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 115, &lexer_states[76], nullptr},
{115, 116, &lexer_states[48], nullptr},
{116, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[49], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[51], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[52], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 98, &lexer_states[53], nullptr},
{98, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 107, &lexer_states[76], nullptr},
{107, 108, &lexer_states[54], nullptr},
{108, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[56], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 116, &lexer_states[76], nullptr},
{116, 117, &lexer_states[57], nullptr},
{117, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 117, &lexer_states[76], nullptr},
{117, 118, &lexer_states[58], nullptr},
{118, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[59], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 110, &lexer_states[76], nullptr},
{110, 111, &lexer_states[60], nullptr},
{111, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 104, &lexer_states[76], nullptr},
{104, 105, &lexer_states[62], nullptr},
{105, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 105, &lexer_states[76], nullptr},
{105, 106, &lexer_states[63], nullptr},
{106, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 108, &lexer_states[76], nullptr},
{108, 109, &lexer_states[64], nullptr},
{109, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[65], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 98, &lexer_states[67], nullptr},
{98, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[68], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[71], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 105, &lexer_states[76], nullptr},
{105, 106, &lexer_states[72], nullptr},
{106, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 110, &lexer_states[76], nullptr},
{110, 111, &lexer_states[73], nullptr},
{111, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 116, &lexer_states[76], nullptr},
{116, 117, &lexer_states[74], nullptr},
{114, 115, &lexer_states[79], nullptr},
{117, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 114, &lexer_states[76], nullptr},
{114, 115, &lexer_states[78], nullptr},
{115, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 117, &lexer_states[76], nullptr},
{117, 118, &lexer_states[79], nullptr},
{118, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[84], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 98, &lexer_states[81], nullptr},
{117, 118, &lexer_states[80], nullptr},
{101, 102, &lexer_states[84], nullptr},
{98, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 108, &lexer_states[76], nullptr},
{108, 109, &lexer_states[82], nullptr},
{109, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 115, &lexer_states[76], nullptr},
{115, 116, &lexer_states[83], nullptr},
{116, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 101, &lexer_states[76], nullptr},
{101, 102, &lexer_states[84], nullptr},
{102, 123, &lexer_states[76], nullptr},
{65, 91, &lexer_states[76], nullptr},
{97, 123, &lexer_states[76], nullptr},
{46, 47, &lexer_states[86], nullptr},
{48, 58, &lexer_states[85], nullptr},
{69, 70, &lexer_states[88], nullptr},
@ -1483,106 +1631,106 @@ const LexerTransition lexer_transitions [] =
const LexerState lexer_states [] =
{
{0, 39, &lexer_transitions[0], nullptr},
{1, 2, &lexer_transitions[39], &symbols[51]},
{2, 1, &lexer_transitions[41], nullptr},
{3, 1, &lexer_transitions[42], nullptr},
{4, 1, &lexer_transitions[43], nullptr},
{5, 0, &lexer_transitions[44], &symbols[2]},
{6, 1, &lexer_transitions[44], &symbols[10]},
{7, 1, &lexer_transitions[45], nullptr},
{8, 1, &lexer_transitions[46], nullptr},
{9, 1, &lexer_transitions[47], nullptr},
{10, 1, &lexer_transitions[48], nullptr},
{11, 1, &lexer_transitions[49], nullptr},
{12, 1, &lexer_transitions[50], nullptr},
{13, 1, &lexer_transitions[51], nullptr},
{14, 1, &lexer_transitions[52], nullptr},
{15, 1, &lexer_transitions[53], nullptr},
{16, 0, &lexer_transitions[54], &symbols[3]},
{17, 0, &lexer_transitions[54], &symbols[4]},
{18, 0, &lexer_transitions[54], &symbols[5]},
{19, 1, &lexer_transitions[54], &symbols[6]},
{20, 1, &lexer_transitions[55], &symbols[7]},
{21, 0, &lexer_transitions[56], &symbols[8]},
{22, 0, &lexer_transitions[56], &symbols[9]},
{23, 1, &lexer_transitions[56], &symbols[11]},
{24, 0, &lexer_transitions[57], &symbols[12]},
{25, 1, &lexer_transitions[57], &symbols[13]},
{26, 1, &lexer_transitions[58], &symbols[14]},
{27, 0, &lexer_transitions[59], &symbols[15]},
{28, 0, &lexer_transitions[59], &symbols[16]},
{29, 1, &lexer_transitions[59], &symbols[18]},
{30, 0, &lexer_transitions[60], &symbols[17]},
{31, 0, &lexer_transitions[60], &symbols[19]},
{32, 0, &lexer_transitions[60], &symbols[23]},
{33, 0, &lexer_transitions[60], &symbols[24]},
{34, 1, &lexer_transitions[60], &symbols[51]},
{35, 1, &lexer_transitions[61], nullptr},
{36, 1, &lexer_transitions[62], nullptr},
{37, 1, &lexer_transitions[63], nullptr},
{38, 1, &lexer_transitions[64], nullptr},
{39, 0, &lexer_transitions[65], &symbols[37]},
{40, 1, &lexer_transitions[65], &symbols[51]},
{41, 1, &lexer_transitions[66], nullptr},
{42, 1, &lexer_transitions[67], nullptr},
{43, 1, &lexer_transitions[68], nullptr},
{44, 0, &lexer_transitions[69], &symbols[39]},
{45, 1, &lexer_transitions[69], &symbols[51]},
{46, 0, &lexer_transitions[70], &symbols[40]},
{47, 1, &lexer_transitions[70], nullptr},
{48, 1, &lexer_transitions[71], nullptr},
{49, 0, &lexer_transitions[72], &symbols[42]},
{50, 1, &lexer_transitions[72], &symbols[51]},
{51, 1, &lexer_transitions[73], nullptr},
{52, 1, &lexer_transitions[74], nullptr},
{53, 1, &lexer_transitions[75], nullptr},
{54, 0, &lexer_transitions[76], &symbols[43]},
{55, 1, &lexer_transitions[76], &symbols[51]},
{56, 1, &lexer_transitions[77], nullptr},
{57, 1, &lexer_transitions[78], nullptr},
{58, 1, &lexer_transitions[79], nullptr},
{59, 1, &lexer_transitions[80], nullptr},
{60, 0, &lexer_transitions[81], &symbols[44]},
{61, 1, &lexer_transitions[81], &symbols[51]},
{62, 1, &lexer_transitions[82], nullptr},
{63, 1, &lexer_transitions[83], nullptr},
{64, 1, &lexer_transitions[84], nullptr},
{65, 0, &lexer_transitions[85], &symbols[45]},
{66, 1, &lexer_transitions[85], &symbols[51]},
{67, 1, &lexer_transitions[86], nullptr},
{68, 0, &lexer_transitions[87], &symbols[46]},
{69, 0, &lexer_transitions[87], &symbols[47]},
{70, 1, &lexer_transitions[87], &symbols[51]},
{71, 1, &lexer_transitions[88], nullptr},
{72, 1, &lexer_transitions[89], nullptr},
{73, 1, &lexer_transitions[90], nullptr},
{74, 0, &lexer_transitions[91], &symbols[48]},
{75, 0, &lexer_transitions[91], &symbols[50]},
{76, 0, &lexer_transitions[91], &symbols[51]},
{77, 1, &lexer_transitions[91], &symbols[51]},
{78, 1, &lexer_transitions[92], &symbols[51]},
{79, 1, &lexer_transitions[93], nullptr},
{80, 1, &lexer_transitions[94], nullptr},
{81, 1, &lexer_transitions[95], nullptr},
{82, 1, &lexer_transitions[96], nullptr},
{83, 1, &lexer_transitions[97], nullptr},
{84, 0, &lexer_transitions[98], &symbols[52]},
{85, 4, &lexer_transitions[98], &symbols[53]},
{86, 1, &lexer_transitions[102], nullptr},
{87, 3, &lexer_transitions[103], &symbols[54]},
{88, 3, &lexer_transitions[106], nullptr},
{89, 1, &lexer_transitions[109], nullptr},
{90, 1, &lexer_transitions[110], &symbols[54]},
{91, 0, &lexer_transitions[111], &symbols[55]},
{92, 1, &lexer_transitions[111], nullptr},
{0, 40, &lexer_transitions[0], nullptr},
{1, 6, &lexer_transitions[40], &symbols[51]},
{2, 4, &lexer_transitions[46], &symbols[51]},
{3, 4, &lexer_transitions[50], &symbols[51]},
{4, 4, &lexer_transitions[54], &symbols[51]},
{5, 2, &lexer_transitions[58], &symbols[2]},
{6, 1, &lexer_transitions[60], &symbols[10]},
{7, 1, &lexer_transitions[61], nullptr},
{8, 1, &lexer_transitions[62], nullptr},
{9, 1, &lexer_transitions[63], nullptr},
{10, 1, &lexer_transitions[64], nullptr},
{11, 1, &lexer_transitions[65], nullptr},
{12, 1, &lexer_transitions[66], nullptr},
{13, 1, &lexer_transitions[67], nullptr},
{14, 1, &lexer_transitions[68], nullptr},
{15, 1, &lexer_transitions[69], nullptr},
{16, 0, &lexer_transitions[70], &symbols[3]},
{17, 0, &lexer_transitions[70], &symbols[4]},
{18, 0, &lexer_transitions[70], &symbols[5]},
{19, 1, &lexer_transitions[70], &symbols[6]},
{20, 1, &lexer_transitions[71], &symbols[7]},
{21, 0, &lexer_transitions[72], &symbols[8]},
{22, 0, &lexer_transitions[72], &symbols[9]},
{23, 1, &lexer_transitions[72], &symbols[11]},
{24, 0, &lexer_transitions[73], &symbols[12]},
{25, 1, &lexer_transitions[73], &symbols[13]},
{26, 1, &lexer_transitions[74], &symbols[14]},
{27, 0, &lexer_transitions[75], &symbols[15]},
{28, 0, &lexer_transitions[75], &symbols[16]},
{29, 1, &lexer_transitions[75], &symbols[18]},
{30, 0, &lexer_transitions[76], &symbols[17]},
{31, 0, &lexer_transitions[76], &symbols[19]},
{32, 0, &lexer_transitions[76], &symbols[23]},
{33, 0, &lexer_transitions[76], &symbols[24]},
{34, 4, &lexer_transitions[76], &symbols[51]},
{35, 4, &lexer_transitions[80], &symbols[51]},
{36, 4, &lexer_transitions[84], &symbols[51]},
{37, 4, &lexer_transitions[88], &symbols[51]},
{38, 4, &lexer_transitions[92], &symbols[51]},
{39, 2, &lexer_transitions[96], &symbols[37]},
{40, 4, &lexer_transitions[98], &symbols[51]},
{41, 3, &lexer_transitions[102], &symbols[51]},
{42, 4, &lexer_transitions[105], &symbols[51]},
{43, 4, &lexer_transitions[109], &symbols[51]},
{44, 2, &lexer_transitions[113], &symbols[39]},
{45, 4, &lexer_transitions[115], &symbols[51]},
{46, 2, &lexer_transitions[119], &symbols[40]},
{47, 4, &lexer_transitions[121], &symbols[51]},
{48, 4, &lexer_transitions[125], &symbols[51]},
{49, 2, &lexer_transitions[129], &symbols[42]},
{50, 4, &lexer_transitions[131], &symbols[51]},
{51, 4, &lexer_transitions[135], &symbols[51]},
{52, 3, &lexer_transitions[139], &symbols[51]},
{53, 4, &lexer_transitions[142], &symbols[51]},
{54, 2, &lexer_transitions[146], &symbols[43]},
{55, 4, &lexer_transitions[148], &symbols[51]},
{56, 4, &lexer_transitions[152], &symbols[51]},
{57, 4, &lexer_transitions[156], &symbols[51]},
{58, 4, &lexer_transitions[160], &symbols[51]},
{59, 4, &lexer_transitions[164], &symbols[51]},
{60, 2, &lexer_transitions[168], &symbols[44]},
{61, 4, &lexer_transitions[170], &symbols[51]},
{62, 4, &lexer_transitions[174], &symbols[51]},
{63, 4, &lexer_transitions[178], &symbols[51]},
{64, 4, &lexer_transitions[182], &symbols[51]},
{65, 2, &lexer_transitions[186], &symbols[45]},
{66, 3, &lexer_transitions[188], &symbols[51]},
{67, 4, &lexer_transitions[191], &symbols[51]},
{68, 2, &lexer_transitions[195], &symbols[46]},
{69, 0, &lexer_transitions[197], &symbols[47]},
{70, 4, &lexer_transitions[197], &symbols[51]},
{71, 4, &lexer_transitions[201], &symbols[51]},
{72, 4, &lexer_transitions[205], &symbols[51]},
{73, 4, &lexer_transitions[209], &symbols[51]},
{74, 2, &lexer_transitions[213], &symbols[48]},
{75, 0, &lexer_transitions[215], &symbols[50]},
{76, 2, &lexer_transitions[215], &symbols[51]},
{77, 4, &lexer_transitions[217], &symbols[51]},
{78, 4, &lexer_transitions[221], &symbols[51]},
{79, 4, &lexer_transitions[225], &symbols[51]},
{80, 3, &lexer_transitions[229], &symbols[51]},
{81, 4, &lexer_transitions[232], &symbols[51]},
{82, 4, &lexer_transitions[236], &symbols[51]},
{83, 4, &lexer_transitions[240], &symbols[51]},
{84, 2, &lexer_transitions[244], &symbols[51]},
{85, 4, &lexer_transitions[246], &symbols[53]},
{86, 1, &lexer_transitions[250], nullptr},
{87, 3, &lexer_transitions[251], &symbols[54]},
{88, 3, &lexer_transitions[254], nullptr},
{89, 1, &lexer_transitions[257], nullptr},
{90, 1, &lexer_transitions[258], &symbols[54]},
{91, 0, &lexer_transitions[259], &symbols[55]},
{92, 1, &lexer_transitions[259], nullptr},
{-1, 0, nullptr, nullptr}
};
const LexerStateMachine lexer_state_machine =
{
1, // #actions
112, // #transitions
260, // #transitions
93, // #states
lexer_actions, // actions
lexer_transitions, // transitions

View file

@ -82,7 +82,7 @@ oscript {
| id [expr_id]
;
id: "[a-z]";
id: "([a-z]|[A-Z])+";
boolean: "true|false";
integer: "(\+|\-)?[0-9]+";
real: "(\+|\-)?[0-9]+(\.[0-9]+)?((e|E)(\+|\-)?[0-9]+)?";