0
  "Γ" := rules • "expr" [0-0]
  "expr" := rules • "expr_function" [0-0]
  "expr_function" := rules • "ID" ":" "expr_function" [0-0]
  "expr_function" := rules • "ID" "@" "{" "formals" "}" ":" "expr_function" [0-0]
  "expr_function" := rules • "expr_if" [0-0]
  "ID" := lexemes • "ID" [0-0]
  "expr_if" := rules • "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "EQ" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "NEQ" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "<" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "LEQ" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" ">" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "GEQ" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "AND" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "OR" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "IMPL" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "UPDATE" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "?" "attrpath" [0-0]
  "expr_op" := rules • "expr_op" "+" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "-" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "*" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "/" "expr_op" [0-0]
  "expr_op" := rules • "expr_op" "CONCAT" "expr_op" [0-0]
  "expr_op" := rules • "expr_app" [0-0]
  "expr_app" := rules • "expr_app" "expr_select" [0-0]
  "expr_app" := rules • "expr_select" [0-0]
  "expr_select" := rules • "expr_simple" "." "attrpath" [0-0]
  "expr_select" := rules • "expr_simple" "." "attrpath" "OR_KW" "expr_select" [0-0]
  "expr_select" := rules • "expr_simple" "OR_KW" [0-0]
  "expr_select" := rules • "expr_simple" [0-0]
  "expr_simple" := rules • "ID" [0-0]
1
  "ID" := lexemes "ID" • [0-1]
  "expr_function" := rules "ID" • ":" "expr_function" [0-1]
  "expr_function" := rules "ID" • "@" "{" "formals" "}" ":" "expr_function" [0-1]
  "expr_simple" := rules "ID" • [0-1]
  "expr_select" := rules "expr_simple" • "." "attrpath" [0-1]
  "expr_select" := rules "expr_simple" • "." "attrpath" "OR_KW" "expr_select" [0-1]
  "expr_select" := rules "expr_simple" • "OR_KW" [0-1]
  "expr_select" := rules "expr_simple" • [0-1]
  "expr_app" := rules "expr_select" • [0-1]
  "expr_op" := rules "expr_app" • [0-1]
  "expr_app" := rules "expr_app" • "expr_select" [0-1]
  "expr_if" := rules "expr_op" • [0-1]
  "expr_op" := rules "expr_op" • "EQ" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "NEQ" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "<" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "LEQ" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • ">" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "GEQ" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "AND" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "OR" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "IMPL" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "UPDATE" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "?" "attrpath" [0-1]
  "expr_op" := rules "expr_op" • "+" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "-" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "*" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "/" "expr_op" [0-1]
  "expr_op" := rules "expr_op" • "CONCAT" "expr_op" [0-1]
  "expr_select" := rules • "expr_simple" "." "attrpath" [1-1]
  "expr_select" := rules • "expr_simple" "." "attrpath" "OR_KW" "expr_select" [1-1]
  "expr_select" := rules • "expr_simple" "OR_KW" [1-1]
  "expr_select" := rules • "expr_simple" [1-1]
  "expr_function" := rules "expr_if" • [0-1]
  "expr_simple" := rules • "SPATH" [1-1]
  "expr" := rules "expr_function" • [0-1]
  "SPATH" := lexemes • "SPATH" [1-1]
  "Γ" := rules "expr" • [0-1]
2
  "SPATH" := lexemes "SPATH" • [1-2]
  "expr_simple" := rules "SPATH" • [1-2]
  "expr_select" := rules "expr_simple" • "." "attrpath" [1-2]
  "expr_select" := rules "expr_simple" • "." "attrpath" "OR_KW" "expr_select" [1-2]
  "expr_select" := rules "expr_simple" • "OR_KW" [1-2]
  "expr_select" := rules "expr_simple" • [1-2]
  "expr_app" := rules "expr_app" "expr_select" • [0-2]
  "expr_op" := rules "expr_app" • [0-2]
  "expr_app" := rules "expr_app" • "expr_select" [0-2]
  "expr_if" := rules "expr_op" • [0-2]
  "expr_op" := rules "expr_op" • "EQ" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "NEQ" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "<" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "LEQ" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • ">" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "GEQ" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "AND" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "OR" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "IMPL" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "UPDATE" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "?" "attrpath" [0-2]
  "expr_op" := rules "expr_op" • "+" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "-" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "*" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "/" "expr_op" [0-2]
  "expr_op" := rules "expr_op" • "CONCAT" "expr_op" [0-2]
  "expr_select" := rules • "expr_simple" "." "attrpath" [2-2]
  "expr_select" := rules • "expr_simple" "." "attrpath" "OR_KW" "expr_select" [2-2]
  "expr_select" := rules • "expr_simple" "OR_KW" [2-2]
  "expr_select" := rules • "expr_simple" [2-2]
  "expr_function" := rules "expr_if" • [0-2]
  "expr_simple" := rules • "{" "binds" "}" [2-2]
  "expr" := rules "expr_function" • [0-2]
  "{" := lexemes • "{" [2-2]
  "Γ" := rules "expr" • [0-2]
