SpiderScript - A day of debugging and improvements
[tpg/acess2.git] / Usermode / Libraries / libspiderscript.so_src / ast.h
index 7c0d303..1118130 100644 (file)
@@ -115,11 +115,6 @@ struct sAST_Node
                        tAST_Node       *Right;
                }       BinOp;
                
-               struct {
-                        int    Length;
-                       char    Data[];
-               }       String;
-               
                struct {
                        tAST_Node       *FirstArg;
                        tAST_Node       *LastArg;
@@ -161,6 +156,11 @@ struct sAST_Node
                         tAST_Node      *Value;
                }       Cast;
                
+               struct {
+                        int    Length;
+                       char    Data[];
+               }       String;
+               
                uint64_t        Integer;
                double  Real;
        };
@@ -187,6 +187,8 @@ struct sAST_Variable
 
 // === FUNCTIONS ===
 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);
 extern void    AST_AppendFunctionArg(tAST_Function *Function, tAST_Node *Arg);
@@ -203,6 +205,7 @@ extern tAST_Node    *AST_NewCodeBlock(void);
 extern void    AST_AppendNode(tAST_Node *Parent, tAST_Node *Child);
 
 extern tAST_Node       *AST_NewIf(tParser *Parser, tAST_Node *Condition, tAST_Node *True, tAST_Node *False);
+extern tAST_Node       *AST_NewLoop(tParser *Parser, tAST_Node *Init, int bPostCheck, tAST_Node *Condition, tAST_Node *Increment, tAST_Node *Code);
 
 extern tAST_Node       *AST_NewAssign(tParser *Parser, int Operation, tAST_Node *Dest, tAST_Node *Value);
 extern tAST_Node       *AST_NewCast(tParser *Parser, int Target, tAST_Node *Value);

UCC git Repository :: git.ucc.asn.au