[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
TYPOL: Woups!
Hi Typol-Experts,
I obtained the message (approximately):
Woups! No code generated. Please report.
It was caused by placing the "once" inside a "withsubject" as in
withsubject(MyPath: once(MY_RULE(...))).
Of course placing the "once" outside the "withsubject" should work as well.
The reason why I tried to desperately place the "once" everywhere I could
might point out another error.
With a Lisp function call I call the SET "calc_menu".
Only one rule matches to the syntax tree I am trying to evaluate.
It is:
once(withsubject(s(s(BexpLocation, int 1), int 2): EXPERS_TO_OFFERS(ValEnv |- Experiments => Offers, Conds, ValEnv'))) -- &
-- once(MERGE_CONDS(Offers |- conds[], Conds >- MayTrue, Conds')) &
-- MAKE_MENU(MayTrue |- events[event(event_name ActionDenotation, external(), Offers, Conds,
-- follow_state(s_behaviour(behaviour(Bexp), location(s(BexpLocation, int 2)), ValEnv')),
-- origins[origin(BexpLocation')])] -> Menu)
----------------------------------------------------------------------------------------------------------------------------------
|- s_behaviour(behaviour(prefix(action(identifier ActionDenotation, Experiments), Bexp)), location(BexpLocation), ValEnv) => Menu;
provided diff(ActionDenotation, "_choice") &
normalize(s(s(BexpLocation, int 1), int 1), BexpLocation');
Normally the comments does not exist, but the error happens without the comment lines too.
When I say "Fail" on this rule, the execution stops with fail, as expected.
When I say "Step" and then "Fail" on the first rule of "EXPERS_TO_OFFERS" the Debbuger answers correctly with "FAIL".
But then, after another "Step" the same rule of EXPERS_TO_OFFERS is given another "TRY"!!!
And this although
o there is a "once" around the call of EXPERS_TO_OFFERS.
o and there are only two exclusive rules in EXPERS_TO_OFFERS (see below).
At least this is most obscure and I could not find any reason pointing out, that this is not a bug.
I wonder, if you may can reproduce this and what are comments on this.
Greetings,
thomas
set EXPERS_TO_OFFERS is
judgement VALUE_ENV |- Experiment => OFFERS, CONDS, VALUE_ENV;
ValEnv |- empty_offer() => offers[], conds[], ValEnv;
CONV_OFFERS(ValEnv, 1 |- Expers => Offers, ValEnv') &
CONV_COND(ValEnv' |- Guard => Conds)
---------------------------------------------------------
ValEnv |- offer(Expers, Guard) => Offers, Conds, ValEnv';
set CONV_OFFERS is
...