From 6088acd4c04b046a8f7055927d4d23d7cca2ac43 Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Wed, 10 Jul 2013 23:26:56 -0500 Subject: [PATCH] Add function body to ZCC_FuncDeclarator --- src/zscript/ast.cpp | 3 ++- src/zscript/zcc-parse.lemon | 1 + src/zscript/zcc_parser.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/zscript/ast.cpp b/src/zscript/ast.cpp index f3a809b0e..af8ddef68 100644 --- a/src/zscript/ast.cpp +++ b/src/zscript/ast.cpp @@ -548,7 +548,8 @@ static void PrintFuncDeclarator(FString &out, ZCC_TreeNode *node) out << "\n(func-declarator "; PrintNodes(out, dnode->Type); out.AppendFormat("%x %s ", dnode->Flags, FName(dnode->Name).GetChars()); - PrintNodes(out, dnode->Params, ')'); + PrintNodes(out, dnode->Params, ' '); + PrintNodes(out, dnode->Body, ')'); out << '\n'; } diff --git a/src/zscript/zcc-parse.lemon b/src/zscript/zcc-parse.lemon index ba2776d4b..2cf27336f 100644 --- a/src/zscript/zcc-parse.lemon +++ b/src/zscript/zcc-parse.lemon @@ -533,6 +533,7 @@ declarator(X) ::= decl_flags(A) type_list_or_void(B) variables_or_function(C). decl->Params = C.FuncParams; decl->Name = C.FuncName; decl->Flags = A | C.FuncFlags; + decl->Body = C.FuncBody; X = decl; } else if (B != NULL && B->SiblingNext == B) diff --git a/src/zscript/zcc_parser.h b/src/zscript/zcc_parser.h index d0d4e3b63..eaaba6192 100644 --- a/src/zscript/zcc_parser.h +++ b/src/zscript/zcc_parser.h @@ -493,6 +493,7 @@ struct ZCC_FuncDeclarator : ZCC_Declarator { ZCC_FuncParamDecl *Params; ENamedName Name; + ZCC_Statement *Body; }; FString ZCC_PrintAST(ZCC_TreeNode *root);