![]()  | 
  
    s4g
    0.9.2
    
   высокоуровневый, императивный, процедурный, встраиваемый, скриптовый язык программирования общего назначения, написанный на C++. 
   | 
 
Оптимизатор Подробнее...
#include <s4g_optimizer.h>
Открытые статические члены | |
| static void | optimize (s4g_Main *ps4gm) | 
| Выполняет оптимизацию всего AST.  | |
| static bool | isConstNode (S4G_NODE_TYPE node_type) | 
| Является ли нода константной  | |
| static s4g_BaseNode * | calcNode (s4g_BaseNode *pNode) | 
| Выполняет вычисление поддерева AST.  | |
| static void | testBlock (s4g_BaseNode **ppNode) | 
| Выполняет проверки, связаные с блоком  Подробнее... | |
| static void | testStmt (s4g_BaseNode **ppNode) | 
| Выполняет проверки инструкций  | |
| static void | testFor (s4g_BaseNode **ppNode) | 
| Выполняет проверки цикла FOR.  Подробнее... | |
| static void | testIf (s4g_BaseNode **ppNode) | 
| Выполняет проверку переходов условия  Подробнее... | |
| static void | testTable (s4g_BaseNode **ppNode) | 
| Выполняет проверку таблиц  | |
| static bool | checkForSideEffectsCallback (s4g_BaseNode **ppNode) | 
| Проверит выражение на наличие сайд-эффектов(вызовы функций, неявные изменения переменных  | |
Статические защищенные данные | |
| static s4g_Stack< const char * > | m_stSafeVars | 
| Переменные, которые при проверке на сайд-эффекты не учитываются  | |
Оптимизатор
      
  | 
  static | 
Выполняет проверки, связаные с блоком
Проверит блок на наличие новых переменных, если в блоке не создаются новые переменные, можно не создавать контекст Проверит блок на наличие неиспользуемых переменных, выдаст предупреждение, удалит обьявления
      
  | 
  static | 
Выполняет проверки цикла FOR.
Проверка возможности оптимизации цикла FOR.
      
  | 
  static | 
Выполняет проверку переходов условия
Проверка на константность выражения IF.