Hi,
Juste like I added the possibility of declaring many registers variables with one .sym directive, I am working on returning or yielding in one line so one can write: .return -1, name instead of: .pcc_begin_return .return -1 .return name .pcc_end_return Sadly, the .return directive and other are overloaded to express user stack operations. Worse, unlike everywhere else, the directives vary for the same operation (svaing or restoring) depending if it operates on a symbolic register or an explicite one. Besides getting in the way [1] of what I am doing, this seems to me very wrong. So I would like to suppress the following productions at the risk of breaking some code. I don't see why one would want to use aseembly directive instead of the regular assembler operation. | PARAM reg { $$ = MK_I(interp, cur_unit, "restore", 1, $2); } | RESULT var { $$ = MK_I(interp, cur_unit, "restore", 1, $2); } | ARG var { $$ = MK_I(interp, cur_unit, "save", 1, $2); } | RETURN var { $$ = MK_I(interp, cur_unit, "save", 1, $2); } [1] With the surrounding pair .pcc_begin_return .pcc_end_return, as far as the parser was concerned there was no ambiguity about the meaning of the directives. Comments? -- stef