1) create a DSL file rule.dsl :
[when][]on recoit une simple evt
{evtName}={evtName}
:SimpleEvent()
[when][]et un simple evt 2
{evtName2} avec le meme {attribute} que {evtName}={evtName2}
:SimpleEvent2(
{attribute}=={evtName}.{attribute}
)
[then][]youpi=System.out.println("that works");
2) create a DSLR file rule.dslr :
import fr.edf.distribution.modele.SimpleEvent
import fr.edf.distribution.modele.SimpleEvent2
declare SimpleEvent
@role( fact )
end
declare SimpleEvent2
@role( fact )
end
expander "rule.dsl"
rule "RG_CORR_RECOK_OK"
when
on recoit une simple evt $evt
et un simple evt 2 $evt2 avec le meme code que $evt
then
youpi
end
3) Result :
text=DSL parser error], Message [id=2, level=ERROR, path=rule.dslr, line=3, column=0
text=[3] Unable to expand: et un simple evt 2 $evt2 avec le meme code que $evt], Message [id=3, level=ERROR, path=rule.dslr, line=2, column=0
text=[2] No mapping entries for expanding: youpi], Message [id=4, level=ERROR, path=rule.dslr, line=2, column=0
text=[2] Unable to expand: youpi], Message [id=5, level=ERROR, path=rule.dslr, line=19, column=0
text=[ERR 102] Line 19:11 mismatched input 'un' in rule "RG_CORR_RECOK_OK"]]
4) If I change the condition :
[when][]et un simple evt 2
{evtName2} avec le meme {attribute} que {evtName}={evtName2}
:SimpleEvent2(
{attribute}=={evtName}.{attribute}
)
with :
[when][]et un simple evt 2
{evtName2} avec le meme {attribute} que {evtName}={evtName2}
:SimpleEvent2(
{attribute}=={attribute}
)
or
[when][]et un simple evt 2
{evtName2} avec le meme {attribute} que {evtName}={evtName2}
:SimpleEvent2(
{attribute}==$evt.{attribute}
)
That's not producing the error. DSL are not working fine when the "dot character" is after "}".
Kind regards