16 #define S4G_MAX_LEN_KEY_WORD_DEF 10 77 S4G_KW_LANG_PROTECTED,
100 S4G_KW_PP_INCLUDE = 0,
122 S4G_KC_DELIMITER_SEMICOLON = 0,
123 S4G_KC_DELIMITER_COMMA
136 S4G_KC_GROUPEXPR_BEGIN = 0,
149 S4G_KC_GROUPDATA_BEGIN = 0,
164 S4G_KC_A2O_TABLE_GETS_BEGIN = 0,
165 S4G_KC_A2O_TABLE_GETS_END,
166 S4G_KC_A2O_CLASS_GET,
167 S4G_KC_A2O_TABLE_GETN
195 S4G_KC_ARITHMETIC_ADD = 0,
196 S4G_KC_ARITHMETIC_SUB,
197 S4G_KC_ARITHMETIC_MUL,
198 S4G_KC_ARITHMETIC_DIV,
199 S4G_KC_ARITHMETIC_MOD,
221 S4G_KC_LOGIC_AND = 0,
272 S4G_KC_ASSIGN_ARITHMETIC_ADD = 0,
273 S4G_KC_ASSIGN_ARITHMETIC_SUB,
274 S4G_KC_ASSIGN_ARITHMETIC_MUL,
275 S4G_KC_ASSIGN_ARITHMETIC_DIV,
276 S4G_KC_ASSIGN_ARITHMETIC_MOD,
278 S4G_KC_ASSIGN_ARITHMETIC_INCR,
279 S4G_KC_ASSIGN_ARITHMETIC_DECR
296 S4G_KC_ASSIGN_BIT_XOR = 0,
298 S4G_KC_ASSIGN_BIT_SHIFTR,
299 S4G_KC_ASSIGN_BIT_SHIFTL,
300 S4G_KC_ASSIGN_BIT_AND,
366 S4G_NODE_TYPE_STMT_CHAIN,
367 S4G_NODE_TYPE_TBL_ITEM,
369 S4G_NODE_TYPE_DECLVAR,
370 S4G_NODE_TYPE_DECLVAREND,
372 S4G_NODE_TYPE_ACCESS_DOT,
373 S4G_NODE_TYPE_ACCESS_SQUARE,
374 S4G_NODE_TYPE_ACCESS_SQUARE_NUM,
375 S4G_NODE_TYPE_ACCESS_SQUARE_APPEND,
378 S4G_NODE_TYPE_VAR_PREINCR,
379 S4G_NODE_TYPE_VAR_PREDECR,
380 S4G_NODE_TYPE_VAR_POSTINCR,
381 S4G_NODE_TYPE_VAR_POSTDECR,
386 S4G_NODE_TYPE_BLOCK_NO_CTX,
396 S4G_NODE_TYPE_STRING,
397 S4G_NODE_TYPE_CONST_DATA,
399 S4G_NODE_TYPE_FUNCTION,
411 S4G_NODE_TYPE_ASSIGN,
412 S4G_NODE_TYPE_ASSIGN_ADD,
413 S4G_NODE_TYPE_ASSIGN_SUB,
414 S4G_NODE_TYPE_ASSIGN_MUL,
415 S4G_NODE_TYPE_ASSIGN_DIV,
416 S4G_NODE_TYPE_ASSIGN_MOD,
417 S4G_NODE_TYPE_ASSIGN_BXOR,
419 S4G_NODE_TYPE_ASSIGN_BRSH,
420 S4G_NODE_TYPE_ASSIGN_BLSH,
421 S4G_NODE_TYPE_ASSIGN_BAND,
422 S4G_NODE_TYPE_ASSIGN_BOR,
425 S4G_NODE_TYPE_PREINCR,
426 S4G_NODE_TYPE_PREDECR,
427 S4G_NODE_TYPE_POSTINCR,
428 S4G_NODE_TYPE_POSTDECR,
430 S4G_NODE_TYPE_NEGATE,
440 S4G_NODE_TYPE_RETURN,
453 S4G_NODE_TYPE_BIT_AND,
454 S4G_NODE_TYPE_BIT_OR,
455 S4G_NODE_TYPE_BIT_XOR,
456 S4G_NODE_TYPE_BIT_NOT,
457 S4G_NODE_TYPE_BIT_SHIFTR,
458 S4G_NODE_TYPE_BIT_SHIFTL,
460 S4G_NODE_TYPE_LOG_NOT,
461 S4G_NODE_TYPE_LOG_EQ,
462 S4G_NODE_TYPE_LOG_NEQ,
463 S4G_NODE_TYPE_LOG_GT,
464 S4G_NODE_TYPE_LOG_LT,
465 S4G_NODE_TYPE_LOG_GE,
466 S4G_NODE_TYPE_LOG_LE,
467 S4G_NODE_TYPE_LOG_NEQT,
468 S4G_NODE_TYPE_LOG_EQT,
469 S4G_NODE_TYPE_LOG_AND,
470 S4G_NODE_TYPE_LOG_OR,
473 S4G_NODE_TYPE_CONTINUE,
478 S4G_NODE_TYPE_CLASS_VAR,
479 S4G_NODE_TYPE_NEW_OBJ,
488 S4G_NODE_TYPE_LOG_AND,
489 S4G_NODE_TYPE_LOG_OR,
490 S4G_NODE_TYPE_BIT_XOR,
491 S4G_NODE_TYPE_BIT_NOT,
492 S4G_NODE_TYPE_BIT_SHIFTR,
493 S4G_NODE_TYPE_BIT_SHIFTL,
494 S4G_NODE_TYPE_LOG_NEQT,
495 S4G_NODE_TYPE_LOG_EQ,
496 S4G_NODE_TYPE_LOG_NEQ,
497 S4G_NODE_TYPE_LOG_GE,
498 S4G_NODE_TYPE_LOG_LE,
499 S4G_NODE_TYPE_LOG_GT,
500 S4G_NODE_TYPE_LOG_LT,
501 S4G_NODE_TYPE_LOG_NOT,
502 S4G_NODE_TYPE_LOG_EQT,
503 S4G_NODE_TYPE_BIT_AND,
504 S4G_NODE_TYPE_BIT_OR,
512 case S4G_NODE_TYPE_BIT_NOT:
515 case S4G_NODE_TYPE_LOG_NOT:
518 case S4G_NODE_TYPE_MUL:
519 case S4G_NODE_TYPE_DIV:
520 case S4G_NODE_TYPE_MOD:
523 case S4G_NODE_TYPE_ADD:
524 case S4G_NODE_TYPE_SUB:
527 case S4G_NODE_TYPE_BIT_SHIFTR:
528 case S4G_NODE_TYPE_BIT_SHIFTL:
531 case S4G_NODE_TYPE_LOG_GT:
532 case S4G_NODE_TYPE_LOG_GE:
533 case S4G_NODE_TYPE_LOG_LT:
534 case S4G_NODE_TYPE_LOG_LE:
537 case S4G_NODE_TYPE_LOG_EQ:
538 case S4G_NODE_TYPE_LOG_EQT:
539 case S4G_NODE_TYPE_LOG_NEQ:
540 case S4G_NODE_TYPE_LOG_NEQT:
543 case S4G_NODE_TYPE_BIT_AND:
546 case S4G_NODE_TYPE_BIT_XOR:
549 case S4G_NODE_TYPE_BIT_OR:
552 case S4G_NODE_TYPE_LOG_AND:
555 case S4G_NODE_TYPE_LOG_OR:
572 m_type = S4G_NODE_TYPE_BEGIN; m_pLexeme = pLexeme; m_pVariable = pVariable;
583 virtual void debugPrint()
587 virtual String dumpChilds()
594 String out =
"{type:'";
595 out += TypeStr(m_type);
598 out +=
",value:null";
710 out += m_pNext->Dump();
723 case S4G_NODE_TYPE_BEGIN:
return(
"BEGIN");
725 case S4G_NODE_TYPE_BLOCK:
return(
"BLOCK");
726 case S4G_NODE_TYPE_EXPR:
return(
"EXPR");
727 case S4G_NODE_TYPE_VAR:
return(
"VAR");
728 case S4G_NODE_TYPE_DECLVAREND:
return(
"DECLVAREND");
729 case S4G_NODE_TYPE_ARRAY:
return(
"ARRAY");
730 case S4G_NODE_TYPE_NULL:
return(
"NULL");
731 case S4G_NODE_TYPE_FLOAT:
return(
"FLOAT");
732 case S4G_NODE_TYPE_INT:
return(
"INT");
734 case S4G_NODE_TYPE_UINT:
return(
"UINT");
736 case S4G_NODE_TYPE_STRING:
return(
"STRING");
738 case S4G_NODE_TYPE_FUNCTION:
return(
"FUNCTION");
740 case S4G_NODE_TYPE_MARG:
return(
"MARG");
745 case S4G_NODE_TYPE_CALL:
return(
"CALL");
746 case S4G_NODE_TYPE_ADD:
return(
"ADD");
747 case S4G_NODE_TYPE_SUB:
return(
"SUB");
748 case S4G_NODE_TYPE_MUL:
return(
"MUL");
749 case S4G_NODE_TYPE_DIV:
return(
"DIV");
752 case S4G_NODE_TYPE_RETURN:
return(
"RETURN");
753 case S4G_NODE_TYPE_STMT:
return(
"STMT");
754 case S4G_NODE_TYPE_STMT_CHAIN:
return(
"STMT_CHAIN");
755 case S4G_NODE_TYPE_ID:
return(
"ID");
756 case S4G_NODE_TYPE_IF:
return(
"IF");
757 case S4G_NODE_TYPE_WHILE:
return(
"WHILE");
758 case S4G_NODE_TYPE_FOR:
return(
"FOR");
759 case S4G_NODE_TYPE_MOD:
return(
"MOD");
760 case S4G_NODE_TYPE_BIT_AND:
return(
"BIT_AND");
761 case S4G_NODE_TYPE_BIT_OR:
return(
"BIT_OR");
762 case S4G_NODE_TYPE_BIT_XOR:
return(
"BIT_XOR");
763 case S4G_NODE_TYPE_BIT_NOT:
return(
"BIT_NOT");
764 case S4G_NODE_TYPE_BIT_SHIFTR:
return(
"BIT_SHIFTR");
765 case S4G_NODE_TYPE_BIT_SHIFTL:
return(
"BIT_SHIFTL");
766 case S4G_NODE_TYPE_LOG_NOT:
return(
"LOG_NOT");
767 case S4G_NODE_TYPE_LOG_EQ:
return(
"LOG_EQ");
768 case S4G_NODE_TYPE_LOG_NEQ:
return(
"LOG_NEQ");
769 case S4G_NODE_TYPE_LOG_GT:
return(
"LOG_GT");
770 case S4G_NODE_TYPE_LOG_LT:
return(
"LOG_LT");
771 case S4G_NODE_TYPE_LOG_GE:
return(
"LOG_GE");
772 case S4G_NODE_TYPE_LOG_LE:
return(
"LOG_LE");
773 case S4G_NODE_TYPE_LOG_NEQT:
return(
"LOG_NEQT");
774 case S4G_NODE_TYPE_LOG_EQT:
return(
"LOG_EQT");
775 case S4G_NODE_TYPE_LOG_AND:
return(
"LOG_AND");
776 case S4G_NODE_TYPE_LOG_OR:
return(
"LOG_OR");
777 case S4G_NODE_TYPE_BREAK:
return(
"BREAK");
778 case S4G_NODE_TYPE_CONTINUE:
return(
"CONTINUE");
779 case S4G_NODE_TYPE_CHAIN:
return(
"CHAIN");
780 case S4G_NODE_TYPE_DO:
return(
"DO");
781 case S4G_NODE_TYPE_DECLVAR:
return(
"DECLVAR");
782 case S4G_NODE_TYPE_ACCESS_DOT:
return(
"ACCESS_DOT");
783 case S4G_NODE_TYPE_ACCESS_SQUARE:
return(
"ACCESS_SQUARE");
784 case S4G_NODE_TYPE_ASSIGN:
return(
"ASSIGN");
785 case S4G_NODE_TYPE_ASSIGN_ADD:
return(
"ASSIGN_ADD");
786 case S4G_NODE_TYPE_ASSIGN_SUB:
return(
"ASSIGN_SUB");
787 case S4G_NODE_TYPE_ASSIGN_MUL:
return(
"ASSIGN_MUL");
788 case S4G_NODE_TYPE_ASSIGN_DIV:
return(
"ASSIGN_DIV");
789 case S4G_NODE_TYPE_ASSIGN_MOD:
return(
"ASSIGN_MOD");
790 case S4G_NODE_TYPE_ASSIGN_BXOR:
return(
"ASSIGN_BXOR");
792 case S4G_NODE_TYPE_ASSIGN_BRSH:
return(
"ASSIGN_BRSH");
793 case S4G_NODE_TYPE_ASSIGN_BLSH:
return(
"ASSIGN_BLSH");
794 case S4G_NODE_TYPE_ASSIGN_BAND:
return(
"ASSIGN_BAND");
795 case S4G_NODE_TYPE_ASSIGN_BOR:
return(
"ASSIGN_BOR");
796 case S4G_NODE_TYPE_PREINCR:
return(
"PREINCR");
797 case S4G_NODE_TYPE_PREDECR:
return(
"PREDECR");
798 case S4G_NODE_TYPE_POSTINCR:
return(
"POSTINCR");
799 case S4G_NODE_TYPE_POSTDECR:
return(
"POSTDECR");
800 case S4G_NODE_TYPE_NEGATE:
return(
"NEGATE");
801 case S4G_NODE_TYPE_CLASS:
return(
"CLASS");
802 case S4G_NODE_TYPE_CLASS_VAR:
return(
"CLASS_VAR");
803 case S4G_NODE_TYPE_NEW_OBJ:
return(
"NEW_OBJ");
804 case S4G_NODE_TYPE_TABLE:
return(
"TABLE");
805 case S4G_NODE_TYPE_CONST_DATA:
return(
"CONST_DATA");
806 case S4G_NODE_TYPE_BLOCK_NO_CTX:
return(
"BLOCK_NO_CTX");
807 case S4G_NODE_TYPE_BOOL:
return(
"BOOL");
808 case S4G_NODE_TYPE_TBL_ITEM:
return(
"TBL_ITEM");
809 case S4G_NODE_TYPE_ACCESS_SQUARE_NUM:
return(
"ACCESS_SQUARE_NUM");
810 case S4G_NODE_TYPE_ACCESS_SQUARE_APPEND:
return(
"ACCESS_SQUARE_APPEND");
811 default:
return(
"UNKNOWN");
816 #define DEFINE_NODE(node) struct node: public s4g_BaseNode 817 #define DEFINE_NODE_CONSTRUCTOR(node, type) node(s4g_Lexeme *pLexeme = NULL, s4g_Variable *pVariable = 0): \ 818 s4g_BaseNode(pLexeme, pVariable) \ 823 DEFINE_NODE(s4g_ClassNode)
825 DEFINE_NODE_CONSTRUCTOR(s4g_ClassNode, S4G_NODE_TYPE_CLASS);
833 virtual String dumpChilds()
839 out += m_pName->Dump();
848 out += m_pExtends->Dump();
857 out += m_pVars->Dump();
866 out += m_pFunctions->Dump();
875 out += m_pClasses->Dump();
885 DEFINE_NODE(s4g_OpNode)
896 virtual String dumpChilds()
902 out += m_pLeft->Dump();
911 out += m_pRight->Dump();
920 DEFINE_NODE(s4g_AssignNode)
931 virtual String dumpChilds()
937 out += m_pLeft->Dump();
946 out += m_pRight->Dump();
955 DEFINE_NODE(s4g_ExprTmpNode)
960 m_type = S4G_NODE_TYPE_EXPR;
966 s4g_ExprTmpNode *m_pExprNext;
968 virtual String dumpChilds()
974 out += m_pExpr->Dump();
983 out += m_pExprNext->Dump();
993 DEFINE_NODE(s4g_ConstNode)
1001 m_type = S4G_NODE_TYPE_FLOAT;
1004 m_type = S4G_NODE_TYPE_STRING;
1007 m_type = S4G_NODE_TYPE_INT;
1010 m_type = S4G_NODE_TYPE_UINT;
1015 case S4G_KW_LANG_NULL:
1016 m_type = S4G_NODE_TYPE_NULL;
1018 case S4G_KW_LANG_TRUE:
1019 case S4G_KW_LANG_FALSE:
1020 m_type = S4G_NODE_TYPE_BOOL;
1027 DEFINE_NODE(s4g_ClassVarNode)
1029 DEFINE_NODE_CONSTRUCTOR(s4g_ClassVarNode, S4G_NODE_TYPE_CLASS_VAR);
1032 DEFINE_NODE(s4g_VarNode)
1034 DEFINE_NODE_CONSTRUCTOR(s4g_VarNode, S4G_NODE_TYPE_VAR);
1037 DEFINE_NODE(s4g_ArrayNode)
1039 DEFINE_NODE_CONSTRUCTOR(s4g_ArrayNode, S4G_NODE_TYPE_ARRAY);
1041 virtual String dumpChilds()
1047 out += m_pItems->Dump();
1057 DEFINE_NODE(s4g_TableNode)
1059 DEFINE_NODE_CONSTRUCTOR(s4g_TableNode, S4G_NODE_TYPE_TABLE);
1061 virtual String dumpChilds()
1067 out += m_pItems->Dump();
1077 DEFINE_NODE(s4g_BlockNode)
1079 DEFINE_NODE_CONSTRUCTOR(s4g_BlockNode, S4G_NODE_TYPE_BLOCK);
1081 virtual String dumpChilds()
1087 out += m_pItems->Dump();
1097 DEFINE_NODE(s4g_StatementNode)
1099 DEFINE_NODE_CONSTRUCTOR(s4g_StatementNode, S4G_NODE_TYPE_STMT);
1101 virtual String dumpChilds()
1107 out += m_pWhat->Dump();
1117 DEFINE_NODE(s4g_ReturnNode)
1119 DEFINE_NODE_CONSTRUCTOR(s4g_ReturnNode, S4G_NODE_TYPE_RETURN);
1121 virtual String dumpChilds()
1127 out += m_pWhat->Dump();
1137 DEFINE_NODE(s4g_BreakNode)
1139 DEFINE_NODE_CONSTRUCTOR(s4g_BreakNode, S4G_NODE_TYPE_BREAK);
1141 virtual String dumpChilds()
1147 out += m_pWhat->Dump();
1156 DEFINE_NODE(s4g_ContinueNode)
1158 DEFINE_NODE_CONSTRUCTOR(s4g_ContinueNode, S4G_NODE_TYPE_CONTINUE);
1161 DEFINE_NODE(s4g_IDnode)
1163 DEFINE_NODE_CONSTRUCTOR(s4g_IDnode, S4G_NODE_TYPE_ID);
1166 DEFINE_NODE(s4g_DeclVarNode)
1168 DEFINE_NODE_CONSTRUCTOR(s4g_DeclVarNode, S4G_NODE_TYPE_DECLVAR);
1171 DEFINE_NODE(s4g_CallNode)
1173 DEFINE_NODE_CONSTRUCTOR(s4g_CallNode, S4G_NODE_TYPE_CALL);
1177 virtual String dumpChilds()
1183 out += m_pWhat->Dump();
1192 out += m_pArgs->Dump();
1201 DEFINE_NODE(s4g_NewObjNode)
1203 DEFINE_NODE_CONSTRUCTOR(s4g_NewObjNode, S4G_NODE_TYPE_NEW_OBJ);
1207 virtual String dumpChilds()
1213 out += m_pWhat->Dump();
1222 out += m_pArgs->Dump();
1232 DEFINE_NODE(s4g_FunctionNode)
1234 DEFINE_NODE_CONSTRUCTOR(s4g_FunctionNode, S4G_NODE_TYPE_FUNCTION);
1241 virtual String dumpChilds()
1247 out += m_pName->Dump();
1256 out += m_pArgs->Dump();
1266 out += m_pExterns->Dump();
1275 out += m_pBody->Dump();
1285 DEFINE_NODE(s4g_IfNode)
1287 DEFINE_NODE_CONSTRUCTOR(s4g_IfNode, S4G_NODE_TYPE_IF);
1293 virtual String dumpChilds()
1299 out += m_pCond->Dump();
1308 out += m_pThen->Dump();
1318 out += m_pElse->Dump();
1328 DEFINE_NODE(s4g_WhileNode)
1330 DEFINE_NODE_CONSTRUCTOR(s4g_WhileNode, S4G_NODE_TYPE_WHILE);
1335 virtual String dumpChilds()
1341 out += m_pCond->Dump();
1351 out += m_pBody->Dump();
1361 DEFINE_NODE(s4g_ForNode)
1363 DEFINE_NODE_CONSTRUCTOR(s4g_ForNode, S4G_NODE_TYPE_FOR);
1370 virtual String dumpChilds()
1376 out += m_pInit->Dump();
1385 out += m_pCond->Dump();
1394 out += m_pStep->Dump();
1404 out += m_pBody->Dump();
1419 m_type = type; m_idLexeme = idLexeme; m_pVariable = pVariable; m_pOp1 = pOp1; m_pOp2 = pOp2; m_pOp3 = pOp3;
1431 Array<s4g_Node*> ops;
базовый класс нода АСТ
Definition: s4g_parse.h:568
String m_sLexeme
строковое представление лексемы
Definition: s4g_parse.h:349
S4G_KW_LANG
идентификаторы ключевых слов языка
Definition: s4g_parse.h:52
const char g_aKeycharsGroupExpr[][S4G_MAX_LEN_KEY_WORD_DEF]
символы группировки выражений
Definition: s4g_parse.h:127
слово препроцессора
Definition: s4g_parse.h:327
int s4g_get_priority(S4G_NODE_TYPE op)
вычисление приоритетов операции
Definition: s4g_parse.h:508
ID m_idFile
порядковый номер файла
Definition: s4g_parse.h:353
S4G_KC_A2O
идентификаторы символов обращения к данным
Definition: s4g_parse.h:162
S4G_KC_ASSIGN_BIT
идентификаторы символов битовых операций с присваиванием
Definition: s4g_parse.h:294
S4G_LEXEME_TYPE m_type
тип лексемы
Definition: s4g_parse.h:351
переменное количество аргументов
Definition: s4g_parse.h:328
S4G_NODE_TYPE m_type
тип нода
Definition: s4g_parse.h:576
const char s4g_key_syms_comment_ms[][S4G_MAX_LEN_KEY_WORD_DEF]
!! снести после проверки препроцессора
Definition: s4g_parse.h:313
const char g_aKeycharsAssignBit[][S4G_MAX_LEN_KEY_WORD_DEF]
символы битовых операций с присваиванием
Definition: s4g_parse.h:283
символ обращения к объекту
Definition: s4g_parse.h:338
const char g_aKeycharsGroupData[][S4G_MAX_LEN_KEY_WORD_DEF]
символы группировки данных
Definition: s4g_parse.h:141
s4g_BaseNode * m_pNext
продолжение
Definition: s4g_parse.h:580
const char g_aKeycharsAccess2Object[][S4G_MAX_LEN_KEY_WORD_DEF]
символы обращения к данным
Definition: s4g_parse.h:154
const char g_aKeycharsBit[][S4G_MAX_LEN_KEY_WORD_DEF]
символы битовых операций
Definition: s4g_parse.h:235
арифметический символ и присвоение
Definition: s4g_parse.h:334
S4G_KC_BIT
идентификаторы символов битовых операций
Definition: s4g_parse.h:246
S4G_KC_LOGIC
идентификаторы символов логических операций
Definition: s4g_parse.h:219
const char g_aKeycharsLogic[][S4G_MAX_LEN_KEY_WORD_DEF]
символы логических операций
Definition: s4g_parse.h:203
S4G_NODE_TYPE
типы нодов
Definition: s4g_parse.h:357
s4g_Variable * m_pVariable
значение если надо
Definition: s4g_parse.h:578
лексема
Definition: s4g_parse.h:342
S4G_KC_GROUPDATA
идентификаторы символов группировки данных
Definition: s4g_parse.h:147
символ разделителя
Definition: s4g_parse.h:329
int m_numStr
номер строки на которой находится лексема
Definition: s4g_parse.h:350
const char g_aKeycharsArithmetic[][S4G_MAX_LEN_KEY_WORD_DEF]
символы арифметических операций
Definition: s4g_parse.h:183
целое беззнаковое число
Definition: s4g_parse.h:325
нод, ключевой объект в абстрактном синтаксическом дереве
Definition: s4g_parse.h:1415
символ битовых операций
Definition: s4g_parse.h:332
const char s4g_key_syms_comment_os[][S4G_MAX_LEN_KEY_WORD_DEF]
!! снести после проверки препроцессора
Definition: s4g_parse.h:307
const char g_aKeywordsLang[][S4G_MAX_LEN_KEY_WORD_DEF]
ключевые слова языка
Definition: s4g_parse.h:22
const char g_aKeycharsAssignArithmetic[][S4G_MAX_LEN_KEY_WORD_DEF]
символы арифметических операций с присваиванием
Definition: s4g_parse.h:257
S4G_KC_GROUPEXPR
идентификаторы символов группировки выражений
Definition: s4g_parse.h:134
символ присвоения
Definition: s4g_parse.h:333
S4G_KW_PP
идентификаторы ключевых слов препроцессора
Definition: s4g_parse.h:97
S4G_KC_DELIMITER
идентификаторы символов разделителей
Definition: s4g_parse.h:120
S4G_LEXEME_TYPE
типы лексем
Definition: s4g_parse.h:319
число с плавающей запятой
Definition: s4g_parse.h:323
S4G_KC_ARITHMETIC
идентификаторы символов арифметических операций
Definition: s4g_parse.h:193
const char g_aKeycharsAssign[][S4G_MAX_LEN_KEY_WORD_DEF]
символы присваивания
Definition: s4g_parse.h:171
символ группировки выражений
Definition: s4g_parse.h:336
const char g_aKeycharsDelimiter[][S4G_MAX_LEN_KEY_WORD_DEF]
символы разделители
Definition: s4g_parse.h:113
ID m_idWord
порядковый номер лексемы из массива слов к которому она относится
Definition: s4g_parse.h:352
символ битовой операции и присвоение
Definition: s4g_parse.h:335
символ группировки данных
Definition: s4g_parse.h:337
переменная
Definition: s4g_types.h:101
арифметический символ
Definition: s4g_parse.h:330
S4G_KC_AASSIGN
идентификаторы символов присваивания
Definition: s4g_parse.h:177
S4G_KC_ASSIGN_ARITHMETIC
идентификаторы символов арифметических операций с присваиванием
Definition: s4g_parse.h:270
Заголовочный файл с основными типами данных
целое знаковое число
Definition: s4g_parse.h:324
const char g_aKeywordsPreproc[][S4G_MAX_LEN_KEY_WORD_DEF]
ключевые слова препроцессора
Definition: s4g_parse.h:82
пользовательское слово
Definition: s4g_parse.h:321
ключевое слово языка
Definition: s4g_parse.h:326
s4g_Lexeme * m_pLexeme
id лексемы которая способствовала генерации данного нода
Definition: s4g_parse.h:577
символ логических операций
Definition: s4g_parse.h:331
строка
Definition: s4g_parse.h:322