%{ #include int yylex(void); void yyerror(char const *); void printValue(char *val) { fprintf(stderr, "%s", val); } %} %union{ char *stringVal; } %error-verbose %token '(' ')' ',' ';' '.' '=' %token NEW TREENODE_TYPE JTREE_TYPE ADDOBJECT %token STRINGVALUE SYMBOL %% Program: InstructionList { fprintf( stderr, " "); } InstructionList : Instruction | InstructionList Instruction ; Instruction : NodeDef | TreeDef | NodeAdd ; NodeDef : TREENODE_TYPE SYMBOL '=' NEW TREENODE_TYPE '(' STRINGVALUE ')' ';' { fprintf( stderr, " ", $7 ); } ; TreeDef : JTREE_TYPE SYMBOL '=' NEW JTREE_TYPE '(' SYMBOL ')' ';' { fprintf( stderr, " ", $2, $7); } ; NodeAdd : SYMBOL '.' ADDOBJECT '(' SYMBOL ',' SYMBOL ')' ';' { fprintf( stderr, " ", $1,$5,$7); }