Ast ternary expr replaced by cond expr
This commit is contained in:
@@ -37,7 +37,7 @@ type
|
||||
function VisitIdentifier(const Node: IIdentifierNode): TDataValue; override;
|
||||
function VisitKeyword(const Node: IKeywordNode): TDataValue; override;
|
||||
function VisitIfExpression(const Node: IIfExpressionNode): TDataValue; override;
|
||||
function VisitTernaryExpression(const Node: ITernaryExpressionNode): TDataValue; override;
|
||||
function VisitCondExpression(const Node: ICondExpressionNode): TDataValue; override; // Replaces Ternary
|
||||
function VisitBlockExpression(const Node: IBlockExpressionNode): TDataValue; override;
|
||||
function VisitVariableDeclaration(const Node: IVariableDeclarationNode): TDataValue; override;
|
||||
function VisitAssignment(const Node: IAssignmentNode): TDataValue; override;
|
||||
@@ -250,12 +250,15 @@ begin
|
||||
AppendLine(Format('} -> %s', [Result.ToString]));
|
||||
end;
|
||||
|
||||
function TDebugEvaluatorVisitor.VisitTernaryExpression(const Node: ITernaryExpressionNode): TDataValue;
|
||||
function TDebugEvaluatorVisitor.VisitCondExpression(const Node: ICondExpressionNode): TDataValue;
|
||||
begin
|
||||
AppendLine('TernaryExpr {');
|
||||
AppendLine(Format('CondExpr (%d pairs) {', [Length(Node.Pairs)]));
|
||||
Indent;
|
||||
try
|
||||
Result := inherited VisitTernaryExpression(Node);
|
||||
// We just call inherited, which does the logic.
|
||||
// We don't log every branch check here to avoid spamming output,
|
||||
// but the recursive evaluation of conditions will show up in the log naturally.
|
||||
Result := inherited VisitCondExpression(Node);
|
||||
finally
|
||||
Unindent;
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user