diff --git a/parse.leg b/parse.leg index 70bdcdc..4c40a55 100644 --- a/parse.leg +++ b/parse.leg @@ -603,16 +603,18 @@ int printCode(Node *node) printf("Node node%i = { .Exc = { Exc, &node%i }};\n",thisNumber,i); return thisNumber; } - case Et: + case Et: { int i = printCode(node->Et.children[0]); int thisNumber=nodeNumber++; printf("Node node%i = { .Et = { Et, &node%i }};\n",thisNumber,i); return thisNumber; - case Id: - printVariableName(node->type,nodeCount,1); - printf("= { .Id = { Id, symb"); + } + case Id: { + int thisNumber=nodeNumber++; + printf("Node node%i = { .Id = { Id, %s", thisNumber, get(node,Id, symbol)); printf(" }};\n"); - return 0; + return thisNumber; + } } abort(); return 0;