X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibspiderscript.so_src%2Fast.h;h=8ee56d778adef851f45cc44a602688e7fd4c5f48;hb=2f9415b7b804073b0365781ad4f05a7306b6c890;hp=39c23b1fef99b904a76c5fd7498a15860c9c8b2b;hpb=2c8989ea0849b0e207e6c357626d41c991dc423f;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libspiderscript.so_src/ast.h b/Usermode/Libraries/libspiderscript.so_src/ast.h index 39c23b1f..8ee56d77 100644 --- a/Usermode/Libraries/libspiderscript.so_src/ast.h +++ b/Usermode/Libraries/libspiderscript.so_src/ast.h @@ -76,36 +76,11 @@ enum eAST_NodeTypes NODETYPE_MODULO, //!< Modulus }; -struct sSpiderScript -{ - tSpiderVariant *Variant; - tAST_Script *Script; - char *CurNamespace; //!< Current namespace prefix (NULL = Root) - No trailing . -}; - -struct sAST_Script -{ - // TODO: Namespaces and Classes - tAST_Function *Functions; - tAST_Function *LastFunction; -}; - -struct sAST_Function -{ - tAST_Function *Next; //!< Next function in list - int ReturnType; - tAST_Node *Code; //!< Function Code - tAST_Node *Arguments; // HACKJOB (Only NODETYPE_DEFVAR is allowed) - tAST_Node *Arguments_Last; - int ArgumentCount; - char Name[]; //!< Function Name -}; - struct sAST_Node { tAST_Node *NextSibling; tAST_NodeType Type; - + const char *File; int Line; @@ -215,12 +190,10 @@ struct sAST_Variable // === FUNCTIONS === extern tAST_Script *AST_NewScript(void); -extern size_t AST_WriteScript(void *Buffer, tAST_Script *Script); +extern size_t AST_WriteScript(void *Buffer, tSpiderScript *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 int AST_AppendFunction(tSpiderScript *Script, const char *Name, int ReturnType, tAST_Node *FirstArg, tAST_Node *Code); extern tAST_Node *AST_NewNop(tParser *Parser);