make_permissive errors during SDF compilation
This seems to be the same error as reported in ticket 207. I made a new ticket since that one is reported solved. I’ve tested with the latest unstable release of Spoofax (0.5.2.92) cleanly installed on a clean install of Eclipse 3.6 for JAVA (windows x32), using a fresh workspace. Created a new project named DADSL, copied the SDF file you’ll find attached later on into the SDF file of the project and pressed “Build project”.
We’re assuming at this point that something is amiss with the SDF, but in Eclipse no errors are reported whatsoever and crashing out on me can hardly be considered a good way of telling me I’ve made a small error.
[java] [ make_permissive | info ] Number of productions to analyze: 137 [java] [ make_permissive | info ] Number of productions generated: 33 [java] [ make_permissive | error ] No pp entry found for: (2,["annotated"]) [java] [ make_permissive | error ] Cannot rewrite to box: [java] annotated(fun(unquoted("cons")),default([fun(quoted("\"Scope\""))])) [java] [ make_permissive | error ] Cannot rewrite to box: [java] term(annotated(fun(unquoted("cons")),default([fun(quoted("\"Scope\""))]))) [java] [ make_permissive | error ] No pp entry found for: (2,["annotated"]) [java] [ make_permissive | error ] Cannot rewrite to box: [java] annotated(fun(unquoted("cons")),default([fun(quoted("\"Scope\""))])) [java] [ make_permissive | error ] Cannot rewrite to box: [java] term(annotated(fun(unquoted("cons")),default([fun(quoted("\"Scope\""))]))) [java] [ make_permissive | error ] No pp entry found for: (1,[[]]) [java] [ make_permissive | error ] Cannot rewrite to box: [java] [term(annotated(fun(unquoted("cons")),default([fun(quoted("\"Scope\""))])))] [java] [ make_permissive | error ] Cannot rewrite to box: [java] attrs([term(annotated(fun(unquoted("cons")),default([fun(quoted("\"Scope\""))])))])
[Skipped a bit where the traces become ridiculously long, see later attachment for full log]
Submitted by Thomas Schaap on 10 August 2010 at 17:05[java] make_permissive: rewriting failed, trace: [java] main_make_permissive_0_0 [java] xtc_io_wrap_2_0 [java] option_wrap_2_0 [java] option_wrap_5_0 [java] xtc_io_1_0 [java] xtc_temp_files_1_0 [java] restore_always_2_0 [java] pp_commented_sdf_string_0_0 [java] pp_commented_sdf_box_0_0 [java] ast2box_0_1 [java] ast2abox_0_1 [java] trm2abox_0_1
Attachments
Issue Log
Done some testing. The following is a minimal SDF that will trigger the error:
%% Grammar for the DADSL language module DADSL imports Common exports context-free start-symbols Start context-free syntax "X" -> Start {cons("bla")} ID "." -> ScopeQualification {cons{"Scope"}}
Here the error should already be obvious (I use ‘should’ with care: I didn’t see it :D). The constructor for the ScopeQualification line is defined as {cons{“Scope”}}; it should of course read {cons(“Scope”)}.
Interesting bug :) It appears that the SDF pretty printer can’t handle the
{"Scope"}
annotation on thecons()
term used as the production attribute (now reported as StrategoXT/835). There also seems to be a regression in the SDF editor, which should tell you to add a proper{cons("X")}
attribute to productions like this one.
Fixed in r21158 (
scheduled to be included in 0.5.3included in 0.5.2).
Log in to post comments