Rules parsing further implemented. Had some basic tests done in archie.
Some issues remain:
i managed to get $test:Boolean ::= /path[id2]/attribute[id4]/value matches {|0.0..100.0|} to parse correctly, instead of as two statements $test:Boolean ::= /path[id2]/attribute[id4] and /value matches {|0.0..100.0|}. But there's a lot of full context/ambiguity reports by ANTLR, and rightly so. Might need a fix, might work as is.
no for_all operator yet
no functions yet
Some things that are not clear to me in the spec:
functions, it's syntax, use and its mapping to the AOM
how the for_all operator should be used and what it means
how to handle multiple results from a model_reference (everything has multi-value support in the Archie implementation)
labels in assertions: shouldn't those have an at-code, referring to a text and description in the terminology instead of a human readable label?
plus a mistake in the spec:
the modulo operator is listed in AOM-spec only, not in the ADL-spec
Rules parsing further implemented. Had some basic tests done in archie.
Some issues remain:
$test:Boolean ::= /path[id2]/attribute[id4]/value matches {|0.0..100.0|}
to parse correctly, instead of as two statements$test:Boolean ::= /path[id2]/attribute[id4]
and/value matches {|0.0..100.0|}
. But there's a lot of full context/ambiguity reports by ANTLR, and rightly so. Might need a fix, might work as is.Some things that are not clear to me in the spec:
plus a mistake in the spec:
See https://github.com/nedap/archie/pull/4 for the parser, evaluator, notes on how i solves multi-valued paths and (basic) tests on this grammar.