3
  "{" := lexemes "{" • [2-3]
  "expr_simple" := rules "{" • "binds" "}" [2-3]
  "binds" := rules • "binds" "attrpath" "=" "expr" ";" [3-3]
  "binds" := rules • "binds" "INHERIT" "attrs" ";" [3-3]
  "binds" := rules • "binds" "INHERIT" "(" "expr" ")" "attrs" ";" [3-3]
  "binds" := rules • [3-3]
  "expr_simple" := rules "{" "binds" • "}" [2-3]
  "binds" := rules "binds" • "attrpath" "=" "expr" ";" [3-3]
  "binds" := rules "binds" • "INHERIT" "attrs" ";" [3-3]
  "binds" := rules "binds" • "INHERIT" "(" "expr" ")" "attrs" ";" [3-3]
  "}" := lexemes • "}" [3-3]
4
  "}" := lexemes "}" • [3-4]
  "expr_simple" := rules "{" "binds" "}" • [2-4]
  "expr_select" := rules "expr_simple" • "." "attrpath" [2-4]
  "expr_select" := rules "expr_simple" • "." "attrpath" "OR_KW" "expr_select" [2-4]
  "expr_select" := rules "expr_simple" • "OR_KW" [2-4]
  "expr_select" := rules "expr_simple" • [2-4]
  "." := lexemes • "." [4-4]
  "OR_KW" := lexemes • "OR_KW" [4-4]
  "expr_app" := rules "expr_app" "expr_select" • [0-4]
  "expr_op" := rules "expr_app" • [0-4]
  "expr_app" := rules "expr_app" • "expr_select" [0-4]
  "expr_if" := rules "expr_op" • [0-4]
  "expr_op" := rules "expr_op" • "EQ" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "NEQ" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "<" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "LEQ" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • ">" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "GEQ" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "AND" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "OR" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "IMPL" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "UPDATE" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "?" "attrpath" [0-4]
  "expr_op" := rules "expr_op" • "+" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "-" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "*" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "/" "expr_op" [0-4]
  "expr_op" := rules "expr_op" • "CONCAT" "expr_op" [0-4]
  "expr_select" := rules • "expr_simple" "." "attrpath" [4-4]
  "expr_select" := rules • "expr_simple" "." "attrpath" "OR_KW" "expr_select" [4-4]
  "expr_select" := rules • "expr_simple" "OR_KW" [4-4]
  "expr_select" := rules • "expr_simple" [4-4]
  "expr_function" := rules "expr_if" • [0-4]
  "EQ" := lexemes • "EQ" [4-4]
  "NEQ" := lexemes • "NEQ" [4-4]
  "<" := lexemes • "<" [4-4]
  "LEQ" := lexemes • "LEQ" [4-4]
  ">" := lexemes • ">" [4-4]
  "GEQ" := lexemes • "GEQ" [4-4]
  "AND" := lexemes • "AND" [4-4]
  "OR" := lexemes • "OR" [4-4]
  "IMPL" := lexemes • "IMPL" [4-4]
  "UPDATE" := lexemes • "UPDATE" [4-4]
  "?" := lexemes • "?" [4-4]
  "+" := lexemes • "+" [4-4]
  "-" := lexemes • "-" [4-4]
  "*" := lexemes • "*" [4-4]
  "/" := lexemes • "/" [4-4]
  "CONCAT" := lexemes • "CONCAT" [4-4]
  "expr_simple" := rules • "ID" [4-4]
  "expr_simple" := rules • "INT" [4-4]
  "expr_simple" := rules • "FLOAT" [4-4]
  "expr_simple" := rules • "\"" "string_parts" "\"" [4-4]
  "expr_simple" := rules • "IND_STRING_OPEN" "ind_string_parts" "IND_STRING_CLOSE" [4-4]
  "expr_simple" := rules • "path_start" "PATH_END" [4-4]
  "expr_simple" := rules • "path_start" "string_parts_interpolated" "PATH_END" [4-4]
  "expr_simple" := rules • "SPATH" [4-4]
  "expr_simple" := rules • "URI" [4-4]
  "expr_simple" := rules • "(" "expr" ")" [4-4]
  "expr_simple" := rules • "LET" "{" "binds" "}" [4-4]
  "expr_simple" := rules • "REC" "{" "binds" "}" [4-4]
  "expr_simple" := rules • "{" "binds" "}" [4-4]
  "expr_simple" := rules • "[" "expr_list" "]" [4-4]
  "expr" := rules "expr_function" • [0-4]
  "ID" := lexemes • "ID" [4-4]
  "INT" := lexemes • "INT" [4-4]
  "FLOAT" := lexemes • "FLOAT" [4-4]
  "\"" := lexemes • "\"" [4-4]
  "IND_STRING_OPEN" := lexemes • "IND_STRING_OPEN" [4-4]
  "path_start" := rules • "PATH" [4-4]
  "path_start" := rules • "HPATH" [4-4]
  "SPATH" := lexemes • "SPATH" [4-4]
  "URI" := lexemes • "URI" [4-4]
  "(" := lexemes • "(" [4-4]
  "LET" := lexemes • "LET" [4-4]
  "REC" := lexemes • "REC" [4-4]
  "{" := lexemes • "{" [4-4]
  "[" := lexemes • "[" [4-4]
  "Γ" := rules "expr" • [0-4]
  "PATH" := lexemes • "PATH" [4-4]
  "HPATH" := lexemes • "HPATH" [4-4]