[Monetdb-developers] [Monetdb-pf-checkins] pathfinder/compiler/mil mil_dce.c, , 1.19, 1.20 milgen.brg, , 1.142, 1.143
rittinge at in.tum.de
Thu Apr 17 09:49:02 CEST 2008
The answer is simple:
kind=165 is your new tape operator and its printing is missing in
Your tape is no expression with a return value but a statement with side
effects. Thus the MIL grammar in milprint.c expects the handling of
your tape in print_statement() instead of print_expression() -- see also
the grammar at the top of milprint.c (as the error message suggests :)).
On 04/17/2008 09:27 AM, Jan Flokstra wrote with possible deletions:
> Hi Jan,
> When I remove the if_() around my tj_docmgmt_tape() function in milgen.brg I
> get the following error message. [...]
> # End rule: "Rel: std_sort(Rel)"
> a0001 := a0006;
> a0004 := a0001.project (str(nil));
> a0002 := a0007;
> a0003 := a0001.project (str(nil));
> DocmgmTape (ws, a0004, a0002, a0003, a0001);
> fatal error: I encountered problems while generating MIL output.
> fatal error: This is possibly due to an illegal MIL tree, not conforming to
> the grammar in milprint.c
> fatal error: This is how far I was able to generate the script:
> notice: node: ALG_tj_docmgmt_tape
> fatal error: Illegal MIL tree. MIL printer screwed up (kind: 165).
> # halted in milprint.c (print_statement), line 596
Technische Universität München (Germany)
More information about the developers-list