Step 340: C++ Generator — Preprocessor, Enum, Namespace (12/12 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
#include "Annotation.h"
|
||||
#include "AnnotationVisitors.h"
|
||||
#include "HostBoundary.h"
|
||||
#include "PreprocessorNodes.h"
|
||||
#include "EnumNamespaceNodes.h"
|
||||
|
||||
class ProjectionGenerator : public virtual AnnotationVisitorExtended {
|
||||
public:
|
||||
@@ -75,6 +77,14 @@ public:
|
||||
virtual std::string visitLambdaExpression(const ASTNode* node) { return ""; }
|
||||
virtual std::string visitDecoratorAnnotation(const ASTNode* node) { return ""; }
|
||||
|
||||
// Preprocessor/Enum/Namespace visitors (Step 340)
|
||||
virtual std::string visitIncludeDirective(const ASTNode* node) { return ""; }
|
||||
virtual std::string visitPragmaDirective(const ASTNode* node) { return ""; }
|
||||
virtual std::string visitMacroDefinition(const ASTNode* node) { return ""; }
|
||||
virtual std::string visitEnumDeclaration(const ASTNode* node) { return ""; }
|
||||
virtual std::string visitNamespaceDeclaration(const ASTNode* node) { return ""; }
|
||||
virtual std::string visitTypeAlias(const ASTNode* node) { return ""; }
|
||||
|
||||
// Host boundary visitors
|
||||
virtual std::string visitHostCall(const HostCall* node) { return ""; }
|
||||
virtual std::string visitScheduleTask(const ScheduleTask* node) { return ""; }
|
||||
@@ -350,6 +360,20 @@ std::string dispatchGenerate(Gen* gen, const ASTNode* node, const std::string& u
|
||||
} else if (node->conceptType == "DecoratorAnnotation") {
|
||||
return gen->visitDecoratorAnnotation(node);
|
||||
}
|
||||
// Preprocessor/Enum/Namespace dispatch (Step 340)
|
||||
else if (node->conceptType == "IncludeDirective") {
|
||||
return gen->visitIncludeDirective(node);
|
||||
} else if (node->conceptType == "PragmaDirective") {
|
||||
return gen->visitPragmaDirective(node);
|
||||
} else if (node->conceptType == "MacroDefinition") {
|
||||
return gen->visitMacroDefinition(node);
|
||||
} else if (node->conceptType == "EnumDeclaration") {
|
||||
return gen->visitEnumDeclaration(node);
|
||||
} else if (node->conceptType == "NamespaceDeclaration") {
|
||||
return gen->visitNamespaceDeclaration(node);
|
||||
} else if (node->conceptType == "TypeAlias") {
|
||||
return gen->visitTypeAlias(node);
|
||||
}
|
||||
|
||||
return unknownPrefix + node->conceptType;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user