s4g  0.9.2
высокоуровневый, императивный, процедурный, встраиваемый, скриптовый язык программирования общего назначения, написанный на C++.
s4g_compiler.h
См. документацию.
1 
2 /*
3 Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
4 license MIT see in LICENSE or
5 https://s4g.su/
6 */
7 
16 #ifndef s4g_compiler_h
17 #define s4g_compiler_h
18 
19 #include "s4g_types.h"
20 #include "s4g_parse.h"
21 #include "s4g_main.h"
22 
25 {
26 public:
27  s4g_Compiler(){ s4gm = 0; comms = 0; }
28  ~s4g_Compiler(){}
29 
31  inline void gen(S4G_VM_COMMAND comm, s4g_Variable* val, ID numFile, ID numStr, long _second_data = 0);
32 
34  int compile(s4g_BaseNode* node, s4g_Stack<s4g_Command> * commands);
36  int compile2(s4g_BaseNode* node);
37 
38  void error(s4g_BaseNode *pLexeme, const char * szMsg);
40  //void inflateClass(s4g_Class *pClass, s4g_ClassNode *pClassNode);
41 
43  s4g_Variable *compileFunction(s4g_FunctionNode *pNode);
44 
45  //protected:
47  s4g_Main *s4gm;
48  struct _cyctl
49  {
50  int addr;
51  enum
52  {
53  BREAK,
54  CONTINUE
55  }
56  type;
57  };
58  s4g_Stack<Array<_cyctl>> cyctls_bak;
59  Array<_cyctl> cyctls;
60 
61  bool m_isError;
62 };
63 
65 
66 #endif
базовый класс нода АСТ
Definition: s4g_parse.h:568
Заголовочный файл с основными типами и данными для парсинга кода
int compile2(s4g_BaseNode *node)
Компилирует узел AST.
Definition: s4g_compiler.cpp:31
Заголовочный файл основы взаимодествия хоста со скриптами
void gen(S4G_VM_COMMAND comm, s4g_Variable *val, ID numFile, ID numStr, long _second_data=0)
Генерирует команду и помещает ее в массив команд
Definition: s4g_compiler.cpp:19
s4g_Variable * compileFunction(s4g_FunctionNode *pNode)
Компилирует функцию
Definition: s4g_compiler.cpp:836
компилятор
Definition: s4g_compiler.h:24
S4G_VM_COMMAND
команды виртуальной машины
Definition: s4g_types.h:411
int compile(s4g_BaseNode *node, s4g_Stack< s4g_Command > *commands)
Компилирует AST в массив commands.
Definition: s4g_compiler.cpp:24
основа взаимодествия
Definition: s4g_main.h:45
переменная
Definition: s4g_types.h:101
Заголовочный файл с основными типами данных