- Removed this print out
- Added more recursive painting of various dofferent AST nodes
This commit is contained in:
Tristan B. Velloza Kildaire 2024-05-06 12:55:26 +02:00
parent fa2f638e9e
commit ca1c51d2c3
1 changed files with 52 additions and 2 deletions

View File

@ -2483,6 +2483,48 @@ public final class Parser
parentToContainer(container, [binOpExp.getLeftExpression(), binOpExp.getRightExpression()]);
}
/**
* If we have an `UnaryOperatorExpression`
* then we want to parent its inner
* expression
*/
else if(cast(UnaryOperatorExpression)statement)
{
UnaryOperatorExpression unaryOp = cast(UnaryOperatorExpression)statement;
Expression opExpr = unaryOp.getExpression();
parentToContainer(container, [opExpr]);
}
/**
* If we have an `ArrayIndex` then
* we will want to parent its inner
* expression which is what the
* index itself is formed out of.
*
* We will also want to parent the
* expression being indexed itself.
*/
else if(cast(ArrayIndex)statement)
{
ArrayIndex indexOp = cast(ArrayIndex)statement;
Expression indexedExpr = indexOp.getIndexed();
Expression indexExpr = indexOp.getIndex();
parentToContainer(container, [indexedExpr, indexExpr]);
}
/**
* If we have an `ArrayAssignment` then
* we will want to parent its inner
* index-expression
*/
else if(cast(ArrayAssignment)statement)
{
ArrayAssignment arrAss = cast(ArrayAssignment)statement;
Expression indexExpr = arrAss.getArrayLeft();
Expression assExpr = arrAss.getAssignmentExpression();
parentToContainer(container, [indexExpr, assExpr]);
}
/**
* If we have a `VariableAssignmentStdAlone`
* then we must parent its expression
@ -2521,6 +2563,16 @@ public final class Parser
Expression[] actualArguments = funcCall.getCallArguments();
parentToContainer(container, cast(Statement[])actualArguments);
}
/**
* If we have a `CastedExpression`
*/
else if(cast(CastedExpression)statement)
{
CastedExpression castExpr = cast(CastedExpression)statement;
Expression toCast = castExpr.getEmbeddedExpression();
parentToContainer(container, [toCast]);
}
/**
* If we have a `ReturnStmt`
* then we must process its
@ -4176,7 +4228,6 @@ unittest
}
catch(TError e)
{
ERROR(e);
assert(false);
}
}
@ -4272,7 +4323,6 @@ public int i = 2;
}
catch(TError e)
{
stderr.writeln(e);
assert(false);
}