Added EnumDeclaration, EnumMember, NamespaceDeclaration, TypeAlias AST nodes with
full serialization roundtrip and CompactAST support. Enums support scoped/unscoped,
underlying type, member values. Namespaces support nesting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added IncludeDirective, PragmaDirective, MacroDefinition as first-class AST nodes.
Full serialization roundtrip and CompactAST support. Preprocessor directives are
statement-level nodes with macro bodies kept as unparsed text.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
isClassTemplate/isVariadic serialization, isCRTPClass detection helper,
CompactAST getNodeName for GenericType/TypeParameter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BaseClass struct with access specifiers and virtual flags. Backward-compatible
getBases() migration from legacy superClass. Diamond inheritance detection via
BFS. Updated Serialization for baseClasses array roundtrip.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Semanno comment format standard (@semanno:type(key=value)) with emitter/parser
covering all 67+ annotation types. SemannoAnnotationImpl CRTP mixin provides
default visitor implementations for all 56 extended annotation methods across
7 language generators. Virtual inheritance resolves diamond ambiguity between
ProjectionGenerator and SemannoAnnotationImpl.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fromJson(json) reconstructs heap-allocated AST from JSON. createNode factory
handles all 33 concepts. deleteTree for cleanup. Test verifies save→load→save
produces byte-identical JSON for the full Calculator model.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
toJson(ASTNode*) recursively serializes the AST to JSON with id, concept,
properties, and children structure. Added childRoles() to ASTNode for
enumeration. FetchContent pulls nlohmann/json v3.11.3. Test serializes the
full Calculator model and verifies every node in the JSON output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>