86 bool matchStatement();
88 bool matchFunctionKW();
90 bool matchFunctionDeclArg();
91 bool matchFunctionDecl();
92 bool matchFunctionExternKW();
93 bool matchFunctionExternArg();
94 bool matchCycleControl();
101 bool matchClassExtendsKW();
102 bool matchClassExtendsArg();
113 void error(
s4g_Lexeme *pLexeme,
const char * szMsg);
115 void resolveExpressions();
116 static bool resolveExpressionsCB(
s4g_BaseNode **ppNode);
120 static s4g_OpNode *getOpNode(
s4g_Lexeme *pLexeme);
134 m_node(PARSER_NODE__NULL),
151 bool operator==(
const TempNode &other)
const 153 if(m_node != other.m_node)
159 return(m_pLex->
m_type == other.m_pLex->m_type
160 &&m_pLex->
m_idWord == other.m_pLex->m_idWord);
164 bool operator<(
const TempNode &other)
const 166 if(m_node != other.m_node)
168 return(m_node < other.m_node);
172 if(m_pLex->
m_type != other.m_pLex->m_type)
174 return(m_pLex->
m_type < other.m_pLex->m_type);
176 return(m_pLex->
m_idWord < other.m_pLex->m_idWord);
183 void putNode(TempNode node,
int iReplace = 1);
184 void error(TempNode *pNode,
const char * szMsg);
186 s4g_Lexeme *findLeftmostLexeme(TempNode *pNode);
206 static bool findLeftmostLexemeCB(
s4g_BaseNode **ppNode);
базовый класс нода АСТ
Definition: s4g_parse.h:568
Инструкция
Definition: s4g_parser.h:62
Заголовочный файл с основными типами и данными для парсинга кода
Аргумент для extern.
Definition: s4g_parser.h:36
Аргумент обьявления функции
Definition: s4g_parser.h:34
Заголовок для FOR.
Definition: s4g_parser.h:42
S4G_LEXEME_TYPE m_type
тип лексемы
Definition: s4g_parse.h:351
Оператор возврата
Definition: s4g_parser.h:63
Заголовок класса
Definition: s4g_parser.h:45
Выражение
Definition: s4g_parser.h:60
Символ мультиаргумента
Definition: s4g_parser.h:35
PARSER_NODE
Промежуточные синтаксические ноды
Definition: s4g_parser.h:21
Заголовочный файл основы взаимодествия хоста со скриптами
Завершенное обьявление переменной
Definition: s4g_parser.h:55
Стек, а точнее простой динамический массив с элементами стека
Definition: s4g_stack.h:22
Инструкция
Definition: s4g_parser.h:61
лексема
Definition: s4g_parse.h:342
Обьявление переменной
Definition: s4g_parser.h:54
Заголовок для WHILE.
Definition: s4g_parser.h:40
DO.
Definition: s4g_parser.h:66
Функция
Definition: s4g_parser.h:30
Аргумент для extends класса
Definition: s4g_parser.h:47
Таблица
Definition: s4g_parser.h:58
вся программа
Definition: s4g_parser.h:25
Ключевое слово function.
Definition: s4g_parser.h:32
Левое значение (в него можно присваивать)
Definition: s4g_parser.h:52
ключевое слово extern.
Definition: s4g_parser.h:33
лексический анализатор
Definition: s4g_lexer.h:99
S4G_LEXEME_TYPE
типы лексем
Definition: s4g_parse.h:319
Класс
Definition: s4g_parser.h:27
Нода содержит лексему, в противном случае часть поддерева AST.
Definition: s4g_parser.h:24
Оператор управления циклом
Definition: s4g_parser.h:64
Ключевое слово extends класса
Definition: s4g_parser.h:46
Заголовок для IF.
Definition: s4g_parser.h:38
ID m_idWord
порядковый номер лексемы из массива слов к которому она относится
Definition: s4g_parse.h:352
Заголовок функции
Definition: s4g_parser.h:31
Правое значение (в него нельзя присваивать)
Definition: s4g_parser.h:51
DO.
Definition: s4g_parser.h:67
Условие IF.
Definition: s4g_parser.h:37
Блок
Definition: s4g_parser.h:56
Заголовочный файл с основными типами данных
Цикл WHILE.
Definition: s4g_parser.h:39
Цикл FOR.
Definition: s4g_parser.h:41