There appear to be more differences, unfortunately.
Differences between the model in Archie and Expression Language (EL) that are not simple renames that I found so far:
- EXPR_FUNCTION.function_def is of type FUNCTION_DEF. It is EXPR_FUNCTION.function_name as a string in Archie. There is no function_def class in Archie.
- OPERATOR_DEF_BUILTIN is an enum in Archie (renames are easy, parsing/serialization slightly more tricky)
- EXPR_TYPE_DEF is the enum EXPRESSION_TYPE in archie (renames are easy, parsing/serialization slightly more tricky)
- there is no ASSINGMENT in Archie, just variable declaration, not even in the grammar.
- the for all statement is missing in the specification. It cannot be expressed as a simple binary operator, and in archie is a separate class inheriting from operator with variable_name, left_operator (the expression pointing to a collection of values) and right_operand (the expression to be evaluated as an assertion for every member of the collection)
-
precedence_overridden is in binary operator in the spec, in expression in Archie. Minor, in archie it’s possible to store more places where
()
can appear in the grammar, but they are pretty much meaningless in execution if not around an instance of OPERATOR
I might find more later.