1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-04 13:29:35 +00:00

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:
cuz 2003-11-11 13:58:00 +00:00
parent 4555fdcad1
commit e87bec47d7
2 changed files with 13 additions and 7 deletions

View File

@ -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");
}

View File

@ -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 */