27 #ifndef s4g_optimizer_h    28 #define s4g_optimizer_h    64     static void warning(
s4g_BaseNode *pNode, 
const char *szMsg);
    66     static int m_iUpdates;
    70     static bool m_bExprHasSideEffects;
 Заголовочный файл синтаксического анализатора 
 
базовый класс нода АСТ 
Definition: s4g_parse.h:568
 
Оптимизатор 
Definition: s4g_optimizer.h:34
 
static void testTable(s4g_BaseNode **ppNode)
Выполняет проверку таблиц 
Definition: s4g_optimizer.cpp:140
 
static void testStmt(s4g_BaseNode **ppNode)
Выполняет проверки инструкций 
Definition: s4g_optimizer.cpp:216
 
static s4g_Stack< const char * > m_stSafeVars
Переменные, которые при проверке на сайд-эффекты не учитываются 
Definition: s4g_optimizer.h:73
 
static s4g_BaseNode * calcNode(s4g_BaseNode *pNode)
Выполняет вычисление поддерева AST. 
Definition: s4g_optimizer.cpp:438
 
Стек, а точнее простой динамический массив с элементами стека 
Definition: s4g_stack.h:22
 
S4G_NODE_TYPE
типы нодов 
Definition: s4g_parse.h:357
 
static void testFor(s4g_BaseNode **ppNode)
Выполняет проверки цикла FOR. 
Definition: s4g_optimizer.cpp:157
 
static void testIf(s4g_BaseNode **ppNode)
Выполняет проверку переходов условия 
Definition: s4g_optimizer.cpp:98
 
static bool isConstNode(S4G_NODE_TYPE node_type)
Является ли нода константной 
Definition: s4g_optimizer.cpp:427
 
static bool checkForSideEffectsCallback(s4g_BaseNode **ppNode)
Проверит выражение на наличие сайд-эффектов(вызовы функций, неявные изменения переменных ...
Definition: s4g_optimizer.cpp:240
 
static void testBlock(s4g_BaseNode **ppNode)
Выполняет проверки, связаные с блоком 
Definition: s4g_optimizer.cpp:279
 
основа взаимодествия 
Definition: s4g_main.h:45
 
static void optimize(s4g_Main *ps4gm)
Выполняет оптимизацию всего AST. 
Definition: s4g_optimizer.cpp:19