diff --git a/src/zscript/ast.cpp b/src/zscript/ast.cpp index 77335fcde..7424e9aae 100644 --- a/src/zscript/ast.cpp +++ b/src/zscript/ast.cpp @@ -276,7 +276,7 @@ static void PrintClass(FLispString &out, ZCC_TreeNode *node) ZCC_Class *cnode = (ZCC_Class *)node; out.Break(); out.Open("class"); - PrintNodes(out, cnode->ClassName); + out.AddName(cnode->ClassName); PrintNodes(out, cnode->ParentName); PrintNodes(out, cnode->Replaces); out.AddHex(cnode->Flags); diff --git a/src/zscript/zcc-parse.lemon b/src/zscript/zcc-parse.lemon index 8a8620a42..d94eb582c 100644 --- a/src/zscript/zcc-parse.lemon +++ b/src/zscript/zcc-parse.lemon @@ -158,10 +158,10 @@ class_definition(X) ::= class_head(A) class_body(B). X = A; } -class_head(X) ::= CLASS(T) dottable_id(A) class_ancestry(B) class_flags(C). +class_head(X) ::= CLASS(T) IDENTIFIER(A) class_ancestry(B) class_flags(C). { NEW_AST_NODE(Class,head,T); - head->ClassName = A; + head->ClassName = A.Name(); head->ParentName = B; head->Flags = C.Flags; head->Replaces = C.Replaces; diff --git a/src/zscript/zcc_compile.cpp b/src/zscript/zcc_compile.cpp index 61f96a90c..ce02c8e82 100644 --- a/src/zscript/zcc_compile.cpp +++ b/src/zscript/zcc_compile.cpp @@ -30,7 +30,7 @@ ZCCCompiler::ZCCCompiler(ZCC_AST &ast, DObject *_outer, PSymbolTable &_symbols) switch (node->NodeType) { case AST_Class: -// if (AddNamedNode(static_cast(node)->ClassName, node)) + if (AddNamedNode(static_cast(node)->ClassName, node)) { Classes.Push(static_cast(node)); } diff --git a/src/zscript/zcc_parser.h b/src/zscript/zcc_parser.h index 9e2cf6cb3..03a42a436 100644 --- a/src/zscript/zcc_parser.h +++ b/src/zscript/zcc_parser.h @@ -175,7 +175,7 @@ struct ZCC_Identifier : ZCC_TreeNode struct ZCC_Class : ZCC_TreeNode { - ZCC_Identifier *ClassName; + ENamedName ClassName; ZCC_Identifier *ParentName; ZCC_Identifier *Replaces; VM_UWORD Flags;