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);