AST list refactoring
This commit is contained in:
@@ -38,16 +38,12 @@ type
|
||||
function VisitIdentifier(const Node: IAstNode): TAstViewNode;
|
||||
function VisitKeyword(const Node: IAstNode): TAstViewNode;
|
||||
|
||||
// Lists
|
||||
function VisitParameterList(const Node: IAstNode): TAstViewNode;
|
||||
function VisitArgumentList(const Node: IAstNode): TAstViewNode;
|
||||
function VisitExpressionList(const Node: IAstNode): TAstViewNode;
|
||||
function VisitRecordFieldList(const Node: IAstNode): TAstViewNode;
|
||||
function VisitRecordField(const Node: IAstNode): TAstViewNode;
|
||||
|
||||
// Tuple
|
||||
// Unified List Handler
|
||||
function VisitTuple(const Node: IAstNode): TAstViewNode;
|
||||
|
||||
// Elements
|
||||
function VisitRecordField(const Node: IAstNode): TAstViewNode;
|
||||
|
||||
// Control Flow
|
||||
function VisitIfExpression(const Node: IAstNode): TAstViewNode;
|
||||
function VisitCondExpression(const Node: IAstNode): TAstViewNode;
|
||||
@@ -135,13 +131,9 @@ begin
|
||||
Register(akKeyword, VisitKeyword);
|
||||
Register(akNop, VisitNop);
|
||||
|
||||
// Lists
|
||||
Register(akParameterList, VisitParameterList);
|
||||
Register(akArgumentList, VisitArgumentList);
|
||||
Register(akExpressionList, VisitExpressionList);
|
||||
Register(akRecordFieldList, VisitRecordFieldList);
|
||||
// Lists (Unified)
|
||||
Register(akTuple, VisitTuple);
|
||||
Register(akRecordField, VisitRecordField);
|
||||
Register(akTuple, VisitTuple); // <--- NEW
|
||||
|
||||
// Control Flow
|
||||
Register(akIfExpression, VisitIfExpression);
|
||||
@@ -240,24 +232,9 @@ end;
|
||||
|
||||
// Lists
|
||||
|
||||
function TAstVisualizer.VisitParameterList(const Node: IAstNode): TAstViewNode;
|
||||
function TAstVisualizer.VisitTuple(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TParameterListHandler.Create(Node.AsParameterList));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitArgumentList(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TArgumentListHandler.Create(Node.AsArgumentList));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitExpressionList(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TExpressionListHandler.Create(Node.AsExpressionList));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitRecordFieldList(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TRecordFieldListHandler.Create(Node.AsRecordFieldList));
|
||||
Result := TAstViewNode.Create(Self, TTupleHandler.Create(Node.AsTuple));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitRecordField(const Node: IAstNode): TAstViewNode;
|
||||
@@ -265,11 +242,6 @@ begin
|
||||
Result := TAstViewNode.Create(Self, TRecordFieldHandler.Create(Node.AsRecordField));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitTuple(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TNopNodeHandler.Create(Node.AsNop));
|
||||
end;
|
||||
|
||||
// Control Flow
|
||||
|
||||
function TAstVisualizer.VisitBlockExpression(const Node: IAstNode): TAstViewNode;
|
||||
@@ -398,21 +370,25 @@ begin
|
||||
Result := TAstViewNode.Create(Self, TSeriesLengthNodeHandler.Create(Node.AsSeriesLength));
|
||||
end;
|
||||
|
||||
// Pipes (Fallback to Nop/Placeholder visualization until specific handlers are implemented)
|
||||
// Pipes
|
||||
|
||||
function TAstVisualizer.VisitPipeInput(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
// Needs a dedicated handler for better visualization, fallback to Nop for now?
|
||||
// Actually, we don't have a specific handler for PipeInputNode in the library yet.
|
||||
// It's a typed node with children, so we should probably create one or reuse generic.
|
||||
// For this refactoring step, I'll use Nop to keep it compiling, but this should be improved.
|
||||
Result := TAstViewNode.Create(Self, TNopNodeHandler.Create(Node.AsNop));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitPipeSelectorList(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TNopNodeHandler.Create(Node.AsNop));
|
||||
Result := TAstViewNode.Create(Self, TPipeSelectorListHandler.Create(Node.AsPipeSelectorList));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitPipeInputList(const Node: IAstNode): TAstViewNode;
|
||||
begin
|
||||
Result := TAstViewNode.Create(Self, TNopNodeHandler.Create(Node.AsNop));
|
||||
Result := TAstViewNode.Create(Self, TPipeInputListHandler.Create(Node.AsPipeInputList));
|
||||
end;
|
||||
|
||||
function TAstVisualizer.VisitPipe(const Node: IAstNode): TAstViewNode;
|
||||
|
||||
Reference in New Issue
Block a user