Allow dumping of symbol expressions
git-svn-id: svn://svn.cc65.org/cc65/trunk@2639 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
4555fdcad1
commit
e87bec47d7
2 changed files with 13 additions and 7 deletions
|
@ -46,14 +46,14 @@
|
|||
|
||||
|
||||
|
||||
static void InternalDumpExpr (const ExprNode* Expr)
|
||||
static void InternalDumpExpr (const ExprNode* Expr, const ExprNode* (*ResolveSym) (const struct SymEntry*))
|
||||
/* Dump an expression in RPN to stdout */
|
||||
{
|
||||
if (Expr == 0) {
|
||||
return;
|
||||
}
|
||||
InternalDumpExpr (Expr->Left);
|
||||
InternalDumpExpr (Expr->Right);
|
||||
InternalDumpExpr (Expr->Left, ResolveSym);
|
||||
InternalDumpExpr (Expr->Right, ResolveSym);
|
||||
|
||||
switch (Expr->Op) {
|
||||
|
||||
|
@ -63,7 +63,13 @@ static void InternalDumpExpr (const ExprNode* Expr)
|
|||
break;
|
||||
|
||||
case EXPR_SYMBOL:
|
||||
printf (" SYM");
|
||||
if (ResolveSym && (Expr = ResolveSym (Expr->V.Sym)) != 0) {
|
||||
printf (" SYM (");
|
||||
InternalDumpExpr (Expr, ResolveSym);
|
||||
printf (") ");
|
||||
} else {
|
||||
printf ("SYM ");
|
||||
}
|
||||
break;
|
||||
|
||||
case EXPR_SECTION:
|
||||
|
@ -206,10 +212,10 @@ static void InternalDumpExpr (const ExprNode* Expr)
|
|||
|
||||
|
||||
|
||||
void DumpExpr (const ExprNode* Expr)
|
||||
void DumpExpr (const ExprNode* Expr, const ExprNode* (*ResolveSym) (const struct SymEntry*))
|
||||
/* Dump an expression tree to stdout */
|
||||
{
|
||||
InternalDumpExpr (Expr);
|
||||
InternalDumpExpr (Expr, ResolveSym);
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ struct ExprNode {
|
|||
|
||||
|
||||
|
||||
void DumpExpr (const ExprNode* Expr);
|
||||
void DumpExpr (const ExprNode* Expr, const ExprNode* (*ResolveSym) (const struct SymEntry*));
|
||||
/* Dump an expression tree to stdout */
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue