Strc gives the following error messages:

[ strc | critical ] *** to-model: don't know how to model this: 
       Rules(Conc(Conc(Conc([114,111,114,45,97,99,116,105,111,110],[SDefNoArgs("eq-type-of-action",LChoice(CallNoArgs(SVar("eq-type-of-this-call-local")),CallNoArgs(SVar("eq-type-of-this-call-global"))))]),[RDefNoArgs("eq-type-of-this-call-local",Rule(As(Var("c"),NoAnnoList(Op("ThisCall",[Var("f"),Var(ListVar("e2*"))]))),Var("t"),Seq(Assign(Var("parents"),RootApp(CallNoArgs(SVar("get-this-call-parent-multiple")))),Assign(Var("t"),App(Call(SVar("fetch-elem"),[BA(CallNoArgs(SVar("check-signature")),NoAnnoList(Tuple([RootApp(Id),Var("f"),Var(ListVar("e2*"))])))]),Var("parents"))))))]),[RDefNoArgs("eq-type-of-this-call-global",Rule(As(Var("c"),NoAnnoList(Op("ThisCall",[Var("f"),Var(ListVar("e2*"))]))),Var("t"),Assign(Var("t"),App(CallNoArgs(SVar("check-signature")),NoAnnoList(Tuple([NoAnnoList(Op("None",[])),Var("f"),Var(ListVar("e2*"))]))))))]))
make[1]: *** [webdsl-generator.ctree] Error 1

Modifying some (seemingly unrelated) str file solved the problem.

Submitted by Nathan Bruning on 13 October 2010 at 16:41
check.str15 October 2010 at 16:15

On 14 October 2010 at 18:06 Lennart Kats commented:

Two things that are odd about that term: the [114,111,114,45,97,99,116,105,111,110], a list of characters that seems to spell “ror-action”, and the Conc( terms are list concatenation constructors. What kind of file did you try this with? And which version of strc?


On 14 October 2010 at 19:05 Nathan Bruning commented:

Yes, very odd. The string “ror-action” would be part of a strategy name “constraint-error-action”.

strc 1.8, revision 21134.

As said, after changing some included file (adding a newline) the problem went away.


On 15 October 2010 at 16:14 Nathan Bruning commented:

Probably related, using strj this time: STRJ 0.17.92pre0 based on STRC 1.8r21134

strj -i compiler.str -o nwljava -I .. -m main-nwl-compiler -la stratego-sglr -la stratego-gpp -la stratego-aterm
[ strj | critical ] *** to-model: don't know how to model this: 
 appl(prod([cf(sort("Id")),cf(opt(layout)),lit(":"),cf(opt(layout)),cf(sort("Rule"))],cf(sort("RuleDef")),attrs([term(cons("RDefNoArgs"))])),prefer(aprod(710),[regular(aprod(269),[60]),regular(aprod(346),[]),regular(aprod(671),[regular(aprod(763),[regular(aprod(886),[regular(aprod(887),[112,regular(aprod(557),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(563),[regular(aprod(565),[97]),regular(aprod(565),[116])]),regular(aprod(565),[104])]),regular(aprod(565),[45])]),regular(aprod(565),[116])]),regular(aprod(565),[111])]),regular(aprod(565),[45])]),regular(aprod(565),[99])]),regular(aprod(565),[97])]),regular(aprod(565),[99])]),regular(aprod(565),[104])]),regular(aprod(565),[101])]),regular(aprod(565),[45])]),regular(aprod(565),[112])]),regular(aprod(565),[97])]),regular(aprod(565),[116])]),regular(aprod(565),[104])])])])])])]),regular(aprod(346),[]),regular(aprod(310),[62]),regular(aprod(345),[regular(aprod(899),[regular(aprod(897),[regular(aprod(913),[32])])])]),regular(aprod(712),[regular(aprod(790),[regular(aprod(845),[regular(aprod(846),[regular(aprod(340),[34]),regular(aprod(536),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(542),[regular(aprod(544),[regular(aprod(844),[36])]),regular(aprod(544),[regular(aprod(844),[100])])]),regular(aprod(544),[regular(aprod(844),[101])])]),regular(aprod(544),[regular(aprod(844),[112])])]),regular(aprod(544),[regular(aprod(844),[101])])]),regular(aprod(544),[regular(aprod(844),[110])])]),regular(aprod(544),[regular(aprod(844),[100])])]),regular(aprod(544),[regular(aprod(844),[101])])]),regular(aprod(544),[regular(aprod(844),[110])])]),regular(aprod(544),[regular(aprod(844),[99])])]),regular(aprod(544),[regular(aprod(844),[105])])]),regular(aprod(544),[regular(aprod(844),[101])])]),regular(aprod(544),[regular(aprod(844),[115])])]),regular(aprod(544),[regular(aprod(844),[46])])]),regular(aprod(544),[regular(aprod(844),[110])])]),regular(aprod(544),[regular(aprod(844),[119])])]),regular(aprod(544),[regular(aprod(844),[108])])])]),regular(aprod(340),[34])])])])])]))

The file that introduced the problem is attached.


On 17 October 2010 at 04:35 Lennart Kats commented:

That’s even more odd. The term is now a parse tree, not an imploded syntax tree. Running asfix-yield gives the following input string for it:

<Z??vwp-33333333333333335a5t5h5-5t5o5-5c5a5c5h5e5-5p5a5t5hZ6>Y??? ?MNT" L$ Ld Le Lp Le Ln Ld Le Ln Lc Li Le Ls L. Ln Lw LlT"

Weird much? All this is starting to look like some kind of memory corruption issue. What does the Java version of the compiler do?

Do you also have the file for the original problem with the ‘ror-action’?

Log in to post comments