pos(x) |
x |
addpos(x) |
x |
attribute_value |
addpos(STRING) |
|
expression |
attribute |
ATTR_START
addpos(LIDENT+DOT)
EQUAL
attribute_value
RBRACKET |
attr(x) |
attribute
x |
posattr(x) |
attr(addpos(x)) |
rev_list_with_attr(x) |
rev_list_with_attr(x)
attribute |
|
rev_list_with_attr(x)
addpos(x) |
|
ε |
list_with_attr(x) |
rev_list_with_attr(x) |
primitive_typ |
INTEGER |
|
BOOLEAN |
|
MONEY |
|
DURATION |
|
TEXT |
|
DECIMAL |
|
DATE |
|
uident+DOT |
typ_data |
primitive_typ |
|
LIST
posattr(typ_data) |
|
LPAREN
posattr(typ_data)+COMMA
RPAREN |
typ |
typ_data |
uident |
addpos(UIDENT) |
lident |
LIDENT |
scope_var |
addpos(LIDENT)+DOT |
qlident |
uident
DOT
qlident |
|
lident |
mbinder |
attr(lident) |
|
LPAREN
attr(lident)+COMMA
RPAREN |
state_qualifier |
STATE
posattr(LIDENT) |
expression |
attr(noattr_expression) |
noattr_expression |
addpos(naked_expression) |
naked_expression |
addpos(LIDENT)
state_qualifier |
|
uident
DOT
qlident |
|
literal |
|
LPAREN
expression+COMMA
RPAREN |
|
noattr_expression
DOT
addpos(qlident) |
|
noattr_expression
DOT
addpos(INT_LITERAL) |
|
CARDINAL |
|
INTEGER |
|
DECIMAL |
|
MONEY |
|
LBRACKET
expression*SEMICOLON
RBRACKET |
|
struct_or_enum_inject |
|
noattr_expression
OF
expression+COMMA |
|
OUTPUT
OF
addpos(uident+DOT)
WITH_V
LBRACE
(ALT
struct_content_field)
RBRACE |
|
noattr_expression
WITH
constructor_binding |
|
noattr_expression
BUT_REPLACE
LBRACE
(ALT
struct_content_field)
RBRACE |
|
noattr_expression
pos(CONTAINS)
expression |
|
pos(SUM)
addpos(primitive_typ)
OF
expression |
|
pos(MAP_EACH)
mbinder
AMONG
expression
TO
expression |
|
pos(COMBINE)
ALL
mbinder
AMONG
expression
IN
mbinder
INITIALLY
expression
WITH_V
expression |
|
addpos(minmax)
OF
expression
OR_IF_LIST_EMPTY
THEN
expression |
|
addpos(unop)
expression |
|
noattr_expression
addpos(binop)
expression |
|
pos(EXISTS)
mbinder
AMONG
expression
SUCH
THAT
expression |
|
pos(FOR)
ALL
mbinder
AMONG
expression
WE_HAVE
expression |
|
MATCH
expression
WITH
addpos(addpos(ALT
match_arm)) |
|
IF
expression
THEN
expression
ELSE
expression |
|
LET
mbinder
DEFINED_AS
expression
IN
expression |
|
pos(LIST)
mbinder
AMONG
expression
SUCH
THAT
expression |
|
pos(MAP_EACH)
mbinder
AMONG
expression
pos(SUCH)
THAT
expression
TO
expression |
|
pos(CONTENT)
OF
mbinder
AMONG
expression
SUCH
THAT
expression
IS
minmax
OR_IF_LIST_EMPTY
THEN
expression |
struct_content_field |
lident
COLON
expression |
struct_or_enum_inject |
addpos(uident+DOT)
CONTENT
expression |
|
addpos(uident+DOT)
LBRACE
(ALT
struct_content_field)
RBRACE |
num_literal |
INT_LITERAL |
|
DECIMAL_LITERAL |
unit_literal |
PERCENT |
|
YEAR |
|
MONTH |
|
DAY |
literal |
addpos(num_literal)
addpos(unit_literal) |
|
MONEY_AMOUNT |
|
DATE_LITERAL |
|
TRUE |
|
FALSE |
minmax |
MAXIMUM |
|
MINIMUM |
unop |
NOT |
|
MINUS |
binop |
MULT |
|
DIV |
|
PLUS |
|
MINUS |
|
PLUSPLUS |
|
LESSER |
|
LESSER_EQUAL |
|
GREATER |
|
GREATER_EQUAL |
|
EQUAL |
|
NOT_EQUAL |
|
AND |
|
OR |
|
XOR |
constructor_binding |
addpos(uident+DOT)
OF
lident |
|
addpos(uident+DOT) |
match_arm |
WILDCARD
COLON
expression |
|
addpos(constructor_binding)
COLON
expression |
condition_consequence |
UNDER_CONDITION
expression
CONSEQUENCE |
rule_expr |
posattr(scope_var)
posattr(definition_parameters) |
rule_consequence |
NOT
FILLED |
rule |
label
exception_to
RULE
rule_expr
state
condition_consequence
addpos(rule_consequence) |
definition_parameters |
OF
lident+COMMA |
label |
LABEL
lident |
state |
STATE
lident |
exception_to |
EXCEPTION
lident |
definition |
label
exception_to
DEFINITION
scope_var
addpos(definition_parameters)
state
condition_consequence
DEFINED_AS
expression |
assertion |
ASSERTION
condition_consequence
expression |
variation_type |
INCREASING |
|
DECREASING |
date_rounding |
DATE
LIDENT
addpos(variation_type) |
scope_item |
rule |
|
definition |
|
assertion |
|
date_rounding |
scope_item_list |
list_with_attr(scope_item) |
struct_scope_base |
DATA
lident
CONTENT
posattr(typ) |
|
pos(CONDITION)
lident |
struct_scope |
struct_scope_base
depends_stance |
scope_decl_item_attribute_input |
CONTEXT |
|
INPUT |
|
INTERNAL |
|
ε |
scope_decl_item_attribute |
addpos(scope_decl_item_attribute_input)
addpos(OUTPUT)
lident |
scope_decl_item_attribute_mandatory |
scope_decl_item_attribute |
scope_decl_item |
scope_decl_item_attribute_mandatory
CONTENT
addpos(typ)
depends_stance
state |
|
scope_decl_item_attribute
SCOPE
addpos(uident+DOT) |
|
scope_decl_item_attribute_mandatory
pos(CONDITION)
depends_stance
state |
enum_decl_line |
ALT
uident
CONTENT
posattr(typ) |
var_content |
lident
CONTENT
posattr(typ) |
depends_stance |
DEPENDS
var_content+COMMA |
|
DEPENDS
LPAREN
var_content+COMMA
RPAREN |
|
ε |
code_item |
SCOPE
uident
UNDER_CONDITION
expression
COLON
scope_item_list |
|
DECLARATION
STRUCT
attr(uident)
COLON
list_with_attr(struct_scope) |
|
DECLARATION
SCOPE
uident
COLON
list_with_attr(scope_decl_item) |
|
DECLARATION
ENUM
uident
COLON
list_with_attr(enum_decl_line) |
|
DECLARATION
lident
CONTENT
addpos(typ)
depends_stance
opt_def |
opt_def |
DEFINED_AS
expression |
code |
list_with_attr(code_item) |
metadata_block |
BEGIN_METADATA
law_text
code
END_CODE |
law_heading |
LAW_HEADING |
law_text |
LAW_TEXT |
directive |
LAW_INCLUDE
COLON
DIRECTIVE_ARG
AT_PAGE |
|
MODULE_DEF
addpos(DIRECTIVE_ARG)
MODULE_EXTERNAL |
|
MODULE_USE
addpos(DIRECTIVE_ARG)
MODULE_ALIAS
addpos(DIRECTIVE_ARG) |
source_file_item |
law_text |
|
BEGIN_CODE
code
END_CODE |
|
law_heading |
|
metadata_block |
|
BEGIN_DIRECTIVE
directive
END_DIRECTIVE |
source_file |
source_file_item
source_file |
|
EOF |