+extern tAST_Script *AST_NewScript(void);
+extern size_t AST_WriteScript(void *Buffer, tAST_Script *Script);
+extern size_t AST_WriteNode(void *Buffer, size_t Offset, tAST_Node *Node);
+
+extern tAST_Function *AST_AppendFunction(tAST_Script *Script, const char *Name, int ReturnType);
+extern void AST_AppendFunctionArg(tAST_Function *Function, tAST_Node *Arg);
+extern void AST_SetFunctionCode(tAST_Function *Function, tAST_Node *Root);
+
+extern tAST_Node *AST_NewNop(tParser *Parser);
+
+extern tAST_Node *AST_NewString(tParser *Parser, const char *String, int Length);
+extern tAST_Node *AST_NewInteger(tParser *Parser, int64_t Value);
+extern tAST_Node *AST_NewReal(tParser *Parser, double Value);
+extern tAST_Node *AST_NewVariable(tParser *Parser, const char *Name);
+extern tAST_Node *AST_NewDefineVar(tParser *Parser, int Type, const char *Name);
+extern tAST_Node *AST_NewConstant(tParser *Parser, const char *Name);
+extern tAST_Node *AST_NewClassElement(tParser *Parser, tAST_Node *Object, const char *Name);
+
+extern tAST_Node *AST_NewFunctionCall(tParser *Parser, const char *Name);
+extern tAST_Node *AST_NewCreateObject(tParser *Parser, const char *Name);
+extern tAST_Node *AST_NewMethodCall(tParser *Parser, tAST_Node *Object, const char *Name);
+extern void AST_AppendFunctionCallArg(tAST_Node *Node, tAST_Node *Arg);