pax_global_header00006660000000000000000000000064147626240710014523gustar00rootroot0000000000000052 comment=ae9db9a8d43a02d6126244719464a3ace445af68 sdm-lang-tree-sitter-sdml-ae9db9a/000077500000000000000000000000001476262407100172075ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/.gitignore000066400000000000000000000075641476262407100212130ustar00rootroot00000000000000# -*- mode: gitignore; -*- ### Emacs ### *~ \#*\# /.emacs.desktop /.emacs.desktop.lock *.elc auto-save-list tramp .\#* # Org-mode .org-id-locations *_archive # flymake-mode *_flymake.* # eshell files /eshell/history /eshell/lastdir # elpa packages /elpa/ # reftex files *.rel # AUCTeX auto folder /auto/ # cask packages .cask/ dist/ # Flycheck flycheck_*.el # server auth directory /server/ # projectiles files .projectile # directory configuration .dir-locals.el # network security /network-security.data ### Node ### # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json # Runtime data pids *.pid *.seed *.pid.lock # Directory for instrumented libs generated by jscoverage/JSCover lib-cov # Coverage directory used by tools like istanbul coverage *.lcov # nyc test coverage .nyc_output # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) .grunt # Bower dependency directory (https://bower.io/) bower_components # node-waf configuration .lock-wscript # Compiled binary addons (https://nodejs.org/api/addons.html) build/Release # Dependency directories node_modules/ jspm_packages/ # TypeScript v1 declaration files typings/ # TypeScript cache *.tsbuildinfo # Optional npm cache directory .npm # Optional eslint cache .eslintcache # Microbundle cache .rpt2_cache/ .rts2_cache_cjs/ .rts2_cache_es/ .rts2_cache_umd/ # Optional REPL history .node_repl_history # Output of 'npm pack' *.tgz # Yarn Integrity file .yarn-integrity # dotenv environment variables file .env .env.test .env*.local # parcel-bundler cache (https://parceljs.org/) .cache .parcel-cache # Next.js build output .next # Nuxt.js build / generate output .nuxt dist # Gatsby files .cache/ # Comment in the public line in if your project uses Gatsby and not Next.js # https://nextjs.org/blog/next-9-1#public-directory-support # public # vuepress build output .vuepress/dist # Serverless directories .serverless/ # FuseBox cache .fusebox/ # DynamoDB Local files .dynamodb/ # TernJS port file .tern-port # Stores VSCode versions used for testing VSCode extensions .vscode-test ### Rust ### # Generated by Cargo # will have compiled files and executables /target/ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html Cargo.lock ### Tree-Sitter ### # Org-Mode generated /README.html # From the debug test tool /log.html # Generated for the playground /tree-sitter-*.wasm ### Node ### package-lock.json node_modules ### Python ### # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ dist/ eggs/ .eggs/ sdist/ wheels/ pip-wheel-metadata/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # pyenv .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ pythonenv* # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # profiling data .prof ### Generic Build ### /dev/ /build/ ### Binding Generator ### .editorconfig .gitattributes sdm-lang-tree-sitter-sdml-ae9db9a/.npmignore000066400000000000000000000000531476262407100212040ustar00rootroot00000000000000bindings/rust build dev dist examples test sdm-lang-tree-sitter-sdml-ae9db9a/CHANGES.md000066400000000000000000001015061476262407100206040ustar00rootroot00000000000000# Changes for tree-sitter-sdml ## Version 0.4.5 * Fix: Make all values in datatype restrictions fields named 'value'. * Added two new test cases for fixed/timezone restriction and pattern/sequence restriction. This grammar fix allows grammar processors to use the tree-sitter query `(datatype_def_restriction (value (_)) )` to select all values from all restrictions regardless of type. ## Version 0.4.4 The primary aim of this release is the ability to prefix an `import` statement with a `from` clause indicating a relative or absolute module path to import from. This is a departure from the current fully flat notion of modules in SDML today, the from clause assumes that modules exist in some hierarchical structure with some number of root modules. Today the SDML library has used underscores to create a namespace-like structure, this change will allow the library to take advantage of a true hierarchy. A mapping from known/proposed library modules to hierarchical forms is shown in the following table. | Old Name | `::` Top | `::` 2nd | `::` 3rd | `::` 4th | |------------------|----------|----------|------------|----------| | `sdml` | `sdml` | | | | | `iso_639_1` | `std` | `iso` | `iso639` | `part1` | | `iso_3166` | | | `iso3166` | | | `iso_4217` | | | `iso4217` | | | `iso_8601` | | | `iso8601` | | | `iso_9362` | | | `iso9362` | | | `iso_17442` | | | `iso17442` | | | `rdf` | | `w3c` | `rdf` | | | `rdfs` | | | `rdfs` | | | `owl` | | | `owl` | | | `skos` | | | `skos` | | | `void` | | | `void` | | | `xsd` | | | `xsd` | `facets` | | `dc_elements` | | `dc` | `elements` | | | `dc`, `dc_terms` | | | `terms` | | | `gs1_gln` | | `gs1` | `gln` | | | `gs1_gtin` | | | `gtin` | | | | | `ietf` | `rfc6838` | | | `un_locode` | | `un` | `locode` | | Example: ``` sdml module example is from ::std::iso import [ iso3166 iso4217 iso8601 ] from ::std::gs1 import gtin end ``` ### Detailed Changes * Feature: add an optional clause with a `from` keyword followed by a *module path* at the start of any `import_statement`. * A module path is an ordered list of module names separated by the token `::`. * An absolute module path starts with a `::` token. * The root module path is the `::` token with no following module name. * A relative module path starts with a module name. * This **will** require documentation changes regarding the manner in which the module loader and specifically the resolver works. * This **may** require documentation changes regarding the manner in which a module's placement in a folder structure impacts mapping to a module URI. Changes for new datatype syntax in BNF form: ``` ebnf ImportStatement ::= FromClause? "import" ( Import | "[" Import+ "]" ) FromClause ::= "from" ( ModulePathAbsolute | ModulePathRelative | ModulePathRootOnly ) ModulePathAbsolute ::= ModulePathPart+ ModulePathRelative ::= Identifier ModulePathPart* ModulePathRootOnly ::= "::" ModulePathPart ::= "::" Identifier ``` ## Version 0.4.3 The primary aim of this release is to clean up the syntax of the formal constraint language to remove some redundancy and simplify for the upcoming formatter. For example, as constraints are written as invariants over all instances of a class the construct `∀ self` to create a quantified sentence over the set of all instances is extra work and as `self` is an allowed term on it's own the quantifier can be dropped and simpler sentence constructs used instead. ### Detailed Changes * Feature: removed the choice of 'self' from the rule `quantified_variable`. * Feature: a new, simpler, rule named `variable` replaces `named_variable_set` and `mapping_variable`. * Additionally, both quantified sentences and sequence builders now use `variable` as their rule for variable definitions. * Feature: the vertical bar used in the sequence builder is now a named rule `set_op_builder`. * Removed: an existing ability to have multiple sentences as the body of a sequence builder, this did not make sense as-is. ## Version 0.4.2 The primary aim of this release is to introduce a more streamlined syntax for datatype restrictions than the current use of annotation properties. Also, note that the `pattern` restriction allows a list of pattern values, allowing complex patterns to be broken into alternatives. ``` sdml module example is datatype range <- unsignedShort { minValue = 1 maxValue = 10 } datatype uuid <- string { pattern = [ "^(?:[[:xdigit:]]{32})$" "^(?:[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12})$" "^(?:\\{[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}\\})$" "^(?:\\([[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}\\))$" "^(?:\\{0x[[:xdigit:]]{8},(?:0x[[:xdigit:]]{4},){2}\\{(?:0x[[:xdigit:]]{2},){7}0x[[:xdigit:]]{2}\\}\\})$" ] } is @skos:prefLabel = "UUID"@en @dc:description = "The string form of a UUID, conforming to one of 5 standard patterns."@en end end ``` | Facet | Class | Datatype | Maybe Fixed? | |--------------------|----------|---------------------------------------|--------------| | `fractionDigits` | digits | `unsigned` | Yes | | `totalDigits` | digits | `unsigned` | Yes | | `length` | length | `unsigned` | Yes | | `maxLength` | length | `unsigned` | Yes | | `minLength` | length | `unsigned` | Yes | | `pattern` | pattern | `string` | **No** | | `explicitTimezone` | timezone | `required or prohibited or optional` | Yes | | `maxExclusive` | value | `simpleValue or valueConstructor` | Yes | | `maxInclusive` | value | `simpleValue or valueConstructor` | Yes | | `minExclusive` | value | `simpleValue or valueConstructor` | Yes | | `minInclusive` | value | `simpleValue or valueConstructor` | Yes | ### Detailed changes * Feature: added new restriction syntax for datatype definitions. * Feature: added all *valid* datatype names from XML Schema and OWL to the `builtin_simple_type` grammar rule. These may now be used without having to import the `xsd` module. * Feature: brought together the notion of function and method into a single rule set and simplified. * A constant in an environment definition is simply a null-ary function and may be defined with a term, replacing the explicit constant rule that allowed a predicate value. * Feature: simplified the syntax for formal constraint environments using `with..is` instead of the less obvious `is..in` keywords. * Feature: added new `rational` builtin datatype from OWL, allowing rational constant values. * Feature: allow the grammar rule `rdf_types` to use the keyword `a`, commonly used in Turtle, instead of `type`. * Feature: (internal) grammar now uses defined rules for as many operators as possible to reduce strings in the grammar. Changes for new datatype syntax in BNF form: ``` ebnf DatatypeDef ::= "datatype" Identifier "<-" "opaque"? IdentifierReference DatatypeDefRestriction? AnnotationOnlyBody? DatatypeDefRestriction ::= "{" RestrictionFacet+ "}" RestrictionFacet ::= DigitRestrictionFacet | LengthRestrictionFacet | PatternRestrictionFacet | TzRestrictionFacet | ValueRestrictionFacet DigitRestrictionFacet ::= ("fractionDigits" | "totalDigits") "=" "fixed"? unsigned LengthRestrictionFacet ::= ("length" | "maxLength" | "minLength") "=" "fixed"? unsigned PatternRestrictionFacet ::= "pattern" "=" ( QuotedString | "[" QuotedString+ "]" ) TzRestrictionFacet ::= "explicitTimezone" "=" "fixed"? ("required" | "prohibited" | "optional") ValueRestrictionFacet ::= ("maxExclusive" | "maxInclusive" | "minExclusive" | "minInclusive") "=" "fixed"? ( SimpleValue | ValueConstructor ) ``` Changes for new constraint environment syntax in BNF form: ``` ebnf FormalConstraint ::= ConstraintEnvironment? "is" ConstraintSentence "end" ConstraintEnvironment ::= "with" FunctionDef+ ``` Changes for new function definition syntax in BNF form: ``` ebnf FunctionDef ::= FunctionSignature FunctionBody FunctionSignature ::= "def" Identifier ( "(" FunctionParameter+ ")" )? FunctionTypeReference FunctionBody ::= (":=" | "≔") (Term | ConstraintSentence) ``` Update to method definition syntax to reuse function forms in BNF form: ``` ebnf MethodDef ::= FunctionSignature FunctionBody AnnotationOnlyBody? ``` Changes to add all OWL types, and all relevant XSD datatypes, in BNF form: ``` ebnf BuiltinSimpleType ::= OwlBuiltinTypes | BuiltinPrimitiveDatatypes | DerivedDateDatatypes | DerivedNumericDataTypes | DerivedStringDatatypes OwlBuiltinTypes ::= "Thing" | "Nothing" | "real" | "rational" BuiltinPrimitiveDatatypes ::= "anyURI" | "iri" | "base64Binary" | "boolean" | "unsigned" | "date" | "dateTime" | "decimal" | "double" | "duration" | "float" | "gDay" | "gMonth" | "gMonthDay" | "gYearMonth" | "gYear" | "hexBinary" "string" | "time" DerivedDateDatatypes ::= "dateTimeStamp" | "dayTimeDuration" | "yearMonthDuration" DerivedNumericDataTypes ::= "integer" | "long" | "int" | "shport" | " byte" | "nonNegativeInteger" | "positiveInteger" | "unsignedLong" | "unsignedInt" | "unsigned" | "unsignedShort" | "unsignedByte" | "nonPositiveInteger" | "negativeInteger" DerivedStringDatatypes ::= "normalizedString" | "token" | "language" ``` Changes to add new OWL rational value form in BNF form: ``` ebnf SimpleValue ::= "boolean" | "unsigned" | "integer" | "rational" | "decimal" | "double" | "string" | "iri" | "binary" rational ::= ( [+-]? ( "0" | [1-9][0-9]* ) "/" [1-9][0-9]* ) ``` ## Version 0.4.1 Internal fix release, Rust only. ## Version 0.4.0 The primary aim of this release is to introduce a new definition type, a *dimension*. This may be seen as a violation of SDML's goal of being technology or implementation independent however it is a pragmatic decision based on usage experience. Modeling the data managed by a business in terms of entities solves many operational purposes but ignores a major purpose of this data -- reporting. ```sdml module example is import [ sales stores xsd ] dimension Region is ;; define an identifier for this dimension identity region -> long ;; add members name -> string end dimension Location is ;; tightly bind this dimension to the Sale entity source sales:Sale ;; define a hierarchy by noting one or more parent dimensions parent region -> Region ;; reuse members from the source entity store from sales:Sale city from sales:Sale ;; add additional members not on the source entity state -> stores:State country -> stores:Country end end ``` ### Detailed changes * Add `dimension_def` to the choice group in `definition`. * Add new `dimension_def` with name and optional `dimension_body`. * New `dimension_body` allows for *either* a source clause, or an identity clause. * New `dimension_body` allows a set of `parent_dimension` clauses before a set of `dimension_member` clauses. * A `parent_dimension` is a simplified name to identifier reference member with the keyword `parent`. * A `dimension_member` is either an existing `member_def`, `property_ref` or the new `member_from` clause that allows reuse of members from source entities. **Breaking Change**: the grammar moves the `source` keyword and identifier reference from the `event_def` rule to a new `event_body` rule. Old code, note that the source clause was required even for empty events. ``` sdml module example is entity Thing event NewThing source Thing end ``` New code, now an empty event looks more like other empty definitions, and adding a source clause requires `is` and `end`. ``` sdml module example is entity Thing event Empty event NewThing is source Thing end end Additionally, this version of the grammar allows module's to rename imports, both modules and members. This allows then client module to avoid always using qualified names, and to use short, or more meaningful, names as appropriate. ``` sdml module example is import rentals_billing as billing import billing:Invoice as Invoice end ``` ## Version 0.3.4 * Fix missing `byte` nodes in grammar for binary literals. ## Version 0.3.3 * Build: update version of dependent packages `cc` and `tree-sitter`. ## Version 0.3.2 * Feature: change `module`'s *well-formedness rules* to disallow the definitions `rdf_def` and `type_class_def` be added to a non-library module. * Feature: remove the rule `feature_reference` entirely, and it's reference in rule `type_reference`. ``` js type_reference: $ => choice( $.unknown_type, $.identifier_reference, $.builtin_simple_type, $.mapping_type ), ``` ## Version 0.3.1 * Fix: regular expression for characters inside a string. * Added `examples/escaped_strings.sdm` file for basic testing. * Added `test/corpus/escaped_strings.sdm` file for more complete testing. ## Version 0.3.0 * Feature: simplified property definitions. * Removed notion of role, a `property_def` is singular. * Removed "in" keyword, `property_ref` uses "ref". * Removed inverse names. ```js property_def: $ => seq( keyword('property'), $.member_def ), ``` * Feature: unified single definition of `member`. * Changed member, is now *either* `property_ref` or `member_def`. * Changed `property_def` to simply be `member_def`. * Changed `entity_identity` to be `member`. * Expect to add warning for unbounded cardinality for entity identities. ```js entity_identity: $ => seq( keyword('identity'), $.member ), member: $ => choice( $.member_def, $.property_ref, ), member_def: $ => seq( field('name', $.identifier), $._type_expression_to, optional(field('body', $.annotation_only_body)) ), property_ref: $ => seq( keyword('ref'), field('property', $.identifier_reference), ), ``` ## Version 0.2.14-16 * Feature: simplified form of `rdf_def`. ## Version 0.2.13 * Feature: add `rdf_super_types` optional rule to `rdf_def`. ## Version 0.2.12 * Refactor: simplify the `rdf_thing_def` rule into `rdf_def`. ## Version 0.2.11 * Fix: rename field `uri` to `version_uri` on rule `module_import`. * Refactor: clean-up test case names to match those in sdml-parse Rust crate. ## Version 0.2.10 * Feature: add version support to modules. * Remove `base` keyword. * Add optional `version` keyword and string/IRI version information. * Add optional IRI after identifier for module imports. ## Version 0.2.8/0.2.9 * Feature: better support for RDF generation. * Add direct support for RDF structures and properties rather than using SDML structures. * see file `examples/rdf_schema.sdm` * Remove keyword `"base"`, add new version clause on module definitions. * see file `test/corpus/module_empty_with_version.sdm` ## Version 0.2.7 * Remove member group from grammar, can't find a use that isn't better done by moving members to a structure of their own. ## Version 0.2.6 * Fix: test case typos. ## Version 0.2.5 * Feature: Inline type variables in type classes. ## Version 0.2.4 * Fix: tidy grammar for type classes. ## Version 0.2.3 * Feature: expand rule `sequence_of_predicate_values` to match `sequence_of_values` with value constructor, mapping value, and identifier reference choices. * Feature: simplify rule `value_variant` to remove the assignment to an unsigned value. * Feature: change rule `feature_reference` to contain the identifier reference, update the rule `_type_expression_to` to have a choice of `feature_reference` *or* `type_reference`. * Fix: add field `byte` to rule `binary` to aid in parser and highlighting. Along with minor changes in highlighting and examples. ## Version 0.2.2 * Feature: add rule `optional` for the operator "?" to allow for optional values. Also added to type reference rules. * Fix: minor updates to type classes: * Add: name `parameters` to the rule reference `type_class_parameters` in rule `type_class_def`. * Rename: rule `type_variable_subtype` to `type_variable_restriction`. * Remove: wildcard from top of rule `type_variable_restriction`. * Add: ability to have multiple types in a restriction separated by "+". ## Version 0.2.1 This release is primarily to implement *type classes* that allow a better description of the standard library for constraints. Adding this support identified some simplifications in functional terms and sequence builders. ``` sdml module example is class Typed(T) is def has_type(v -> T) → Type is @skos:definition = "Returns the SDML type of the passed value."@en @skos:example = "~type_of(rentals:Customer) = sdml:Entity~" end end end ``` * Feature: add type classes for managing the constraint language library. * Add: rule `type_class_def` and list it as an alternative in `definition`. * Add: rule `method_def` and include as member of `type_class_def`. * Remove: choice `wildcard` from rule `function_type_reference`, wildcards are only allowed on type class parameters. * Feature: simplify the rule `quantified_sentence` to only have a single quantified variable binding. * Alter: field `binding` in `quantified_sentence` to remove the repeat. * Alter: field `body` from `_quantified_body` to `constraint_sentence`. * Rename: rule `quantifier_bound_names` to `quantified_variable` to denote singular. * Alter: field `source` in `quantified_variable` to use existing `term`. * Remove: rules `type_iterator` and `sequence_iterator`. * Feature: simplify the structure of sequence builder to use `quantified_sentence` as body. * Alter: field `body` in rule `sequence_builder` from `_variable_binding` to `sequence_builder_body`. * Remove: rule `_variable_binding`. * Add: rule `sequence_builder_body` which is simply a reference to rule `quantified_sentence`. * Feature: add rule `actual_aruments` for use in rules `atomic_sentence` and `functional_term`. * Refactor: rename boolean constants. * Rename: `_boolean_true` to `boolean_truth`. * Rename: `_boolean_false` to `boolean_falsity`. ## Version 0.2.0 This is a significant refactor intended to simplify the grammar, and reduce the number of constructs used where the differentiation is not as significant as it looked previously. * Refactor: simplify model overall, especially members and features. * Refactor: combine by*value and by*reference member types. * Remove: rules `member_by_value` and `role_by_value`. * Rename: rule `member_by_reference` to `member` and `role_by_reference` to `member_role`. * Remove: keyword the `ref` from rules `member` and `member_role`. * Rename: rule `identity_member` to `entity_identity`. * Refactor: combine structured type groups. * Rename: rule `structure_body` to `structured_body`. * Rename: rule `structure_group` to `member_group`. * Move: common parts of structure and entity bodies into common `_structured_body_inner` rule. * Refactor: move feature from a definition to a member modifier. * Remove: rule `feature_set_def`, and update `definition` accordingly. * Add: optional keyword `features` into the rule `_type_expression_to`. * Feature: add new keyword `opaque` to datatype definition. * Style: Use `:=` throughout for assignment /by definition/. * Add: silent rule `_by_definition`. * Alter: rules `value_variant`, `function_def`, and `constant_def` to use `_by_definition`. * Style: rename rule `_property_member` to `_property_reference`. ## Version 0.1.42 * Feature: simplified `features` definition to be or/xor only. * Replace: separate bodies with `UnionBody`. * Add: cardinality now used to determine or/xor. ``` ebnf FeatureSetDef ::= "features" Identifier Cardinality? UnionBody? ``` ## Version 0.1.41 * Feature: add support for features from Product Line Engineering. * Add new definition rule `feature_set_def` to rule `definition`. * Add *and*, *or*, *xor* bodies to `feature_set_def`. * Add basic documentation to book. * Feature: updates to builtin simple types. * Add the new type `unsigned`. * Add the new type `binary`. * Rename type `iri_reference` to `iri`. ## Version 0.1.40 * Feature: add the Unicode character `↦` to the rule `_has_type` which works better for some typesetting. * Feature: add rule for `inequation` alongside `equation`. * Add new rule `inequation` and make it a choice within `simple_sentence`. * Add new rules for inequality relations; `not_equal`, `less_than`, `less_than_or_equal`, `greater_than`, and `greater_than_or_equal`. * Refactor: restructure rule `boolean_sentence` into a choice of `unary_boolean_sentence` and `binary_boolean_sentence`. * Add rule `unary_boolean_sentence` for negation only. * Add rule `binary_boolean_sentence` for logical connectives. * Add rules for each logical connective keyword/operator symbols. * Refactor: rename field `variable_binding` to ``binding` in rule `quantieid_sentence`. * Refactor: use the same rule for empty set in value sequences. * Refactor: rename rule `_function_type_expression_to` to `_function_type`. * Refactor: add rules `_has_type` and `_type_restriction` and allow both ASCII and Unicode arrows. * Add rule `_has_type` for values `*>` and `→`. * Add rule `_type_restriction` for values `<*` and `←`. * Fix: rules for new shared bindings had confusing names. * Add rule `quantified_variable_binding`. * Rename rule `quantifier_binding` to `quantifier_bound_names`. * Docs: add appendix with details of Unicode usage. ## Version 0.1.39 * Feature: allow multiple bindings at the head of quantified sentences. * Feature: made progress on local scopes in highlighting. * Rename rule `_constant_def` to `constant_def`. * To*do: currently references are not picking up their definition formatting. * Refactor: rename rule `name_path` to `function_composition`. * Refactor: combine components of the two rules `quantified_sentence` and `sequence_builder`. * Add new shared rule `quantifier_binding` (along with `_bound_name_set`) now used in both sentence and builder. * Add the ability to have more than one name in a binding. * Add the ability for sequence builders to have more than one quantified binding. * Change the field `expression` into a field named `body` of type `constraint_sentence`. * Remove rules `expression` and `conjunctive_expression`. * Style: change the order of choices in rule `predicate_value` to match `value` and corresponding sequences. ## Version 0.1.38 * Feature: Update naming for iterators to make them consistent. * Rename rule `iterator_target` to `iterator_source`. * Rename field `from` in `type_iterator` to `source`. * Rename field `from` in `sequence_iterator` to `source`. ## Version 0.1.37 * Feature: update rule `function_cardinality_expression` to allow sequence constraints. * Rename rule `any_type` to `wildcard`. * Remove rule `any_cardinality` and replace with `wildcard`. * Feature: rename lists to sequences. * Rename rule `list_of_predicate_values` to `sequence_of_predicate_values`. * Rename rule `list_of_values` to `sequence_of_values`. * Feature: make rule `property_role` private as `_property_role`. * Feature: allow sequence constraints on sequence values. * Add rule `_sequence_value_constraints`. * Add optional `_sequence_value_constraints` to rule `sequence_of_predicate_values`. * Add optional `_sequence_value_constraints` to rule `sequence_of_values`. ## Version 0.1.36 * Feature: alter the rule `sequence_comprehension` to be more flexible. * Rename rule `sequence_comprehension` to `sequence_builder`. * Rename rule `returned_value` to `variables` and re-write as a choice of: * Add rule `tuple_variable` to return distinct variables. * Add rule `sequence_variable` to return distinct variables as a sequence. * Add rule `mapping_variable` to return two variables as a mapping. ## Version 0.1.35 * Feature: alter the rule `_property_member` to allow property names to be `identifier_reference`. * New interpretation, field `name` in a member will be the name of a role. * Renamed keyword `in`, not `as`. * Renamed field `role` to `property` and made it's type `identifier_reference`. ## Version 0.1.34 * Feature: update property definitions to look more like members. * Update rule `property_role` to be a choice of three new rules. * Add rule `identity_role` which is a subset of `identity_member`. * Add rule `role_by_value` which is a subset of `member_by_value`. * Add rule `role_by_reference` which is a subset of `member_by_reference`. ## Version 0.1.33 * Feature: renamed quantifier binding targets to be more consistent. * Rename rule `binding_target` to `iterator_target`. * Rename rule `binding_type_reference` to `type_iterator` and field name `from_type` to `from`. * Rename rule `binding_seq_iterator` to `sequence_iterator` and field name `from_sequence` to `from`. * Feature: simplified the rule `environment_definition` and made naming more consistent. * Remove optional `signature` field * Remove assignment operators * Rename field name `rhs` to `body` and change to a choice of `function_def` or `_value_def`. * Add rule `function_def` to hold the signature and operators removed from the environment definition. * Rename rule `fn_parameter` to `function_parameter`. * Rename rule `_fn_type` to `_function_type_expression_to`. * Add rules `function_cardinality_expression` and `any_cardinality` to capture cardinality or wildcard. * Add rule `function_type_reference` to allow wildcards. * Feature: update queries `highlights`, `locals`, and `tags` for all changes above. * Docs: update BNF syntax and diagrams for all changes above. ## Version 0.1.32 * Feature: update environment definition sequence types to use the same syntax as member type and cardinality. ## Version 0.1.31 * Feature: update highlighting queries for constraints with support for locals. * Feature: add a `locals.scm` file with scopes for formal constraints. * Feature: add `∅` (empty set) as a synonym for `[]` in constraints. * Fix: update the mapping value test case to use domain/range field names. ## Version 0.1.30 * Feature (minor): added field names for the domain and range of mapping types and values. ## Version 0.1.29 * Fix: an apparent regression, the value for a constructor changed from `simple_value` to `value`. This changes it back. ## Version 0.1.28 * Feature: add a mapping type and corresponding value syntax. ## Version 0.1.27 * Feature: add *ordering* and *uniqueness* constraints into the cardinality expression. Used to constrain the sequence type of a member. ## Version 0.1.26 * Feature: applied same change as 0.1.25 but for property roles as well. ## Version 0.1.25 * Feature: changed grammar for reference members: * The production `source_cardinality` has been removed. * The production `member_inverse_name` has been added. ## Version 0.1.24 * Feature: constraint grammar changes * Add a *language-tag* to informal constraints. * Add a *wildcard type* for the constraint language. ## Version 0.1.23 * Feature: add highlighting test for constraints, had to tweak a few things. ## Version 0.1.22 * Feature: clarify rules and associated meaning. * Rename the grammar rule `type_definition` to `definition` to address the fact that property definitions aren't types. * Rename the grammar rule `enum_variant` to `value_variant` to align with `type_variant` on unions. ## Version 0.1.21 * Feature: add support for sequence builder support(set builder) syntax. * Fix: highlighting/indent/fold updated for constraints. * Style: a number of cosmetic changes to formal constraints. ## Version 0.1.19/0.1.20 * Fix: minor change to add a field name to the `..` range operator. ## Version 0.1.18 * Feature: added a constraint assertion construct. This allows for specific constraints to be documented for any model element. * The grammar rule `annotation` has been renamed `annotation_property` * The grammar rule `constraint` has been added. * A new grammar rule named `annotation` is defined as a choice of `annotation_property` or `constraint`. * This allows the use of the old rule to be subsumed by the new definition. * Feature: constraints may now be written in informal unstructured fashion or an embedded formalism. * The informal representation is simply a string. * The formal representation is a syntax that maps to a subset of [ISO/IEC 24707:2018](https://www.iso.org/standard/66249.html) Common Logic. * Docs: more documentation added on the RDF mapping and the domain modeling process. ``` sdml module example is import tag structure Thing is inner -> {0..} InnerThing is ;; informal assert same_tags = "All inner tags contain a tag value \"This\"." ;; formal assert same_tags_formal is forall self ( not_empty(self) and contains(self.tags "This") ) end end end structure InnerThing is tags -> {0..} tag:Tag end end ``` ## Version 0.1.17 * Fixed: highlighting for properties. ## Version 0.1.16 * Feature: Adjusted property grammar. * Docs: Started on property documentation. ``` sdml module ddict is import account property accountId is @skos:prefLabel = "accountId"@en @skos:altLabel = "account_id"@en identifier -> {1} account:AccountId is @skos:definition = "Used as an identifier for account-scoped things"@en end reference ref {1} -> {1} account:AccountId end structure Account is accountId as identifier name -> string end end ``` ## Version 0.1.15 * Feature: Added new structure to the grammar to allow data-dictionary style reusable property definitions. ``` sdml module ddict is import account property accountId -> account:AccountId is @skos:prefLabel = "accountId"@en @skos:altLabel = "account_id"@en identifier is @skos:definition = "Used as ..."@en end default = {1..1} end structure Account is accountId as default name -> string end end ``` ## Version 0.1.14 * Added new rule named `builtin_simple_type` (choice of `string`, `double`, `decimal`, `integer`, `boolean`, and `iri`): * replaced `identifier_reference` with new rule `data_type_base` for `data_type_def`, * added to the `type_reference` choice used for the member `target` field. Allows both: ``` sdml module example is datatype mystring <- string structure Person is name -> string age -> integer end end ``` Where the keywords `string` and `integer` will be expanded into the qualified identifiers `sdml:string` and `sdml:integer` respectively. ## Version 0.1.13 * Added explicit `base` grammar for module rather than using `xml:base` as an attribute. * Expanded grammar for `Identifier` to allow decimal digits in any position *after* the first. * Clarified the grammar for `TypeVariant`. Introduces: ```sdml module example base is end ``` Which replaces the annotation form: ```sdml module example is import xml @xml:base = end ``` ## Version 0.1.12 * Fixed highlight issue for annotations with `IdentifierReference` values * Added field for `TypeVariant` name ## Version 0.1.11 * Added a rename to optional value to `TypeVariant` * Fixed `annotation` and `language_tag` grammar rule conflict Introduces: ```sdml module example is union Example is Variant1 Variant1 as Alternative end end ``` This allows the use of the same type as a variant more than once if the new identifier is unique within the same `union`. ## Version 0.1.10 * Cleaned up queries. ## Version 0.1.9 * Simplified the disjoint `UnionDef` type. ## Version 0.1.8 * Added a disjoint `UnionDef` type. ## Version 0.1.7 * Made field name `sourceCardinality` into `source_cardinality`. * Made field name `targetCardinality` into `target_cardinality`. * Added versioning annotations ## Version 0.1.6 * Made `_simple_value` into `simple_value` named rule. * Made `_type_reference` into `type_reference` named rule. sdm-lang-tree-sitter-sdml-ae9db9a/Cargo.toml000066400000000000000000000012001476262407100211300ustar00rootroot00000000000000[package] name = "tree-sitter-sdml" description = "sdml grammar for the tree-sitter parsing library" authors = ["Simon Johnston "] version = "0.4.5" keywords = ["incremental", "parsing", "sdml"] categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter/tree-sitter-sdml" edition = "2018" license = "Apache-2.0" readme = "README.md" publish = true autoexamples = false build = "bindings/rust/build.rs" include = [ "bindings/rust/*", "grammar.js", "queries/*", "src/*", ] [lib] path = "bindings/rust/lib.rs" [dependencies] tree-sitter = "0.24.4" [build-dependencies] cc = "1.1" sdm-lang-tree-sitter-sdml-ae9db9a/LICENSE000066400000000000000000000011031476262407100202070ustar00rootroot00000000000000Copyright 2023 Simon Johnston Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. sdm-lang-tree-sitter-sdml-ae9db9a/Makefile000066400000000000000000000266421476262407100206610ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Config Names # ---------------------------------------------------------------------------- ROOT := $(PWD) BASE_NAME := $(shell basename $(ROOT)) BASE_NAME_US := $(subst -,_,$(BASE_NAME)) SHORT_NAME := $(shell echo $(BASE_NAME) | cut -d '-' -f 3) FILE_EXT := sdm # ---------------------------------------------------------------------------- # Config ❯ Directories # ---------------------------------------------------------------------------- SRC_DIR := $(ROOT)/src TST_DIR := $(ROOT)/test BUILD_DIR := $(ROOT)/build BINDING_DIR := $(ROOT)/bindings NODE_SRC_DIR := $(BINDING_DIR)/node NODE_BUILD_DIR := $(BUILD_DIR) PYTHON_ROOT_DIR := $(BINDING_DIR)/python PYTHON_SRC_DIR := $(PYTHON_ROOT_DIR)/$(BASE_NAME_US) PYTHON_BUILD_DIR := $(BUILD_DIR) PYTHON_DIST_DIR := $(ROOT)/dist RUST_SRC_DIR := $(BINDING_DIR)/rust RUST_TARGET_DIR := $(BUILD_DIR)/target INSTALL_ROOT_DIR ?= /usr/local INSTALL_LIB_DIR := $(INSTALL_ROOT_DIR)/lib INSTALL_INCLUDE_DIR := $(INSTALL_ROOT_DIR)/include # ---------------------------------------------------------------------------- # Config ❯ Tools # ---------------------------------------------------------------------------- TS_CLI := tree-sitter TS_GENERATE_ABI ?=latest TS_GENERATE := generate --abi=$(TS_GENERATE_ABI) TS_TEST := test # ---------------------------------------------------------------------------- # Config ❯ Build Flags # ---------------------------------------------------------------------------- BUILD_KIND ?= release ifeq ($(BUILD_KIND), debug) NODE_BUILD_TYPE := Debug RUST_BUILD_MODE := else ifeq ($(BUILD_KIND), release) TS_TEST_FLAGS := NODE_BUILD_TYPE := Release RUST_BUILD_MODE := --release else $(error Unknown build kind: '$(BUILD_KIND)') endif ifeq ($(OS),Windows_NT) LIB_PREFIX= DYLIB_EXT := dll else LIB_PREFIX=lib UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux) DYLIB_EXT := so CCFLAGS += -D LINUX else ifeq ($(UNAME_S),Darwin) DYLIB_EXT := dylib CCFLAGS += -D OSX -I /opt/homebrew/include else $(error Unknown/unsupported platform: '$(UNAME_S)') endif ifeq ($(BUILD_KIND), debug) TS_TEST_FLAGS := -dD0 endif endif # ---------------------------------------------------------------------------- # Config ❯ Targets # ---------------------------------------------------------------------------- PARSER_HDR_FILE := $(SRC_DIR)/tree_sitter/parser.h PARSER_SRC_FILE := $(SRC_DIR)/parser.c PARSER_LIB_FILE := $(LIB_PREFIX)$(BASE_NAME).$(DYLIB_EXT) PARSER_LIB := $(BUILD_DIR)/$(PARSER_LIB_FILE) BINDING_NODE_LIB := $(BASE_NAME_US)_binding.node BINDING_NODE := $(NODE_BUILD_DIR)/$(NODE_BUILD_TYPE)/$(BINDING_NODE_LIB) BINDING_PYTHON_SDIST := $(shell python3 $(PYTHON_ROOT_DIR)/dist_name.py source) BINDING_PYTHON_WHEEL := $(shell python3 $(PYTHON_ROOT_DIR)/dist_name.py wheel) BINDING_RUST_LIB := lib$(BASE_NAME_US).rlib BINDING_RUST := $(RUST_TARGET_DIR)/$(BUILD_KIND)/$(BINDING_RUST_LIB) BINDING_WASM_LIB := $(BASE_NAME).wasm BINDING_WASM := $(BUILD_DIR)/$(BINDING_WASM_LIB) ALL_BINDINGS := $(BINDING_NODE) $(BINDING_RUST) $(BINDING_WASM) # $(BINDING_PYTHON_SDIST) $(BINDING_PYTHON_WHEEL) # ---------------------------------------------------------------------------- # Start Here # ---------------------------------------------------------------------------- all: build test build: build_grammar build_parser build_bindings test: test_grammar test_bindings install: install_parser install_bindings publish: publish_bindings clean: clean_grammar clean_parser clean_bindings # ---------------------------------------------------------------------------- # Build ❯ Directories # ---------------------------------------------------------------------------- $(BUILD_DIR): $(info -> creating common build directory) @(mkdir -p $@) # ---------------------------------------------------------------------------- # Build ❯ Grammar # ---------------------------------------------------------------------------- .PHONY: clean_grammar build_grammar: $(SRC_DIR)/grammar.json $(SRC_DIR)/node-types.json $(PARSER_SRC_FILE) $(PARSER_HDR_FILE) $(SRC_DIR)/grammar.json: $(ROOT)/grammar.js $(TS_CLI) $(TS_GENERATE) $(SRC_DIR)/node-types.json: $(ROOT)/grammar.js $(TS_CLI) $(TS_GENERATE) $(PARSER_HDR_FILE): $(ROOT)/grammar.js $(TS_CLI) $(TS_GENERATE) $(PARSER_SRC_FILE): $(ROOT)/grammar.js $(TS_CLI) $(TS_GENERATE) test_grammar: clean_grammar $(SRC_DIR)/grammar.json $(info -> running grammar tests) $(TS_CLI) $(TS_TEST) $(TS_TEST_FLAGS) $(info -> parsing grammar examples) $(TS_CLI) parse examples/*.sdm --quiet --time clean_grammar: $(info -> removing grammar cruft) @(rm -f $(TST_DIR)/corpus/*.$(FILE_EXT)~ $(TST_DIR)/corpus/.*.\~undo-tree\~) @(rm -f $(TST_DIR)/highlight/*.$(FILE_EXT)~ $(TST_DIR)/highlight/.*.\~undo-tree\~) @(rm -f $(TST_DIR)/tags/*.$(FILE_EXT)~ $(TST_DIR)/tags/.*.\~undo-tree\~) # ---------------------------------------------------------------------------- # Build ❯ Parser Library # ---------------------------------------------------------------------------- .PHONY: clean_parser INCLUDE_DIR := $(SRC_DIR)/tree_sitter build_parser: $(PARSER_LIB) $(PARSER_LIB): $(PARSER_SRC_FILE) $(PARSER_HDR_FILE) | $(BUILD_DIR) $(info -> building parser library into $(PARSER_LIB)) @($(TS_CLI) build -o $(PARSER_LIB)) install_parser: $(INSTALL_LIB_DIR)/$(PARSER_LIB_FILE) $(INSTALL_INCLUDE_DIR)/parser.h $(INSTALL_LIB_DIR)/$(PARSER_LIB_FILE): $(PARSER_LIB) $(info -> installing parser library into $(INSTALL_LIB_DIR)) @(install -d $(INSTALL_LIB_DIR)) @(install -m755 $(PARSER_LIB) $(INSTALL_LIB_DIR)/$(PARSER_LIB_FILE)) $(INSTALL_INCLUDE_DIR)/parser.h: $(INCLUDE_DIR)/parser.h $(info -> installing parser headers into $(INSTALL_INCLUDE_DIR)) @(install -d $(INSTALL_INCLUDE_DIR)) @(install $(INCLUDE_DIR)/parser.h $(INSTALL_INCLUDE_DIR)/parser.h) clean_parser: $(info -> removing parser build files) @(rm -f $(PARSER_LIB)) # ---------------------------------------------------------------------------- # Build ❯ Parser Library ❯ Emacs # ---------------------------------------------------------------------------- .PHONY: generate_for_emacs EMACS_TS_DIR ?= $(HOME)/.tree-sitter/bin/ EMACS_ABI := 13 EMACS_BINDING := $(EMACS_TS_DIR)/$(SHORT_NAME).$(DYLIB_EXT) emacs: $(EMACS_BINDING) | $(BUILD_DIR) $(EMACS_BINDING): generate_for_emacs build_parser $(info -> installing Emacs binding into $(EMACS_TS_DIR)$(SHORT_NAME).$(DYLIB_EXT)) @(cp $(PARSER_LIB) $(EMACS_BINDING)) generate_for_emacs: $(info -> generating Emacs binding) $(TS_CLI) generate --abi=$(EMACS_ABI) # ---------------------------------------------------------------------------- # Build ❯ Bindings # ---------------------------------------------------------------------------- build_bindings: $(ALL_BINDINGS) test_bindings: test_rust install_bindings: install_rust install_python publish_bindings: publish_rust publish_node publish_python clean_bindings: clean_rust clean_node clean_wasm clean_python # ---------------------------------------------------------------------------- # Build ❯ Bindings ❯ Rust # ---------------------------------------------------------------------------- .PHONY: clean_rust CARGO_FLAGS := $(BINDING_RUST): $(PARSER_LIB) $(RUST_SRC_DIR)/build.rs $(info -> building Rust binding into $(BINDING_RUST)) @(cargo build $(RUST_BUILD_MODE) --target-dir $(RUST_TARGET_DIR)) test_rust: $(BINDING_RUST) $(info -> running Rust binding tests) @(cargo test $(RUST_BUILD_MODE) --target-dir $(RUST_TARGET_DIR)) install_rust: $(BINDING_RUST) $(info -> installing Rust binding locally) @(cargo install --path '.' --locked --target-dir $(RUST_TARGET_DIR)) publish_rust: $(BINDING_RUST) $(info -> publishing Rust binding to crates.io) @(cargo publish --allow-dirty --target-dir $(RUST_TARGET_DIR)) clean_rust: $(info -> removing Rust binding files) @(rm -rf $(RUST_TARGET_DIR)) # ---------------------------------------------------------------------------- # Build ❯ Bindings ❯ Node # ---------------------------------------------------------------------------- .PHONY: clean_node $(BINDING_NODE): $(ROOT)/binding.gyp $(NODE_BUILD_DIR)/Makefile $(NODE_SRC_DIR)/index.js $(NODE_SRC_DIR)/index.d.ts $(NODE_SRC_DIR)/binding.cc $(ROOT)/node_modules $(info -> building Node binding into $(BINDING_NODE)) @(node-gyp build) $(NODE_BUILD_DIR)/Makefile: $(ROOT)/binding.gyp $(info -> configure Node binding) @(node-gyp configure) publish_node: $(BINDING_NODE) $(info -> publishing Node binding to npmjs) @(npm publish) $(ROOT)/node_modules: $(ROOT)/package.json $(info -> install Node dependencies from $(ROOT)/package.json) @(npm install) clean_node: $(info -> removing Node binding files) @(rm -rf $(NODE_BUILD_DIR)) $(info -> removing Node local modules) @(rm -rf $(ROOT)/node_modules) # ---------------------------------------------------------------------------- # Build ❯ Bindings ❯ Python # ---------------------------------------------------------------------------- PYTHON_VENV=dev VENV_DIR=$(ROOT)/$(PYTHON_VENV) VENV_BIN=$(VENV_DIR)/bin VENV_BUILD=$(VENV_BIN)/pyproject-build VENV_PYTHON=$(VENV_BIN)/python3 VENV_PIP=$(VENV_BIN)/pip3 .PHONY: install_python clean_python $(VENV_DIR) $(BINDING_PYTHON_SDIST): $(PYTHON_SRC_DIR)/binding.c $(PYTHON_SRC_DIR)/__init__.py $(VENV_BUILD) $(info -> building Python source distribution into $(BINDING_PYTHON_SDIST)) @($(VENV_BUILD)) $(BINDING_PYTHON_WHEEL): $(BINDING_PYTHON_SDIST) $(VENV_BUILD): $(VENV_DIR) $(info -> setup Python build tool) @($(VENV_PIP) install build) $(VENV_DIR): $(info -> creating virtual environment in $(VENV_DIR)) @(python3 -m venv $(PYTHON_VENV)) install_python: $(info -> installing Python binding into local venv) @($(VENV_PIP) install -e .) publish_python: $(BINDING_PYTHON_SDIST) $(BINDING_PYTHON_WHEEL) setup_twine $(info -> uploading Python binding to PyPI) @(twine upload --sign --identity $(GPG_SIGNER) --non-interactive $(PYTHON_DIST_DIR)/*) clean_python: $(info -> removing Python binding files) @(rm -rf $(ROOT)/dist) @(rm -rf $(PYTHON_ROOT_DIR)/tree_sitter_sdml.egg-info) $(info -> removing Python virtual environment) @(rm -rf $(ROOT)/$(PYTHON_VENV)) $(info -> removing Python top-level cruft) @(rm -rf $(ROOT)/.eggs $(ROOT)/.mypy_cache) # ---------------------------------------------------------------------------- # Build ❯ Bindings ❯ WASM # ---------------------------------------------------------------------------- .PHONY: clean_wasm $(BINDING_WASM): $(PARSER_LIB) $(SRC_DIR)/grammar.json | $(BUILD_DIR) $(info -> building WASM binding file into $(BINDING_WASM)) @($(TS_CLI) build --wasm --output $(BINDING_WASM)) clean_wasm: $(info -> removing WASM binding file) @(rm -f $(BINDING_WASM)) # ---------------------------------------------------------------------------- # Setup # ---------------------------------------------------------------------------- INSTALLER=brew INSTALL_CMD=$(INSTALLER) install .PHONY: node npm emscripten twine setup: setup_node setup_npm setup_emscripten setup_twine CMD_NODE := $(shell command -v node 2> /dev/null) setup_node: $(CMD_NODE) $(info -> installing node) @($(INSTALL_CMD) node) CMD_NPM := $(shell command -v npm 2> /dev/null) setup_npm: $(CMD_NPM) $(info -> installing npm) @($(INSTALL_CMD) npm) CMD_EMSCRIPTEN := $(shell command -v emscripten 2> /dev/null) setup_emscripten: $(CMD_EMSCRIPTEN) $(info -> installing emscripten) @($(INSTALL_CMD) emscripten) CMD_TWINE := $(shell command -v twine 2> /dev/null) setup_twine: $(CMD_TWINE) $(info -> installing twine) @($(INSTALL_CMD) twine) sdm-lang-tree-sitter-sdml-ae9db9a/Package.swift000066400000000000000000000021001476262407100216110ustar00rootroot00000000000000// swift-tools-version:5.3 import PackageDescription let package = Package( name: "TreeSitterSdml", platforms: [.macOS(.v10_13), .iOS(.v11)], products: [ .library(name: "TreeSitterSdml", targets: ["TreeSitterSdml"]), ], dependencies: [], targets: [ .target(name: "TreeSitterSdml", path: ".", exclude: [ "binding.gyp", "bindings", "Cargo.toml", "grammar.js", "LICENSE", "Makefile", "package.json", "queries", "README.org", "src/grammar.json", "src/node-types.json", "test", ], sources: [ "src/parser.c", ], resources: [ .copy("queries") ], publicHeadersPath: "bindings/swift", cSettings: [.headerSearchPath("src")]) ] ) sdm-lang-tree-sitter-sdml-ae9db9a/README.md000066400000000000000000000051131476262407100204660ustar00rootroot00000000000000# Tree-Sitter grammar for SDML ![SDML Logo Text](https://raw.githubusercontent.com/sdm-lang/.github/main/profile/horizontal-text.svg) A [tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammar for the Simple Domain Modeling Language (SDML). For more information on the language, see the [documentation](https://sdml.io/). ## Example ```sdml module campaign is import [dc rdfs skos] @skos:prefLabel = "Campaign sub-domain"@en @skos:version = xsd:decimal(2) datatype Name <- string { minLength = 5 maxLength = 25 } datatype Identifier <- opaque string { length = 20 } is @dc:description = "An opaque, general, entity identifier."@en end property CampaignId -> Identifier is @skos:prefLabel = [ "Campaign Identifier"@en "Identified de campagne"@fr ] @dc:description = "The globally unique identifier for a Campaign entity"@en end structure Tag is key -> token value -> {0..} rdfs:langString end entity Campaign is identity ref CampaignId name -> Name is @skos:definition = "the name of the campaign"@en end tag -> {unordered unique 0..} Tag target -> {1..} Target end entity Target end ``` ## Bindings The following bindings are built and released along with any version upgrade of the source version. The tree-sitter tool also generates bindings for C, Go, and Swift that are not built and released to any repository. [Node](https://www.npmjs.com/package/tree-sitter-sdml) bindings are published to npmjs and can be installed using the npm command directly, or by making it a project dependency. ```sh 〉npm install -g tree_sitter_sdml ``` [Python](https://pypi.org/project/tree-sitter-sdml/) bindings are published to PyPI and can be installed using any standard tool, such as `pip`. ```sh 〉pip3 install tree_sitter_sdml ``` [Rust](https://crates.io/crates/tree-sitter-sdml) bindings are published to crates.io and can be installed via cargo in the usual manner. ```sh 〉cargo install tree_sitter_sdml ``` ## License This package is released under the Apache License, Version 2.0. See LICENSE file for details. ## Changes See [CHANGES.md](CHANGES.md). ## Additional Links * Node bindings -- [npm.js](https://www.npmjs.com/package/tree-sitter-sdml) * Rust bindings -- [crates.io](https://crates.io/crates/tree-sitter-sdml) * Python bindings -- [PyPi.org](https://pypi.org/project/tree-sitter-sdml/) * Emacs -- [sdml-mode](https://github.com/johnstonskj/emacs-sdml-mode) * Command-line tool -- [rust-sdml](https://github.com/johnstonskj/rust-sdml) sdm-lang-tree-sitter-sdml-ae9db9a/binding.gyp000066400000000000000000000012051476262407100213400ustar00rootroot00000000000000{ "targets": [ { "target_name": "tree_sitter_sdml_binding", "dependencies": [ " typedef struct TSLanguage TSLanguage; extern "C" TSLanguage *tree_sitter_sdml(); // "tree-sitter", "language" hashed with BLAKE2 const napi_type_tag LANGUAGE_TYPE_TAG = { 0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16 }; Napi::Object Init(Napi::Env env, Napi::Object exports) { exports["name"] = Napi::String::New(env, "sdml"); auto language = Napi::External::New(env, tree_sitter_sdml()); language.TypeTag(&LANGUAGE_TYPE_TAG); exports["language"] = language; return exports; } NODE_API_MODULE(tree_sitter_sdml_binding, Init) sdm-lang-tree-sitter-sdml-ae9db9a/bindings/node/index.d.ts000066400000000000000000000007041476262407100236330ustar00rootroot00000000000000type BaseNode = { type: string; named: boolean; }; type ChildNode = { multiple: boolean; required: boolean; types: BaseNode[]; }; type NodeInfo = | (BaseNode & { subtypes: BaseNode[]; }) | (BaseNode & { fields: { [name: string]: ChildNode }; children: ChildNode[]; }); type Language = { name: string; language: unknown; nodeTypeInfo: NodeInfo[]; }; declare const language: Language; export = language; sdm-lang-tree-sitter-sdml-ae9db9a/bindings/node/index.js000066400000000000000000000003111476262407100233710ustar00rootroot00000000000000const root = require("path").join(__dirname, "..", ".."); module.exports = require("node-gyp-build")(root); try { module.exports.nodeTypeInfo = require("../../src/node-types.json"); } catch (_) {} sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/000077500000000000000000000000001476262407100223255ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/dist_name.py000066400000000000000000000040041476262407100246400ustar00rootroot00000000000000import re, sys, sysconfig __string_assign=re.compile(r"""^(\w+)\s*=\s*"([^"]*)"$""") __in_project=False __project_name="" __project_version="" with open("pyproject.toml", "rt") as fp: for line in fp: if (not __in_project) and line.strip() == "[project]": __in_project=1 elif __in_project: __match = __string_assign.match(line.strip()) if not __match is None: if __match.group(1) == "name": __project_name = __match.group(2) elif __match.group(1) == "version": __project_version = __match.group(2) elif __in_project and line.lstrip().starts_with("["): break def name(): return __project_name.replace('-', '_') def version(): return __project_version def python_tag(): # See https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/ if sys.implementation.name.startswith('cp'): return "cp38" else: return sys.implementation.name def abi_tag(): return "abi3" def wheel_file_name(): platform_tag = sysconfig.get_platform().replace('-', '_').replace('.', '_') parts = (name(), version(), python_tag(), abi_tag(), platform_tag) return "-".join(parts) + ".whl" def bdist_file_name(): parts = (name(), version(), sysconfig.get_platform()) return "-".join(parts) + ".tar.gz" def sdist_file_name(): parts = (name(), version()) return "-".join(parts) + ".tar.gz" def usage(): print("Usage python3 dist_name.py (source | binary | wheel) [dist-dir]") if len(sys.argv) > 2: dist_dir = sys.argv[2] if not dist_dir.endswith("/"): dist_dir += "/" else: dist_dir = "./dist/" if len(sys.argv) == 1: usage() elif sys.argv[1] == "source": print(dist_dir + sdist_file_name()) elif sys.argv[1] == "binary": print(dist_dir + bdist_file_name()) elif sys.argv[1] == "wheel": print(dist_dir + wheel_file_name()) else: print("Unknown distribution type: " + sys.argv[1]) usage() sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/tree_sitter_sdml/000077500000000000000000000000001476262407100256755ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/tree_sitter_sdml/__init__.py000066400000000000000000000001271476262407100300060ustar00rootroot00000000000000"Sdml grammar for tree-sitter" from ._binding import language __all__ = ["language"] sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/tree_sitter_sdml/__init__.pyi000066400000000000000000000000331476262407100301530ustar00rootroot00000000000000def language() -> int: ... sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/tree_sitter_sdml/binding.c000066400000000000000000000011701476262407100274520ustar00rootroot00000000000000#include typedef struct TSLanguage TSLanguage; TSLanguage *tree_sitter_sdml(void); static PyObject* _binding_language(PyObject *self, PyObject *args) { return PyLong_FromVoidPtr(tree_sitter_sdml()); } static PyMethodDef methods[] = { {"language", _binding_language, METH_NOARGS, "Get the tree-sitter language for this grammar."}, {NULL, NULL, 0, NULL} }; static struct PyModuleDef module = { .m_base = PyModuleDef_HEAD_INIT, .m_name = "_binding", .m_doc = NULL, .m_size = -1, .m_methods = methods }; PyMODINIT_FUNC PyInit__binding(void) { return PyModule_Create(&module); } sdm-lang-tree-sitter-sdml-ae9db9a/bindings/python/tree_sitter_sdml/py.typed000066400000000000000000000000001476262407100273620ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/bindings/rust/000077500000000000000000000000001476262407100220015ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/bindings/rust/build.rs000066400000000000000000000025441476262407100234530ustar00rootroot00000000000000fn main() { let src_dir = std::path::Path::new("src"); let mut c_config = cc::Build::new(); c_config.include(src_dir); c_config .flag_if_supported("-Wno-unused-parameter") .flag_if_supported("-Wno-unused-but-set-variable") .flag_if_supported("-Wno-trigraphs"); #[cfg(target_env = "msvc")] c_config.flag("-utf-8"); let parser_path = src_dir.join("parser.c"); c_config.file(&parser_path); // If your language uses an external scanner written in C, // then include this block of code: /* let scanner_path = src_dir.join("scanner.c"); c_config.file(&scanner_path); println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); */ c_config.compile("parser"); println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); // If your language uses an external scanner written in C++, // then include this block of code: /* let mut cpp_config = cc::Build::new(); cpp_config.cpp(true); cpp_config.include(&src_dir); cpp_config .flag_if_supported("-Wno-unused-parameter") .flag_if_supported("-Wno-unused-but-set-variable"); let scanner_path = src_dir.join("scanner.cc"); cpp_config.file(&scanner_path); cpp_config.compile("scanner"); println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); */ } sdm-lang-tree-sitter-sdml-ae9db9a/bindings/rust/lib.rs000066400000000000000000000057421476262407100231250ustar00rootroot00000000000000//! This crate provides sdml language support for the [tree-sitter][] parsing library. //! //! Typically, you will use the [language][language func] function to add this language to a //! tree-sitter [Parser][], and then use the parser to parse some code: //! //! ``` //! let code = ""; //! let mut parser = tree_sitter::Parser::new(); //! parser.set_language(&tree_sitter_sdml::language()).expect("Error loading sdml grammar"); //! let tree = parser.parse(code, None).unwrap(); //! ``` //! //! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html //! [language func]: fn.language.html //! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html //! [tree-sitter]: https://tree-sitter.github.io/ use tree_sitter::Language; extern "C" { fn tree_sitter_sdml() -> Language; } /// Get the tree-sitter [Language][] for this grammar. /// /// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html pub fn language() -> Language { unsafe { tree_sitter_sdml() } } /// The content of the [`node-types.json`][] file for this grammar. /// /// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types pub const NODE_TYPES: &str = include_str!("../../src/node-types.json"); pub const GRAMMAR_VERSION: &str = env!("CARGO_PKG_VERSION"); // Uncomment these to include any queries that this grammar contains pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm"); pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm"); pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm"); pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); #[cfg(test)] mod tests { use std::fs; #[test] fn test_can_load_grammar() { let mut parser = tree_sitter::Parser::new(); parser .set_language(&super::language()) .expect("Error loading sdml language"); } const MANIFEST_PATH: &str = env!("CARGO_MANIFEST_DIR"); const TEST_PATH: &str = "/test/corpus/"; #[test] fn test_parse_test_corpus() { let mut parser = tree_sitter::Parser::new(); parser .set_language(&super::language()) .expect("Error loading sdml language"); for entry in fs::read_dir(format!("{MANIFEST_PATH}{TEST_PATH}")).expect("not a directory?") { let entry = entry.expect("not a directory entry?"); let path = entry.path(); if path.is_file() && path .extension() .map(|s| s.to_str()) .unwrap_or(Some("")) .unwrap() == "sdm" { println!("Parsing test file {path:?}..."); let source = fs::read_to_string(path).expect("couldn't read source file"); parser .parse(source, None) .expect("Could not parse test file"); } } } } sdm-lang-tree-sitter-sdml-ae9db9a/bindings/swift/000077500000000000000000000000001476262407100221405ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/bindings/swift/TreeSitterSdml/000077500000000000000000000000001476262407100250525ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/bindings/swift/TreeSitterSdml/sdml.h000066400000000000000000000003561476262407100261660ustar00rootroot00000000000000#ifndef TREE_SITTER_SDML_H_ #define TREE_SITTER_SDML_H_ typedef struct TSLanguage TSLanguage; #ifdef __cplusplus extern "C" { #endif const TSLanguage *tree_sitter_sdml(void); #ifdef __cplusplus } #endif #endif // TREE_SITTER_SDML_H_ sdm-lang-tree-sitter-sdml-ae9db9a/examples/000077500000000000000000000000001476262407100210255ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/examples/another.sdm000066400000000000000000000005761476262407100232020ustar00rootroot00000000000000module another is assert just_testing with def has_pref_label (anns -> {0..} Annotation) -> boolean := ∃ a ∈ anns, name(a) = skos:prefLabel ∧ ¬ empty(value(a)) def foo -> string := "foo" is self.tags.contains(foo) end datatype myByte ← integer { minInclusive = 0 maxInclusive = 256 } structure Foo is name → string end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/constraints.sdm000066400000000000000000000031471476262407100241060ustar00rootroot00000000000000module constraints is @skos:prefLabel = "Example" entity Campaign is identity a -> CampaignId b -> xsd:string is assert not_null = "self is not empty" end c -> Target is assert tagged_with_foo is self.tags.contains(1) end end d -> Target is assert tagged_with_foo_path with def foo -> string := "foo" is self.tags.contains(foo) end end e -> Target is assert tagged_with_foo_builder is not is_empty({ t |exists t in self.tags, t = "foo" }) end end f -> Target is assert tagged_with_foo_builder_2 is ¬ is_empty({ t |∃ t ∈ self.tags, t = "foo" ∧ color(t) = red }) end end g -> Target is assert tagged_with_foo_builder_3 is ¬ is_empty({ t |∀ t ∈ self.tags, t = "foo" ∨ t = "bar" }) end end h -> Target is assert tagged_with_foo_builder_4 is not is_empty( { t |forall t in self.tags, exists x in self.container.tags, contains(x t) }) end end i -> Target is assert tagged_with_foo_builder_5 is exists x in self.container.tags, not is_empty({ t |∀ t ∈ self.tags, contains(x t) }) end end j -> Target is assert tagged_with_foo_builder_6 is ∃ x ∈ self.container.tags, ¬ { t | ∀ t ∈ self.tags, contains(x t) } = ∅ end end k -> Target is assert tagged_with_parent_tags is ∃ tag ∈ self.container.tags, self.tags.contains(tag) end end end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/datatypes.sdm000066400000000000000000000017231476262407100235330ustar00rootroot00000000000000module datatypes is import skos datatype shortName <- string { minLength = fixed 2 maxLength = 20 } is @skos:prefLabel = "short name" @skos:definition = "A short descriptive name" end datatype eventOcurred <- dateTime { explicitTimezone = fixed required } datatype thing <- string { pattern = "" } datatype uuid <- string { pattern = [ "^(?:[[:xdigit:]]{32})$" "^(?:[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12})$" "^(?:\\{[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}\\})$" "^(?:\\([[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}\\))$" "^(?:\\{0x[[:xdigit:]]{8},(?:0x[[:xdigit:]]{4},){2}\\{(?:0x[[:xdigit:]]{2},){7}0x[[:xdigit:]]{2}\\}\\})$" ] } is @skos:prefLabel = "UUID"@en @dc:description = "The string form of a UUID, conforming to one of 5 standard patterns."@en end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/dimensions.sdm000066400000000000000000000003031476262407100236760ustar00rootroot00000000000000module dimensions is import [ sales stores ] dimension Location is source sales:Sale with [ store city ] state -> stores:State country -> stores:Country end event Foo end sdm-lang-tree-sitter-sdml-ae9db9a/examples/escaped_strings.sdm000066400000000000000000000004421476262407100247070ustar00rootroot00000000000000module escaped_strings is @char_escape_a = "\a" @char_escape_b = "\b" @char_escape_e = "\e" @char_escape_f = "\f" @char_escape_n = "\n" @char_escape_r = "\r" @char_escape_t = "\t" @char_escape_v = "\a" @char_escape_backslash = "\\" @char_escape_doublequote = "\"" end sdm-lang-tree-sitter-sdml-ae9db9a/examples/imports.sdm000066400000000000000000000003541476262407100232310ustar00rootroot00000000000000module imports is ;; import members from module paths. from :: import xsd:base from xsd import facets:minLength from ::xsd import facets:minLength from ::reporting::common import [ datatypes enums:DayOfWeek ] end sdm-lang-tree-sitter-sdml-ae9db9a/examples/labelled.sdm000066400000000000000000000014401476262407100232750ustar00rootroot00000000000000module labelled is assert must_have_preferred_label with def has_pref_label(anns -> {0..} Annotation) -> boolean ≔ ∃ a ∈ anns, name(a) = skos:prefLabel ∧ ¬empty(value(a)) is has_pref_label(self.annotations) ∧ ∀ d ∈ self.definitions, has_pref_label(d.annotations) ∧ Entity(d) ⇒ ∀ m ∈ d.flat_members, ( has_pref_label(m.annotations) ) ∧ Enumeration(d) ⇒ ∀ m ∈ d.variants, ( has_pref_label(m.annotations) ) ∧ Event(d) ⇒ ∀ m ∈ d.flat_members, ( has_pref_label(m.annotations) ) ∧ Structure(d) ⇒ ∀ m ∈ d.flat_members, ( has_pref_label(m.annotations) ) ∧ Union(d) ⇒ ∀ m ∈ d.variants, ( has_pref_label(m.annotations) ) end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/properties.sdm000066400000000000000000000004331476262407100237260ustar00rootroot00000000000000module properties is import [ account skos ] property accountId -> {1} account:AccountId is @skos:prefLabel = "account identifier" @skos:definition = "an account Identifier."@en end structure Account is ref accountId name -> string end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/rdf_schema.sdm000066400000000000000000000007771476262407100236400ustar00rootroot00000000000000module rdf_schema is import [ owl rdf ] structure Foo is a -> string end rdf Resource is @comment = "The class resource, everything." end rdf subClassOf type rdf:Property is @domain = Class @range = Class @comment = "The subject is a subclass of a class." end rdf comment type [ rdf:Property owl:AnnotationProperty ]is @domain = Resource @range = Literal @comment = "A description of the subject resource." end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/sdml_sequence_ordered.sdm000066400000000000000000000015641476262407100260730ustar00rootroot00000000000000module sdml_sequence_ordered is import skos class Ordered is def drop (count → unsigned) → Self is @skos:definition = "Drop ~count~ items from the beginning of the sequence and return the rest."@en end def get (index → unsigned) → {0..1} Self is @skos:definition = "Return the element in this sequence at the position ~index~."@en end def reverse → Self is @skos:definition = "Return a new sequence with the order of elements reversed."@en end def slice (start → unsigned count → unsigned) → Self := take(drop(vs count) start) is @skos:definition = "Return a sub-sequence of ~count~ elements starting at ~start~."@en end def take (count → unsigned) → Self is @skos:definition = "Return ~count~ items from the beginning of the sequence and discard the rest."@en end end end sdm-lang-tree-sitter-sdml-ae9db9a/examples/simple.sdm000066400000000000000000000031351476262407100230250ustar00rootroot00000000000000module invoice version "2023-12-21" is ; Part of a larger example. import [ dc skos xsd:decimal xsd:date xsd:string ] import customers:foo import finance import vehicles @skos:release = xsd:date("2023-08-12") @skos:definition = "hello" structure DateRange is assert valid_date_range is self.end_date >= self.start_date end start_date -> xsd:date end_date -> xsd:date end structure OdometerRange is start_miles -> vehicles:OdometerReading end_miles -> vehicles:OdometerReading is assert valid_range = "self.end_miles >= self.start_miles" end end entity Invoice is identity id -> integer customer -> customers:Customer vehicle -> vehicles:Vehicle rental_dates -> DateRange mileage -> OdometerRange day_rate -> finance:CurrencyRate mile_rate -> finance:CurrencyRate discount -> finance:DiscountPercentage end datatype Name <- xsd:string is @xsd:minLength = true @xsd:maxLength = 25 end datatype InvoiceId <- opaque integer event InvoiceCreated is source Invoice at -> xsd:dateTime end event InvoicePayed is source Invoice at -> xsd:dateTime end event InvoiceOverdue is source Invoice at -> xsd:dateTime end structure Payment is received -> xsd:dateTime amount -> finance:CurrencyAmount kind -> finance:PaymentKind end enum Terms of Immediate is @skos:preLabel = "NOW" end ThirtyDays SixtyDays end union PaymentKind of Cash Card as Plastic end end sdm-lang-tree-sitter-sdml-ae9db9a/grammar.js000066400000000000000000001126401476262407100211770ustar00rootroot00000000000000// ------------------------------------------------------------------- // // Project: tree-sitter-sdml // Author: Simon Johnston // Version: 0.4.5 // Repository: https://github.com/johnstonskj/tree-sitter-sdml // License: Apache 2.0 (see LICENSE file) // Copyright: Copyright (c) 2023 Simon Johnston // // ------------------------------------------------------------------- // // ___ _____ ___ // / /\ / /::\ /__/\ // / /:/_ / /:/\:\ | |::\ // / /:/ /\ / /:/ \:\ | |:|:\ ___ ___ // / /:/ /::\ /__/:/ \__\:| __|__|:|\:\ /__/\ / /\ // /__/:/ /:/\:\ \ \:\ / /:/ /__/::::| \:\ \ \:\ / /:/ // \ \:\/:/~/:/ \ \:\ /:/ \ \:\~~\__\/ \ \:\ /:/ // \ \::/ /:/ \ \:\/:/ \ \:\ \ \:\/:/ // \__\/ /:/ \ \::/ \ \:\ \ \::/ // /__/:/ \__\/ \ \:\ \__\/ // \__\/ Domain \__\/ Language // Simple Modeling // // ------------------------------------------------------------------- const IDENTIFIER = /[\p{Lu}\p{Ll}][\p{Lu}\p{Ll}\p{Nd}]*(_+[\p{Lu}\p{Ll}\p{Nd}]+)*/; function keyword(str) { return token( prec(2, str) ); } function operator(str) { return token( prec(1, str) ); } function operator_choice(str1, str2) { return token( prec(1, choice( str1, str2 ) ) ); } module.exports = grammar({ name: 'sdml', word: $ => $.identifier, // ----------------------------------------------------------------------- // Whitespace // ----------------------------------------------------------------------- extras: $ => [ /\s/, $.line_comment ], rules: { // ----------------------------------------------------------------------- // Module and Imports // ----------------------------------------------------------------------- module: $ => seq( keyword('module'), field('name', $.identifier), optional($._module_locations), field('body',$.module_body) ), _module_locations: $ => seq( field('base', $.iri), optional( seq( keyword('version'), optional( field('version_info', $.quoted_string) ), field('version_uri', $.iri) ) ) ), module_body: $ => seq( keyword('is'), repeat($.import_statement), repeat($.annotation), repeat($.definition), keyword('end') ), import_statement: $ => seq( optional( $.from_clause, ), keyword('import'), choice( $._import, seq( '[', repeat1($._import), ']' ) ) ), from_clause: $ => seq( keyword('from'), choice( $.module_path_absolute, $.module_path_relative, $.module_path_root_only ) ), module_path_root_only: $ => token('::'), module_path_absolute: $ => seq( token('::'), field('segment', $.identifier), repeat( seq( token.immediate('::'), field('segment', $.identifier) ) ) ), module_path_relative: $ => seq( field('segment', $.identifier), repeat( seq( token.immediate('::'), field('segment', $.identifier) ) ) ), _import: $ => choice( $.member_import, $.module_import ), _rename_import: $ => seq( keyword('as'), field('rename', $.identifier) ), member_import: $ => seq( field('name', $.qualified_identifier), optional($._rename_import) ), module_import: $ => seq( field('name', $.identifier), optional(field('version_uri', $.iri)), optional($._rename_import) ), // ----------------------------------------------------------------------- // Identifiers // ----------------------------------------------------------------------- identifier: $ => token(IDENTIFIER), qualified_identifier: $ => seq( field('module', $.identifier), token.immediate(':'), field('member', $.identifier) ), identifier_reference: $ => choice( $.qualified_identifier, $.identifier ), // ----------------------------------------------------------------------- // Annotations and Constraints // ----------------------------------------------------------------------- annotation: $ => choice( $.annotation_property, $.constraint, ), annotation_property: $ => seq( token('@'), field('name', $.identifier_reference), operator('='), field('value', $.value) ), constraint: $ => seq ( keyword('assert'), field('name', $.identifier), field( 'body', choice( $.informal_constraint, $.formal_constraint, ) ) ), informal_constraint: $ => seq( operator('='), field('value', $.quoted_string), optional( field('language', $.controlled_language_tag), ) ), controlled_language_tag: $ => token.immediate( prec(1, /@[a-z]{2,3}(-[A-Z][A-Za-z]{1,9})?/) ), // ----------------------------------------------------------------------- // Formal Constraints // ----------------------------------------------------------------------- formal_constraint: $ => seq( optional( field('environment', $.constraint_environment) ), keyword('is'), field('body', $.constraint_sentence), keyword('end'), ), // ----------------------------------------------------------------------- constraint_sentence: $ => choice( prec(3, $.simple_sentence), prec(2, $.boolean_sentence), prec(1, $.quantified_sentence), seq( '(', $.constraint_sentence, ')', ), ), simple_sentence: $ => choice( $.atomic_sentence, $.equation, $.inequation, ), atomic_sentence: $ => seq( field('predicate', $.term), $.actual_arguments ), actual_arguments: $ => seq( '(', repeat(field('argument', $.term)), ')' ), equation: $ => seq( field('lhs', $.term), operator('='), field('rhs', $.term), ), inequation: $ => seq( field('lhs', $.term), field( 'relation', choice( $.op_inequality, $.op_less_than, $.op_greater_than, $.op_less_than_or_equal, $.op_greater_than_or_equal ) ), field('rhs', $.term), ), boolean_sentence: $ => choice( $.unary_boolean_sentence, $.binary_boolean_sentence ), unary_boolean_sentence: $ => prec.right( 2, seq( field('operator', $.logical_op_negation), field('rhs', $.constraint_sentence), ) ), binary_boolean_sentence: $ => prec.left( 1, seq( field('lhs', $.constraint_sentence), // antecedent field('operator', $._logical_connective), field('rhs', $.constraint_sentence) // consequent ) ), _logical_connective: $ => choice( $.logical_op_conjunction, $.logical_op_disjunction, $.logical_op_exclusive_disjunction, $.logical_op_implication, $.logical_op_biconditional ), quantified_sentence: $ => seq( field('binding', $.quantified_variable_binding), ',', field('body', $.constraint_sentence) ), quantified_variable_binding: $ => seq( field( 'quantifier', choice( $.logical_quantifier_universal, $.logical_quantifier_existential ) ), field('binding', $.quantified_variable), ), quantified_variable: $ => prec.right( 2, seq( field('name', $.variable), $.set_op_membership, field('source', $.term) ) ), variable: $ => seq( $.identifier, optional( seq( $._type_op_has_type, field('range', $.identifier) ) ) ), // ----------------------------------------------------------------------- term: $ => choice( $.sequence_builder, $.functional_term, $.function_composition, $.identifier_reference, $.reserved_self, $.predicate_value ), functional_term: $ => prec.right( 2, seq( field('function', $.term), $.actual_arguments ) ), function_composition: $ => prec.right( 2, seq( field( 'subject', choice( $.reserved_self, $.identifier, ) ), repeat1( seq( choice( token.immediate('·'), token.immediate('.') ), field('name', $.identifier) ) ) ) ), predicate_value: $ => choice( $.simple_value, $.sequence_of_predicate_values, ), sequence_of_predicate_values: $ => choice( field('empty', $._value_empty_sequence), seq( optional($._sequence_value_constraints), '[', repeat( field( 'element', choice( $.predicate_value, $.value_constructor, $.mapping_value, $.identifier_reference ) ) ), ']' ) ), reserved_self: $ => keyword('self'), // ----------------------------------------------------------------------- constraint_environment: $ => seq( keyword('with'), repeat1( $.function_def ), ), function_def: $ => seq( field('signature', $.function_signature), field('body', $.function_body) ), function_signature: $ => seq( keyword('def'), field('name', $.identifier), optional( seq( '(', repeat1(field('parameter', $.function_parameter)), ')' ) ), $._function_type ), function_parameter: $ => seq( field('name', $.identifier), $._function_type ), _function_type: $ => seq( $._type_op_has_type, optional( field('cardinality', $.function_cardinality_expression) ), field('target', $.function_type_reference) ), function_cardinality_expression: $ => seq( '{', optional( field('ordering', $.sequence_ordering) ), optional( field('uniqueness', $.sequence_uniqueness) ), optional( $._cardinality_inner ), '}' ), function_type_reference: $ => choice( $.identifier_reference, $.builtin_simple_type, $.mapping_type ), function_body: $ => seq( $.function_op_by_definition, field( 'body', choice( prec(10, $.constraint_sentence), prec(1, $.term) ) ) ), // ----------------------------------------------------------------------- sequence_builder: $ => seq( // not the usual use of braces. '{', repeat1( field( 'variable', $.variable ) ), $.set_op_builder, field('body', $.sequence_builder_body), '}', ), sequence_builder_body: $ => choice( // WFR: Quantified variable names MUST be in builder variables $.quantified_sentence, ), // ----------------------------------------------------------------------- // Values // ----------------------------------------------------------------------- value: $ => choice( $.simple_value, $.value_constructor, $.mapping_value, $.identifier_reference, $.sequence_of_values ), sequence_of_values: $ => choice( field('empty', $._value_empty_sequence), seq( optional($._sequence_value_constraints), '[', repeat( field( 'element', choice( $.simple_value, $.value_constructor, $.mapping_value, $.identifier_reference ) ) ), ']' ) ), _sequence_value_constraints: $ => seq( '{', choice( field('ordering', $.sequence_ordering), field('uniqueness', $.sequence_uniqueness), seq( field('ordering', $.sequence_ordering), field('uniqueness', $.sequence_uniqueness) ) ), '}' ), value_constructor: $ => seq( field('name', $.identifier_reference), '(', field('value', $.simple_value), ')' ), mapping_value: $ => seq( field('domain', $.simple_value), prec.right( seq( $._type_op_has_type, field('range', $.value) ) ), ), builtin_simple_type: $ => choice( $._owl_builtin_types, $._builtin_primitive_datatypes, $._derived_date_datetypes, $._derived_numeric_datatypes, $._derived_string_datatypes, ), _owl_builtin_types: $ => choice( keyword('Thing'), keyword('Nothing'), keyword('real'), keyword('rational'), ), _builtin_primitive_datatypes: $ => choice( keyword('anyURI'), keyword('iri'), keyword('base64Binary'), keyword('boolean'), keyword('date'), keyword('dateTime'), keyword('decimal'), keyword('double'), keyword('duration'), keyword('float'), keyword('gDay'), keyword('gMonth'), keyword('gMonthDay'), keyword('gYearMonth'), keyword('gYear'), keyword('hexBinary'), keyword('binary'), keyword('string'), keyword('time') ), _derived_date_datetypes: $ => choice( keyword('dateTimeStamp'), keyword('dayTimeDuration'), keyword('yearMonthDuration') ), _derived_numeric_datatypes: $ => choice( keyword('integer'), keyword('long'), keyword('int'), keyword('short'), keyword('byte'), keyword('nonNegativeInteger'), keyword('positiveInteger'), keyword('unsignedLong'), keyword('unsignedInt'), keyword('unsigned'), keyword('unsignedShort'), keyword('unsignedByte'), keyword('nonPositiveInteger'), keyword('negativeInteger') ), _derived_string_datatypes: $ => choice( keyword('normalizedString'), keyword('token'), keyword('language') ), simple_value: $ => choice( $.boolean, $.unsigned, $.integer, $.rational, $.decimal, $.double, $.string, $.iri, $.binary ), string: $ => seq( $.quoted_string, optional( field('language', $.language_tag) ) ), quoted_string: $ => token( seq( token.immediate('"'), repeat( choice( // Standard, printable, characters /[^\x00-\x08\x0B-\x1F\x7F\\\"]/, // Single character escapes /\\[\"\\\/abefnrtv]/, // Unicode escape codes /\\u\{[0-9a-fA-F]{2,6}\}/ ) ), token.immediate('"'), ) ), language_tag: $ => token.immediate( // language: a two-letter language code from ISO 639-1 or a three-letter code from ISO 639-2 // 4-char: reserved // 5-8 char: registered language subtag // extended: zero to 3 selected 3-char ISO 639 codes // Script: ISO 15924 code in title case // region: either 2 character ISO 3166-1 code or 3 digit UN M.49 code // this type does not support extensions or private-use components. prec(1, /@[a-z]{2,8}(-[A-Z]{3}){0,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?/) ), // From iri: $ => seq( '<', token.immediate( repeat( choice( /([^<>"{}|^`\\\x00-\x20])/, /(\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8})/ ) ) ), token.immediate( '>' ) ), // hex encoded binary, a sequence of hex bytes. binary: $ => seq( '#[', repeat( field( 'byte', $.hex_byte ) ), ']' ), hex_byte: $ => token( /[0-9A-Fa-f]{2}/ ), double: $ => token( /[+\\-]?(0|[1-9][0-9]*)(\.[0-9]+)[eE][+\\-]?(0|[1-9][0-9]*)/ ), decimal: $ => token( /[+\\-]?(0|[1-9][0-9]*)(\.[0-9]+)/ ), integer: $ => token( /[+\\-]?(0|[1-9][0-9]*)/ ), rational: $ => token( /[+\-]?(?:0|[1-9][0-9]*)\/(?:[1-9][0-9]*)/ ), unsigned: $ => token( /0|[1-9][0-9]*/ ), boolean: $ => choice( $.boolean_truth, $.boolean_falsity ), boolean_truth: $ => choice( keyword('true'), keyword('⊤'), ), boolean_falsity: $ => choice( keyword('false'), keyword('⊥'), ), // ----------------------------------------------------------------------- // Top-Level Definitions // ----------------------------------------------------------------------- definition: $ => choice( $.data_type_def, $.dimension_def, $.entity_def, $.enum_def, $.event_def, $.property_def, $.structure_def, $.union_def, // Libraries only: $.rdf_def, $.type_class_def ), data_type_def: $ => seq( keyword('datatype'), field('name', $.identifier), $._type_op_type_restriction, optional( field('opaque', $.opaque) ), field('base', $._datatype_base), optional( field('restriction', $.datatype_def_restriction) ), optional( field('body', $.annotation_only_body) ) ), opaque: $ => keyword('opaque'), _datatype_base: $ => choice( $.identifier_reference, $.builtin_simple_type ), // _datatype_base: $ => choice( // $._datatype_single_base, // $.datatype_set_constructed_base // ), // _datatype_single_base: $ => choice( // $.identifier_reference, // $.builtin_simple_type // ), // datatype_set_constructed_base: $ => seq( // choice( // $.set_op_union, // $.set_op_intersection, // $.set_op_complement // ), // '[', // field('first', $._datatype_single_base), // field('rest', repeat1($._datatype_single_base)), // ']' // ), datatype_def_restriction: $ => seq( '{', repeat1($._restriction_facet), '}' ), _restriction_facet: $ => choice( $.length_restriction_facet, $.digit_restriction_facet, $.value_restriction_facet, $.tz_restriction_facet, $.pattern_restriction_facet ), length_restriction_facet: $ => seq( field( 'facet', choice( keyword('length'), keyword('maxLength'), keyword('minLength'), ) ), operator('='), optional(field('is_fixed',$.kw_is_fixed)), field('value', $.unsigned) ), digit_restriction_facet: $ => seq( field( 'facet', choice( keyword('fractionDigits'), keyword('totalDigits'), ) ), operator('='), optional(field('is_fixed',$.kw_is_fixed)), field('value', $.unsigned) ), value_restriction_facet: $ => seq( field( 'facet', choice( keyword('maxExclusive'), keyword('maxInclusive'), keyword('minExclusive'), keyword('minInclusive') ) ), operator('='), optional(field('is_fixed',$.kw_is_fixed)), field('value', $.restriction_value) ), restriction_value: $ => choice ( $.simple_value, $.value_constructor ), tz_restriction_facet: $ => seq( keyword('explicitTimezone'), operator('='), optional(field('is_fixed',$.kw_is_fixed)), field( 'value', $.tz_restriction_value ) ), tz_restriction_value: $ => choice( keyword('required'), keyword('prohibited'), keyword('optional'), ), pattern_restriction_facet: $ => seq( keyword('pattern'), operator('='), field( 'value', choice( $.quoted_string, seq( '[', repeat1($.quoted_string), ']' ), ) ) ), kw_is_fixed: $ => keyword('fixed'), annotation_only_body: $ => seq( keyword('is'), repeat1($.annotation), keyword('end') ), dimension_def: $ => seq( keyword('dimension'), field('name', $.identifier), optional(field('body', $.dimension_body)) ), dimension_body: $ => seq( keyword('is'), repeat($.annotation), field( 'identity', choice( $.source_entity, $.entity_identity ) ), repeat($.dimension_parent), repeat($.member), keyword('end') ), source_entity: $ => seq( keyword('source'), field('entity', $.identifier_reference), optional( seq( keyword('with'), $._identifier_or_sequence ) ) ), _identifier_or_sequence: $ => choice( field('member', $.identifier), seq( '[', repeat1(field('member', $.identifier)), ']' ) ), dimension_parent: $ => seq( keyword('parent'), field('name', $.identifier), $._type_op_has_type, field('entity', $.identifier_reference), optional(field('body', $.annotation_only_body)) ), entity_def: $ => seq( keyword('entity'), field('name', $.identifier), optional(field('body', $.entity_body)) ), entity_body: $ => seq( keyword('is'), repeat($.annotation), field('identity', $.entity_identity), repeat($.member), keyword('end') ), enum_def: $ => seq( keyword('enum'), field('name', $.identifier), optional(field('body', $.enum_body)) ), enum_body: $ => seq( keyword('of'), repeat($.annotation), repeat($.value_variant), keyword('end') ), event_def: $ => seq( keyword('event'), field('name', $.identifier), optional(field('body', $.event_body)) ), event_body: $ => seq( keyword('is'), repeat($.annotation), field('identity', $.source_entity), repeat($.member), keyword('end') ), property_def: $ => seq( keyword('property'), field('member', $.member_def) ), structure_def: $ => seq( keyword('structure'), field('name', $.identifier), optional(field('body', $.structure_body)) ), structure_body: $ => seq( keyword('is'), repeat($.annotation), repeat($.member), keyword('end') ), union_def: $ => seq( keyword('union'), field('name', $.identifier), optional(field('body', $.union_body)) ), union_body: $ => seq( keyword('of'), repeat($.annotation), repeat($.type_variant), keyword('end') ), // ----------------------------------------------------------------------- // Library Definitions // ----------------------------------------------------------------------- rdf_def: $ => seq( keyword('rdf'), field('name', $.identifier), optional(field('types', $.rdf_types)), field('body', $.annotation_only_body) ), rdf_types: $ => seq( choice( keyword('a'), keyword('type') ), choice( field('type', $.identifier_reference), seq( '[', repeat(field('type', $.identifier_reference)), ']' ) ) ), type_class_def: $ => seq( keyword('class'), field('name', $.identifier), optional( seq( '(', repeat1(field('variable', $.type_variable)), ')', ) ), optional(field('body', $.type_class_body)) ), type_variable: $ => seq( optional( field('cardinality', $.function_cardinality_expression) ), field('name', $.identifier), optional($._type_variable_restriction) ), _type_variable_restriction: $ => seq( $._type_op_has_type, $.type_class_reference, repeat( seq( $.type_op_combiner, $.type_class_reference ) ) ), type_class_reference: $ => seq( field('name', $.identifier_reference), optional(field('arguments', $.type_class_arguments)), ), type_class_arguments: $ => seq( '(', choice( field('wildcard', $.wildcard), repeat1(field('variable', $.type_class_reference)), ), ')', ), wildcard: $ => operator('_'), type_class_body: $ => seq( keyword('is'), repeat($.annotation), repeat(field('method', $.method_def)), keyword('end') ), method_def: $ => seq( field('signature', $.function_signature), optional(field('body', $.function_body)), optional($.annotation_only_body) ), // ----------------------------------------------------------------------- // Members // ----------------------------------------------------------------------- entity_identity: $ => seq( keyword('identity'), field('identity', $.member) ), member: $ => choice( $.member_def, $.property_ref, ), member_def: $ => seq( field('name', $.identifier), $._type_expression_to, optional(field('body', $.annotation_only_body)) ), property_ref: $ => seq( keyword('ref'), field('property', $.identifier_reference), ), _type_expression_to: $ => seq( $._type_op_has_type, optional( field('cardinality', $.cardinality_expression) ), field('target', $.type_reference) ), type_reference: $ => choice( $.unknown_type, $.identifier_reference, $.builtin_simple_type, $.mapping_type ), unknown_type: $ => keyword('unknown'), mapping_type: $ => seq( "(", field('domain', $.type_reference), prec.right( seq( $._type_op_has_type, field('range', $.type_reference) ) ), ")" ), cardinality_expression: $ => seq( '{', optional( field('ordering', $.sequence_ordering) ), optional( field('uniqueness', $.sequence_uniqueness) ), $._cardinality_inner, '}' ), _cardinality_inner: $ => seq( field('min', $.unsigned), optional( field('range', $.cardinality_range) ), ), sequence_ordering: $ => choice( keyword('ordered'), keyword('unordered') ), sequence_uniqueness: $ => choice( keyword('unique'), keyword('nonunique') ), cardinality_range: $ => seq( operator('..'), field('max', optional($.unsigned)) ), // ----------------------------------------------------------------------- // Variants // ----------------------------------------------------------------------- value_variant: $ => seq( field('name', $.identifier), optional( field('body', $.annotation_only_body) ) ), type_variant: $ => seq( field('name', $.identifier_reference), optional( seq( keyword('as'), field('rename', $.identifier) ) ), optional( field('body', $.annotation_only_body) ) ), // ----------------------------------------------------------------------- // Common Operators // ----------------------------------------------------------------------- _op_equality: $ => operator('='), op_inequality: $ => choice( operator('/='), operator('≠') ), op_less_than: $ => operator('<'), op_greater_than: $ => operator('>'), op_less_than_or_equal: $ => choice( operator('<='), operator('≤') ), op_greater_than_or_equal: $ => choice( operator('>='), operator('≥') ), logical_op_negation: $ => choice( keyword('not'), operator('¬') // LaTeX: \lnot ), logical_op_conjunction: $ => choice( keyword('and'), operator('∧') // LaTeX: \land ), logical_op_disjunction: $ => choice( keyword('or'), operator('∨') // LaTeX: \lor ), logical_op_exclusive_disjunction: $ => choice( keyword('xor'), operator('⊻') // LaTeX: \veebar // maybe: operator('⊕') // maybe: operator('⩛') // maybe: operator('↮') ), logical_op_implication: $ => choice( keyword('implies'), operator('==>'), operator('⇒') // LaTeX: \implies ), logical_op_biconditional: $ => choice( keyword('iff'), operator('<==>'), operator('⇔') // LaTeX: \iff ), logical_quantifier_universal: $ => choice( keyword('forall'), operator('∀') ), logical_quantifier_existential: $ => seq( choice( keyword('exists'), operator('∃') ), ), set_op_union: $ => choice( keyword('union'), keyword('∪'), ), set_op_intersection: $ => choice( keyword('intersection'), keyword('∩'), ), set_op_complement: $ => choice( keyword('complement'), keyword('∖'), ), set_op_membership: $ => choice( keyword('in'), operator('∈') ), set_op_builder: $ => operator('|'), // ----------------------------------------------------------------------- // Common Function/Method-Related // ----------------------------------------------------------------------- function_op_by_definition: $ => choice( operator(':='), operator('≔'), ), // ----------------------------------------------------------------------- // Common Type-Related // ----------------------------------------------------------------------- _type_op_has_type: $ => choice( operator('→'), operator('->'), ), _type_op_type_restriction: $ => choice( operator('←'), operator('<-'), ), type_op_combiner: $ => choice( operator('+'), operator('⊕') ), // ----------------------------------------------------------------------- // Common Value-Related // ----------------------------------------------------------------------- _value_empty_sequence: $ => keyword('∅'), // ----------------------------------------------------------------------- // Comments // ----------------------------------------------------------------------- line_comment: $ => token( prec( 0, seq( ';', /.*/ ) ) ) } }) sdm-lang-tree-sitter-sdml-ae9db9a/package.json000066400000000000000000000031051476262407100214740ustar00rootroot00000000000000{ "name": "tree-sitter-sdml", "version": "0.4.5", "description": "Tree-Sitter grammar for Simple Domain Modeling Language", "main": "bindings/node", "types": "bindings/node", "keywords": [ "parser", "lexer", "idl" ], "files": [ "grammar.js", "binding.gyp", "prebuilds/**", "bindings/node/*", "queries/*", "src/**" ], "author": "Simon Johnston ", "license": "Apache-2.0", "repository": { "type": "git", "url": "https://github.com/johnstonskj/tree-sitter-smdl" }, "dependencies": { "node-addon-api": "^7.1.0", "node-gyp-build": "^4.8.0" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "peerDependenciesMeta": { "tree_sitter": { "optional": true } }, "devDependencies": { "prebuildify": "^6.0.0", "tree-sitter-cli": "^0.20.8" }, "scripts": { "build": "make build", "test": "make test", "clean": "make clean", "install": "node-gyp-build", "prebuildify": "prebuildify --napi --strip" }, "directories": { "test": "test" }, "tree-sitter": [ { "scope": "source.sdml", "file-types": [ "sdml", "sdm" ], "folds": [ "queries/folds.scm" ], "highlights": [ "queries/highlights.scm" ], "indent": [ "queries/indent.scm" ], "injections": [ "queries/injections.scm" ], "locals": [ "queries/locals.scm" ], "tags": [ "queries/tags.scm" ], "injection-regex": "^sdml$" } ] } sdm-lang-tree-sitter-sdml-ae9db9a/pyproject.toml000066400000000000000000000013441476262407100221250ustar00rootroot00000000000000[build-system] requires = ["setuptools>=42", "wheel"] build-backend = "setuptools.build_meta" [project] name = "tree-sitter-sdml" description = "SDML grammar for tree-sitter" version = "0.4.5" keywords = ["incremental", "parsing", "tree-sitter", "sdml"] classifiers = [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Software Development :: Compilers", "Topic :: Text Processing :: Linguistic", "Typing :: Typed" ] requires-python = ">=3.8" license.file = "LICENSE" readme = "README.md" [project.urls] Homepage = "https://github.com/tree-sitter/tree-sitter-sdml" [project.optional-dependencies] core = ["tree-sitter~=0.21"] [tool.cibuildwheel] build = "cp38-*" build-frontend = "build" sdm-lang-tree-sitter-sdml-ae9db9a/queries/000077500000000000000000000000001476262407100206645ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/queries/folds.scm000066400000000000000000000010061476262407100224740ustar00rootroot00000000000000[ (data_type_def) (dimension_def) (entity_def) (enum_def) (event_def) (property_def) (rdf_def) (structure_def) (type_class_def) (union_def) ;; ---------------- (annotation_only_body) (dimension_body) (entity_body) (enum_body) (event_body) (structure_body) (type_class_body) (union_body) ;; ---------------- (formal_constraint) (constraint_environment) (function_body) (constraint_sentence) (sequence_builder) ;; ---------------- (sequence_of_values) (sequence_of_predicate_values) ] @fold sdm-lang-tree-sitter-sdml-ae9db9a/queries/highlights.scm000066400000000000000000000225211476262407100235240ustar00rootroot00000000000000;; --------------------------------------------------------------------------- ;; Comments ;; --------------------------------------------------------------------------- (line_comment) @comment ;; --------------------------------------------------------------------------- ;; Reserved Keywords ;; --------------------------------------------------------------------------- [ "is" "of" "end" ] @keyword ;; --------------------------------------------------------------------------- ;; Operators ;; --------------------------------------------------------------------------- [ "=" "->" "→" "<-" "←" ".." ] @operator ;; --------------------------------------------------------------------------- ;; Module & Imports ;; --------------------------------------------------------------------------- (module "module" @keyword name: (identifier) @module.definition) (module "version" @keyword) (from_clause "from" @keyword) (module_path_root_only "::" @punctuation.separator) (module_path_relative "::" @punctuation.separator) (module_path_relative segment: (identifier) @module.special) (module_path_absolute "::" @punctuation.separator segment: (identifier) @module.special) (import_statement "import" @keyword) (import_statement [ "[" "]" ] @punctuation.bracket) (member_import name: (qualified_identifier) @type) (member_import "as" @keyword rename: (identifier) @type) (module_import name: (identifier) @module) (module_import "as" @keyword rename: (identifier) @module) ;; --------------------------------------------------------------------------- ;; Annotations and Constraints ;; --------------------------------------------------------------------------- (annotation_property "@" @property name: (identifier_reference) @property) (annotation_property value: (value (identifier_reference) @type)) (constraint "assert" @keyword name: (identifier) @property) (informal_constraint (quoted_string) @embedded) (informal_constraint language: (controlled_language_tag) @property) (constraint_environment "with" @keyword) (function_def (function_signature name: (identifier) @function.definition)) (function_signature "def" @keyword) (function_signature target: (_) @type) (function_signature [ "(" ")" ] @punctuation.bracket) (function_parameter name: (identifier) @variable.parameter) (function_parameter target: (_) @type) (function_cardinality_expression (sequence_ordering) @keyword) (function_cardinality_expression (sequence_uniqueness) @keyword) (function_cardinality_expression [ "{" "}" ] @punctuation.bracket) (function_body (function_op_by_definition) @operator) (function_composition subject: (reserved_self) @variable.builtin) (function_composition name: (identifier) @function.call) (function_composition [ "·" "." ] @operator) (constraint_sentence [ "(" ")" ] @punctuation.bracket) (atomic_sentence predicate: (term (identifier_reference) @function.call)) (actual_arguments [ "(" ")" ] @punctuation.bracket) (actual_arguments argument: (term (identifier_reference (identifier) @variable))) (term (reserved_self) @variable.builtin) ((equation lhs: (term (identifier_reference) @variable)) (#is-not? local)) ((equation rhs: (term (identifier_reference) @variable)) (#is-not? local)) (quantified_sentence "," @punctuation.separator) (variable (identifier) @variable) (functional_term function: (term (identifier_reference) @function.call)) (sequence_builder [ "{" "}" ] @punctuation.bracket (set_op_builder) @punctuation.separator) (sequence_of_predicate_values (identifier_reference) @type) (sequence_of_predicate_values [ "[" "]" ] @punctuation.bracket) (unary_boolean_sentence [ (logical_op_negation "¬" @operator) (logical_op_negation "not" @keyword) ]) (binary_boolean_sentence [ (logical_op_conjunction "∧" @operator) (logical_op_conjunction "and" @keyword) (logical_op_disjunction "∨" @operator) (logical_op_disjunction "or" @keyword) (logical_op_exclusive_disjunction "⊻" @operator) (logical_op_exclusive_disjunction "xor" @keyword) (logical_op_implication [ "==>" "⇒" ] @operator) (logical_op_implication "implies" @keyword) (logical_op_biconditional [ "<==>" "⇔" ] @operator) (logical_op_biconditional "iff" @keyword) ]) (quantified_variable_binding [ (logical_quantifier_universal "∀" @operator) (logical_quantifier_universal "forall" @keyword) (logical_quantifier_existential "∃" @operator) (logical_quantifier_existential "exists" @keyword) ]) (quantified_variable [ (set_op_membership "∈" @operator) (set_op_membership "in" @keyword) ]) ;; (set_op_union "∪" @operator) ;; (set_op_union "union" @keyword) ;; (set_op_intersection "∩" @operator) ;; (set_op_intersection "intersection" @keyword) ;; (set_op_complement "∖" @operator) ;; (set_op_complement "complement" @keyword) ;; --------------------------------------------------------------------------- ;; Types ;; --------------------------------------------------------------------------- [ (builtin_simple_type) (unknown_type) ] @type.builtin (data_type_def "datatype" @keyword name: (identifier) @type.definition) (data_type_def base: (identifier_reference) @type) (data_type_def base: (builtin_simple_type) @type.builtin) (data_type_def opaque: (opaque) @keyword) ;; (datatype_set_constructed_base [ "[" "]" ] @punctuation.bracket) ;; (datatype_set_constructed_base ;; first: (identifier_reference) @type ;; rest: (identifier_reference) @type) (datatype_def_restriction [ "{" "}" ] @punctuation.bracket) (length_restriction_facet [ "length" "maxLength" "minLength" ] @property "=" @operator) (digit_restriction_facet [ "fractionDigits" "totalDigits" ] @property "=" @operator) (value_restriction_facet [ "maxExclusive" "maxInclusive" "minExclusive" "minInclusive" ] @property "=" @operator) (tz_restriction_facet "explicitTimezone" @property "=" @operator) (pattern_restriction_facet [ "[" "]" ] @punctuation.bracket) (pattern_restriction_facet "pattern" @property "=" @operator (quoted_string) @string) (kw_is_fixed) @keyword (tz_restriction_value) @keyword (dimension_def "dimension" @keyword name: (identifier) @type.definition) (entity_def "entity" @keyword name: (identifier) @type.definition) (enum_def "enum" @keyword name: (identifier) @type.definition) (event_def "event" @keyword name: (identifier) @type.definition) (property_def "property" @keyword) (structure_def "structure" @keyword name: (identifier) @type.definition) (union_def "union" @keyword name: (identifier) @type.definition) (source_entity "source" @keyword entity: (identifier_reference) @type) (source_entity "with" @keyword) (source_entity [ "[" "]" ] @punctuation.bracket) (source_entity member: (identifier) @variable.field) ;; --------------------------------------------------------------------------- ;; RDF Definitions ;; --------------------------------------------------------------------------- (rdf_def "rdf" @keyword name: (identifier) @type.definition) (rdf_types "type" @keyword type: (identifier_reference) @type) (rdf_types [ "[" "]" ] @punctuation.bracket) ;; --------------------------------------------------------------------------- ;; Type Classes ;; --------------------------------------------------------------------------- (type_class_def "class" @keyword name: (identifier) @type.definition) (type_class_def [ "(" ")" ] @punctuation.bracket) (type_variable name: (identifier) @type) (type_variable (type_op_combiner) @operator) (type_class_reference name: (identifier_reference) @type) (type_class_arguments [ "(" ")" ] @punctuation.bracket) (method_def (function_signature name: (identifier) @method.definition)) (wildcard) @type.builtin ;; --------------------------------------------------------------------------- ;; Members ;; --------------------------------------------------------------------------- (entity_identity "identity" @keyword) (member_def name: (identifier) @variable.field target: (type_reference) @type) (property_ref "ref" @keyword property: (identifier_reference) @variable.field) (dimension_parent "parent" @keyword name: (identifier) @variable.field entity: (identifier_reference) @type) (value_variant name: (identifier) @constant) (type_variant (identifier_reference) @type) (type_variant "as" @keyword rename: (identifier) @type) (cardinality_expression (sequence_ordering) @keyword) (cardinality_expression (sequence_uniqueness) @keyword) (cardinality_expression [ "{" "}" ] @punctuation.bracket) ;; --------------------------------------------------------------------------- ;; Values ;; --------------------------------------------------------------------------- (string (quoted_string) @string) (string language: (language_tag) @property) (iri) @string.special (binary) @string.special [ (rational) (decimal) (double) (integer) (unsigned) ] @number (boolean) @boolean (value_constructor name: (identifier_reference) @function.call) (value_constructor [ "(" ")" ] @punctuation.bracket) (value (identifier_reference) @type) (sequence_of_values (identifier_reference) @type) (sequence_of_values [ "[" "]" ] @punctuation.bracket) ;; --------------------------------------------------------------------------- ;; Errors ;; --------------------------------------------------------------------------- ;; Highlight errors in red. This is not very useful in practice, as text will ;; be highlighted as user types, and the error could be elsewhere in the code. ( (ERROR) @error (#set! "priority" 110) ) sdm-lang-tree-sitter-sdml-ae9db9a/queries/indent.scm000066400000000000000000000012561476262407100226550ustar00rootroot00000000000000[ "is" "of" ] @indent [ "end" ] @indent.end [ (string) (line_comment) (function_body) ] @indent.auto (datatype_def_restriction "{" @indent "}" @indent.end) (source_entity "[" @indent "]" @indent.end) (constraint_environment "with" @indent ) @indent.end (function_signature "(" @indent ")" @indent.end) (constraint_sentence "(" @indent ")" @indent.end) (sequence_builder "{" @indent "}" @indent.end) (actual_arguments "(" @indent ")" @indent.end) (sequence_of_predicate_values "[" @indent "]" @indent.end) (sequence_of_values "[" @indent "]" @indent.end) (sequence_builder (set_op_builder) @indent.branch) (method_def (annotation_only_body "is" @indent.branch)) sdm-lang-tree-sitter-sdml-ae9db9a/queries/injections.scm000066400000000000000000000000651476262407100235360ustar00rootroot00000000000000[ (line_comment) (informal_constraint) ] @comment sdm-lang-tree-sitter-sdml-ae9db9a/queries/locals.scm000066400000000000000000000010071476262407100226430ustar00rootroot00000000000000;; --------------------------------------------------------------------------- ;; Constraint Scopes ;; --------------------------------------------------------------------------- (formal_constraint) @local.scope (function_signature name: (identifier) @local.definition) (function_body) @local.scope (function_parameter name: (identifier) @local.definition) (quantified_sentence) @local.scope (sequence_builder) @local.scope (variable (identifier) @local.reference) (term (identifier_reference) @local.reference) sdm-lang-tree-sitter-sdml-ae9db9a/queries/tags.scm000066400000000000000000000071511476262407100223320ustar00rootroot00000000000000;; --------------------------------------------------------------------------- ;; Modules and Imports ;; --------------------------------------------------------------------------- (module name: (identifier) @name) @definition.module (module_import name: (identifier) @name) @reference.module (module_import rename: (identifier) @name) @reference.module (member_import name: (qualified_identifier module: (identifier) @name)) @reference.module (module_path_absolute segment: (identifier) @name) @reference.module (module_path_relative segment: (identifier) @name) @reference.module (member_import name: (qualified_identifier member: (identifier) @name)) @reference.type (member_import rename: (identifier) @name) @reference.type ;; --------------------------------------------------------------------------- ;; Types ;; --------------------------------------------------------------------------- (data_type_def name: (identifier) @name) @definition.datatype (data_type_def base: (_) @name) @reference.datatype (dimension_def name: (identifier) @name) @definition.dimension (entity_def name: (identifier) @name) @definition.entity (enum_def name: (identifier) @name) @definition.enum (event_def name: (identifier) @name) @definition.event (rdf_def name: (identifier) @name) @definition.rdf (structure_def name: (identifier) @name) @definition.structure (type_class_def name: (identifier) @name) @definition.class (union_def name: (identifier) @name) @definition.union (source_entity entity: (identifier_reference) @name) @reference.entity (source_entity member: (identifier) @name) @reference.field ;; --------------------------------------------------------------------------- ;; Members ;; --------------------------------------------------------------------------- (dimension_parent name: (identifier) @name) @definition.field (dimension_parent entity: (identifier_reference) @name) @reference.type (member_def name: (identifier) @name) @definition.field (type_reference (identifier_reference) @name) @reference.type (type_reference (builtin_simple_type) @name) @reference.type (property_ref property: (identifier_reference) @name) @definition.field (type_variant (identifier_reference) @name) @reference.type (type_variant rename: (identifier) @name) @definition.type (value_variant name: (identifier) @name) @definition.constant ;; --------------------------------------------------------------------------- ;; Annotations, Constraints, and Values ;; --------------------------------------------------------------------------- (annotation_property name: (identifier_reference) @name) @reference.type (value (identifier_reference) @name) @reference.type (value_constructor name: (identifier_reference) @name) @reference.type (constraint name: (identifier) @name) @definition.constraint (term (identifier_reference) @name) @reference.variable (term (reserved_self) @name) @reference.variable (functional_term function: (term (identifier_reference) @name)) @reference.call (function_composition subject: (reserved_self) @name) @reference.variable (function_composition subject: (identifier) @name) @reference.call (function_composition name: (identifier) @name) @reference.call (variable (identifier) @name) @definition.variable (value (identifier_reference) @name) @reference.type ;; --------------------------------------------------------------------------- ;;Methods/Functions ;; --------------------------------------------------------------------------- (function_def (function_signature name: (identifier) @name) @definition.function) (method_def (function_signature name: (identifier) @name) @definition.method) sdm-lang-tree-sitter-sdml-ae9db9a/setup.py000066400000000000000000000031731476262407100207250ustar00rootroot00000000000000from os.path import isdir, join from platform import system from setuptools import Extension, find_packages, setup from setuptools.command.build import build from wheel.bdist_wheel import bdist_wheel class Build(build): def run(self): if isdir("queries"): dest = join(self.build_lib, "tree_sitter_sdml", "queries") self.copy_tree("queries", dest) super().run() class BdistWheel(bdist_wheel): def get_tag(self): python, abi, platform = super().get_tag() if python.startswith("cp"): python, abi = "cp38", "abi3" return python, abi, platform setup( packages=find_packages("bindings/python"), package_dir={"": "bindings/python"}, package_data={ "tree_sitter_sdml": ["*.pyi", "py.typed"], "tree_sitter_sdml.queries": ["*.scm"], }, ext_package="tree_sitter_sdml", ext_modules=[ Extension( name="_binding", sources=[ "bindings/python/tree_sitter_sdml/binding.c", "src/parser.c", # NOTE: if your language uses an external scanner, add it here. ], extra_compile_args=[ "-std=c11", ] if system() != "Windows" else [ "/std:c11", "/utf-8", ], define_macros=[ ("Py_LIMITED_API", "0x03080000"), ("PY_SSIZE_T_CLEAN", None) ], include_dirs=["src"], py_limited_api=True, ) ], cmdclass={ "build": Build, "bdist_wheel": BdistWheel }, zip_safe=False ) sdm-lang-tree-sitter-sdml-ae9db9a/src/000077500000000000000000000000001476262407100177765ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/src/grammar.json000066400000000000000000003456751476262407100223430ustar00rootroot00000000000000{ "name": "sdml", "word": "identifier", "rules": { "module": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "module" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_module_locations" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "module_body" } } ] }, "_module_locations": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "base", "content": { "type": "SYMBOL", "name": "iri" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "version" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "version_info", "content": { "type": "SYMBOL", "name": "quoted_string" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "version_uri", "content": { "type": "SYMBOL", "name": "iri" } } ] }, { "type": "BLANK" } ] } ] }, "module_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "import_statement" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "definition" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "import_statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "from_clause" }, { "type": "BLANK" } ] }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "import" } } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_import" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_import" } }, { "type": "STRING", "value": "]" } ] } ] } ] }, "from_clause": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "from" } } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "module_path_absolute" }, { "type": "SYMBOL", "name": "module_path_relative" }, { "type": "SYMBOL", "name": "module_path_root_only" } ] } ] }, "module_path_root_only": { "type": "TOKEN", "content": { "type": "STRING", "value": "::" } }, "module_path_absolute": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "STRING", "value": "::" } }, { "type": "FIELD", "name": "segment", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "::" } }, { "type": "FIELD", "name": "segment", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] }, "module_path_relative": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "segment", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "::" } }, { "type": "FIELD", "name": "segment", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] }, "_import": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "member_import" }, { "type": "SYMBOL", "name": "module_import" } ] }, "_rename_import": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "as" } } }, { "type": "FIELD", "name": "rename", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "member_import": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "qualified_identifier" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_rename_import" }, { "type": "BLANK" } ] } ] }, "module_import": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "version_uri", "content": { "type": "SYMBOL", "name": "iri" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_rename_import" }, { "type": "BLANK" } ] } ] }, "identifier": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[\\p{Lu}\\p{Ll}][\\p{Lu}\\p{Ll}\\p{Nd}]*(_+[\\p{Lu}\\p{Ll}\\p{Nd}]+)*" } }, "qualified_identifier": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "module", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": ":" } }, { "type": "FIELD", "name": "member", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "identifier_reference": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "qualified_identifier" }, { "type": "SYMBOL", "name": "identifier" } ] }, "annotation": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "annotation_property" }, { "type": "SYMBOL", "name": "constraint" } ] }, "annotation_property": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "STRING", "value": "@" } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "value" } } ] }, "constraint": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "assert" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "body", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "informal_constraint" }, { "type": "SYMBOL", "name": "formal_constraint" } ] } } ] }, "informal_constraint": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "quoted_string" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "language", "content": { "type": "SYMBOL", "name": "controlled_language_tag" } }, { "type": "BLANK" } ] } ] }, "controlled_language_tag": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "@[a-z]{2,3}(-[A-Z][A-Za-z]{1,9})?" } } }, "formal_constraint": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "environment", "content": { "type": "SYMBOL", "name": "constraint_environment" } }, { "type": "BLANK" } ] }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "constraint_sentence" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "constraint_sentence": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 3, "content": { "type": "SYMBOL", "name": "simple_sentence" } }, { "type": "PREC", "value": 2, "content": { "type": "SYMBOL", "name": "boolean_sentence" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "quantified_sentence" } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "constraint_sentence" }, { "type": "STRING", "value": ")" } ] } ] }, "simple_sentence": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "atomic_sentence" }, { "type": "SYMBOL", "name": "equation" }, { "type": "SYMBOL", "name": "inequation" } ] }, "atomic_sentence": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "predicate", "content": { "type": "SYMBOL", "name": "term" } }, { "type": "SYMBOL", "name": "actual_arguments" } ] }, "actual_arguments": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "term" } } }, { "type": "STRING", "value": ")" } ] }, "equation": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "lhs", "content": { "type": "SYMBOL", "name": "term" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "FIELD", "name": "rhs", "content": { "type": "SYMBOL", "name": "term" } } ] }, "inequation": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "lhs", "content": { "type": "SYMBOL", "name": "term" } }, { "type": "FIELD", "name": "relation", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "op_inequality" }, { "type": "SYMBOL", "name": "op_less_than" }, { "type": "SYMBOL", "name": "op_greater_than" }, { "type": "SYMBOL", "name": "op_less_than_or_equal" }, { "type": "SYMBOL", "name": "op_greater_than_or_equal" } ] } }, { "type": "FIELD", "name": "rhs", "content": { "type": "SYMBOL", "name": "term" } } ] }, "boolean_sentence": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "unary_boolean_sentence" }, { "type": "SYMBOL", "name": "binary_boolean_sentence" } ] }, "unary_boolean_sentence": { "type": "PREC_RIGHT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "SYMBOL", "name": "logical_op_negation" } }, { "type": "FIELD", "name": "rhs", "content": { "type": "SYMBOL", "name": "constraint_sentence" } } ] } }, "binary_boolean_sentence": { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "lhs", "content": { "type": "SYMBOL", "name": "constraint_sentence" } }, { "type": "FIELD", "name": "operator", "content": { "type": "SYMBOL", "name": "_logical_connective" } }, { "type": "FIELD", "name": "rhs", "content": { "type": "SYMBOL", "name": "constraint_sentence" } } ] } }, "_logical_connective": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "logical_op_conjunction" }, { "type": "SYMBOL", "name": "logical_op_disjunction" }, { "type": "SYMBOL", "name": "logical_op_exclusive_disjunction" }, { "type": "SYMBOL", "name": "logical_op_implication" }, { "type": "SYMBOL", "name": "logical_op_biconditional" } ] }, "quantified_sentence": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "binding", "content": { "type": "SYMBOL", "name": "quantified_variable_binding" } }, { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "constraint_sentence" } } ] }, "quantified_variable_binding": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quantifier", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "logical_quantifier_universal" }, { "type": "SYMBOL", "name": "logical_quantifier_existential" } ] } }, { "type": "FIELD", "name": "binding", "content": { "type": "SYMBOL", "name": "quantified_variable" } } ] }, "quantified_variable": { "type": "PREC_RIGHT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable" } }, { "type": "SYMBOL", "name": "set_op_membership" }, { "type": "FIELD", "name": "source", "content": { "type": "SYMBOL", "name": "term" } } ] } }, "variable": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "FIELD", "name": "range", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, { "type": "BLANK" } ] } ] }, "term": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "sequence_builder" }, { "type": "SYMBOL", "name": "functional_term" }, { "type": "SYMBOL", "name": "function_composition" }, { "type": "SYMBOL", "name": "identifier_reference" }, { "type": "SYMBOL", "name": "reserved_self" }, { "type": "SYMBOL", "name": "predicate_value" } ] }, "functional_term": { "type": "PREC_RIGHT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "term" } }, { "type": "SYMBOL", "name": "actual_arguments" } ] } }, "function_composition": { "type": "PREC_RIGHT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "subject", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "reserved_self" }, { "type": "SYMBOL", "name": "identifier" } ] } }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "·" } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "." } } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] } }, "predicate_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "simple_value" }, { "type": "SYMBOL", "name": "sequence_of_predicate_values" } ] }, "sequence_of_predicate_values": { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "empty", "content": { "type": "SYMBOL", "name": "_value_empty_sequence" } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sequence_value_constraints" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "element", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "predicate_value" }, { "type": "SYMBOL", "name": "value_constructor" }, { "type": "SYMBOL", "name": "mapping_value" }, { "type": "SYMBOL", "name": "identifier_reference" } ] } } }, { "type": "STRING", "value": "]" } ] } ] }, "reserved_self": { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "self" } } }, "constraint_environment": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "with" } } }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "function_def" } } ] }, "function_def": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "signature", "content": { "type": "SYMBOL", "name": "function_signature" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "function_body" } } ] }, "function_signature": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "def" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT1", "content": { "type": "FIELD", "name": "parameter", "content": { "type": "SYMBOL", "name": "function_parameter" } } }, { "type": "STRING", "value": ")" } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_function_type" } ] }, "function_parameter": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SYMBOL", "name": "_function_type" } ] }, "_function_type": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "cardinality", "content": { "type": "SYMBOL", "name": "function_cardinality_expression" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "function_type_reference" } } ] }, "function_cardinality_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "ordering", "content": { "type": "SYMBOL", "name": "sequence_ordering" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "uniqueness", "content": { "type": "SYMBOL", "name": "sequence_uniqueness" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_cardinality_inner" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "function_type_reference": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier_reference" }, { "type": "SYMBOL", "name": "builtin_simple_type" }, { "type": "SYMBOL", "name": "mapping_type" } ] }, "function_body": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "function_op_by_definition" }, { "type": "FIELD", "name": "body", "content": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 10, "content": { "type": "SYMBOL", "name": "constraint_sentence" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "term" } } ] } } ] }, "sequence_builder": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT1", "content": { "type": "FIELD", "name": "variable", "content": { "type": "SYMBOL", "name": "variable" } } }, { "type": "SYMBOL", "name": "set_op_builder" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "sequence_builder_body" } }, { "type": "STRING", "value": "}" } ] }, "sequence_builder_body": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "quantified_sentence" } ] }, "value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "simple_value" }, { "type": "SYMBOL", "name": "value_constructor" }, { "type": "SYMBOL", "name": "mapping_value" }, { "type": "SYMBOL", "name": "identifier_reference" }, { "type": "SYMBOL", "name": "sequence_of_values" } ] }, "sequence_of_values": { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "empty", "content": { "type": "SYMBOL", "name": "_value_empty_sequence" } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sequence_value_constraints" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "element", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "simple_value" }, { "type": "SYMBOL", "name": "value_constructor" }, { "type": "SYMBOL", "name": "mapping_value" }, { "type": "SYMBOL", "name": "identifier_reference" } ] } } }, { "type": "STRING", "value": "]" } ] } ] }, "_sequence_value_constraints": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "ordering", "content": { "type": "SYMBOL", "name": "sequence_ordering" } }, { "type": "FIELD", "name": "uniqueness", "content": { "type": "SYMBOL", "name": "sequence_uniqueness" } }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "ordering", "content": { "type": "SYMBOL", "name": "sequence_ordering" } }, { "type": "FIELD", "name": "uniqueness", "content": { "type": "SYMBOL", "name": "sequence_uniqueness" } } ] } ] }, { "type": "STRING", "value": "}" } ] }, "value_constructor": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "simple_value" } }, { "type": "STRING", "value": ")" } ] }, "mapping_value": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "domain", "content": { "type": "SYMBOL", "name": "simple_value" } }, { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "FIELD", "name": "range", "content": { "type": "SYMBOL", "name": "value" } } ] } } ] }, "builtin_simple_type": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_owl_builtin_types" }, { "type": "SYMBOL", "name": "_builtin_primitive_datatypes" }, { "type": "SYMBOL", "name": "_derived_date_datetypes" }, { "type": "SYMBOL", "name": "_derived_numeric_datatypes" }, { "type": "SYMBOL", "name": "_derived_string_datatypes" } ] }, "_owl_builtin_types": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "Thing" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "Nothing" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "real" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "rational" } } } ] }, "_builtin_primitive_datatypes": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "anyURI" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "iri" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "base64Binary" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "boolean" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "date" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "dateTime" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "decimal" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "double" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "duration" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "float" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "gDay" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "gMonth" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "gMonthDay" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "gYearMonth" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "gYear" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "hexBinary" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "binary" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "string" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "time" } } } ] }, "_derived_date_datetypes": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "dateTimeStamp" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "dayTimeDuration" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "yearMonthDuration" } } } ] }, "_derived_numeric_datatypes": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "integer" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "long" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "int" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "short" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "byte" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "nonNegativeInteger" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "positiveInteger" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unsignedLong" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unsignedInt" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unsigned" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unsignedShort" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unsignedByte" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "nonPositiveInteger" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "negativeInteger" } } } ] }, "_derived_string_datatypes": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "normalizedString" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "token" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "language" } } } ] }, "simple_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "boolean" }, { "type": "SYMBOL", "name": "unsigned" }, { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "rational" }, { "type": "SYMBOL", "name": "decimal" }, { "type": "SYMBOL", "name": "double" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "iri" }, { "type": "SYMBOL", "name": "binary" } ] }, "string": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "quoted_string" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "language", "content": { "type": "SYMBOL", "name": "language_tag" } }, { "type": "BLANK" } ] } ] }, "quoted_string": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "\"" } }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\\x00-\\x08\\x0B-\\x1F\\x7F\\\\\\\"]" }, { "type": "PATTERN", "value": "\\\\[\\\"\\\\\\/abefnrtv]" }, { "type": "PATTERN", "value": "\\\\u\\{[0-9a-fA-F]{2,6}\\}" } ] } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "\"" } } ] } }, "language_tag": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "@[a-z]{2,8}(-[A-Z]{3}){0,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?" } } }, "iri": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "([^<>\"{}|^`\\\\\\x00-\\x20])" }, { "type": "PATTERN", "value": "(\\\\u[0-9A-Fa-f]{4}|\\\\U[0-9A-Fa-f]{8})" } ] } } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": ">" } } ] }, "binary": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#[" }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "byte", "content": { "type": "SYMBOL", "name": "hex_byte" } } }, { "type": "STRING", "value": "]" } ] }, "hex_byte": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[0-9A-Fa-f]{2}" } }, "double": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[+\\\\-]?(0|[1-9][0-9]*)(\\.[0-9]+)[eE][+\\\\-]?(0|[1-9][0-9]*)" } }, "decimal": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[+\\\\-]?(0|[1-9][0-9]*)(\\.[0-9]+)" } }, "integer": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[+\\\\-]?(0|[1-9][0-9]*)" } }, "rational": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[+\\-]?(?:0|[1-9][0-9]*)\\/(?:[1-9][0-9]*)" } }, "unsigned": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "0|[1-9][0-9]*" } }, "boolean": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "boolean_truth" }, { "type": "SYMBOL", "name": "boolean_falsity" } ] }, "boolean_truth": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "true" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "⊤" } } } ] }, "boolean_falsity": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "false" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "⊥" } } } ] }, "definition": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "data_type_def" }, { "type": "SYMBOL", "name": "dimension_def" }, { "type": "SYMBOL", "name": "entity_def" }, { "type": "SYMBOL", "name": "enum_def" }, { "type": "SYMBOL", "name": "event_def" }, { "type": "SYMBOL", "name": "property_def" }, { "type": "SYMBOL", "name": "structure_def" }, { "type": "SYMBOL", "name": "union_def" }, { "type": "SYMBOL", "name": "rdf_def" }, { "type": "SYMBOL", "name": "type_class_def" } ] }, "data_type_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "datatype" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SYMBOL", "name": "_type_op_type_restriction" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "opaque", "content": { "type": "SYMBOL", "name": "opaque" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "base", "content": { "type": "SYMBOL", "name": "_datatype_base" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "restriction", "content": { "type": "SYMBOL", "name": "datatype_def_restriction" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } }, { "type": "BLANK" } ] } ] }, "opaque": { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "opaque" } } }, "_datatype_base": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier_reference" }, { "type": "SYMBOL", "name": "builtin_simple_type" } ] }, "datatype_def_restriction": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_restriction_facet" } }, { "type": "STRING", "value": "}" } ] }, "_restriction_facet": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "length_restriction_facet" }, { "type": "SYMBOL", "name": "digit_restriction_facet" }, { "type": "SYMBOL", "name": "value_restriction_facet" }, { "type": "SYMBOL", "name": "tz_restriction_facet" }, { "type": "SYMBOL", "name": "pattern_restriction_facet" } ] }, "length_restriction_facet": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "facet", "content": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "length" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "maxLength" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "minLength" } } } ] } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "is_fixed", "content": { "type": "SYMBOL", "name": "kw_is_fixed" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "unsigned" } } ] }, "digit_restriction_facet": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "facet", "content": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "fractionDigits" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "totalDigits" } } } ] } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "is_fixed", "content": { "type": "SYMBOL", "name": "kw_is_fixed" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "unsigned" } } ] }, "value_restriction_facet": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "facet", "content": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "maxExclusive" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "maxInclusive" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "minExclusive" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "minInclusive" } } } ] } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "is_fixed", "content": { "type": "SYMBOL", "name": "kw_is_fixed" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "restriction_value" } } ] }, "restriction_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "simple_value" }, { "type": "SYMBOL", "name": "value_constructor" } ] }, "tz_restriction_facet": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "explicitTimezone" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "is_fixed", "content": { "type": "SYMBOL", "name": "kw_is_fixed" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "tz_restriction_value" } } ] }, "tz_restriction_value": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "required" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "prohibited" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "optional" } } } ] }, "pattern_restriction_facet": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "pattern" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "quoted_string" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "quoted_string" } }, { "type": "STRING", "value": "]" } ] } ] } } ] }, "kw_is_fixed": { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "fixed" } } }, "annotation_only_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "dimension_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "dimension" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "dimension_body" } }, { "type": "BLANK" } ] } ] }, "dimension_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "FIELD", "name": "identity", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "source_entity" }, { "type": "SYMBOL", "name": "entity_identity" } ] } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "dimension_parent" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "member" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "source_entity": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "source" } } }, { "type": "FIELD", "name": "entity", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "with" } } }, { "type": "SYMBOL", "name": "_identifier_or_sequence" } ] }, { "type": "BLANK" } ] } ] }, "_identifier_or_sequence": { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "member", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT1", "content": { "type": "FIELD", "name": "member", "content": { "type": "SYMBOL", "name": "identifier" } } }, { "type": "STRING", "value": "]" } ] } ] }, "dimension_parent": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "parent" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "FIELD", "name": "entity", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } }, { "type": "BLANK" } ] } ] }, "entity_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "entity" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "entity_body" } }, { "type": "BLANK" } ] } ] }, "entity_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "FIELD", "name": "identity", "content": { "type": "SYMBOL", "name": "entity_identity" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "member" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "enum_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "enum" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "enum_body" } }, { "type": "BLANK" } ] } ] }, "enum_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "of" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "value_variant" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "event_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "event" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "event_body" } }, { "type": "BLANK" } ] } ] }, "event_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "FIELD", "name": "identity", "content": { "type": "SYMBOL", "name": "source_entity" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "member" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "property_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "property" } } }, { "type": "FIELD", "name": "member", "content": { "type": "SYMBOL", "name": "member_def" } } ] }, "structure_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "structure" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "structure_body" } }, { "type": "BLANK" } ] } ] }, "structure_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "member" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "union_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "union" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "union_body" } }, { "type": "BLANK" } ] } ] }, "union_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "of" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_variant" } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "rdf_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "rdf" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "types", "content": { "type": "SYMBOL", "name": "rdf_types" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } } ] }, "rdf_types": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "a" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "type" } } } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "identifier_reference" } } }, { "type": "STRING", "value": "]" } ] } ] } ] }, "type_class_def": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "class" } } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT1", "content": { "type": "FIELD", "name": "variable", "content": { "type": "SYMBOL", "name": "type_variable" } } }, { "type": "STRING", "value": ")" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "type_class_body" } }, { "type": "BLANK" } ] } ] }, "type_variable": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "cardinality", "content": { "type": "SYMBOL", "name": "function_cardinality_expression" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_variable_restriction" }, { "type": "BLANK" } ] } ] }, "_type_variable_restriction": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "SYMBOL", "name": "type_class_reference" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type_op_combiner" }, { "type": "SYMBOL", "name": "type_class_reference" } ] } } ] }, "type_class_reference": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "type_class_arguments" } }, { "type": "BLANK" } ] } ] }, "type_class_arguments": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "wildcard", "content": { "type": "SYMBOL", "name": "wildcard" } }, { "type": "REPEAT1", "content": { "type": "FIELD", "name": "variable", "content": { "type": "SYMBOL", "name": "type_class_reference" } } } ] }, { "type": "STRING", "value": ")" } ] }, "wildcard": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "_" } } }, "type_class_body": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "is" } } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "annotation" } }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "method", "content": { "type": "SYMBOL", "name": "method_def" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "end" } } } ] }, "method_def": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "signature", "content": { "type": "SYMBOL", "name": "function_signature" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "function_body" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "annotation_only_body" }, { "type": "BLANK" } ] } ] }, "entity_identity": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "identity" } } }, { "type": "FIELD", "name": "identity", "content": { "type": "SYMBOL", "name": "member" } } ] }, "member": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "member_def" }, { "type": "SYMBOL", "name": "property_ref" } ] }, "member_def": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SYMBOL", "name": "_type_expression_to" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } }, { "type": "BLANK" } ] } ] }, "property_ref": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "ref" } } }, { "type": "FIELD", "name": "property", "content": { "type": "SYMBOL", "name": "identifier_reference" } } ] }, "_type_expression_to": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "cardinality", "content": { "type": "SYMBOL", "name": "cardinality_expression" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "type_reference" } } ] }, "type_reference": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "unknown_type" }, { "type": "SYMBOL", "name": "identifier_reference" }, { "type": "SYMBOL", "name": "builtin_simple_type" }, { "type": "SYMBOL", "name": "mapping_type" } ] }, "unknown_type": { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unknown" } } }, "mapping_type": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "domain", "content": { "type": "SYMBOL", "name": "type_reference" } }, { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_has_type" }, { "type": "FIELD", "name": "range", "content": { "type": "SYMBOL", "name": "type_reference" } } ] } }, { "type": "STRING", "value": ")" } ] }, "cardinality_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "ordering", "content": { "type": "SYMBOL", "name": "sequence_ordering" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "uniqueness", "content": { "type": "SYMBOL", "name": "sequence_uniqueness" } }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_cardinality_inner" }, { "type": "STRING", "value": "}" } ] }, "_cardinality_inner": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "min", "content": { "type": "SYMBOL", "name": "unsigned" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "range", "content": { "type": "SYMBOL", "name": "cardinality_range" } }, { "type": "BLANK" } ] } ] }, "sequence_ordering": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "ordered" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unordered" } } } ] }, "sequence_uniqueness": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "unique" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "nonunique" } } } ] }, "cardinality_range": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": ".." } } }, { "type": "FIELD", "name": "max", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "unsigned" }, { "type": "BLANK" } ] } } ] }, "value_variant": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } }, { "type": "BLANK" } ] } ] }, "type_variant": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "as" } } }, { "type": "FIELD", "name": "rename", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } }, { "type": "BLANK" } ] } ] }, "_op_equality": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "=" } } }, "op_inequality": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "/=" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "≠" } } } ] }, "op_less_than": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "<" } } }, "op_greater_than": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": ">" } } }, "op_less_than_or_equal": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "<=" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "≤" } } } ] }, "op_greater_than_or_equal": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": ">=" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "≥" } } } ] }, "logical_op_negation": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "not" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "¬" } } } ] }, "logical_op_conjunction": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "and" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "∧" } } } ] }, "logical_op_disjunction": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "or" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "∨" } } } ] }, "logical_op_exclusive_disjunction": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "xor" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "⊻" } } } ] }, "logical_op_implication": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "implies" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "==>" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "⇒" } } } ] }, "logical_op_biconditional": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "iff" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "<==>" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "⇔" } } } ] }, "logical_quantifier_universal": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "forall" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "∀" } } } ] }, "logical_quantifier_existential": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "exists" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "∃" } } } ] } ] }, "set_op_union": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "union" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "∪" } } } ] }, "set_op_intersection": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "intersection" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "∩" } } } ] }, "set_op_complement": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "complement" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "∖" } } } ] }, "set_op_membership": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "in" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "∈" } } } ] }, "set_op_builder": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "|" } } }, "function_op_by_definition": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": ":=" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "≔" } } } ] }, "_type_op_has_type": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "→" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "->" } } } ] }, "_type_op_type_restriction": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "←" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "<-" } } } ] }, "type_op_combiner": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "+" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": "⊕" } } } ] }, "_value_empty_sequence": { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "∅" } } }, "line_comment": { "type": "TOKEN", "content": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "PATTERN", "value": ".*" } ] } } } }, "extras": [ { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "line_comment" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] } sdm-lang-tree-sitter-sdml-ae9db9a/src/node-types.json000066400000000000000000001653771476262407100230030ustar00rootroot00000000000000[ { "type": "actual_arguments", "named": true, "fields": { "argument": { "multiple": true, "required": false, "types": [ { "type": "term", "named": true } ] } } }, { "type": "annotation", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "annotation_property", "named": true }, { "type": "constraint", "named": true } ] } }, { "type": "annotation_only_body", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "annotation", "named": true } ] } }, { "type": "annotation_property", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "value", "named": true } ] } } }, { "type": "atomic_sentence", "named": true, "fields": { "predicate": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "actual_arguments", "named": true } ] } }, { "type": "binary", "named": true, "fields": { "byte": { "multiple": true, "required": false, "types": [ { "type": "hex_byte", "named": true } ] } } }, { "type": "binary_boolean_sentence", "named": true, "fields": { "lhs": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "logical_op_biconditional", "named": true }, { "type": "logical_op_conjunction", "named": true }, { "type": "logical_op_disjunction", "named": true }, { "type": "logical_op_exclusive_disjunction", "named": true }, { "type": "logical_op_implication", "named": true } ] }, "rhs": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true } ] } } }, { "type": "boolean", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "boolean_falsity", "named": true }, { "type": "boolean_truth", "named": true } ] } }, { "type": "boolean_falsity", "named": true, "fields": {} }, { "type": "boolean_sentence", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "binary_boolean_sentence", "named": true }, { "type": "unary_boolean_sentence", "named": true } ] } }, { "type": "boolean_truth", "named": true, "fields": {} }, { "type": "builtin_simple_type", "named": true, "fields": {} }, { "type": "cardinality_expression", "named": true, "fields": { "min": { "multiple": false, "required": true, "types": [ { "type": "unsigned", "named": true } ] }, "ordering": { "multiple": false, "required": false, "types": [ { "type": "sequence_ordering", "named": true } ] }, "range": { "multiple": false, "required": false, "types": [ { "type": "cardinality_range", "named": true } ] }, "uniqueness": { "multiple": false, "required": false, "types": [ { "type": "sequence_uniqueness", "named": true } ] } } }, { "type": "cardinality_range", "named": true, "fields": { "max": { "multiple": false, "required": false, "types": [ { "type": "unsigned", "named": true } ] } } }, { "type": "constraint", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "formal_constraint", "named": true }, { "type": "informal_constraint", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "constraint_environment", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "function_def", "named": true } ] } }, { "type": "constraint_sentence", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "boolean_sentence", "named": true }, { "type": "constraint_sentence", "named": true }, { "type": "quantified_sentence", "named": true }, { "type": "simple_sentence", "named": true } ] } }, { "type": "data_type_def", "named": true, "fields": { "base": { "multiple": false, "required": true, "types": [ { "type": "builtin_simple_type", "named": true }, { "type": "identifier_reference", "named": true } ] }, "body": { "multiple": false, "required": false, "types": [ { "type": "annotation_only_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "opaque": { "multiple": false, "required": false, "types": [ { "type": "opaque", "named": true } ] }, "restriction": { "multiple": false, "required": false, "types": [ { "type": "datatype_def_restriction", "named": true } ] } } }, { "type": "datatype_def_restriction", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "digit_restriction_facet", "named": true }, { "type": "length_restriction_facet", "named": true }, { "type": "pattern_restriction_facet", "named": true }, { "type": "tz_restriction_facet", "named": true }, { "type": "value_restriction_facet", "named": true } ] } }, { "type": "definition", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "data_type_def", "named": true }, { "type": "dimension_def", "named": true }, { "type": "entity_def", "named": true }, { "type": "enum_def", "named": true }, { "type": "event_def", "named": true }, { "type": "property_def", "named": true }, { "type": "rdf_def", "named": true }, { "type": "structure_def", "named": true }, { "type": "type_class_def", "named": true }, { "type": "union_def", "named": true } ] } }, { "type": "digit_restriction_facet", "named": true, "fields": { "facet": { "multiple": false, "required": true, "types": [ { "type": "fractionDigits", "named": false }, { "type": "totalDigits", "named": false } ] }, "is_fixed": { "multiple": false, "required": false, "types": [ { "type": "kw_is_fixed", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "unsigned", "named": true } ] } } }, { "type": "dimension_body", "named": true, "fields": { "identity": { "multiple": false, "required": true, "types": [ { "type": "entity_identity", "named": true }, { "type": "source_entity", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "dimension_parent", "named": true }, { "type": "member", "named": true } ] } }, { "type": "dimension_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "dimension_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "dimension_parent", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "annotation_only_body", "named": true } ] }, "entity": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "entity_body", "named": true, "fields": { "identity": { "multiple": false, "required": true, "types": [ { "type": "entity_identity", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "member", "named": true } ] } }, { "type": "entity_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "entity_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "entity_identity", "named": true, "fields": { "identity": { "multiple": false, "required": true, "types": [ { "type": "member", "named": true } ] } } }, { "type": "enum_body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "value_variant", "named": true } ] } }, { "type": "enum_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "enum_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "equation", "named": true, "fields": { "lhs": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] }, "rhs": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] } } }, { "type": "event_body", "named": true, "fields": { "identity": { "multiple": false, "required": true, "types": [ { "type": "source_entity", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "member", "named": true } ] } }, { "type": "event_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "event_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "formal_constraint", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true } ] }, "environment": { "multiple": false, "required": false, "types": [ { "type": "constraint_environment", "named": true } ] } } }, { "type": "from_clause", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "module_path_absolute", "named": true }, { "type": "module_path_relative", "named": true }, { "type": "module_path_root_only", "named": true } ] } }, { "type": "function_body", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true }, { "type": "term", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "function_op_by_definition", "named": true } ] } }, { "type": "function_cardinality_expression", "named": true, "fields": { "min": { "multiple": false, "required": false, "types": [ { "type": "unsigned", "named": true } ] }, "ordering": { "multiple": false, "required": false, "types": [ { "type": "sequence_ordering", "named": true } ] }, "range": { "multiple": false, "required": false, "types": [ { "type": "cardinality_range", "named": true } ] }, "uniqueness": { "multiple": false, "required": false, "types": [ { "type": "sequence_uniqueness", "named": true } ] } } }, { "type": "function_composition", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "subject": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "reserved_self", "named": true } ] } } }, { "type": "function_def", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "function_body", "named": true } ] }, "signature": { "multiple": false, "required": true, "types": [ { "type": "function_signature", "named": true } ] } } }, { "type": "function_op_by_definition", "named": true, "fields": {} }, { "type": "function_parameter", "named": true, "fields": { "cardinality": { "multiple": false, "required": false, "types": [ { "type": "function_cardinality_expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "target": { "multiple": false, "required": true, "types": [ { "type": "function_type_reference", "named": true } ] } } }, { "type": "function_signature", "named": true, "fields": { "cardinality": { "multiple": false, "required": false, "types": [ { "type": "function_cardinality_expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parameter": { "multiple": true, "required": false, "types": [ { "type": "function_parameter", "named": true } ] }, "target": { "multiple": false, "required": true, "types": [ { "type": "function_type_reference", "named": true } ] } } }, { "type": "function_type_reference", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "builtin_simple_type", "named": true }, { "type": "identifier_reference", "named": true }, { "type": "mapping_type", "named": true } ] } }, { "type": "functional_term", "named": true, "fields": { "function": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "actual_arguments", "named": true } ] } }, { "type": "identifier_reference", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "qualified_identifier", "named": true } ] } }, { "type": "import_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "from_clause", "named": true }, { "type": "member_import", "named": true }, { "type": "module_import", "named": true } ] } }, { "type": "inequation", "named": true, "fields": { "lhs": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] }, "relation": { "multiple": false, "required": true, "types": [ { "type": "op_greater_than", "named": true }, { "type": "op_greater_than_or_equal", "named": true }, { "type": "op_inequality", "named": true }, { "type": "op_less_than", "named": true }, { "type": "op_less_than_or_equal", "named": true } ] }, "rhs": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] } } }, { "type": "informal_constraint", "named": true, "fields": { "language": { "multiple": false, "required": false, "types": [ { "type": "controlled_language_tag", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "quoted_string", "named": true } ] } } }, { "type": "iri", "named": true, "fields": {} }, { "type": "length_restriction_facet", "named": true, "fields": { "facet": { "multiple": false, "required": true, "types": [ { "type": "length", "named": false }, { "type": "maxLength", "named": false }, { "type": "minLength", "named": false } ] }, "is_fixed": { "multiple": false, "required": false, "types": [ { "type": "kw_is_fixed", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "unsigned", "named": true } ] } } }, { "type": "logical_op_biconditional", "named": true, "fields": {} }, { "type": "logical_op_conjunction", "named": true, "fields": {} }, { "type": "logical_op_disjunction", "named": true, "fields": {} }, { "type": "logical_op_exclusive_disjunction", "named": true, "fields": {} }, { "type": "logical_op_implication", "named": true, "fields": {} }, { "type": "logical_op_negation", "named": true, "fields": {} }, { "type": "logical_quantifier_existential", "named": true, "fields": {} }, { "type": "logical_quantifier_universal", "named": true, "fields": {} }, { "type": "mapping_type", "named": true, "fields": { "domain": { "multiple": false, "required": true, "types": [ { "type": "type_reference", "named": true } ] }, "range": { "multiple": false, "required": true, "types": [ { "type": "type_reference", "named": true } ] } } }, { "type": "mapping_value", "named": true, "fields": { "domain": { "multiple": false, "required": true, "types": [ { "type": "simple_value", "named": true } ] }, "range": { "multiple": false, "required": true, "types": [ { "type": "value", "named": true } ] } } }, { "type": "member", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "member_def", "named": true }, { "type": "property_ref", "named": true } ] } }, { "type": "member_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "annotation_only_body", "named": true } ] }, "cardinality": { "multiple": false, "required": false, "types": [ { "type": "cardinality_expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "target": { "multiple": false, "required": true, "types": [ { "type": "type_reference", "named": true } ] } } }, { "type": "member_import", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "qualified_identifier", "named": true } ] }, "rename": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "method_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "function_body", "named": true } ] }, "signature": { "multiple": false, "required": true, "types": [ { "type": "function_signature", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "annotation_only_body", "named": true } ] } }, { "type": "module", "named": true, "fields": { "base": { "multiple": false, "required": false, "types": [ { "type": "iri", "named": true } ] }, "body": { "multiple": false, "required": true, "types": [ { "type": "module_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "version_info": { "multiple": false, "required": false, "types": [ { "type": "quoted_string", "named": true } ] }, "version_uri": { "multiple": false, "required": false, "types": [ { "type": "iri", "named": true } ] } } }, { "type": "module_body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "definition", "named": true }, { "type": "import_statement", "named": true } ] } }, { "type": "module_import", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "rename": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "version_uri": { "multiple": false, "required": false, "types": [ { "type": "iri", "named": true } ] } } }, { "type": "module_path_absolute", "named": true, "fields": { "segment": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "module_path_relative", "named": true, "fields": { "segment": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "module_path_root_only", "named": true, "fields": {} }, { "type": "op_greater_than_or_equal", "named": true, "fields": {} }, { "type": "op_inequality", "named": true, "fields": {} }, { "type": "op_less_than_or_equal", "named": true, "fields": {} }, { "type": "pattern_restriction_facet", "named": true, "fields": { "value": { "multiple": true, "required": true, "types": [ { "type": "[", "named": false }, { "type": "]", "named": false }, { "type": "quoted_string", "named": true } ] } } }, { "type": "predicate_value", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "sequence_of_predicate_values", "named": true }, { "type": "simple_value", "named": true } ] } }, { "type": "property_def", "named": true, "fields": { "member": { "multiple": false, "required": true, "types": [ { "type": "member_def", "named": true } ] } } }, { "type": "property_ref", "named": true, "fields": { "property": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] } } }, { "type": "qualified_identifier", "named": true, "fields": { "member": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "module": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "quantified_sentence", "named": true, "fields": { "binding": { "multiple": false, "required": true, "types": [ { "type": "quantified_variable_binding", "named": true } ] }, "body": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true } ] } } }, { "type": "quantified_variable", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "variable", "named": true } ] }, "source": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "set_op_membership", "named": true } ] } }, { "type": "quantified_variable_binding", "named": true, "fields": { "binding": { "multiple": false, "required": true, "types": [ { "type": "quantified_variable", "named": true } ] }, "quantifier": { "multiple": false, "required": true, "types": [ { "type": "logical_quantifier_existential", "named": true }, { "type": "logical_quantifier_universal", "named": true } ] } } }, { "type": "rdf_def", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "annotation_only_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "types": { "multiple": false, "required": false, "types": [ { "type": "rdf_types", "named": true } ] } } }, { "type": "rdf_types", "named": true, "fields": { "type": { "multiple": true, "required": false, "types": [ { "type": "identifier_reference", "named": true } ] } } }, { "type": "restriction_value", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "simple_value", "named": true }, { "type": "value_constructor", "named": true } ] } }, { "type": "sequence_builder", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "sequence_builder_body", "named": true } ] }, "variable": { "multiple": true, "required": true, "types": [ { "type": "variable", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "set_op_builder", "named": true } ] } }, { "type": "sequence_builder_body", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "quantified_sentence", "named": true } ] } }, { "type": "sequence_of_predicate_values", "named": true, "fields": { "element": { "multiple": true, "required": false, "types": [ { "type": "identifier_reference", "named": true }, { "type": "mapping_value", "named": true }, { "type": "predicate_value", "named": true }, { "type": "value_constructor", "named": true } ] }, "ordering": { "multiple": false, "required": false, "types": [ { "type": "sequence_ordering", "named": true } ] }, "uniqueness": { "multiple": false, "required": false, "types": [ { "type": "sequence_uniqueness", "named": true } ] } } }, { "type": "sequence_of_values", "named": true, "fields": { "element": { "multiple": true, "required": false, "types": [ { "type": "identifier_reference", "named": true }, { "type": "mapping_value", "named": true }, { "type": "simple_value", "named": true }, { "type": "value_constructor", "named": true } ] }, "ordering": { "multiple": false, "required": false, "types": [ { "type": "sequence_ordering", "named": true } ] }, "uniqueness": { "multiple": false, "required": false, "types": [ { "type": "sequence_uniqueness", "named": true } ] } } }, { "type": "sequence_ordering", "named": true, "fields": {} }, { "type": "sequence_uniqueness", "named": true, "fields": {} }, { "type": "set_op_membership", "named": true, "fields": {} }, { "type": "simple_sentence", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "atomic_sentence", "named": true }, { "type": "equation", "named": true }, { "type": "inequation", "named": true } ] } }, { "type": "simple_value", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "binary", "named": true }, { "type": "boolean", "named": true }, { "type": "decimal", "named": true }, { "type": "double", "named": true }, { "type": "integer", "named": true }, { "type": "iri", "named": true }, { "type": "rational", "named": true }, { "type": "string", "named": true }, { "type": "unsigned", "named": true } ] } }, { "type": "source_entity", "named": true, "fields": { "entity": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] }, "member": { "multiple": true, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "string", "named": true, "fields": { "language": { "multiple": false, "required": false, "types": [ { "type": "language_tag", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "quoted_string", "named": true } ] } }, { "type": "structure_body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "member", "named": true } ] } }, { "type": "structure_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "structure_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "term", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "function_composition", "named": true }, { "type": "functional_term", "named": true }, { "type": "identifier_reference", "named": true }, { "type": "predicate_value", "named": true }, { "type": "reserved_self", "named": true }, { "type": "sequence_builder", "named": true } ] } }, { "type": "type_class_arguments", "named": true, "fields": { "variable": { "multiple": true, "required": false, "types": [ { "type": "type_class_reference", "named": true } ] }, "wildcard": { "multiple": false, "required": false, "types": [ { "type": "wildcard", "named": true } ] } } }, { "type": "type_class_body", "named": true, "fields": { "method": { "multiple": true, "required": false, "types": [ { "type": "method_def", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true } ] } }, { "type": "type_class_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "type_class_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "variable": { "multiple": true, "required": false, "types": [ { "type": "type_variable", "named": true } ] } } }, { "type": "type_class_reference", "named": true, "fields": { "arguments": { "multiple": false, "required": false, "types": [ { "type": "type_class_arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] } } }, { "type": "type_op_combiner", "named": true, "fields": {} }, { "type": "type_reference", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "builtin_simple_type", "named": true }, { "type": "identifier_reference", "named": true }, { "type": "mapping_type", "named": true }, { "type": "unknown_type", "named": true } ] } }, { "type": "type_variable", "named": true, "fields": { "cardinality": { "multiple": false, "required": false, "types": [ { "type": "function_cardinality_expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_class_reference", "named": true }, { "type": "type_op_combiner", "named": true } ] } }, { "type": "type_variant", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "annotation_only_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] }, "rename": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "tz_restriction_facet", "named": true, "fields": { "is_fixed": { "multiple": false, "required": false, "types": [ { "type": "kw_is_fixed", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "tz_restriction_value", "named": true } ] } } }, { "type": "tz_restriction_value", "named": true, "fields": {} }, { "type": "unary_boolean_sentence", "named": true, "fields": { "operator": { "multiple": false, "required": true, "types": [ { "type": "logical_op_negation", "named": true } ] }, "rhs": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true } ] } } }, { "type": "union_body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "annotation", "named": true }, { "type": "type_variant", "named": true } ] } }, { "type": "union_def", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "union_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "value", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true }, { "type": "mapping_value", "named": true }, { "type": "sequence_of_values", "named": true }, { "type": "simple_value", "named": true }, { "type": "value_constructor", "named": true } ] } }, { "type": "value_constructor", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "simple_value", "named": true } ] } } }, { "type": "value_restriction_facet", "named": true, "fields": { "facet": { "multiple": false, "required": true, "types": [ { "type": "maxExclusive", "named": false }, { "type": "maxInclusive", "named": false }, { "type": "minExclusive", "named": false }, { "type": "minInclusive", "named": false } ] }, "is_fixed": { "multiple": false, "required": false, "types": [ { "type": "kw_is_fixed", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "restriction_value", "named": true } ] } } }, { "type": "value_variant", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "annotation_only_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "variable", "named": true, "fields": { "range": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "#[", "named": false }, { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "+", "named": false }, { "type": ",", "named": false }, { "type": "->", "named": false }, { "type": ".", "named": false }, { "type": "..", "named": false }, { "type": "/=", "named": false }, { "type": ":", "named": false }, { "type": "::", "named": false }, { "type": ":=", "named": false }, { "type": "<", "named": false }, { "type": "<-", "named": false }, { "type": "<=", "named": false }, { "type": "<==>", "named": false }, { "type": "=", "named": false }, { "type": "==>", "named": false }, { "type": ">", "named": false }, { "type": ">=", "named": false }, { "type": "@", "named": false }, { "type": "Nothing", "named": false }, { "type": "Thing", "named": false }, { "type": "[", "named": false }, { "type": "]", "named": false }, { "type": "a", "named": false }, { "type": "and", "named": false }, { "type": "anyURI", "named": false }, { "type": "as", "named": false }, { "type": "assert", "named": false }, { "type": "base64Binary", "named": false }, { "type": "binary", "named": false }, { "type": "boolean", "named": false }, { "type": "byte", "named": false }, { "type": "class", "named": false }, { "type": "complement", "named": false }, { "type": "controlled_language_tag", "named": true }, { "type": "datatype", "named": false }, { "type": "date", "named": false }, { "type": "dateTime", "named": false }, { "type": "dateTimeStamp", "named": false }, { "type": "dayTimeDuration", "named": false }, { "type": "decimal", "named": false }, { "type": "decimal", "named": true }, { "type": "def", "named": false }, { "type": "dimension", "named": false }, { "type": "double", "named": true }, { "type": "double", "named": false }, { "type": "duration", "named": false }, { "type": "end", "named": false }, { "type": "entity", "named": false }, { "type": "enum", "named": false }, { "type": "event", "named": false }, { "type": "exists", "named": false }, { "type": "explicitTimezone", "named": false }, { "type": "false", "named": false }, { "type": "float", "named": false }, { "type": "forall", "named": false }, { "type": "fractionDigits", "named": false }, { "type": "from", "named": false }, { "type": "gDay", "named": false }, { "type": "gMonth", "named": false }, { "type": "gMonthDay", "named": false }, { "type": "gYear", "named": false }, { "type": "gYearMonth", "named": false }, { "type": "hexBinary", "named": false }, { "type": "hex_byte", "named": true }, { "type": "identifier", "named": true }, { "type": "identity", "named": false }, { "type": "iff", "named": false }, { "type": "implies", "named": false }, { "type": "import", "named": false }, { "type": "in", "named": false }, { "type": "int", "named": false }, { "type": "integer", "named": false }, { "type": "integer", "named": true }, { "type": "intersection", "named": false }, { "type": "iri", "named": false }, { "type": "is", "named": false }, { "type": "kw_is_fixed", "named": true }, { "type": "language", "named": false }, { "type": "language_tag", "named": true }, { "type": "length", "named": false }, { "type": "line_comment", "named": true }, { "type": "long", "named": false }, { "type": "maxExclusive", "named": false }, { "type": "maxInclusive", "named": false }, { "type": "maxLength", "named": false }, { "type": "minExclusive", "named": false }, { "type": "minInclusive", "named": false }, { "type": "minLength", "named": false }, { "type": "module", "named": false }, { "type": "negativeInteger", "named": false }, { "type": "nonNegativeInteger", "named": false }, { "type": "nonPositiveInteger", "named": false }, { "type": "nonunique", "named": false }, { "type": "normalizedString", "named": false }, { "type": "not", "named": false }, { "type": "of", "named": false }, { "type": "op_greater_than", "named": true }, { "type": "op_less_than", "named": true }, { "type": "opaque", "named": true }, { "type": "optional", "named": false }, { "type": "or", "named": false }, { "type": "ordered", "named": false }, { "type": "parent", "named": false }, { "type": "pattern", "named": false }, { "type": "positiveInteger", "named": false }, { "type": "prohibited", "named": false }, { "type": "property", "named": false }, { "type": "quoted_string", "named": true }, { "type": "rational", "named": true }, { "type": "rational", "named": false }, { "type": "rdf", "named": false }, { "type": "real", "named": false }, { "type": "ref", "named": false }, { "type": "required", "named": false }, { "type": "reserved_self", "named": true }, { "type": "set_op_builder", "named": true }, { "type": "short", "named": false }, { "type": "source", "named": false }, { "type": "string", "named": false }, { "type": "structure", "named": false }, { "type": "time", "named": false }, { "type": "token", "named": false }, { "type": "totalDigits", "named": false }, { "type": "true", "named": false }, { "type": "type", "named": false }, { "type": "union", "named": false }, { "type": "unique", "named": false }, { "type": "unknown_type", "named": true }, { "type": "unordered", "named": false }, { "type": "unsigned", "named": true }, { "type": "unsigned", "named": false }, { "type": "unsignedByte", "named": false }, { "type": "unsignedInt", "named": false }, { "type": "unsignedLong", "named": false }, { "type": "unsignedShort", "named": false }, { "type": "version", "named": false }, { "type": "wildcard", "named": true }, { "type": "with", "named": false }, { "type": "xor", "named": false }, { "type": "yearMonthDuration", "named": false }, { "type": "{", "named": false }, { "type": "}", "named": false }, { "type": "¬", "named": false }, { "type": "·", "named": false }, { "type": "←", "named": false }, { "type": "→", "named": false }, { "type": "⇒", "named": false }, { "type": "⇔", "named": false }, { "type": "∀", "named": false }, { "type": "∃", "named": false }, { "type": "∈", "named": false }, { "type": "∖", "named": false }, { "type": "∧", "named": false }, { "type": "∨", "named": false }, { "type": "∩", "named": false }, { "type": "∪", "named": false }, { "type": "≔", "named": false }, { "type": "≠", "named": false }, { "type": "≤", "named": false }, { "type": "≥", "named": false }, { "type": "⊕", "named": false }, { "type": "⊤", "named": false }, { "type": "⊥", "named": false }, { "type": "⊻", "named": false } ]sdm-lang-tree-sitter-sdml-ae9db9a/src/parser.c000066400000000000000000020603221476262407100214430ustar00rootroot00000000000000#include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 14 #define STATE_COUNT 554 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 330 #define ALIAS_COUNT 0 #define TOKEN_COUNT 171 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 49 #define MAX_ALIAS_SEQUENCE_LENGTH 7 #define PRODUCTION_ID_COUNT 116 enum ts_symbol_identifiers { sym_identifier = 1, anon_sym_module = 2, anon_sym_version = 3, anon_sym_is = 4, anon_sym_end = 5, anon_sym_import = 6, anon_sym_LBRACK = 7, anon_sym_RBRACK = 8, anon_sym_from = 9, anon_sym_COLON_COLON = 10, anon_sym_COLON_COLON2 = 11, anon_sym_as = 12, anon_sym_COLON = 13, anon_sym_AT = 14, anon_sym_EQ = 15, anon_sym_assert = 16, sym_controlled_language_tag = 17, anon_sym_LPAREN = 18, anon_sym_RPAREN = 19, anon_sym_COMMA = 20, anon_sym_u00b7 = 21, anon_sym_DOT = 22, sym_reserved_self = 23, anon_sym_with = 24, anon_sym_def = 25, anon_sym_LBRACE = 26, anon_sym_RBRACE = 27, anon_sym_Thing = 28, anon_sym_Nothing = 29, anon_sym_real = 30, anon_sym_rational = 31, anon_sym_anyURI = 32, anon_sym_iri = 33, anon_sym_base64Binary = 34, anon_sym_boolean = 35, anon_sym_date = 36, anon_sym_dateTime = 37, anon_sym_decimal = 38, anon_sym_double = 39, anon_sym_duration = 40, anon_sym_float = 41, anon_sym_gDay = 42, anon_sym_gMonth = 43, anon_sym_gMonthDay = 44, anon_sym_gYearMonth = 45, anon_sym_gYear = 46, anon_sym_hexBinary = 47, anon_sym_binary = 48, anon_sym_string = 49, anon_sym_time = 50, anon_sym_dateTimeStamp = 51, anon_sym_dayTimeDuration = 52, anon_sym_yearMonthDuration = 53, anon_sym_integer = 54, anon_sym_long = 55, anon_sym_int = 56, anon_sym_short = 57, anon_sym_byte = 58, anon_sym_nonNegativeInteger = 59, anon_sym_positiveInteger = 60, anon_sym_unsignedLong = 61, anon_sym_unsignedInt = 62, anon_sym_unsigned = 63, anon_sym_unsignedShort = 64, anon_sym_unsignedByte = 65, anon_sym_nonPositiveInteger = 66, anon_sym_negativeInteger = 67, anon_sym_normalizedString = 68, anon_sym_token = 69, anon_sym_language = 70, sym_quoted_string = 71, sym_language_tag = 72, anon_sym_LT = 73, aux_sym_iri_token1 = 74, anon_sym_GT = 75, anon_sym_POUND_LBRACK = 76, sym_hex_byte = 77, sym_double = 78, sym_decimal = 79, sym_integer = 80, sym_rational = 81, sym_unsigned = 82, anon_sym_true = 83, anon_sym_u22a4 = 84, anon_sym_false = 85, anon_sym_u22a5 = 86, anon_sym_datatype = 87, sym_opaque = 88, anon_sym_length = 89, anon_sym_maxLength = 90, anon_sym_minLength = 91, anon_sym_fractionDigits = 92, anon_sym_totalDigits = 93, anon_sym_maxExclusive = 94, anon_sym_maxInclusive = 95, anon_sym_minExclusive = 96, anon_sym_minInclusive = 97, anon_sym_explicitTimezone = 98, anon_sym_required = 99, anon_sym_prohibited = 100, anon_sym_optional = 101, anon_sym_pattern = 102, sym_kw_is_fixed = 103, anon_sym_dimension = 104, anon_sym_source = 105, anon_sym_parent = 106, anon_sym_entity = 107, anon_sym_enum = 108, anon_sym_of = 109, anon_sym_event = 110, anon_sym_property = 111, anon_sym_structure = 112, anon_sym_union = 113, anon_sym_rdf = 114, anon_sym_a = 115, anon_sym_type = 116, anon_sym_class = 117, sym_wildcard = 118, anon_sym_identity = 119, anon_sym_ref = 120, sym_unknown_type = 121, anon_sym_ordered = 122, anon_sym_unordered = 123, anon_sym_unique = 124, anon_sym_nonunique = 125, anon_sym_DOT_DOT = 126, anon_sym_SLASH_EQ = 127, anon_sym_u2260 = 128, sym_op_less_than = 129, sym_op_greater_than = 130, anon_sym_LT_EQ = 131, anon_sym_u2264 = 132, anon_sym_GT_EQ = 133, anon_sym_u2265 = 134, anon_sym_not = 135, anon_sym_u00ac = 136, anon_sym_and = 137, anon_sym_u2227 = 138, anon_sym_or = 139, anon_sym_u2228 = 140, anon_sym_xor = 141, anon_sym_u22bb = 142, anon_sym_implies = 143, anon_sym_EQ_EQ_GT = 144, anon_sym_u21d2 = 145, anon_sym_iff = 146, anon_sym_LT_EQ_EQ_GT = 147, anon_sym_u21d4 = 148, anon_sym_forall = 149, anon_sym_u2200 = 150, anon_sym_exists = 151, anon_sym_u2203 = 152, anon_sym_u222a = 153, anon_sym_intersection = 154, anon_sym_u2229 = 155, anon_sym_complement = 156, anon_sym_u2216 = 157, anon_sym_in = 158, anon_sym_u2208 = 159, sym_set_op_builder = 160, anon_sym_COLON_EQ = 161, anon_sym_u2254 = 162, anon_sym_u2192 = 163, anon_sym_DASH_GT = 164, anon_sym_u2190 = 165, anon_sym_LT_DASH = 166, anon_sym_PLUS = 167, anon_sym_u2295 = 168, sym__value_empty_sequence = 169, sym_line_comment = 170, sym_module = 171, sym__module_locations = 172, sym_module_body = 173, sym_import_statement = 174, sym_from_clause = 175, sym_module_path_root_only = 176, sym_module_path_absolute = 177, sym_module_path_relative = 178, sym__import = 179, sym__rename_import = 180, sym_member_import = 181, sym_module_import = 182, sym_qualified_identifier = 183, sym_identifier_reference = 184, sym_annotation = 185, sym_annotation_property = 186, sym_constraint = 187, sym_informal_constraint = 188, sym_formal_constraint = 189, sym_constraint_sentence = 190, sym_simple_sentence = 191, sym_atomic_sentence = 192, sym_actual_arguments = 193, sym_equation = 194, sym_inequation = 195, sym_boolean_sentence = 196, sym_unary_boolean_sentence = 197, sym_binary_boolean_sentence = 198, sym__logical_connective = 199, sym_quantified_sentence = 200, sym_quantified_variable_binding = 201, sym_quantified_variable = 202, sym_variable = 203, sym_term = 204, sym_functional_term = 205, sym_function_composition = 206, sym_predicate_value = 207, sym_sequence_of_predicate_values = 208, sym_constraint_environment = 209, sym_function_def = 210, sym_function_signature = 211, sym_function_parameter = 212, sym__function_type = 213, sym_function_cardinality_expression = 214, sym_function_type_reference = 215, sym_function_body = 216, sym_sequence_builder = 217, sym_sequence_builder_body = 218, sym_value = 219, sym_sequence_of_values = 220, sym__sequence_value_constraints = 221, sym_value_constructor = 222, sym_mapping_value = 223, sym_builtin_simple_type = 224, sym__owl_builtin_types = 225, sym__builtin_primitive_datatypes = 226, sym__derived_date_datetypes = 227, sym__derived_numeric_datatypes = 228, sym__derived_string_datatypes = 229, sym_simple_value = 230, sym_string = 231, sym_iri = 232, sym_binary = 233, sym_boolean = 234, sym_boolean_truth = 235, sym_boolean_falsity = 236, sym_definition = 237, sym_data_type_def = 238, sym__datatype_base = 239, sym_datatype_def_restriction = 240, sym__restriction_facet = 241, sym_length_restriction_facet = 242, sym_digit_restriction_facet = 243, sym_value_restriction_facet = 244, sym_restriction_value = 245, sym_tz_restriction_facet = 246, sym_tz_restriction_value = 247, sym_pattern_restriction_facet = 248, sym_annotation_only_body = 249, sym_dimension_def = 250, sym_dimension_body = 251, sym_source_entity = 252, sym__identifier_or_sequence = 253, sym_dimension_parent = 254, sym_entity_def = 255, sym_entity_body = 256, sym_enum_def = 257, sym_enum_body = 258, sym_event_def = 259, sym_event_body = 260, sym_property_def = 261, sym_structure_def = 262, sym_structure_body = 263, sym_union_def = 264, sym_union_body = 265, sym_rdf_def = 266, sym_rdf_types = 267, sym_type_class_def = 268, sym_type_variable = 269, sym__type_variable_restriction = 270, sym_type_class_reference = 271, sym_type_class_arguments = 272, sym_type_class_body = 273, sym_method_def = 274, sym_entity_identity = 275, sym_member = 276, sym_member_def = 277, sym_property_ref = 278, sym__type_expression_to = 279, sym_type_reference = 280, sym_mapping_type = 281, sym_cardinality_expression = 282, sym__cardinality_inner = 283, sym_sequence_ordering = 284, sym_sequence_uniqueness = 285, sym_cardinality_range = 286, sym_value_variant = 287, sym_type_variant = 288, sym_op_inequality = 289, sym_op_less_than_or_equal = 290, sym_op_greater_than_or_equal = 291, sym_logical_op_negation = 292, sym_logical_op_conjunction = 293, sym_logical_op_disjunction = 294, sym_logical_op_exclusive_disjunction = 295, sym_logical_op_implication = 296, sym_logical_op_biconditional = 297, sym_logical_quantifier_universal = 298, sym_logical_quantifier_existential = 299, sym_set_op_membership = 300, sym_function_op_by_definition = 301, sym__type_op_has_type = 302, sym__type_op_type_restriction = 303, sym_type_op_combiner = 304, aux_sym_module_body_repeat1 = 305, aux_sym_module_body_repeat2 = 306, aux_sym_module_body_repeat3 = 307, aux_sym_import_statement_repeat1 = 308, aux_sym_module_path_absolute_repeat1 = 309, aux_sym_actual_arguments_repeat1 = 310, aux_sym_function_composition_repeat1 = 311, aux_sym_sequence_of_predicate_values_repeat1 = 312, aux_sym_constraint_environment_repeat1 = 313, aux_sym_function_signature_repeat1 = 314, aux_sym_sequence_builder_repeat1 = 315, aux_sym_sequence_of_values_repeat1 = 316, aux_sym_binary_repeat1 = 317, aux_sym_datatype_def_restriction_repeat1 = 318, aux_sym_pattern_restriction_facet_repeat1 = 319, aux_sym_dimension_body_repeat1 = 320, aux_sym_dimension_body_repeat2 = 321, aux_sym__identifier_or_sequence_repeat1 = 322, aux_sym_enum_body_repeat1 = 323, aux_sym_union_body_repeat1 = 324, aux_sym_rdf_types_repeat1 = 325, aux_sym_type_class_def_repeat1 = 326, aux_sym__type_variable_restriction_repeat1 = 327, aux_sym_type_class_arguments_repeat1 = 328, aux_sym_type_class_body_repeat1 = 329, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", [anon_sym_module] = "module", [anon_sym_version] = "version", [anon_sym_is] = "is", [anon_sym_end] = "end", [anon_sym_import] = "import", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_from] = "from", [anon_sym_COLON_COLON] = "::", [anon_sym_COLON_COLON2] = "::", [anon_sym_as] = "as", [anon_sym_COLON] = ":", [anon_sym_AT] = "@", [anon_sym_EQ] = "=", [anon_sym_assert] = "assert", [sym_controlled_language_tag] = "controlled_language_tag", [anon_sym_LPAREN] = "(", [anon_sym_RPAREN] = ")", [anon_sym_COMMA] = ",", [anon_sym_u00b7] = "\u00b7", [anon_sym_DOT] = ".", [sym_reserved_self] = "reserved_self", [anon_sym_with] = "with", [anon_sym_def] = "def", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_Thing] = "Thing", [anon_sym_Nothing] = "Nothing", [anon_sym_real] = "real", [anon_sym_rational] = "rational", [anon_sym_anyURI] = "anyURI", [anon_sym_iri] = "iri", [anon_sym_base64Binary] = "base64Binary", [anon_sym_boolean] = "boolean", [anon_sym_date] = "date", [anon_sym_dateTime] = "dateTime", [anon_sym_decimal] = "decimal", [anon_sym_double] = "double", [anon_sym_duration] = "duration", [anon_sym_float] = "float", [anon_sym_gDay] = "gDay", [anon_sym_gMonth] = "gMonth", [anon_sym_gMonthDay] = "gMonthDay", [anon_sym_gYearMonth] = "gYearMonth", [anon_sym_gYear] = "gYear", [anon_sym_hexBinary] = "hexBinary", [anon_sym_binary] = "binary", [anon_sym_string] = "string", [anon_sym_time] = "time", [anon_sym_dateTimeStamp] = "dateTimeStamp", [anon_sym_dayTimeDuration] = "dayTimeDuration", [anon_sym_yearMonthDuration] = "yearMonthDuration", [anon_sym_integer] = "integer", [anon_sym_long] = "long", [anon_sym_int] = "int", [anon_sym_short] = "short", [anon_sym_byte] = "byte", [anon_sym_nonNegativeInteger] = "nonNegativeInteger", [anon_sym_positiveInteger] = "positiveInteger", [anon_sym_unsignedLong] = "unsignedLong", [anon_sym_unsignedInt] = "unsignedInt", [anon_sym_unsigned] = "unsigned", [anon_sym_unsignedShort] = "unsignedShort", [anon_sym_unsignedByte] = "unsignedByte", [anon_sym_nonPositiveInteger] = "nonPositiveInteger", [anon_sym_negativeInteger] = "negativeInteger", [anon_sym_normalizedString] = "normalizedString", [anon_sym_token] = "token", [anon_sym_language] = "language", [sym_quoted_string] = "quoted_string", [sym_language_tag] = "language_tag", [anon_sym_LT] = "<", [aux_sym_iri_token1] = "iri_token1", [anon_sym_GT] = ">", [anon_sym_POUND_LBRACK] = "#[", [sym_hex_byte] = "hex_byte", [sym_double] = "double", [sym_decimal] = "decimal", [sym_integer] = "integer", [sym_rational] = "rational", [sym_unsigned] = "unsigned", [anon_sym_true] = "true", [anon_sym_u22a4] = "\u22a4", [anon_sym_false] = "false", [anon_sym_u22a5] = "\u22a5", [anon_sym_datatype] = "datatype", [sym_opaque] = "opaque", [anon_sym_length] = "length", [anon_sym_maxLength] = "maxLength", [anon_sym_minLength] = "minLength", [anon_sym_fractionDigits] = "fractionDigits", [anon_sym_totalDigits] = "totalDigits", [anon_sym_maxExclusive] = "maxExclusive", [anon_sym_maxInclusive] = "maxInclusive", [anon_sym_minExclusive] = "minExclusive", [anon_sym_minInclusive] = "minInclusive", [anon_sym_explicitTimezone] = "explicitTimezone", [anon_sym_required] = "required", [anon_sym_prohibited] = "prohibited", [anon_sym_optional] = "optional", [anon_sym_pattern] = "pattern", [sym_kw_is_fixed] = "kw_is_fixed", [anon_sym_dimension] = "dimension", [anon_sym_source] = "source", [anon_sym_parent] = "parent", [anon_sym_entity] = "entity", [anon_sym_enum] = "enum", [anon_sym_of] = "of", [anon_sym_event] = "event", [anon_sym_property] = "property", [anon_sym_structure] = "structure", [anon_sym_union] = "union", [anon_sym_rdf] = "rdf", [anon_sym_a] = "a", [anon_sym_type] = "type", [anon_sym_class] = "class", [sym_wildcard] = "wildcard", [anon_sym_identity] = "identity", [anon_sym_ref] = "ref", [sym_unknown_type] = "unknown_type", [anon_sym_ordered] = "ordered", [anon_sym_unordered] = "unordered", [anon_sym_unique] = "unique", [anon_sym_nonunique] = "nonunique", [anon_sym_DOT_DOT] = "..", [anon_sym_SLASH_EQ] = "/=", [anon_sym_u2260] = "\u2260", [sym_op_less_than] = "op_less_than", [sym_op_greater_than] = "op_greater_than", [anon_sym_LT_EQ] = "<=", [anon_sym_u2264] = "\u2264", [anon_sym_GT_EQ] = ">=", [anon_sym_u2265] = "\u2265", [anon_sym_not] = "not", [anon_sym_u00ac] = "\u00ac", [anon_sym_and] = "and", [anon_sym_u2227] = "\u2227", [anon_sym_or] = "or", [anon_sym_u2228] = "\u2228", [anon_sym_xor] = "xor", [anon_sym_u22bb] = "\u22bb", [anon_sym_implies] = "implies", [anon_sym_EQ_EQ_GT] = "==>", [anon_sym_u21d2] = "\u21d2", [anon_sym_iff] = "iff", [anon_sym_LT_EQ_EQ_GT] = "<==>", [anon_sym_u21d4] = "\u21d4", [anon_sym_forall] = "forall", [anon_sym_u2200] = "\u2200", [anon_sym_exists] = "exists", [anon_sym_u2203] = "\u2203", [anon_sym_u222a] = "\u222a", [anon_sym_intersection] = "intersection", [anon_sym_u2229] = "\u2229", [anon_sym_complement] = "complement", [anon_sym_u2216] = "\u2216", [anon_sym_in] = "in", [anon_sym_u2208] = "\u2208", [sym_set_op_builder] = "set_op_builder", [anon_sym_COLON_EQ] = ":=", [anon_sym_u2254] = "\u2254", [anon_sym_u2192] = "\u2192", [anon_sym_DASH_GT] = "->", [anon_sym_u2190] = "\u2190", [anon_sym_LT_DASH] = "<-", [anon_sym_PLUS] = "+", [anon_sym_u2295] = "\u2295", [sym__value_empty_sequence] = "_value_empty_sequence", [sym_line_comment] = "line_comment", [sym_module] = "module", [sym__module_locations] = "_module_locations", [sym_module_body] = "module_body", [sym_import_statement] = "import_statement", [sym_from_clause] = "from_clause", [sym_module_path_root_only] = "module_path_root_only", [sym_module_path_absolute] = "module_path_absolute", [sym_module_path_relative] = "module_path_relative", [sym__import] = "_import", [sym__rename_import] = "_rename_import", [sym_member_import] = "member_import", [sym_module_import] = "module_import", [sym_qualified_identifier] = "qualified_identifier", [sym_identifier_reference] = "identifier_reference", [sym_annotation] = "annotation", [sym_annotation_property] = "annotation_property", [sym_constraint] = "constraint", [sym_informal_constraint] = "informal_constraint", [sym_formal_constraint] = "formal_constraint", [sym_constraint_sentence] = "constraint_sentence", [sym_simple_sentence] = "simple_sentence", [sym_atomic_sentence] = "atomic_sentence", [sym_actual_arguments] = "actual_arguments", [sym_equation] = "equation", [sym_inequation] = "inequation", [sym_boolean_sentence] = "boolean_sentence", [sym_unary_boolean_sentence] = "unary_boolean_sentence", [sym_binary_boolean_sentence] = "binary_boolean_sentence", [sym__logical_connective] = "_logical_connective", [sym_quantified_sentence] = "quantified_sentence", [sym_quantified_variable_binding] = "quantified_variable_binding", [sym_quantified_variable] = "quantified_variable", [sym_variable] = "variable", [sym_term] = "term", [sym_functional_term] = "functional_term", [sym_function_composition] = "function_composition", [sym_predicate_value] = "predicate_value", [sym_sequence_of_predicate_values] = "sequence_of_predicate_values", [sym_constraint_environment] = "constraint_environment", [sym_function_def] = "function_def", [sym_function_signature] = "function_signature", [sym_function_parameter] = "function_parameter", [sym__function_type] = "_function_type", [sym_function_cardinality_expression] = "function_cardinality_expression", [sym_function_type_reference] = "function_type_reference", [sym_function_body] = "function_body", [sym_sequence_builder] = "sequence_builder", [sym_sequence_builder_body] = "sequence_builder_body", [sym_value] = "value", [sym_sequence_of_values] = "sequence_of_values", [sym__sequence_value_constraints] = "_sequence_value_constraints", [sym_value_constructor] = "value_constructor", [sym_mapping_value] = "mapping_value", [sym_builtin_simple_type] = "builtin_simple_type", [sym__owl_builtin_types] = "_owl_builtin_types", [sym__builtin_primitive_datatypes] = "_builtin_primitive_datatypes", [sym__derived_date_datetypes] = "_derived_date_datetypes", [sym__derived_numeric_datatypes] = "_derived_numeric_datatypes", [sym__derived_string_datatypes] = "_derived_string_datatypes", [sym_simple_value] = "simple_value", [sym_string] = "string", [sym_iri] = "iri", [sym_binary] = "binary", [sym_boolean] = "boolean", [sym_boolean_truth] = "boolean_truth", [sym_boolean_falsity] = "boolean_falsity", [sym_definition] = "definition", [sym_data_type_def] = "data_type_def", [sym__datatype_base] = "_datatype_base", [sym_datatype_def_restriction] = "datatype_def_restriction", [sym__restriction_facet] = "_restriction_facet", [sym_length_restriction_facet] = "length_restriction_facet", [sym_digit_restriction_facet] = "digit_restriction_facet", [sym_value_restriction_facet] = "value_restriction_facet", [sym_restriction_value] = "restriction_value", [sym_tz_restriction_facet] = "tz_restriction_facet", [sym_tz_restriction_value] = "tz_restriction_value", [sym_pattern_restriction_facet] = "pattern_restriction_facet", [sym_annotation_only_body] = "annotation_only_body", [sym_dimension_def] = "dimension_def", [sym_dimension_body] = "dimension_body", [sym_source_entity] = "source_entity", [sym__identifier_or_sequence] = "_identifier_or_sequence", [sym_dimension_parent] = "dimension_parent", [sym_entity_def] = "entity_def", [sym_entity_body] = "entity_body", [sym_enum_def] = "enum_def", [sym_enum_body] = "enum_body", [sym_event_def] = "event_def", [sym_event_body] = "event_body", [sym_property_def] = "property_def", [sym_structure_def] = "structure_def", [sym_structure_body] = "structure_body", [sym_union_def] = "union_def", [sym_union_body] = "union_body", [sym_rdf_def] = "rdf_def", [sym_rdf_types] = "rdf_types", [sym_type_class_def] = "type_class_def", [sym_type_variable] = "type_variable", [sym__type_variable_restriction] = "_type_variable_restriction", [sym_type_class_reference] = "type_class_reference", [sym_type_class_arguments] = "type_class_arguments", [sym_type_class_body] = "type_class_body", [sym_method_def] = "method_def", [sym_entity_identity] = "entity_identity", [sym_member] = "member", [sym_member_def] = "member_def", [sym_property_ref] = "property_ref", [sym__type_expression_to] = "_type_expression_to", [sym_type_reference] = "type_reference", [sym_mapping_type] = "mapping_type", [sym_cardinality_expression] = "cardinality_expression", [sym__cardinality_inner] = "_cardinality_inner", [sym_sequence_ordering] = "sequence_ordering", [sym_sequence_uniqueness] = "sequence_uniqueness", [sym_cardinality_range] = "cardinality_range", [sym_value_variant] = "value_variant", [sym_type_variant] = "type_variant", [sym_op_inequality] = "op_inequality", [sym_op_less_than_or_equal] = "op_less_than_or_equal", [sym_op_greater_than_or_equal] = "op_greater_than_or_equal", [sym_logical_op_negation] = "logical_op_negation", [sym_logical_op_conjunction] = "logical_op_conjunction", [sym_logical_op_disjunction] = "logical_op_disjunction", [sym_logical_op_exclusive_disjunction] = "logical_op_exclusive_disjunction", [sym_logical_op_implication] = "logical_op_implication", [sym_logical_op_biconditional] = "logical_op_biconditional", [sym_logical_quantifier_universal] = "logical_quantifier_universal", [sym_logical_quantifier_existential] = "logical_quantifier_existential", [sym_set_op_membership] = "set_op_membership", [sym_function_op_by_definition] = "function_op_by_definition", [sym__type_op_has_type] = "_type_op_has_type", [sym__type_op_type_restriction] = "_type_op_type_restriction", [sym_type_op_combiner] = "type_op_combiner", [aux_sym_module_body_repeat1] = "module_body_repeat1", [aux_sym_module_body_repeat2] = "module_body_repeat2", [aux_sym_module_body_repeat3] = "module_body_repeat3", [aux_sym_import_statement_repeat1] = "import_statement_repeat1", [aux_sym_module_path_absolute_repeat1] = "module_path_absolute_repeat1", [aux_sym_actual_arguments_repeat1] = "actual_arguments_repeat1", [aux_sym_function_composition_repeat1] = "function_composition_repeat1", [aux_sym_sequence_of_predicate_values_repeat1] = "sequence_of_predicate_values_repeat1", [aux_sym_constraint_environment_repeat1] = "constraint_environment_repeat1", [aux_sym_function_signature_repeat1] = "function_signature_repeat1", [aux_sym_sequence_builder_repeat1] = "sequence_builder_repeat1", [aux_sym_sequence_of_values_repeat1] = "sequence_of_values_repeat1", [aux_sym_binary_repeat1] = "binary_repeat1", [aux_sym_datatype_def_restriction_repeat1] = "datatype_def_restriction_repeat1", [aux_sym_pattern_restriction_facet_repeat1] = "pattern_restriction_facet_repeat1", [aux_sym_dimension_body_repeat1] = "dimension_body_repeat1", [aux_sym_dimension_body_repeat2] = "dimension_body_repeat2", [aux_sym__identifier_or_sequence_repeat1] = "_identifier_or_sequence_repeat1", [aux_sym_enum_body_repeat1] = "enum_body_repeat1", [aux_sym_union_body_repeat1] = "union_body_repeat1", [aux_sym_rdf_types_repeat1] = "rdf_types_repeat1", [aux_sym_type_class_def_repeat1] = "type_class_def_repeat1", [aux_sym__type_variable_restriction_repeat1] = "_type_variable_restriction_repeat1", [aux_sym_type_class_arguments_repeat1] = "type_class_arguments_repeat1", [aux_sym_type_class_body_repeat1] = "type_class_body_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, [anon_sym_module] = anon_sym_module, [anon_sym_version] = anon_sym_version, [anon_sym_is] = anon_sym_is, [anon_sym_end] = anon_sym_end, [anon_sym_import] = anon_sym_import, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_from] = anon_sym_from, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_COLON_COLON2] = anon_sym_COLON_COLON, [anon_sym_as] = anon_sym_as, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_AT] = anon_sym_AT, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_assert] = anon_sym_assert, [sym_controlled_language_tag] = sym_controlled_language_tag, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_u00b7] = anon_sym_u00b7, [anon_sym_DOT] = anon_sym_DOT, [sym_reserved_self] = sym_reserved_self, [anon_sym_with] = anon_sym_with, [anon_sym_def] = anon_sym_def, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_Thing] = anon_sym_Thing, [anon_sym_Nothing] = anon_sym_Nothing, [anon_sym_real] = anon_sym_real, [anon_sym_rational] = anon_sym_rational, [anon_sym_anyURI] = anon_sym_anyURI, [anon_sym_iri] = anon_sym_iri, [anon_sym_base64Binary] = anon_sym_base64Binary, [anon_sym_boolean] = anon_sym_boolean, [anon_sym_date] = anon_sym_date, [anon_sym_dateTime] = anon_sym_dateTime, [anon_sym_decimal] = anon_sym_decimal, [anon_sym_double] = anon_sym_double, [anon_sym_duration] = anon_sym_duration, [anon_sym_float] = anon_sym_float, [anon_sym_gDay] = anon_sym_gDay, [anon_sym_gMonth] = anon_sym_gMonth, [anon_sym_gMonthDay] = anon_sym_gMonthDay, [anon_sym_gYearMonth] = anon_sym_gYearMonth, [anon_sym_gYear] = anon_sym_gYear, [anon_sym_hexBinary] = anon_sym_hexBinary, [anon_sym_binary] = anon_sym_binary, [anon_sym_string] = anon_sym_string, [anon_sym_time] = anon_sym_time, [anon_sym_dateTimeStamp] = anon_sym_dateTimeStamp, [anon_sym_dayTimeDuration] = anon_sym_dayTimeDuration, [anon_sym_yearMonthDuration] = anon_sym_yearMonthDuration, [anon_sym_integer] = anon_sym_integer, [anon_sym_long] = anon_sym_long, [anon_sym_int] = anon_sym_int, [anon_sym_short] = anon_sym_short, [anon_sym_byte] = anon_sym_byte, [anon_sym_nonNegativeInteger] = anon_sym_nonNegativeInteger, [anon_sym_positiveInteger] = anon_sym_positiveInteger, [anon_sym_unsignedLong] = anon_sym_unsignedLong, [anon_sym_unsignedInt] = anon_sym_unsignedInt, [anon_sym_unsigned] = anon_sym_unsigned, [anon_sym_unsignedShort] = anon_sym_unsignedShort, [anon_sym_unsignedByte] = anon_sym_unsignedByte, [anon_sym_nonPositiveInteger] = anon_sym_nonPositiveInteger, [anon_sym_negativeInteger] = anon_sym_negativeInteger, [anon_sym_normalizedString] = anon_sym_normalizedString, [anon_sym_token] = anon_sym_token, [anon_sym_language] = anon_sym_language, [sym_quoted_string] = sym_quoted_string, [sym_language_tag] = sym_language_tag, [anon_sym_LT] = anon_sym_LT, [aux_sym_iri_token1] = aux_sym_iri_token1, [anon_sym_GT] = anon_sym_GT, [anon_sym_POUND_LBRACK] = anon_sym_POUND_LBRACK, [sym_hex_byte] = sym_hex_byte, [sym_double] = sym_double, [sym_decimal] = sym_decimal, [sym_integer] = sym_integer, [sym_rational] = sym_rational, [sym_unsigned] = sym_unsigned, [anon_sym_true] = anon_sym_true, [anon_sym_u22a4] = anon_sym_u22a4, [anon_sym_false] = anon_sym_false, [anon_sym_u22a5] = anon_sym_u22a5, [anon_sym_datatype] = anon_sym_datatype, [sym_opaque] = sym_opaque, [anon_sym_length] = anon_sym_length, [anon_sym_maxLength] = anon_sym_maxLength, [anon_sym_minLength] = anon_sym_minLength, [anon_sym_fractionDigits] = anon_sym_fractionDigits, [anon_sym_totalDigits] = anon_sym_totalDigits, [anon_sym_maxExclusive] = anon_sym_maxExclusive, [anon_sym_maxInclusive] = anon_sym_maxInclusive, [anon_sym_minExclusive] = anon_sym_minExclusive, [anon_sym_minInclusive] = anon_sym_minInclusive, [anon_sym_explicitTimezone] = anon_sym_explicitTimezone, [anon_sym_required] = anon_sym_required, [anon_sym_prohibited] = anon_sym_prohibited, [anon_sym_optional] = anon_sym_optional, [anon_sym_pattern] = anon_sym_pattern, [sym_kw_is_fixed] = sym_kw_is_fixed, [anon_sym_dimension] = anon_sym_dimension, [anon_sym_source] = anon_sym_source, [anon_sym_parent] = anon_sym_parent, [anon_sym_entity] = anon_sym_entity, [anon_sym_enum] = anon_sym_enum, [anon_sym_of] = anon_sym_of, [anon_sym_event] = anon_sym_event, [anon_sym_property] = anon_sym_property, [anon_sym_structure] = anon_sym_structure, [anon_sym_union] = anon_sym_union, [anon_sym_rdf] = anon_sym_rdf, [anon_sym_a] = anon_sym_a, [anon_sym_type] = anon_sym_type, [anon_sym_class] = anon_sym_class, [sym_wildcard] = sym_wildcard, [anon_sym_identity] = anon_sym_identity, [anon_sym_ref] = anon_sym_ref, [sym_unknown_type] = sym_unknown_type, [anon_sym_ordered] = anon_sym_ordered, [anon_sym_unordered] = anon_sym_unordered, [anon_sym_unique] = anon_sym_unique, [anon_sym_nonunique] = anon_sym_nonunique, [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_SLASH_EQ] = anon_sym_SLASH_EQ, [anon_sym_u2260] = anon_sym_u2260, [sym_op_less_than] = sym_op_less_than, [sym_op_greater_than] = sym_op_greater_than, [anon_sym_LT_EQ] = anon_sym_LT_EQ, [anon_sym_u2264] = anon_sym_u2264, [anon_sym_GT_EQ] = anon_sym_GT_EQ, [anon_sym_u2265] = anon_sym_u2265, [anon_sym_not] = anon_sym_not, [anon_sym_u00ac] = anon_sym_u00ac, [anon_sym_and] = anon_sym_and, [anon_sym_u2227] = anon_sym_u2227, [anon_sym_or] = anon_sym_or, [anon_sym_u2228] = anon_sym_u2228, [anon_sym_xor] = anon_sym_xor, [anon_sym_u22bb] = anon_sym_u22bb, [anon_sym_implies] = anon_sym_implies, [anon_sym_EQ_EQ_GT] = anon_sym_EQ_EQ_GT, [anon_sym_u21d2] = anon_sym_u21d2, [anon_sym_iff] = anon_sym_iff, [anon_sym_LT_EQ_EQ_GT] = anon_sym_LT_EQ_EQ_GT, [anon_sym_u21d4] = anon_sym_u21d4, [anon_sym_forall] = anon_sym_forall, [anon_sym_u2200] = anon_sym_u2200, [anon_sym_exists] = anon_sym_exists, [anon_sym_u2203] = anon_sym_u2203, [anon_sym_u222a] = anon_sym_u222a, [anon_sym_intersection] = anon_sym_intersection, [anon_sym_u2229] = anon_sym_u2229, [anon_sym_complement] = anon_sym_complement, [anon_sym_u2216] = anon_sym_u2216, [anon_sym_in] = anon_sym_in, [anon_sym_u2208] = anon_sym_u2208, [sym_set_op_builder] = sym_set_op_builder, [anon_sym_COLON_EQ] = anon_sym_COLON_EQ, [anon_sym_u2254] = anon_sym_u2254, [anon_sym_u2192] = anon_sym_u2192, [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_u2190] = anon_sym_u2190, [anon_sym_LT_DASH] = anon_sym_LT_DASH, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_u2295] = anon_sym_u2295, [sym__value_empty_sequence] = sym__value_empty_sequence, [sym_line_comment] = sym_line_comment, [sym_module] = sym_module, [sym__module_locations] = sym__module_locations, [sym_module_body] = sym_module_body, [sym_import_statement] = sym_import_statement, [sym_from_clause] = sym_from_clause, [sym_module_path_root_only] = sym_module_path_root_only, [sym_module_path_absolute] = sym_module_path_absolute, [sym_module_path_relative] = sym_module_path_relative, [sym__import] = sym__import, [sym__rename_import] = sym__rename_import, [sym_member_import] = sym_member_import, [sym_module_import] = sym_module_import, [sym_qualified_identifier] = sym_qualified_identifier, [sym_identifier_reference] = sym_identifier_reference, [sym_annotation] = sym_annotation, [sym_annotation_property] = sym_annotation_property, [sym_constraint] = sym_constraint, [sym_informal_constraint] = sym_informal_constraint, [sym_formal_constraint] = sym_formal_constraint, [sym_constraint_sentence] = sym_constraint_sentence, [sym_simple_sentence] = sym_simple_sentence, [sym_atomic_sentence] = sym_atomic_sentence, [sym_actual_arguments] = sym_actual_arguments, [sym_equation] = sym_equation, [sym_inequation] = sym_inequation, [sym_boolean_sentence] = sym_boolean_sentence, [sym_unary_boolean_sentence] = sym_unary_boolean_sentence, [sym_binary_boolean_sentence] = sym_binary_boolean_sentence, [sym__logical_connective] = sym__logical_connective, [sym_quantified_sentence] = sym_quantified_sentence, [sym_quantified_variable_binding] = sym_quantified_variable_binding, [sym_quantified_variable] = sym_quantified_variable, [sym_variable] = sym_variable, [sym_term] = sym_term, [sym_functional_term] = sym_functional_term, [sym_function_composition] = sym_function_composition, [sym_predicate_value] = sym_predicate_value, [sym_sequence_of_predicate_values] = sym_sequence_of_predicate_values, [sym_constraint_environment] = sym_constraint_environment, [sym_function_def] = sym_function_def, [sym_function_signature] = sym_function_signature, [sym_function_parameter] = sym_function_parameter, [sym__function_type] = sym__function_type, [sym_function_cardinality_expression] = sym_function_cardinality_expression, [sym_function_type_reference] = sym_function_type_reference, [sym_function_body] = sym_function_body, [sym_sequence_builder] = sym_sequence_builder, [sym_sequence_builder_body] = sym_sequence_builder_body, [sym_value] = sym_value, [sym_sequence_of_values] = sym_sequence_of_values, [sym__sequence_value_constraints] = sym__sequence_value_constraints, [sym_value_constructor] = sym_value_constructor, [sym_mapping_value] = sym_mapping_value, [sym_builtin_simple_type] = sym_builtin_simple_type, [sym__owl_builtin_types] = sym__owl_builtin_types, [sym__builtin_primitive_datatypes] = sym__builtin_primitive_datatypes, [sym__derived_date_datetypes] = sym__derived_date_datetypes, [sym__derived_numeric_datatypes] = sym__derived_numeric_datatypes, [sym__derived_string_datatypes] = sym__derived_string_datatypes, [sym_simple_value] = sym_simple_value, [sym_string] = sym_string, [sym_iri] = sym_iri, [sym_binary] = sym_binary, [sym_boolean] = sym_boolean, [sym_boolean_truth] = sym_boolean_truth, [sym_boolean_falsity] = sym_boolean_falsity, [sym_definition] = sym_definition, [sym_data_type_def] = sym_data_type_def, [sym__datatype_base] = sym__datatype_base, [sym_datatype_def_restriction] = sym_datatype_def_restriction, [sym__restriction_facet] = sym__restriction_facet, [sym_length_restriction_facet] = sym_length_restriction_facet, [sym_digit_restriction_facet] = sym_digit_restriction_facet, [sym_value_restriction_facet] = sym_value_restriction_facet, [sym_restriction_value] = sym_restriction_value, [sym_tz_restriction_facet] = sym_tz_restriction_facet, [sym_tz_restriction_value] = sym_tz_restriction_value, [sym_pattern_restriction_facet] = sym_pattern_restriction_facet, [sym_annotation_only_body] = sym_annotation_only_body, [sym_dimension_def] = sym_dimension_def, [sym_dimension_body] = sym_dimension_body, [sym_source_entity] = sym_source_entity, [sym__identifier_or_sequence] = sym__identifier_or_sequence, [sym_dimension_parent] = sym_dimension_parent, [sym_entity_def] = sym_entity_def, [sym_entity_body] = sym_entity_body, [sym_enum_def] = sym_enum_def, [sym_enum_body] = sym_enum_body, [sym_event_def] = sym_event_def, [sym_event_body] = sym_event_body, [sym_property_def] = sym_property_def, [sym_structure_def] = sym_structure_def, [sym_structure_body] = sym_structure_body, [sym_union_def] = sym_union_def, [sym_union_body] = sym_union_body, [sym_rdf_def] = sym_rdf_def, [sym_rdf_types] = sym_rdf_types, [sym_type_class_def] = sym_type_class_def, [sym_type_variable] = sym_type_variable, [sym__type_variable_restriction] = sym__type_variable_restriction, [sym_type_class_reference] = sym_type_class_reference, [sym_type_class_arguments] = sym_type_class_arguments, [sym_type_class_body] = sym_type_class_body, [sym_method_def] = sym_method_def, [sym_entity_identity] = sym_entity_identity, [sym_member] = sym_member, [sym_member_def] = sym_member_def, [sym_property_ref] = sym_property_ref, [sym__type_expression_to] = sym__type_expression_to, [sym_type_reference] = sym_type_reference, [sym_mapping_type] = sym_mapping_type, [sym_cardinality_expression] = sym_cardinality_expression, [sym__cardinality_inner] = sym__cardinality_inner, [sym_sequence_ordering] = sym_sequence_ordering, [sym_sequence_uniqueness] = sym_sequence_uniqueness, [sym_cardinality_range] = sym_cardinality_range, [sym_value_variant] = sym_value_variant, [sym_type_variant] = sym_type_variant, [sym_op_inequality] = sym_op_inequality, [sym_op_less_than_or_equal] = sym_op_less_than_or_equal, [sym_op_greater_than_or_equal] = sym_op_greater_than_or_equal, [sym_logical_op_negation] = sym_logical_op_negation, [sym_logical_op_conjunction] = sym_logical_op_conjunction, [sym_logical_op_disjunction] = sym_logical_op_disjunction, [sym_logical_op_exclusive_disjunction] = sym_logical_op_exclusive_disjunction, [sym_logical_op_implication] = sym_logical_op_implication, [sym_logical_op_biconditional] = sym_logical_op_biconditional, [sym_logical_quantifier_universal] = sym_logical_quantifier_universal, [sym_logical_quantifier_existential] = sym_logical_quantifier_existential, [sym_set_op_membership] = sym_set_op_membership, [sym_function_op_by_definition] = sym_function_op_by_definition, [sym__type_op_has_type] = sym__type_op_has_type, [sym__type_op_type_restriction] = sym__type_op_type_restriction, [sym_type_op_combiner] = sym_type_op_combiner, [aux_sym_module_body_repeat1] = aux_sym_module_body_repeat1, [aux_sym_module_body_repeat2] = aux_sym_module_body_repeat2, [aux_sym_module_body_repeat3] = aux_sym_module_body_repeat3, [aux_sym_import_statement_repeat1] = aux_sym_import_statement_repeat1, [aux_sym_module_path_absolute_repeat1] = aux_sym_module_path_absolute_repeat1, [aux_sym_actual_arguments_repeat1] = aux_sym_actual_arguments_repeat1, [aux_sym_function_composition_repeat1] = aux_sym_function_composition_repeat1, [aux_sym_sequence_of_predicate_values_repeat1] = aux_sym_sequence_of_predicate_values_repeat1, [aux_sym_constraint_environment_repeat1] = aux_sym_constraint_environment_repeat1, [aux_sym_function_signature_repeat1] = aux_sym_function_signature_repeat1, [aux_sym_sequence_builder_repeat1] = aux_sym_sequence_builder_repeat1, [aux_sym_sequence_of_values_repeat1] = aux_sym_sequence_of_values_repeat1, [aux_sym_binary_repeat1] = aux_sym_binary_repeat1, [aux_sym_datatype_def_restriction_repeat1] = aux_sym_datatype_def_restriction_repeat1, [aux_sym_pattern_restriction_facet_repeat1] = aux_sym_pattern_restriction_facet_repeat1, [aux_sym_dimension_body_repeat1] = aux_sym_dimension_body_repeat1, [aux_sym_dimension_body_repeat2] = aux_sym_dimension_body_repeat2, [aux_sym__identifier_or_sequence_repeat1] = aux_sym__identifier_or_sequence_repeat1, [aux_sym_enum_body_repeat1] = aux_sym_enum_body_repeat1, [aux_sym_union_body_repeat1] = aux_sym_union_body_repeat1, [aux_sym_rdf_types_repeat1] = aux_sym_rdf_types_repeat1, [aux_sym_type_class_def_repeat1] = aux_sym_type_class_def_repeat1, [aux_sym__type_variable_restriction_repeat1] = aux_sym__type_variable_restriction_repeat1, [aux_sym_type_class_arguments_repeat1] = aux_sym_type_class_arguments_repeat1, [aux_sym_type_class_body_repeat1] = aux_sym_type_class_body_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { [ts_builtin_sym_end] = { .visible = false, .named = true, }, [sym_identifier] = { .visible = true, .named = true, }, [anon_sym_module] = { .visible = true, .named = false, }, [anon_sym_version] = { .visible = true, .named = false, }, [anon_sym_is] = { .visible = true, .named = false, }, [anon_sym_end] = { .visible = true, .named = false, }, [anon_sym_import] = { .visible = true, .named = false, }, [anon_sym_LBRACK] = { .visible = true, .named = false, }, [anon_sym_RBRACK] = { .visible = true, .named = false, }, [anon_sym_from] = { .visible = true, .named = false, }, [anon_sym_COLON_COLON] = { .visible = true, .named = false, }, [anon_sym_COLON_COLON2] = { .visible = true, .named = false, }, [anon_sym_as] = { .visible = true, .named = false, }, [anon_sym_COLON] = { .visible = true, .named = false, }, [anon_sym_AT] = { .visible = true, .named = false, }, [anon_sym_EQ] = { .visible = true, .named = false, }, [anon_sym_assert] = { .visible = true, .named = false, }, [sym_controlled_language_tag] = { .visible = true, .named = true, }, [anon_sym_LPAREN] = { .visible = true, .named = false, }, [anon_sym_RPAREN] = { .visible = true, .named = false, }, [anon_sym_COMMA] = { .visible = true, .named = false, }, [anon_sym_u00b7] = { .visible = true, .named = false, }, [anon_sym_DOT] = { .visible = true, .named = false, }, [sym_reserved_self] = { .visible = true, .named = true, }, [anon_sym_with] = { .visible = true, .named = false, }, [anon_sym_def] = { .visible = true, .named = false, }, [anon_sym_LBRACE] = { .visible = true, .named = false, }, [anon_sym_RBRACE] = { .visible = true, .named = false, }, [anon_sym_Thing] = { .visible = true, .named = false, }, [anon_sym_Nothing] = { .visible = true, .named = false, }, [anon_sym_real] = { .visible = true, .named = false, }, [anon_sym_rational] = { .visible = true, .named = false, }, [anon_sym_anyURI] = { .visible = true, .named = false, }, [anon_sym_iri] = { .visible = true, .named = false, }, [anon_sym_base64Binary] = { .visible = true, .named = false, }, [anon_sym_boolean] = { .visible = true, .named = false, }, [anon_sym_date] = { .visible = true, .named = false, }, [anon_sym_dateTime] = { .visible = true, .named = false, }, [anon_sym_decimal] = { .visible = true, .named = false, }, [anon_sym_double] = { .visible = true, .named = false, }, [anon_sym_duration] = { .visible = true, .named = false, }, [anon_sym_float] = { .visible = true, .named = false, }, [anon_sym_gDay] = { .visible = true, .named = false, }, [anon_sym_gMonth] = { .visible = true, .named = false, }, [anon_sym_gMonthDay] = { .visible = true, .named = false, }, [anon_sym_gYearMonth] = { .visible = true, .named = false, }, [anon_sym_gYear] = { .visible = true, .named = false, }, [anon_sym_hexBinary] = { .visible = true, .named = false, }, [anon_sym_binary] = { .visible = true, .named = false, }, [anon_sym_string] = { .visible = true, .named = false, }, [anon_sym_time] = { .visible = true, .named = false, }, [anon_sym_dateTimeStamp] = { .visible = true, .named = false, }, [anon_sym_dayTimeDuration] = { .visible = true, .named = false, }, [anon_sym_yearMonthDuration] = { .visible = true, .named = false, }, [anon_sym_integer] = { .visible = true, .named = false, }, [anon_sym_long] = { .visible = true, .named = false, }, [anon_sym_int] = { .visible = true, .named = false, }, [anon_sym_short] = { .visible = true, .named = false, }, [anon_sym_byte] = { .visible = true, .named = false, }, [anon_sym_nonNegativeInteger] = { .visible = true, .named = false, }, [anon_sym_positiveInteger] = { .visible = true, .named = false, }, [anon_sym_unsignedLong] = { .visible = true, .named = false, }, [anon_sym_unsignedInt] = { .visible = true, .named = false, }, [anon_sym_unsigned] = { .visible = true, .named = false, }, [anon_sym_unsignedShort] = { .visible = true, .named = false, }, [anon_sym_unsignedByte] = { .visible = true, .named = false, }, [anon_sym_nonPositiveInteger] = { .visible = true, .named = false, }, [anon_sym_negativeInteger] = { .visible = true, .named = false, }, [anon_sym_normalizedString] = { .visible = true, .named = false, }, [anon_sym_token] = { .visible = true, .named = false, }, [anon_sym_language] = { .visible = true, .named = false, }, [sym_quoted_string] = { .visible = true, .named = true, }, [sym_language_tag] = { .visible = true, .named = true, }, [anon_sym_LT] = { .visible = true, .named = false, }, [aux_sym_iri_token1] = { .visible = false, .named = false, }, [anon_sym_GT] = { .visible = true, .named = false, }, [anon_sym_POUND_LBRACK] = { .visible = true, .named = false, }, [sym_hex_byte] = { .visible = true, .named = true, }, [sym_double] = { .visible = true, .named = true, }, [sym_decimal] = { .visible = true, .named = true, }, [sym_integer] = { .visible = true, .named = true, }, [sym_rational] = { .visible = true, .named = true, }, [sym_unsigned] = { .visible = true, .named = true, }, [anon_sym_true] = { .visible = true, .named = false, }, [anon_sym_u22a4] = { .visible = true, .named = false, }, [anon_sym_false] = { .visible = true, .named = false, }, [anon_sym_u22a5] = { .visible = true, .named = false, }, [anon_sym_datatype] = { .visible = true, .named = false, }, [sym_opaque] = { .visible = true, .named = true, }, [anon_sym_length] = { .visible = true, .named = false, }, [anon_sym_maxLength] = { .visible = true, .named = false, }, [anon_sym_minLength] = { .visible = true, .named = false, }, [anon_sym_fractionDigits] = { .visible = true, .named = false, }, [anon_sym_totalDigits] = { .visible = true, .named = false, }, [anon_sym_maxExclusive] = { .visible = true, .named = false, }, [anon_sym_maxInclusive] = { .visible = true, .named = false, }, [anon_sym_minExclusive] = { .visible = true, .named = false, }, [anon_sym_minInclusive] = { .visible = true, .named = false, }, [anon_sym_explicitTimezone] = { .visible = true, .named = false, }, [anon_sym_required] = { .visible = true, .named = false, }, [anon_sym_prohibited] = { .visible = true, .named = false, }, [anon_sym_optional] = { .visible = true, .named = false, }, [anon_sym_pattern] = { .visible = true, .named = false, }, [sym_kw_is_fixed] = { .visible = true, .named = true, }, [anon_sym_dimension] = { .visible = true, .named = false, }, [anon_sym_source] = { .visible = true, .named = false, }, [anon_sym_parent] = { .visible = true, .named = false, }, [anon_sym_entity] = { .visible = true, .named = false, }, [anon_sym_enum] = { .visible = true, .named = false, }, [anon_sym_of] = { .visible = true, .named = false, }, [anon_sym_event] = { .visible = true, .named = false, }, [anon_sym_property] = { .visible = true, .named = false, }, [anon_sym_structure] = { .visible = true, .named = false, }, [anon_sym_union] = { .visible = true, .named = false, }, [anon_sym_rdf] = { .visible = true, .named = false, }, [anon_sym_a] = { .visible = true, .named = false, }, [anon_sym_type] = { .visible = true, .named = false, }, [anon_sym_class] = { .visible = true, .named = false, }, [sym_wildcard] = { .visible = true, .named = true, }, [anon_sym_identity] = { .visible = true, .named = false, }, [anon_sym_ref] = { .visible = true, .named = false, }, [sym_unknown_type] = { .visible = true, .named = true, }, [anon_sym_ordered] = { .visible = true, .named = false, }, [anon_sym_unordered] = { .visible = true, .named = false, }, [anon_sym_unique] = { .visible = true, .named = false, }, [anon_sym_nonunique] = { .visible = true, .named = false, }, [anon_sym_DOT_DOT] = { .visible = true, .named = false, }, [anon_sym_SLASH_EQ] = { .visible = true, .named = false, }, [anon_sym_u2260] = { .visible = true, .named = false, }, [sym_op_less_than] = { .visible = true, .named = true, }, [sym_op_greater_than] = { .visible = true, .named = true, }, [anon_sym_LT_EQ] = { .visible = true, .named = false, }, [anon_sym_u2264] = { .visible = true, .named = false, }, [anon_sym_GT_EQ] = { .visible = true, .named = false, }, [anon_sym_u2265] = { .visible = true, .named = false, }, [anon_sym_not] = { .visible = true, .named = false, }, [anon_sym_u00ac] = { .visible = true, .named = false, }, [anon_sym_and] = { .visible = true, .named = false, }, [anon_sym_u2227] = { .visible = true, .named = false, }, [anon_sym_or] = { .visible = true, .named = false, }, [anon_sym_u2228] = { .visible = true, .named = false, }, [anon_sym_xor] = { .visible = true, .named = false, }, [anon_sym_u22bb] = { .visible = true, .named = false, }, [anon_sym_implies] = { .visible = true, .named = false, }, [anon_sym_EQ_EQ_GT] = { .visible = true, .named = false, }, [anon_sym_u21d2] = { .visible = true, .named = false, }, [anon_sym_iff] = { .visible = true, .named = false, }, [anon_sym_LT_EQ_EQ_GT] = { .visible = true, .named = false, }, [anon_sym_u21d4] = { .visible = true, .named = false, }, [anon_sym_forall] = { .visible = true, .named = false, }, [anon_sym_u2200] = { .visible = true, .named = false, }, [anon_sym_exists] = { .visible = true, .named = false, }, [anon_sym_u2203] = { .visible = true, .named = false, }, [anon_sym_u222a] = { .visible = true, .named = false, }, [anon_sym_intersection] = { .visible = true, .named = false, }, [anon_sym_u2229] = { .visible = true, .named = false, }, [anon_sym_complement] = { .visible = true, .named = false, }, [anon_sym_u2216] = { .visible = true, .named = false, }, [anon_sym_in] = { .visible = true, .named = false, }, [anon_sym_u2208] = { .visible = true, .named = false, }, [sym_set_op_builder] = { .visible = true, .named = true, }, [anon_sym_COLON_EQ] = { .visible = true, .named = false, }, [anon_sym_u2254] = { .visible = true, .named = false, }, [anon_sym_u2192] = { .visible = true, .named = false, }, [anon_sym_DASH_GT] = { .visible = true, .named = false, }, [anon_sym_u2190] = { .visible = true, .named = false, }, [anon_sym_LT_DASH] = { .visible = true, .named = false, }, [anon_sym_PLUS] = { .visible = true, .named = false, }, [anon_sym_u2295] = { .visible = true, .named = false, }, [sym__value_empty_sequence] = { .visible = false, .named = true, }, [sym_line_comment] = { .visible = true, .named = true, }, [sym_module] = { .visible = true, .named = true, }, [sym__module_locations] = { .visible = false, .named = true, }, [sym_module_body] = { .visible = true, .named = true, }, [sym_import_statement] = { .visible = true, .named = true, }, [sym_from_clause] = { .visible = true, .named = true, }, [sym_module_path_root_only] = { .visible = true, .named = true, }, [sym_module_path_absolute] = { .visible = true, .named = true, }, [sym_module_path_relative] = { .visible = true, .named = true, }, [sym__import] = { .visible = false, .named = true, }, [sym__rename_import] = { .visible = false, .named = true, }, [sym_member_import] = { .visible = true, .named = true, }, [sym_module_import] = { .visible = true, .named = true, }, [sym_qualified_identifier] = { .visible = true, .named = true, }, [sym_identifier_reference] = { .visible = true, .named = true, }, [sym_annotation] = { .visible = true, .named = true, }, [sym_annotation_property] = { .visible = true, .named = true, }, [sym_constraint] = { .visible = true, .named = true, }, [sym_informal_constraint] = { .visible = true, .named = true, }, [sym_formal_constraint] = { .visible = true, .named = true, }, [sym_constraint_sentence] = { .visible = true, .named = true, }, [sym_simple_sentence] = { .visible = true, .named = true, }, [sym_atomic_sentence] = { .visible = true, .named = true, }, [sym_actual_arguments] = { .visible = true, .named = true, }, [sym_equation] = { .visible = true, .named = true, }, [sym_inequation] = { .visible = true, .named = true, }, [sym_boolean_sentence] = { .visible = true, .named = true, }, [sym_unary_boolean_sentence] = { .visible = true, .named = true, }, [sym_binary_boolean_sentence] = { .visible = true, .named = true, }, [sym__logical_connective] = { .visible = false, .named = true, }, [sym_quantified_sentence] = { .visible = true, .named = true, }, [sym_quantified_variable_binding] = { .visible = true, .named = true, }, [sym_quantified_variable] = { .visible = true, .named = true, }, [sym_variable] = { .visible = true, .named = true, }, [sym_term] = { .visible = true, .named = true, }, [sym_functional_term] = { .visible = true, .named = true, }, [sym_function_composition] = { .visible = true, .named = true, }, [sym_predicate_value] = { .visible = true, .named = true, }, [sym_sequence_of_predicate_values] = { .visible = true, .named = true, }, [sym_constraint_environment] = { .visible = true, .named = true, }, [sym_function_def] = { .visible = true, .named = true, }, [sym_function_signature] = { .visible = true, .named = true, }, [sym_function_parameter] = { .visible = true, .named = true, }, [sym__function_type] = { .visible = false, .named = true, }, [sym_function_cardinality_expression] = { .visible = true, .named = true, }, [sym_function_type_reference] = { .visible = true, .named = true, }, [sym_function_body] = { .visible = true, .named = true, }, [sym_sequence_builder] = { .visible = true, .named = true, }, [sym_sequence_builder_body] = { .visible = true, .named = true, }, [sym_value] = { .visible = true, .named = true, }, [sym_sequence_of_values] = { .visible = true, .named = true, }, [sym__sequence_value_constraints] = { .visible = false, .named = true, }, [sym_value_constructor] = { .visible = true, .named = true, }, [sym_mapping_value] = { .visible = true, .named = true, }, [sym_builtin_simple_type] = { .visible = true, .named = true, }, [sym__owl_builtin_types] = { .visible = false, .named = true, }, [sym__builtin_primitive_datatypes] = { .visible = false, .named = true, }, [sym__derived_date_datetypes] = { .visible = false, .named = true, }, [sym__derived_numeric_datatypes] = { .visible = false, .named = true, }, [sym__derived_string_datatypes] = { .visible = false, .named = true, }, [sym_simple_value] = { .visible = true, .named = true, }, [sym_string] = { .visible = true, .named = true, }, [sym_iri] = { .visible = true, .named = true, }, [sym_binary] = { .visible = true, .named = true, }, [sym_boolean] = { .visible = true, .named = true, }, [sym_boolean_truth] = { .visible = true, .named = true, }, [sym_boolean_falsity] = { .visible = true, .named = true, }, [sym_definition] = { .visible = true, .named = true, }, [sym_data_type_def] = { .visible = true, .named = true, }, [sym__datatype_base] = { .visible = false, .named = true, }, [sym_datatype_def_restriction] = { .visible = true, .named = true, }, [sym__restriction_facet] = { .visible = false, .named = true, }, [sym_length_restriction_facet] = { .visible = true, .named = true, }, [sym_digit_restriction_facet] = { .visible = true, .named = true, }, [sym_value_restriction_facet] = { .visible = true, .named = true, }, [sym_restriction_value] = { .visible = true, .named = true, }, [sym_tz_restriction_facet] = { .visible = true, .named = true, }, [sym_tz_restriction_value] = { .visible = true, .named = true, }, [sym_pattern_restriction_facet] = { .visible = true, .named = true, }, [sym_annotation_only_body] = { .visible = true, .named = true, }, [sym_dimension_def] = { .visible = true, .named = true, }, [sym_dimension_body] = { .visible = true, .named = true, }, [sym_source_entity] = { .visible = true, .named = true, }, [sym__identifier_or_sequence] = { .visible = false, .named = true, }, [sym_dimension_parent] = { .visible = true, .named = true, }, [sym_entity_def] = { .visible = true, .named = true, }, [sym_entity_body] = { .visible = true, .named = true, }, [sym_enum_def] = { .visible = true, .named = true, }, [sym_enum_body] = { .visible = true, .named = true, }, [sym_event_def] = { .visible = true, .named = true, }, [sym_event_body] = { .visible = true, .named = true, }, [sym_property_def] = { .visible = true, .named = true, }, [sym_structure_def] = { .visible = true, .named = true, }, [sym_structure_body] = { .visible = true, .named = true, }, [sym_union_def] = { .visible = true, .named = true, }, [sym_union_body] = { .visible = true, .named = true, }, [sym_rdf_def] = { .visible = true, .named = true, }, [sym_rdf_types] = { .visible = true, .named = true, }, [sym_type_class_def] = { .visible = true, .named = true, }, [sym_type_variable] = { .visible = true, .named = true, }, [sym__type_variable_restriction] = { .visible = false, .named = true, }, [sym_type_class_reference] = { .visible = true, .named = true, }, [sym_type_class_arguments] = { .visible = true, .named = true, }, [sym_type_class_body] = { .visible = true, .named = true, }, [sym_method_def] = { .visible = true, .named = true, }, [sym_entity_identity] = { .visible = true, .named = true, }, [sym_member] = { .visible = true, .named = true, }, [sym_member_def] = { .visible = true, .named = true, }, [sym_property_ref] = { .visible = true, .named = true, }, [sym__type_expression_to] = { .visible = false, .named = true, }, [sym_type_reference] = { .visible = true, .named = true, }, [sym_mapping_type] = { .visible = true, .named = true, }, [sym_cardinality_expression] = { .visible = true, .named = true, }, [sym__cardinality_inner] = { .visible = false, .named = true, }, [sym_sequence_ordering] = { .visible = true, .named = true, }, [sym_sequence_uniqueness] = { .visible = true, .named = true, }, [sym_cardinality_range] = { .visible = true, .named = true, }, [sym_value_variant] = { .visible = true, .named = true, }, [sym_type_variant] = { .visible = true, .named = true, }, [sym_op_inequality] = { .visible = true, .named = true, }, [sym_op_less_than_or_equal] = { .visible = true, .named = true, }, [sym_op_greater_than_or_equal] = { .visible = true, .named = true, }, [sym_logical_op_negation] = { .visible = true, .named = true, }, [sym_logical_op_conjunction] = { .visible = true, .named = true, }, [sym_logical_op_disjunction] = { .visible = true, .named = true, }, [sym_logical_op_exclusive_disjunction] = { .visible = true, .named = true, }, [sym_logical_op_implication] = { .visible = true, .named = true, }, [sym_logical_op_biconditional] = { .visible = true, .named = true, }, [sym_logical_quantifier_universal] = { .visible = true, .named = true, }, [sym_logical_quantifier_existential] = { .visible = true, .named = true, }, [sym_set_op_membership] = { .visible = true, .named = true, }, [sym_function_op_by_definition] = { .visible = true, .named = true, }, [sym__type_op_has_type] = { .visible = false, .named = true, }, [sym__type_op_type_restriction] = { .visible = false, .named = true, }, [sym_type_op_combiner] = { .visible = true, .named = true, }, [aux_sym_module_body_repeat1] = { .visible = false, .named = false, }, [aux_sym_module_body_repeat2] = { .visible = false, .named = false, }, [aux_sym_module_body_repeat3] = { .visible = false, .named = false, }, [aux_sym_import_statement_repeat1] = { .visible = false, .named = false, }, [aux_sym_module_path_absolute_repeat1] = { .visible = false, .named = false, }, [aux_sym_actual_arguments_repeat1] = { .visible = false, .named = false, }, [aux_sym_function_composition_repeat1] = { .visible = false, .named = false, }, [aux_sym_sequence_of_predicate_values_repeat1] = { .visible = false, .named = false, }, [aux_sym_constraint_environment_repeat1] = { .visible = false, .named = false, }, [aux_sym_function_signature_repeat1] = { .visible = false, .named = false, }, [aux_sym_sequence_builder_repeat1] = { .visible = false, .named = false, }, [aux_sym_sequence_of_values_repeat1] = { .visible = false, .named = false, }, [aux_sym_binary_repeat1] = { .visible = false, .named = false, }, [aux_sym_datatype_def_restriction_repeat1] = { .visible = false, .named = false, }, [aux_sym_pattern_restriction_facet_repeat1] = { .visible = false, .named = false, }, [aux_sym_dimension_body_repeat1] = { .visible = false, .named = false, }, [aux_sym_dimension_body_repeat2] = { .visible = false, .named = false, }, [aux_sym__identifier_or_sequence_repeat1] = { .visible = false, .named = false, }, [aux_sym_enum_body_repeat1] = { .visible = false, .named = false, }, [aux_sym_union_body_repeat1] = { .visible = false, .named = false, }, [aux_sym_rdf_types_repeat1] = { .visible = false, .named = false, }, [aux_sym_type_class_def_repeat1] = { .visible = false, .named = false, }, [aux_sym__type_variable_restriction_repeat1] = { .visible = false, .named = false, }, [aux_sym_type_class_arguments_repeat1] = { .visible = false, .named = false, }, [aux_sym_type_class_body_repeat1] = { .visible = false, .named = false, }, }; enum ts_field_identifiers { field_argument = 1, field_arguments = 2, field_base = 3, field_binding = 4, field_body = 5, field_byte = 6, field_cardinality = 7, field_domain = 8, field_element = 9, field_empty = 10, field_entity = 11, field_environment = 12, field_facet = 13, field_function = 14, field_identity = 15, field_is_fixed = 16, field_language = 17, field_lhs = 18, field_max = 19, field_member = 20, field_method = 21, field_min = 22, field_module = 23, field_name = 24, field_opaque = 25, field_operator = 26, field_ordering = 27, field_parameter = 28, field_predicate = 29, field_property = 30, field_quantifier = 31, field_range = 32, field_relation = 33, field_rename = 34, field_restriction = 35, field_rhs = 36, field_segment = 37, field_signature = 38, field_source = 39, field_subject = 40, field_target = 41, field_type = 42, field_types = 43, field_uniqueness = 44, field_value = 45, field_variable = 46, field_version_info = 47, field_version_uri = 48, field_wildcard = 49, }; static const char * const ts_field_names[] = { [0] = NULL, [field_argument] = "argument", [field_arguments] = "arguments", [field_base] = "base", [field_binding] = "binding", [field_body] = "body", [field_byte] = "byte", [field_cardinality] = "cardinality", [field_domain] = "domain", [field_element] = "element", [field_empty] = "empty", [field_entity] = "entity", [field_environment] = "environment", [field_facet] = "facet", [field_function] = "function", [field_identity] = "identity", [field_is_fixed] = "is_fixed", [field_language] = "language", [field_lhs] = "lhs", [field_max] = "max", [field_member] = "member", [field_method] = "method", [field_min] = "min", [field_module] = "module", [field_name] = "name", [field_opaque] = "opaque", [field_operator] = "operator", [field_ordering] = "ordering", [field_parameter] = "parameter", [field_predicate] = "predicate", [field_property] = "property", [field_quantifier] = "quantifier", [field_range] = "range", [field_relation] = "relation", [field_rename] = "rename", [field_restriction] = "restriction", [field_rhs] = "rhs", [field_segment] = "segment", [field_signature] = "signature", [field_source] = "source", [field_subject] = "subject", [field_target] = "target", [field_type] = "type", [field_types] = "types", [field_uniqueness] = "uniqueness", [field_value] = "value", [field_variable] = "variable", [field_version_info] = "version_info", [field_version_uri] = "version_uri", [field_wildcard] = "wildcard", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 2}, [2] = {.index = 2, .length = 1}, [3] = {.index = 3, .length = 5}, [4] = {.index = 8, .length = 1}, [5] = {.index = 9, .length = 1}, [6] = {.index = 10, .length = 1}, [7] = {.index = 11, .length = 1}, [8] = {.index = 12, .length = 2}, [9] = {.index = 14, .length = 2}, [10] = {.index = 16, .length = 2}, [11] = {.index = 18, .length = 1}, [12] = {.index = 19, .length = 2}, [13] = {.index = 21, .length = 3}, [14] = {.index = 24, .length = 3}, [15] = {.index = 27, .length = 1}, [16] = {.index = 28, .length = 2}, [17] = {.index = 30, .length = 3}, [18] = {.index = 33, .length = 2}, [19] = {.index = 35, .length = 2}, [20] = {.index = 37, .length = 1}, [21] = {.index = 38, .length = 2}, [22] = {.index = 40, .length = 1}, [23] = {.index = 41, .length = 2}, [24] = {.index = 43, .length = 4}, [25] = {.index = 47, .length = 1}, [26] = {.index = 48, .length = 1}, [27] = {.index = 49, .length = 3}, [28] = {.index = 52, .length = 1}, [29] = {.index = 53, .length = 1}, [30] = {.index = 54, .length = 1}, [31] = {.index = 55, .length = 1}, [32] = {.index = 56, .length = 1}, [33] = {.index = 57, .length = 1}, [34] = {.index = 58, .length = 2}, [35] = {.index = 60, .length = 1}, [36] = {.index = 61, .length = 1}, [37] = {.index = 62, .length = 1}, [38] = {.index = 63, .length = 2}, [39] = {.index = 65, .length = 2}, [40] = {.index = 67, .length = 2}, [41] = {.index = 69, .length = 2}, [42] = {.index = 71, .length = 3}, [43] = {.index = 74, .length = 3}, [44] = {.index = 77, .length = 3}, [45] = {.index = 80, .length = 1}, [46] = {.index = 81, .length = 1}, [47] = {.index = 82, .length = 2}, [48] = {.index = 84, .length = 1}, [49] = {.index = 85, .length = 2}, [50] = {.index = 87, .length = 1}, [51] = {.index = 88, .length = 1}, [52] = {.index = 89, .length = 1}, [53] = {.index = 90, .length = 2}, [54] = {.index = 92, .length = 2}, [55] = {.index = 94, .length = 2}, [56] = {.index = 96, .length = 2}, [57] = {.index = 98, .length = 1}, [58] = {.index = 99, .length = 2}, [59] = {.index = 101, .length = 1}, [60] = {.index = 102, .length = 1}, [61] = {.index = 103, .length = 1}, [62] = {.index = 104, .length = 2}, [63] = {.index = 106, .length = 2}, [64] = {.index = 108, .length = 2}, [65] = {.index = 110, .length = 2}, [66] = {.index = 112, .length = 3}, [67] = {.index = 115, .length = 2}, [68] = {.index = 117, .length = 2}, [69] = {.index = 119, .length = 1}, [70] = {.index = 120, .length = 3}, [71] = {.index = 123, .length = 3}, [72] = {.index = 126, .length = 2}, [73] = {.index = 128, .length = 4}, [74] = {.index = 132, .length = 4}, [75] = {.index = 136, .length = 4}, [76] = {.index = 140, .length = 1}, [77] = {.index = 141, .length = 2}, [78] = {.index = 143, .length = 2}, [79] = {.index = 145, .length = 2}, [80] = {.index = 147, .length = 1}, [81] = {.index = 148, .length = 2}, [82] = {.index = 150, .length = 1}, [83] = {.index = 151, .length = 3}, [84] = {.index = 154, .length = 2}, [85] = {.index = 156, .length = 2}, [86] = {.index = 158, .length = 3}, [87] = {.index = 161, .length = 1}, [88] = {.index = 162, .length = 1}, [89] = {.index = 163, .length = 2}, [90] = {.index = 165, .length = 2}, [91] = {.index = 167, .length = 1}, [92] = {.index = 168, .length = 5}, [93] = {.index = 173, .length = 1}, [94] = {.index = 174, .length = 2}, [95] = {.index = 176, .length = 1}, [96] = {.index = 177, .length = 3}, [97] = {.index = 180, .length = 3}, [98] = {.index = 183, .length = 3}, [99] = {.index = 186, .length = 2}, [100] = {.index = 188, .length = 2}, [101] = {.index = 190, .length = 2}, [102] = {.index = 192, .length = 2}, [103] = {.index = 194, .length = 1}, [104] = {.index = 195, .length = 2}, [105] = {.index = 197, .length = 2}, [106] = {.index = 199, .length = 4}, [107] = {.index = 203, .length = 4}, [108] = {.index = 207, .length = 3}, [109] = {.index = 210, .length = 2}, [110] = {.index = 212, .length = 1}, [111] = {.index = 213, .length = 2}, [112] = {.index = 215, .length = 3}, [113] = {.index = 218, .length = 1}, [114] = {.index = 219, .length = 1}, [115] = {.index = 220, .length = 3}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_body, 2}, {field_name, 1}, [2] = {field_base, 0}, [3] = {field_base, 2, .inherited = true}, {field_body, 3}, {field_name, 1}, {field_version_info, 2, .inherited = true}, {field_version_uri, 2, .inherited = true}, [8] = {field_name, 0}, [9] = {field_segment, 0}, [10] = {field_name, 1}, [11] = {field_member, 1}, [12] = {field_base, 0}, {field_version_uri, 2}, [14] = {field_name, 0}, {field_rename, 1, .inherited = true}, [16] = {field_name, 0}, {field_version_uri, 1}, [18] = {field_segment, 1}, [19] = {field_segment, 0}, {field_segment, 1, .inherited = true}, [21] = {field_cardinality, 1, .inherited = true}, {field_name, 0}, {field_target, 1, .inherited = true}, [24] = {field_base, 0}, {field_version_info, 2}, {field_version_uri, 3}, [27] = {field_rename, 1}, [28] = {field_member, 2}, {field_module, 0}, [30] = {field_name, 0}, {field_rename, 2, .inherited = true}, {field_version_uri, 1}, [33] = {field_segment, 1}, {field_segment, 2, .inherited = true}, [35] = {field_segment, 0, .inherited = true}, {field_segment, 1, .inherited = true}, [37] = {field_empty, 0}, [38] = {field_name, 1}, {field_value, 3}, [40] = {field_value, 1}, [41] = {field_base, 3}, {field_name, 1}, [43] = {field_body, 2}, {field_cardinality, 1, .inherited = true}, {field_name, 0}, {field_target, 1, .inherited = true}, [47] = {field_target, 1}, [48] = {field_type, 1}, [49] = {field_body, 3}, {field_name, 1}, {field_types, 2}, [52] = {field_signature, 0}, [53] = {field_method, 0}, [54] = {field_variable, 0}, [55] = {field_element, 0}, [56] = {field_language, 1}, [57] = {field_byte, 0}, [58] = {field_name, 1, .inherited = true}, {field_subject, 0}, [60] = {field_body, 1}, [61] = {field_predicate, 0}, [62] = {field_function, 0}, [63] = {field_operator, 0}, {field_rhs, 1}, [65] = {field_binding, 1}, {field_quantifier, 0}, [67] = {field_language, 2}, {field_value, 1}, [69] = {field_body, 1}, {field_signature, 0}, [71] = {field_base, 4}, {field_name, 1}, {field_opaque, 3}, [74] = {field_base, 3}, {field_name, 1}, {field_restriction, 4}, [77] = {field_base, 3}, {field_body, 4}, {field_name, 1}, [80] = {field_entity, 1}, [81] = {field_identity, 1}, [82] = {field_body, 1}, {field_name, 0}, [84] = {field_min, 0}, [85] = {field_cardinality, 1}, {field_target, 2}, [87] = {field_property, 1}, [88] = {field_type, 0}, [89] = {field_method, 1, .inherited = true}, [90] = {field_method, 0, .inherited = true}, {field_method, 1, .inherited = true}, [92] = {field_cardinality, 0}, {field_name, 1}, [94] = {field_name, 1}, {field_variable, 3, .inherited = true}, [96] = {field_variable, 0, .inherited = true}, {field_variable, 1, .inherited = true}, [98] = {field_element, 1, .inherited = true}, [99] = {field_element, 0, .inherited = true}, {field_element, 1, .inherited = true}, [101] = {field_ordering, 1}, [102] = {field_uniqueness, 1}, [103] = {field_byte, 1, .inherited = true}, [104] = {field_byte, 0, .inherited = true}, {field_byte, 1, .inherited = true}, [106] = {field_ordering, 0, .inherited = true}, {field_uniqueness, 0, .inherited = true}, [108] = {field_domain, 0}, {field_range, 2}, [110] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, [112] = {field_lhs, 0}, {field_operator, 1}, {field_rhs, 2}, [115] = {field_binding, 0}, {field_body, 2}, [117] = {field_lhs, 0}, {field_rhs, 2}, [119] = {field_argument, 0}, [120] = {field_lhs, 0}, {field_relation, 1}, {field_rhs, 2}, [123] = {field_cardinality, 2, .inherited = true}, {field_name, 1}, {field_target, 2, .inherited = true}, [126] = {field_body, 2}, {field_environment, 0}, [128] = {field_base, 4}, {field_name, 1}, {field_opaque, 3}, {field_restriction, 5}, [132] = {field_base, 4}, {field_body, 5}, {field_name, 1}, {field_opaque, 3}, [136] = {field_base, 3}, {field_body, 5}, {field_name, 1}, {field_restriction, 4}, [140] = {field_identity, 2}, [141] = {field_min, 0}, {field_range, 1}, [143] = {field_min, 1, .inherited = true}, {field_range, 1, .inherited = true}, [145] = {field_name, 0}, {field_rename, 2}, [147] = {field_type, 2, .inherited = true}, [148] = {field_type, 0, .inherited = true}, {field_type, 1, .inherited = true}, [150] = {field_method, 2, .inherited = true}, [151] = {field_body, 5}, {field_name, 1}, {field_variable, 3, .inherited = true}, [154] = {field_ordering, 1}, {field_uniqueness, 2}, [156] = {field_name, 0}, {field_value, 2}, [158] = {field_element, 2, .inherited = true}, {field_ordering, 0, .inherited = true}, {field_uniqueness, 0, .inherited = true}, [161] = {field_range, 2}, [162] = {field_argument, 1, .inherited = true}, [163] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, [165] = {field_name, 0}, {field_source, 2}, [167] = {field_parameter, 0}, [168] = {field_base, 4}, {field_body, 6}, {field_name, 1}, {field_opaque, 3}, {field_restriction, 5}, [173] = {field_member, 0}, [174] = {field_entity, 1}, {field_member, 3, .inherited = true}, [176] = {field_max, 1}, [177] = {field_min, 2, .inherited = true}, {field_ordering, 1}, {field_range, 2, .inherited = true}, [180] = {field_min, 2, .inherited = true}, {field_range, 2, .inherited = true}, {field_uniqueness, 1}, [183] = {field_body, 3}, {field_name, 0}, {field_rename, 2}, [186] = {field_arguments, 1}, {field_name, 0}, [188] = {field_body, 3}, {field_variable, 1, .inherited = true}, [190] = {field_parameter, 0, .inherited = true}, {field_parameter, 1, .inherited = true}, [192] = {field_facet, 0}, {field_value, 2}, [194] = {field_value, 2}, [195] = {field_entity, 3}, {field_name, 1}, [197] = {field_domain, 1}, {field_range, 3}, [199] = {field_min, 3, .inherited = true}, {field_ordering, 1}, {field_range, 3, .inherited = true}, {field_uniqueness, 2}, [203] = {field_cardinality, 5, .inherited = true}, {field_name, 1}, {field_parameter, 3, .inherited = true}, {field_target, 5, .inherited = true}, [207] = {field_facet, 0}, {field_is_fixed, 2}, {field_value, 3}, [210] = {field_is_fixed, 2}, {field_value, 3}, [212] = {field_member, 1, .inherited = true}, [213] = {field_member, 0, .inherited = true}, {field_member, 1, .inherited = true}, [215] = {field_body, 4}, {field_entity, 3}, {field_name, 1}, [218] = {field_wildcard, 1}, [219] = {field_variable, 1, .inherited = true}, [220] = {field_value, 2}, {field_value, 3}, {field_value, 4}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, }; static const uint16_t ts_non_terminal_alias_map[] = { 0, }; static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6, [7] = 7, [8] = 8, [9] = 9, [10] = 10, [11] = 11, [12] = 12, [13] = 13, [14] = 14, [15] = 15, [16] = 16, [17] = 17, [18] = 18, [19] = 19, [20] = 20, [21] = 21, [22] = 22, [23] = 23, [24] = 24, [25] = 25, [26] = 26, [27] = 20, [28] = 28, [29] = 25, [30] = 26, [31] = 21, [32] = 32, [33] = 33, [34] = 34, [35] = 35, [36] = 36, [37] = 37, [38] = 38, [39] = 39, [40] = 40, [41] = 41, [42] = 42, [43] = 43, [44] = 44, [45] = 45, [46] = 46, [47] = 47, [48] = 46, [49] = 49, [50] = 47, [51] = 51, [52] = 52, [53] = 53, [54] = 54, [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, [60] = 60, [61] = 61, [62] = 62, [63] = 63, [64] = 64, [65] = 65, [66] = 66, [67] = 65, [68] = 68, [69] = 66, [70] = 64, [71] = 71, [72] = 72, [73] = 68, [74] = 74, [75] = 75, [76] = 76, [77] = 77, [78] = 78, [79] = 79, [80] = 79, [81] = 81, [82] = 82, [83] = 83, [84] = 84, [85] = 85, [86] = 86, [87] = 87, [88] = 88, [89] = 89, [90] = 90, [91] = 91, [92] = 92, [93] = 93, [94] = 94, [95] = 95, [96] = 96, [97] = 97, [98] = 98, [99] = 99, [100] = 94, [101] = 101, [102] = 94, [103] = 103, [104] = 104, [105] = 105, [106] = 106, [107] = 107, [108] = 108, [109] = 109, [110] = 110, [111] = 2, [112] = 112, [113] = 4, [114] = 71, [115] = 13, [116] = 18, [117] = 117, [118] = 118, [119] = 119, [120] = 74, [121] = 77, [122] = 8, [123] = 75, [124] = 76, [125] = 5, [126] = 7, [127] = 6, [128] = 128, [129] = 11, [130] = 9, [131] = 131, [132] = 10, [133] = 133, [134] = 134, [135] = 135, [136] = 136, [137] = 137, [138] = 81, [139] = 139, [140] = 136, [141] = 134, [142] = 135, [143] = 85, [144] = 91, [145] = 145, [146] = 92, [147] = 147, [148] = 148, [149] = 87, [150] = 93, [151] = 137, [152] = 88, [153] = 153, [154] = 84, [155] = 90, [156] = 156, [157] = 157, [158] = 158, [159] = 159, [160] = 160, [161] = 161, [162] = 86, [163] = 163, [164] = 62, [165] = 89, [166] = 166, [167] = 161, [168] = 168, [169] = 169, [170] = 170, [171] = 171, [172] = 172, [173] = 173, [174] = 174, [175] = 175, [176] = 176, [177] = 177, [178] = 178, [179] = 179, [180] = 180, [181] = 181, [182] = 182, [183] = 183, [184] = 184, [185] = 185, [186] = 186, [187] = 187, [188] = 188, [189] = 189, [190] = 190, [191] = 191, [192] = 192, [193] = 193, [194] = 194, [195] = 195, [196] = 196, [197] = 197, [198] = 198, [199] = 192, [200] = 200, [201] = 201, [202] = 202, [203] = 203, [204] = 204, [205] = 205, [206] = 206, [207] = 207, [208] = 208, [209] = 209, [210] = 210, [211] = 211, [212] = 212, [213] = 211, [214] = 214, [215] = 215, [216] = 216, [217] = 217, [218] = 218, [219] = 219, [220] = 220, [221] = 221, [222] = 222, [223] = 223, [224] = 224, [225] = 225, [226] = 226, [227] = 227, [228] = 228, [229] = 229, [230] = 230, [231] = 231, [232] = 232, [233] = 233, [234] = 234, [235] = 235, [236] = 236, [237] = 237, [238] = 238, [239] = 239, [240] = 240, [241] = 241, [242] = 242, [243] = 243, [244] = 244, [245] = 245, [246] = 246, [247] = 247, [248] = 248, [249] = 249, [250] = 250, [251] = 251, [252] = 252, [253] = 253, [254] = 254, [255] = 255, [256] = 256, [257] = 257, [258] = 258, [259] = 259, [260] = 260, [261] = 261, [262] = 262, [263] = 263, [264] = 264, [265] = 265, [266] = 266, [267] = 267, [268] = 268, [269] = 269, [270] = 270, [271] = 271, [272] = 272, [273] = 273, [274] = 274, [275] = 275, [276] = 276, [277] = 277, [278] = 278, [279] = 279, [280] = 280, [281] = 281, [282] = 282, [283] = 283, [284] = 284, [285] = 285, [286] = 286, [287] = 287, [288] = 288, [289] = 289, [290] = 290, [291] = 291, [292] = 292, [293] = 293, [294] = 294, [295] = 295, [296] = 296, [297] = 294, [298] = 295, [299] = 299, [300] = 300, [301] = 301, [302] = 302, [303] = 303, [304] = 304, [305] = 305, [306] = 306, [307] = 307, [308] = 308, [309] = 309, [310] = 310, [311] = 311, [312] = 312, [313] = 313, [314] = 314, [315] = 315, [316] = 316, [317] = 317, [318] = 318, [319] = 319, [320] = 320, [321] = 321, [322] = 322, [323] = 323, [324] = 147, [325] = 325, [326] = 326, [327] = 327, [328] = 328, [329] = 329, [330] = 330, [331] = 331, [332] = 332, [333] = 333, [334] = 334, [335] = 335, [336] = 336, [337] = 337, [338] = 338, [339] = 339, [340] = 340, [341] = 341, [342] = 342, [343] = 343, [344] = 344, [345] = 345, [346] = 346, [347] = 347, [348] = 348, [349] = 349, [350] = 350, [351] = 351, [352] = 352, [353] = 353, [354] = 354, [355] = 355, [356] = 356, [357] = 357, [358] = 358, [359] = 359, [360] = 360, [361] = 361, [362] = 362, [363] = 363, [364] = 364, [365] = 365, [366] = 366, [367] = 367, [368] = 368, [369] = 369, [370] = 370, [371] = 62, [372] = 372, [373] = 373, [374] = 374, [375] = 375, [376] = 376, [377] = 377, [378] = 378, [379] = 379, [380] = 380, [381] = 381, [382] = 382, [383] = 383, [384] = 384, [385] = 385, [386] = 386, [387] = 380, [388] = 388, [389] = 389, [390] = 390, [391] = 391, [392] = 392, [393] = 393, [394] = 394, [395] = 395, [396] = 396, [397] = 397, [398] = 398, [399] = 399, [400] = 400, [401] = 401, [402] = 402, [403] = 403, [404] = 188, [405] = 405, [406] = 406, [407] = 184, [408] = 408, [409] = 409, [410] = 410, [411] = 411, [412] = 412, [413] = 413, [414] = 414, [415] = 415, [416] = 416, [417] = 417, [418] = 418, [419] = 419, [420] = 420, [421] = 421, [422] = 422, [423] = 423, [424] = 424, [425] = 425, [426] = 426, [427] = 427, [428] = 428, [429] = 429, [430] = 430, [431] = 431, [432] = 432, [433] = 432, [434] = 434, [435] = 435, [436] = 436, [437] = 437, [438] = 436, [439] = 439, [440] = 440, [441] = 441, [442] = 442, [443] = 443, [444] = 444, [445] = 445, [446] = 446, [447] = 447, [448] = 448, [449] = 449, [450] = 450, [451] = 451, [452] = 452, [453] = 453, [454] = 454, [455] = 455, [456] = 456, [457] = 457, [458] = 458, [459] = 459, [460] = 460, [461] = 461, [462] = 462, [463] = 463, [464] = 464, [465] = 465, [466] = 466, [467] = 467, [468] = 468, [469] = 469, [470] = 470, [471] = 471, [472] = 472, [473] = 473, [474] = 474, [475] = 475, [476] = 476, [477] = 477, [478] = 478, [479] = 479, [480] = 480, [481] = 481, [482] = 482, [483] = 483, [484] = 484, [485] = 485, [486] = 486, [487] = 487, [488] = 488, [489] = 489, [490] = 490, [491] = 491, [492] = 492, [493] = 493, [494] = 494, [495] = 495, [496] = 496, [497] = 497, [498] = 498, [499] = 499, [500] = 500, [501] = 501, [502] = 502, [503] = 503, [504] = 504, [505] = 505, [506] = 506, [507] = 507, [508] = 508, [509] = 509, [510] = 510, [511] = 511, [512] = 512, [513] = 513, [514] = 514, [515] = 515, [516] = 516, [517] = 517, [518] = 518, [519] = 519, [520] = 520, [521] = 521, [522] = 522, [523] = 523, [524] = 524, [525] = 521, [526] = 503, [527] = 527, [528] = 528, [529] = 529, [530] = 530, [531] = 531, [532] = 532, [533] = 533, [534] = 534, [535] = 535, [536] = 536, [537] = 537, [538] = 538, [539] = 534, [540] = 540, [541] = 541, [542] = 542, [543] = 543, [544] = 544, [545] = 488, [546] = 546, [547] = 547, [548] = 514, [549] = 512, [550] = 546, [551] = 551, [552] = 552, [553] = 553, }; static TSCharacterRange sym_identifier_character_set_1[] = { {'A', 'Z'}, {'a', 'z'}, {0xb5, 0xb5}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x1ba}, {0x1bc, 0x1bf}, {0x1c4, 0x1c4}, {0x1c6, 0x1c7}, {0x1c9, 0x1ca}, {0x1cc, 0x1f1}, {0x1f3, 0x293}, {0x295, 0x2af}, {0x370, 0x373}, {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, {0x560, 0x588}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fd, 0x10ff}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1d00, 0x1d2b}, {0x1d6b, 0x1d77}, {0x1d79, 0x1d9a}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fbb}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcb}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x212f, 0x2134}, {0x2139, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2183, 0x2184}, {0x2c00, 0x2c7b}, {0x2c7e, 0x2ce4}, {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0xa640, 0xa66d}, {0xa680, 0xa69b}, {0xa722, 0xa76f}, {0xa771, 0xa787}, {0xa78b, 0xa78e}, {0xa790, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f5, 0xa7f6}, {0xa7fa, 0xa7fa}, {0xab30, 0xab5a}, {0xab60, 0xab68}, {0xab70, 0xabbf}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0x10400, 0x1044f}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, }; static TSCharacterRange sym_identifier_character_set_2[] = { {'0', '9'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xb5, 0xb5}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x1ba}, {0x1bc, 0x1bf}, {0x1c4, 0x1c4}, {0x1c6, 0x1c7}, {0x1c9, 0x1ca}, {0x1cc, 0x1f1}, {0x1f3, 0x293}, {0x295, 0x2af}, {0x370, 0x373}, {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, {0x560, 0x588}, {0x660, 0x669}, {0x6f0, 0x6f9}, {0x7c0, 0x7c9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe6, 0xbef}, {0xc66, 0xc6f}, {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xde6, 0xdef}, {0xe50, 0xe59}, {0xed0, 0xed9}, {0xf20, 0xf29}, {0x1040, 0x1049}, {0x1090, 0x1099}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fd, 0x10ff}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x17e0, 0x17e9}, {0x1810, 0x1819}, {0x1946, 0x194f}, {0x19d0, 0x19d9}, {0x1a80, 0x1a89}, {0x1a90, 0x1a99}, {0x1b50, 0x1b59}, {0x1bb0, 0x1bb9}, {0x1c40, 0x1c49}, {0x1c50, 0x1c59}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1d00, 0x1d2b}, {0x1d6b, 0x1d77}, {0x1d79, 0x1d9a}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fbb}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcb}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x212f, 0x2134}, {0x2139, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2183, 0x2184}, {0x2c00, 0x2c7b}, {0x2c7e, 0x2ce4}, {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0xa620, 0xa629}, {0xa640, 0xa66d}, {0xa680, 0xa69b}, {0xa722, 0xa76f}, {0xa771, 0xa787}, {0xa78b, 0xa78e}, {0xa790, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f5, 0xa7f6}, {0xa7fa, 0xa7fa}, {0xa8d0, 0xa8d9}, {0xa900, 0xa909}, {0xa9d0, 0xa9d9}, {0xa9f0, 0xa9f9}, {0xaa50, 0xaa59}, {0xab30, 0xab5a}, {0xab60, 0xab68}, {0xab70, 0xabbf}, {0xabf0, 0xabf9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff10, 0xff19}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0x10400, 0x1044f}, {0x104a0, 0x104a9}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: if (eof) ADVANCE(71); ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 174, ',', 98, '-', 12, '.', 101, '/', 23, '0', 135, ':', 79, ';', 186, '<', 146, '=', 84, '>', 148, '@', 82, '[', 72, '\\', 14, ']', 73, '_', 142, '{', 102, '|', 167, '}', 103, 0xac, 153, 0xb7, 99, 0x2190, 172, 0x2192, 170, 0x21d2, 158, 0x21d4, 160, 0x2200, 161, 0x2203, 162, 0x2205, 176, 0x2208, 166, 0x2216, 165, 0x2227, 154, 0x2228, 155, 0x2229, 164, 0x222a, 163, 0x2254, 169, 0x2260, 145, 0x2264, 150, 0x2265, 152, 0x2295, 175, 0x22a4, 140, 0x22a5, 141, 0x22bb, 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(70); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134); if (('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 1: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 13, '-', 12, '.', 100, '0', 132, ':', 78, ';', 186, '<', 120, '>', 124, '@', 81, '[', 72, '\\', 14, ']', 73, '{', 102, '}', 103, 0xac, 153, 0xb7, 99, 0x2192, 170, 0x2200, 161, 0x2203, 162, 0x2205, 176, 0x22a4, 140, 0x22a5, 141, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(3); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 2: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 13, '-', 12, '0', 132, ':', 17, ';', 186, '<', 120, '@', 66, '[', 72, '\\', 14, ']', 73, '{', 102, 0x2192, 170, 0x2205, 176, 0x22a4, 140, 0x22a5, 141, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 3: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 13, '-', 12, '0', 132, ';', 186, '<', 120, '@', 81, '[', 72, '\\', 14, ']', 73, '{', 102, '}', 103, 0xac, 153, 0x2192, 170, 0x2200, 161, 0x2203, 162, 0x2205, 176, 0x22a4, 140, 0x22a5, 141, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(3); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 4: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 13, '-', 12, '0', 132, ';', 186, '<', 120, '[', 72, '\\', 14, ']', 73, '{', 102, 0x2192, 170, 0x2205, 176, 0x22a4, 140, 0x22a5, 141, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 5: if (lookahead == '"') ADVANCE(104); if (lookahead == '\\') ADVANCE(31); if (lookahead > 0x08 && (lookahead < 0x0b || 0x1f < lookahead) && lookahead != 0x7f) ADVANCE(5); END_STATE(); case 6: ADVANCE_MAP( '(', 96, ')', 97, '+', 174, ',', 98, '-', 25, '.', 100, '/', 23, '0', 138, ':', 80, ';', 186, '<', 147, '=', 84, '>', 148, '@', 81, '[', 72, ']', 73, '_', 142, '{', 102, '|', 167, '}', 103, 0xb7, 99, 0x2192, 170, 0x21d2, 158, 0x21d4, 160, 0x2200, 161, 0x2203, 162, 0x2208, 166, 0x2227, 154, 0x2228, 155, 0x2254, 169, 0x2260, 145, 0x2264, 150, 0x2265, 152, 0x2295, 175, 0x22bb, 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(139); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 7: ADVANCE_MAP( '(', 96, ')', 97, '+', 174, ',', 98, '-', 25, '/', 23, '0', 138, ':', 24, ';', 186, '<', 147, '=', 84, '>', 148, '@', 81, '[', 72, ']', 73, '_', 142, '{', 102, '|', 167, '}', 103, 0x2192, 170, 0x21d2, 158, 0x21d4, 160, 0x2200, 161, 0x2203, 162, 0x2208, 166, 0x2227, 154, 0x2228, 155, 0x2254, 169, 0x2260, 145, 0x2264, 150, 0x2265, 152, 0x2295, 175, 0x22bb, 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(139); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 8: ADVANCE_MAP( '(', 96, ')', 97, ',', 98, '-', 25, '.', 11, '/', 23, ':', 18, ';', 186, '<', 147, '=', 84, '>', 148, '@', 81, '}', 103, 0x2192, 170, 0x21d2, 158, 0x21d4, 160, 0x2227, 154, 0x2228, 155, 0x2260, 145, 0x2264, 150, 0x2265, 152, 0x22bb, 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(8); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 9: ADVANCE_MAP( '(', 96, ')', 97, ',', 98, '-', 25, '.', 11, '/', 23, ':', 18, ';', 186, '<', 147, '=', 84, '>', 148, '@', 83, '}', 103, 0x2192, 170, 0x21d2, 158, 0x21d4, 160, 0x2227, 154, 0x2228, 155, 0x2260, 145, 0x2264, 150, 0x2265, 152, 0x22bb, 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(8); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 10: if (lookahead == '-') ADVANCE(173); END_STATE(); case 11: if (lookahead == '.') ADVANCE(143); END_STATE(); case 12: if (lookahead == '0') ADVANCE(132); if (lookahead == '>') ADVANCE(171); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); END_STATE(); case 13: if (lookahead == '0') ADVANCE(132); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); END_STATE(); case 14: if (lookahead == '0') ADVANCE(131); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(136); END_STATE(); case 15: if (lookahead == '0') ADVANCE(128); if (lookahead == '+' || lookahead == '-' || lookahead == '\\') ADVANCE(16); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(129); END_STATE(); case 16: if (lookahead == '0') ADVANCE(128); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(129); END_STATE(); case 17: if (lookahead == ':') ADVANCE(75); END_STATE(); case 18: if (lookahead == ':') ADVANCE(74); END_STATE(); case 19: if (lookahead == ':') ADVANCE(74); if (lookahead == '=') ADVANCE(168); END_STATE(); case 20: if (lookahead == ';') ADVANCE(186); if (lookahead == '<') ADVANCE(10); if (lookahead == '@') ADVANCE(82); if (lookahead == 0x2190) ADVANCE(172); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(21); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 21: if (lookahead == ';') ADVANCE(186); if (lookahead == '<') ADVANCE(10); if (lookahead == '@') ADVANCE(81); if (lookahead == 0x2190) ADVANCE(172); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(21); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 22: if (lookahead == ';') ADVANCE(186); if (lookahead == ']') ADVANCE(73); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(22); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(47); END_STATE(); case 23: if (lookahead == '=') ADVANCE(144); END_STATE(); case 24: if (lookahead == '=') ADVANCE(168); END_STATE(); case 25: if (lookahead == '>') ADVANCE(171); END_STATE(); case 26: if (lookahead == '>') ADVANCE(157); END_STATE(); case 27: if (lookahead == '>') ADVANCE(159); END_STATE(); case 28: if (lookahead == 'U') ADVANCE(57); if (lookahead == 'u') ADVANCE(53); END_STATE(); case 29: if (lookahead == '[') ADVANCE(125); END_STATE(); case 30: if (lookahead == '_') ADVANCE(30); if (set_contains(sym_identifier_character_set_2, 151, lookahead)) ADVANCE(77); END_STATE(); case 31: ADVANCE_MAP( 'u', 32, '"', 5, '/', 5, '\\', 5, 'a', 5, 'b', 5, 'e', 5, 'f', 5, 'n', 5, 'r', 5, 't', 5, 'v', 5, ); END_STATE(); case 32: if (lookahead == '{') ADVANCE(50); END_STATE(); case 33: if (lookahead == '}') ADVANCE(5); END_STATE(); case 34: if (lookahead == '}') ADVANCE(5); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(33); END_STATE(); case 35: if (lookahead == '}') ADVANCE(5); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(34); END_STATE(); case 36: if (lookahead == '}') ADVANCE(5); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(35); END_STATE(); case 37: if (lookahead == '}') ADVANCE(5); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(36); END_STATE(); case 38: if (('1' <= lookahead && lookahead <= '9')) ADVANCE(137); END_STATE(); case 39: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130); END_STATE(); case 40: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(105); END_STATE(); case 41: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(59); END_STATE(); case 42: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(60); END_STATE(); case 43: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(61); END_STATE(); case 44: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(62); END_STATE(); case 45: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(63); END_STATE(); case 46: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(40); END_STATE(); case 47: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(126); END_STATE(); case 48: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(37); END_STATE(); case 49: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(122); END_STATE(); case 50: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48); END_STATE(); case 51: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49); END_STATE(); case 52: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(51); END_STATE(); case 53: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(52); END_STATE(); case 54: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(53); END_STATE(); case 55: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(54); END_STATE(); case 56: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(55); END_STATE(); case 57: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(56); END_STATE(); case 58: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(69); END_STATE(); case 59: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(117); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 60: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(105); END_STATE(); case 61: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(105); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 62: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(118); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 63: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(119); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 64: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(87); END_STATE(); case 65: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(111); END_STATE(); case 66: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(65); END_STATE(); case 67: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(113); END_STATE(); case 68: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(67); END_STATE(); case 69: if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(95); END_STATE(); case 70: if (eof) ADVANCE(71); ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 174, ',', 98, '-', 12, '.', 11, '/', 23, '0', 135, ':', 19, ';', 186, '<', 146, '=', 84, '>', 148, '@', 81, '[', 72, '\\', 14, ']', 73, '_', 142, '{', 102, '|', 167, '}', 103, 0xac, 153, 0x2190, 172, 0x2192, 170, 0x21d2, 158, 0x21d4, 160, 0x2200, 161, 0x2203, 162, 0x2205, 176, 0x2208, 166, 0x2216, 165, 0x2227, 154, 0x2228, 155, 0x2229, 164, 0x222a, 163, 0x2254, 169, 0x2260, 145, 0x2264, 150, 0x2265, 152, 0x2295, 175, 0x22a4, 140, 0x22a5, 141, 0x22bb, 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(70); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134); if (('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 71: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 72: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 73: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 74: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 75: ACCEPT_TOKEN(anon_sym_COLON_COLON2); END_STATE(); case 76: ACCEPT_TOKEN(sym_identifier); if (lookahead == '_') ADVANCE(30); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(77); if (set_contains(sym_identifier_character_set_2, 151, lookahead)) ADVANCE(77); END_STATE(); case 77: ACCEPT_TOKEN(sym_identifier); if (lookahead == '_') ADVANCE(30); if (set_contains(sym_identifier_character_set_2, 151, lookahead)) ADVANCE(77); END_STATE(); case 78: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 79: ACCEPT_TOKEN(anon_sym_COLON); if (lookahead == ':') ADVANCE(75); if (lookahead == '=') ADVANCE(168); END_STATE(); case 80: ACCEPT_TOKEN(anon_sym_COLON); if (lookahead == '=') ADVANCE(168); END_STATE(); case 81: ACCEPT_TOKEN(anon_sym_AT); END_STATE(); case 82: ACCEPT_TOKEN(anon_sym_AT); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(64); END_STATE(); case 83: ACCEPT_TOKEN(anon_sym_AT); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(65); END_STATE(); case 84: ACCEPT_TOKEN(anon_sym_EQ); if (lookahead == '=') ADVANCE(26); END_STATE(); case 85: ACCEPT_TOKEN(sym_controlled_language_tag); END_STATE(); case 86: ACCEPT_TOKEN(sym_controlled_language_tag); if (lookahead == '-') ADVANCE(58); END_STATE(); case 87: ACCEPT_TOKEN(sym_controlled_language_tag); if (lookahead == '-') ADVANCE(58); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(86); END_STATE(); case 88: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(85); END_STATE(); case 89: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(88); END_STATE(); case 90: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(89); END_STATE(); case 91: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(90); END_STATE(); case 92: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(91); END_STATE(); case 93: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(92); END_STATE(); case 94: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(93); END_STATE(); case 95: ACCEPT_TOKEN(sym_controlled_language_tag); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94); END_STATE(); case 96: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 97: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 98: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 99: ACCEPT_TOKEN(anon_sym_u00b7); END_STATE(); case 100: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 101: ACCEPT_TOKEN(anon_sym_DOT); if (lookahead == '.') ADVANCE(143); END_STATE(); case 102: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 103: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 104: ACCEPT_TOKEN(sym_quoted_string); END_STATE(); case 105: ACCEPT_TOKEN(sym_language_tag); END_STATE(); case 106: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); END_STATE(); case 107: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(112); END_STATE(); case 108: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(107); END_STATE(); case 109: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(108); END_STATE(); case 110: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(109); END_STATE(); case 111: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(110); END_STATE(); case 112: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(106); END_STATE(); case 113: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(42); END_STATE(); case 114: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(43); END_STATE(); case 115: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(44); END_STATE(); case 116: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(45); END_STATE(); case 117: ACCEPT_TOKEN(sym_language_tag); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(116); END_STATE(); case 118: ACCEPT_TOKEN(sym_language_tag); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(114); END_STATE(); case 119: ACCEPT_TOKEN(sym_language_tag); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(115); END_STATE(); case 120: ACCEPT_TOKEN(anon_sym_LT); END_STATE(); case 121: ACCEPT_TOKEN(aux_sym_iri_token1); if (lookahead == ';') ADVANCE(123); if (lookahead == '\\') ADVANCE(28); if (lookahead > ' ' && lookahead != '"' && lookahead != ';' && lookahead != '<' && lookahead != '>' && lookahead != '^' && lookahead != '`' && (lookahead < '{' || '}' < lookahead)) ADVANCE(122); END_STATE(); case 122: ACCEPT_TOKEN(aux_sym_iri_token1); if (lookahead == '\\') ADVANCE(28); if (lookahead > ' ' && lookahead != '"' && lookahead != '<' && lookahead != '>' && lookahead != '^' && lookahead != '`' && (lookahead < '{' || '}' < lookahead)) ADVANCE(122); END_STATE(); case 123: ACCEPT_TOKEN(aux_sym_iri_token1); if (lookahead == '\\') ADVANCE(177); if ((!eof && lookahead <= '\t') || (0x0b <= lookahead && lookahead <= ' ') || lookahead == '"' || lookahead == '<' || lookahead == '>' || lookahead == '^' || lookahead == '`' || ('{' <= lookahead && lookahead <= '}')) ADVANCE(186); if (lookahead > ' ') ADVANCE(123); END_STATE(); case 124: ACCEPT_TOKEN(anon_sym_GT); END_STATE(); case 125: ACCEPT_TOKEN(anon_sym_POUND_LBRACK); END_STATE(); case 126: ACCEPT_TOKEN(sym_hex_byte); END_STATE(); case 127: ACCEPT_TOKEN(sym_hex_byte); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(133); END_STATE(); case 128: ACCEPT_TOKEN(sym_double); END_STATE(); case 129: ACCEPT_TOKEN(sym_double); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(129); END_STATE(); case 130: ACCEPT_TOKEN(sym_decimal); if (lookahead == 'E' || lookahead == 'e') ADVANCE(15); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130); END_STATE(); case 131: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); END_STATE(); case 132: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); END_STATE(); case 133: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(133); END_STATE(); case 134: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127); if (('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(126); END_STATE(); case 135: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(126); END_STATE(); case 136: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136); END_STATE(); case 137: ACCEPT_TOKEN(sym_rational); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(137); END_STATE(); case 138: ACCEPT_TOKEN(sym_unsigned); END_STATE(); case 139: ACCEPT_TOKEN(sym_unsigned); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(139); END_STATE(); case 140: ACCEPT_TOKEN(anon_sym_u22a4); END_STATE(); case 141: ACCEPT_TOKEN(anon_sym_u22a5); END_STATE(); case 142: ACCEPT_TOKEN(sym_wildcard); END_STATE(); case 143: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 144: ACCEPT_TOKEN(anon_sym_SLASH_EQ); END_STATE(); case 145: ACCEPT_TOKEN(anon_sym_u2260); END_STATE(); case 146: ACCEPT_TOKEN(sym_op_less_than); END_STATE(); case 147: ACCEPT_TOKEN(sym_op_less_than); if (lookahead == '=') ADVANCE(149); END_STATE(); case 148: ACCEPT_TOKEN(sym_op_greater_than); if (lookahead == '=') ADVANCE(151); END_STATE(); case 149: ACCEPT_TOKEN(anon_sym_LT_EQ); if (lookahead == '=') ADVANCE(27); END_STATE(); case 150: ACCEPT_TOKEN(anon_sym_u2264); END_STATE(); case 151: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 152: ACCEPT_TOKEN(anon_sym_u2265); END_STATE(); case 153: ACCEPT_TOKEN(anon_sym_u00ac); END_STATE(); case 154: ACCEPT_TOKEN(anon_sym_u2227); END_STATE(); case 155: ACCEPT_TOKEN(anon_sym_u2228); END_STATE(); case 156: ACCEPT_TOKEN(anon_sym_u22bb); END_STATE(); case 157: ACCEPT_TOKEN(anon_sym_EQ_EQ_GT); END_STATE(); case 158: ACCEPT_TOKEN(anon_sym_u21d2); END_STATE(); case 159: ACCEPT_TOKEN(anon_sym_LT_EQ_EQ_GT); END_STATE(); case 160: ACCEPT_TOKEN(anon_sym_u21d4); END_STATE(); case 161: ACCEPT_TOKEN(anon_sym_u2200); END_STATE(); case 162: ACCEPT_TOKEN(anon_sym_u2203); END_STATE(); case 163: ACCEPT_TOKEN(anon_sym_u222a); END_STATE(); case 164: ACCEPT_TOKEN(anon_sym_u2229); END_STATE(); case 165: ACCEPT_TOKEN(anon_sym_u2216); END_STATE(); case 166: ACCEPT_TOKEN(anon_sym_u2208); END_STATE(); case 167: ACCEPT_TOKEN(sym_set_op_builder); END_STATE(); case 168: ACCEPT_TOKEN(anon_sym_COLON_EQ); END_STATE(); case 169: ACCEPT_TOKEN(anon_sym_u2254); END_STATE(); case 170: ACCEPT_TOKEN(anon_sym_u2192); END_STATE(); case 171: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 172: ACCEPT_TOKEN(anon_sym_u2190); END_STATE(); case 173: ACCEPT_TOKEN(anon_sym_LT_DASH); END_STATE(); case 174: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 175: ACCEPT_TOKEN(anon_sym_u2295); END_STATE(); case 176: ACCEPT_TOKEN(sym__value_empty_sequence); END_STATE(); case 177: ACCEPT_TOKEN(sym_line_comment); if (lookahead == 'U') ADVANCE(185); if (lookahead == 'u') ADVANCE(181); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 178: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(123); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 179: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(178); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 180: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(179); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 181: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(180); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 182: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(181); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 183: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(182); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 184: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(183); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 185: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(184); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); case 186: ACCEPT_TOKEN(sym_line_comment); if (lookahead != 0 && lookahead != '\n') ADVANCE(186); END_STATE(); default: return false; } } static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: ADVANCE_MAP( 'N', 1, 'T', 2, 'a', 3, 'b', 4, 'c', 5, 'd', 6, 'e', 7, 'f', 8, 'g', 9, 'h', 10, 'i', 11, 'l', 12, 'm', 13, 'n', 14, 'o', 15, 'p', 16, 'r', 17, 's', 18, 't', 19, 'u', 20, 'v', 21, 'w', 22, 'x', 23, 'y', 24, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(0); END_STATE(); case 1: if (lookahead == 'o') ADVANCE(25); END_STATE(); case 2: if (lookahead == 'h') ADVANCE(26); END_STATE(); case 3: ACCEPT_TOKEN(anon_sym_a); if (lookahead == 'n') ADVANCE(27); if (lookahead == 's') ADVANCE(28); END_STATE(); case 4: if (lookahead == 'a') ADVANCE(29); if (lookahead == 'i') ADVANCE(30); if (lookahead == 'o') ADVANCE(31); if (lookahead == 'y') ADVANCE(32); END_STATE(); case 5: if (lookahead == 'l') ADVANCE(33); if (lookahead == 'o') ADVANCE(34); END_STATE(); case 6: if (lookahead == 'a') ADVANCE(35); if (lookahead == 'e') ADVANCE(36); if (lookahead == 'i') ADVANCE(37); if (lookahead == 'o') ADVANCE(38); if (lookahead == 'u') ADVANCE(39); END_STATE(); case 7: if (lookahead == 'n') ADVANCE(40); if (lookahead == 'v') ADVANCE(41); if (lookahead == 'x') ADVANCE(42); END_STATE(); case 8: if (lookahead == 'a') ADVANCE(43); if (lookahead == 'i') ADVANCE(44); if (lookahead == 'l') ADVANCE(45); if (lookahead == 'o') ADVANCE(46); if (lookahead == 'r') ADVANCE(47); END_STATE(); case 9: if (lookahead == 'D') ADVANCE(48); if (lookahead == 'M') ADVANCE(49); if (lookahead == 'Y') ADVANCE(50); END_STATE(); case 10: if (lookahead == 'e') ADVANCE(51); END_STATE(); case 11: if (lookahead == 'd') ADVANCE(52); if (lookahead == 'f') ADVANCE(53); if (lookahead == 'm') ADVANCE(54); if (lookahead == 'n') ADVANCE(55); if (lookahead == 'r') ADVANCE(56); if (lookahead == 's') ADVANCE(57); END_STATE(); case 12: if (lookahead == 'a') ADVANCE(58); if (lookahead == 'e') ADVANCE(59); if (lookahead == 'o') ADVANCE(60); END_STATE(); case 13: if (lookahead == 'a') ADVANCE(61); if (lookahead == 'i') ADVANCE(62); if (lookahead == 'o') ADVANCE(63); END_STATE(); case 14: if (lookahead == 'e') ADVANCE(64); if (lookahead == 'o') ADVANCE(65); END_STATE(); case 15: if (lookahead == 'f') ADVANCE(66); if (lookahead == 'p') ADVANCE(67); if (lookahead == 'r') ADVANCE(68); END_STATE(); case 16: if (lookahead == 'a') ADVANCE(69); if (lookahead == 'o') ADVANCE(70); if (lookahead == 'r') ADVANCE(71); END_STATE(); case 17: if (lookahead == 'a') ADVANCE(72); if (lookahead == 'd') ADVANCE(73); if (lookahead == 'e') ADVANCE(74); END_STATE(); case 18: if (lookahead == 'e') ADVANCE(75); if (lookahead == 'h') ADVANCE(76); if (lookahead == 'o') ADVANCE(77); if (lookahead == 't') ADVANCE(78); END_STATE(); case 19: if (lookahead == 'i') ADVANCE(79); if (lookahead == 'o') ADVANCE(80); if (lookahead == 'r') ADVANCE(81); if (lookahead == 'y') ADVANCE(82); END_STATE(); case 20: if (lookahead == 'n') ADVANCE(83); END_STATE(); case 21: if (lookahead == 'e') ADVANCE(84); END_STATE(); case 22: if (lookahead == 'i') ADVANCE(85); END_STATE(); case 23: if (lookahead == 'o') ADVANCE(86); END_STATE(); case 24: if (lookahead == 'e') ADVANCE(87); END_STATE(); case 25: if (lookahead == 't') ADVANCE(88); END_STATE(); case 26: if (lookahead == 'i') ADVANCE(89); END_STATE(); case 27: if (lookahead == 'd') ADVANCE(90); if (lookahead == 'y') ADVANCE(91); END_STATE(); case 28: ACCEPT_TOKEN(anon_sym_as); if (lookahead == 's') ADVANCE(92); END_STATE(); case 29: if (lookahead == 's') ADVANCE(93); END_STATE(); case 30: if (lookahead == 'n') ADVANCE(94); END_STATE(); case 31: if (lookahead == 'o') ADVANCE(95); END_STATE(); case 32: if (lookahead == 't') ADVANCE(96); END_STATE(); case 33: if (lookahead == 'a') ADVANCE(97); END_STATE(); case 34: if (lookahead == 'm') ADVANCE(98); END_STATE(); case 35: if (lookahead == 't') ADVANCE(99); if (lookahead == 'y') ADVANCE(100); END_STATE(); case 36: if (lookahead == 'c') ADVANCE(101); if (lookahead == 'f') ADVANCE(102); END_STATE(); case 37: if (lookahead == 'm') ADVANCE(103); END_STATE(); case 38: if (lookahead == 'u') ADVANCE(104); END_STATE(); case 39: if (lookahead == 'r') ADVANCE(105); END_STATE(); case 40: if (lookahead == 'd') ADVANCE(106); if (lookahead == 't') ADVANCE(107); if (lookahead == 'u') ADVANCE(108); END_STATE(); case 41: if (lookahead == 'e') ADVANCE(109); END_STATE(); case 42: if (lookahead == 'i') ADVANCE(110); if (lookahead == 'p') ADVANCE(111); END_STATE(); case 43: if (lookahead == 'l') ADVANCE(112); END_STATE(); case 44: if (lookahead == 'x') ADVANCE(113); END_STATE(); case 45: if (lookahead == 'o') ADVANCE(114); END_STATE(); case 46: if (lookahead == 'r') ADVANCE(115); END_STATE(); case 47: if (lookahead == 'a') ADVANCE(116); if (lookahead == 'o') ADVANCE(117); END_STATE(); case 48: if (lookahead == 'a') ADVANCE(118); END_STATE(); case 49: if (lookahead == 'o') ADVANCE(119); END_STATE(); case 50: if (lookahead == 'e') ADVANCE(120); END_STATE(); case 51: if (lookahead == 'x') ADVANCE(121); END_STATE(); case 52: if (lookahead == 'e') ADVANCE(122); END_STATE(); case 53: if (lookahead == 'f') ADVANCE(123); END_STATE(); case 54: if (lookahead == 'p') ADVANCE(124); END_STATE(); case 55: ACCEPT_TOKEN(anon_sym_in); if (lookahead == 't') ADVANCE(125); END_STATE(); case 56: if (lookahead == 'i') ADVANCE(126); END_STATE(); case 57: ACCEPT_TOKEN(anon_sym_is); END_STATE(); case 58: if (lookahead == 'n') ADVANCE(127); END_STATE(); case 59: if (lookahead == 'n') ADVANCE(128); END_STATE(); case 60: if (lookahead == 'n') ADVANCE(129); END_STATE(); case 61: if (lookahead == 'x') ADVANCE(130); END_STATE(); case 62: if (lookahead == 'n') ADVANCE(131); END_STATE(); case 63: if (lookahead == 'd') ADVANCE(132); END_STATE(); case 64: if (lookahead == 'g') ADVANCE(133); END_STATE(); case 65: if (lookahead == 'n') ADVANCE(134); if (lookahead == 'r') ADVANCE(135); if (lookahead == 't') ADVANCE(136); END_STATE(); case 66: ACCEPT_TOKEN(anon_sym_of); END_STATE(); case 67: if (lookahead == 'a') ADVANCE(137); if (lookahead == 't') ADVANCE(138); END_STATE(); case 68: ACCEPT_TOKEN(anon_sym_or); if (lookahead == 'd') ADVANCE(139); END_STATE(); case 69: if (lookahead == 'r') ADVANCE(140); if (lookahead == 't') ADVANCE(141); END_STATE(); case 70: if (lookahead == 's') ADVANCE(142); END_STATE(); case 71: if (lookahead == 'o') ADVANCE(143); END_STATE(); case 72: if (lookahead == 't') ADVANCE(144); END_STATE(); case 73: if (lookahead == 'f') ADVANCE(145); END_STATE(); case 74: if (lookahead == 'a') ADVANCE(146); if (lookahead == 'f') ADVANCE(147); if (lookahead == 'q') ADVANCE(148); END_STATE(); case 75: if (lookahead == 'l') ADVANCE(149); END_STATE(); case 76: if (lookahead == 'o') ADVANCE(150); END_STATE(); case 77: if (lookahead == 'u') ADVANCE(151); END_STATE(); case 78: if (lookahead == 'r') ADVANCE(152); END_STATE(); case 79: if (lookahead == 'm') ADVANCE(153); END_STATE(); case 80: if (lookahead == 'k') ADVANCE(154); if (lookahead == 't') ADVANCE(155); END_STATE(); case 81: if (lookahead == 'u') ADVANCE(156); END_STATE(); case 82: if (lookahead == 'p') ADVANCE(157); END_STATE(); case 83: if (lookahead == 'i') ADVANCE(158); if (lookahead == 'k') ADVANCE(159); if (lookahead == 'o') ADVANCE(160); if (lookahead == 's') ADVANCE(161); END_STATE(); case 84: if (lookahead == 'r') ADVANCE(162); END_STATE(); case 85: if (lookahead == 't') ADVANCE(163); END_STATE(); case 86: if (lookahead == 'r') ADVANCE(164); END_STATE(); case 87: if (lookahead == 'a') ADVANCE(165); END_STATE(); case 88: if (lookahead == 'h') ADVANCE(166); END_STATE(); case 89: if (lookahead == 'n') ADVANCE(167); END_STATE(); case 90: ACCEPT_TOKEN(anon_sym_and); END_STATE(); case 91: if (lookahead == 'U') ADVANCE(168); END_STATE(); case 92: if (lookahead == 'e') ADVANCE(169); END_STATE(); case 93: if (lookahead == 'e') ADVANCE(170); END_STATE(); case 94: if (lookahead == 'a') ADVANCE(171); END_STATE(); case 95: if (lookahead == 'l') ADVANCE(172); END_STATE(); case 96: if (lookahead == 'e') ADVANCE(173); END_STATE(); case 97: if (lookahead == 's') ADVANCE(174); END_STATE(); case 98: if (lookahead == 'p') ADVANCE(175); END_STATE(); case 99: if (lookahead == 'a') ADVANCE(176); if (lookahead == 'e') ADVANCE(177); END_STATE(); case 100: if (lookahead == 'T') ADVANCE(178); END_STATE(); case 101: if (lookahead == 'i') ADVANCE(179); END_STATE(); case 102: ACCEPT_TOKEN(anon_sym_def); END_STATE(); case 103: if (lookahead == 'e') ADVANCE(180); END_STATE(); case 104: if (lookahead == 'b') ADVANCE(181); END_STATE(); case 105: if (lookahead == 'a') ADVANCE(182); END_STATE(); case 106: ACCEPT_TOKEN(anon_sym_end); END_STATE(); case 107: if (lookahead == 'i') ADVANCE(183); END_STATE(); case 108: if (lookahead == 'm') ADVANCE(184); END_STATE(); case 109: if (lookahead == 'n') ADVANCE(185); END_STATE(); case 110: if (lookahead == 's') ADVANCE(186); END_STATE(); case 111: if (lookahead == 'l') ADVANCE(187); END_STATE(); case 112: if (lookahead == 's') ADVANCE(188); END_STATE(); case 113: if (lookahead == 'e') ADVANCE(189); END_STATE(); case 114: if (lookahead == 'a') ADVANCE(190); END_STATE(); case 115: if (lookahead == 'a') ADVANCE(191); END_STATE(); case 116: if (lookahead == 'c') ADVANCE(192); END_STATE(); case 117: if (lookahead == 'm') ADVANCE(193); END_STATE(); case 118: if (lookahead == 'y') ADVANCE(194); END_STATE(); case 119: if (lookahead == 'n') ADVANCE(195); END_STATE(); case 120: if (lookahead == 'a') ADVANCE(196); END_STATE(); case 121: if (lookahead == 'B') ADVANCE(197); END_STATE(); case 122: if (lookahead == 'n') ADVANCE(198); END_STATE(); case 123: ACCEPT_TOKEN(anon_sym_iff); END_STATE(); case 124: if (lookahead == 'l') ADVANCE(199); if (lookahead == 'o') ADVANCE(200); END_STATE(); case 125: ACCEPT_TOKEN(anon_sym_int); if (lookahead == 'e') ADVANCE(201); END_STATE(); case 126: ACCEPT_TOKEN(anon_sym_iri); END_STATE(); case 127: if (lookahead == 'g') ADVANCE(202); END_STATE(); case 128: if (lookahead == 'g') ADVANCE(203); END_STATE(); case 129: if (lookahead == 'g') ADVANCE(204); END_STATE(); case 130: if (lookahead == 'E') ADVANCE(205); if (lookahead == 'I') ADVANCE(206); if (lookahead == 'L') ADVANCE(207); END_STATE(); case 131: if (lookahead == 'E') ADVANCE(208); if (lookahead == 'I') ADVANCE(209); if (lookahead == 'L') ADVANCE(210); END_STATE(); case 132: if (lookahead == 'u') ADVANCE(211); END_STATE(); case 133: if (lookahead == 'a') ADVANCE(212); END_STATE(); case 134: if (lookahead == 'N') ADVANCE(213); if (lookahead == 'P') ADVANCE(214); if (lookahead == 'u') ADVANCE(215); END_STATE(); case 135: if (lookahead == 'm') ADVANCE(216); END_STATE(); case 136: ACCEPT_TOKEN(anon_sym_not); END_STATE(); case 137: if (lookahead == 'q') ADVANCE(217); END_STATE(); case 138: if (lookahead == 'i') ADVANCE(218); END_STATE(); case 139: if (lookahead == 'e') ADVANCE(219); END_STATE(); case 140: if (lookahead == 'e') ADVANCE(220); END_STATE(); case 141: if (lookahead == 't') ADVANCE(221); END_STATE(); case 142: if (lookahead == 'i') ADVANCE(222); END_STATE(); case 143: if (lookahead == 'h') ADVANCE(223); if (lookahead == 'p') ADVANCE(224); END_STATE(); case 144: if (lookahead == 'i') ADVANCE(225); END_STATE(); case 145: ACCEPT_TOKEN(anon_sym_rdf); END_STATE(); case 146: if (lookahead == 'l') ADVANCE(226); END_STATE(); case 147: ACCEPT_TOKEN(anon_sym_ref); END_STATE(); case 148: if (lookahead == 'u') ADVANCE(227); END_STATE(); case 149: if (lookahead == 'f') ADVANCE(228); END_STATE(); case 150: if (lookahead == 'r') ADVANCE(229); END_STATE(); case 151: if (lookahead == 'r') ADVANCE(230); END_STATE(); case 152: if (lookahead == 'i') ADVANCE(231); if (lookahead == 'u') ADVANCE(232); END_STATE(); case 153: if (lookahead == 'e') ADVANCE(233); END_STATE(); case 154: if (lookahead == 'e') ADVANCE(234); END_STATE(); case 155: if (lookahead == 'a') ADVANCE(235); END_STATE(); case 156: if (lookahead == 'e') ADVANCE(236); END_STATE(); case 157: if (lookahead == 'e') ADVANCE(237); END_STATE(); case 158: if (lookahead == 'o') ADVANCE(238); if (lookahead == 'q') ADVANCE(239); END_STATE(); case 159: if (lookahead == 'n') ADVANCE(240); END_STATE(); case 160: if (lookahead == 'r') ADVANCE(241); END_STATE(); case 161: if (lookahead == 'i') ADVANCE(242); END_STATE(); case 162: if (lookahead == 's') ADVANCE(243); END_STATE(); case 163: if (lookahead == 'h') ADVANCE(244); END_STATE(); case 164: ACCEPT_TOKEN(anon_sym_xor); END_STATE(); case 165: if (lookahead == 'r') ADVANCE(245); END_STATE(); case 166: if (lookahead == 'i') ADVANCE(246); END_STATE(); case 167: if (lookahead == 'g') ADVANCE(247); END_STATE(); case 168: if (lookahead == 'R') ADVANCE(248); END_STATE(); case 169: if (lookahead == 'r') ADVANCE(249); END_STATE(); case 170: if (lookahead == '6') ADVANCE(250); END_STATE(); case 171: if (lookahead == 'r') ADVANCE(251); END_STATE(); case 172: if (lookahead == 'e') ADVANCE(252); END_STATE(); case 173: ACCEPT_TOKEN(anon_sym_byte); END_STATE(); case 174: if (lookahead == 's') ADVANCE(253); END_STATE(); case 175: if (lookahead == 'l') ADVANCE(254); END_STATE(); case 176: if (lookahead == 't') ADVANCE(255); END_STATE(); case 177: ACCEPT_TOKEN(anon_sym_date); if (lookahead == 'T') ADVANCE(256); END_STATE(); case 178: if (lookahead == 'i') ADVANCE(257); END_STATE(); case 179: if (lookahead == 'm') ADVANCE(258); END_STATE(); case 180: if (lookahead == 'n') ADVANCE(259); END_STATE(); case 181: if (lookahead == 'l') ADVANCE(260); END_STATE(); case 182: if (lookahead == 't') ADVANCE(261); END_STATE(); case 183: if (lookahead == 't') ADVANCE(262); END_STATE(); case 184: ACCEPT_TOKEN(anon_sym_enum); END_STATE(); case 185: if (lookahead == 't') ADVANCE(263); END_STATE(); case 186: if (lookahead == 't') ADVANCE(264); END_STATE(); case 187: if (lookahead == 'i') ADVANCE(265); END_STATE(); case 188: if (lookahead == 'e') ADVANCE(266); END_STATE(); case 189: if (lookahead == 'd') ADVANCE(267); END_STATE(); case 190: if (lookahead == 't') ADVANCE(268); END_STATE(); case 191: if (lookahead == 'l') ADVANCE(269); END_STATE(); case 192: if (lookahead == 't') ADVANCE(270); END_STATE(); case 193: ACCEPT_TOKEN(anon_sym_from); END_STATE(); case 194: ACCEPT_TOKEN(anon_sym_gDay); END_STATE(); case 195: if (lookahead == 't') ADVANCE(271); END_STATE(); case 196: if (lookahead == 'r') ADVANCE(272); END_STATE(); case 197: if (lookahead == 'i') ADVANCE(273); END_STATE(); case 198: if (lookahead == 't') ADVANCE(274); END_STATE(); case 199: if (lookahead == 'i') ADVANCE(275); END_STATE(); case 200: if (lookahead == 'r') ADVANCE(276); END_STATE(); case 201: if (lookahead == 'g') ADVANCE(277); if (lookahead == 'r') ADVANCE(278); END_STATE(); case 202: if (lookahead == 'u') ADVANCE(279); END_STATE(); case 203: if (lookahead == 't') ADVANCE(280); END_STATE(); case 204: ACCEPT_TOKEN(anon_sym_long); END_STATE(); case 205: if (lookahead == 'x') ADVANCE(281); END_STATE(); case 206: if (lookahead == 'n') ADVANCE(282); END_STATE(); case 207: if (lookahead == 'e') ADVANCE(283); END_STATE(); case 208: if (lookahead == 'x') ADVANCE(284); END_STATE(); case 209: if (lookahead == 'n') ADVANCE(285); END_STATE(); case 210: if (lookahead == 'e') ADVANCE(286); END_STATE(); case 211: if (lookahead == 'l') ADVANCE(287); END_STATE(); case 212: if (lookahead == 't') ADVANCE(288); END_STATE(); case 213: if (lookahead == 'e') ADVANCE(289); END_STATE(); case 214: if (lookahead == 'o') ADVANCE(290); END_STATE(); case 215: if (lookahead == 'n') ADVANCE(291); END_STATE(); case 216: if (lookahead == 'a') ADVANCE(292); END_STATE(); case 217: if (lookahead == 'u') ADVANCE(293); END_STATE(); case 218: if (lookahead == 'o') ADVANCE(294); END_STATE(); case 219: if (lookahead == 'r') ADVANCE(295); END_STATE(); case 220: if (lookahead == 'n') ADVANCE(296); END_STATE(); case 221: if (lookahead == 'e') ADVANCE(297); END_STATE(); case 222: if (lookahead == 't') ADVANCE(298); END_STATE(); case 223: if (lookahead == 'i') ADVANCE(299); END_STATE(); case 224: if (lookahead == 'e') ADVANCE(300); END_STATE(); case 225: if (lookahead == 'o') ADVANCE(301); END_STATE(); case 226: ACCEPT_TOKEN(anon_sym_real); END_STATE(); case 227: if (lookahead == 'i') ADVANCE(302); END_STATE(); case 228: ACCEPT_TOKEN(sym_reserved_self); END_STATE(); case 229: if (lookahead == 't') ADVANCE(303); END_STATE(); case 230: if (lookahead == 'c') ADVANCE(304); END_STATE(); case 231: if (lookahead == 'n') ADVANCE(305); END_STATE(); case 232: if (lookahead == 'c') ADVANCE(306); END_STATE(); case 233: ACCEPT_TOKEN(anon_sym_time); END_STATE(); case 234: if (lookahead == 'n') ADVANCE(307); END_STATE(); case 235: if (lookahead == 'l') ADVANCE(308); END_STATE(); case 236: ACCEPT_TOKEN(anon_sym_true); END_STATE(); case 237: ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 238: if (lookahead == 'n') ADVANCE(309); END_STATE(); case 239: if (lookahead == 'u') ADVANCE(310); END_STATE(); case 240: if (lookahead == 'o') ADVANCE(311); END_STATE(); case 241: if (lookahead == 'd') ADVANCE(312); END_STATE(); case 242: if (lookahead == 'g') ADVANCE(313); END_STATE(); case 243: if (lookahead == 'i') ADVANCE(314); END_STATE(); case 244: ACCEPT_TOKEN(anon_sym_with); END_STATE(); case 245: if (lookahead == 'M') ADVANCE(315); END_STATE(); case 246: if (lookahead == 'n') ADVANCE(316); END_STATE(); case 247: ACCEPT_TOKEN(anon_sym_Thing); END_STATE(); case 248: if (lookahead == 'I') ADVANCE(317); END_STATE(); case 249: if (lookahead == 't') ADVANCE(318); END_STATE(); case 250: if (lookahead == '4') ADVANCE(319); END_STATE(); case 251: if (lookahead == 'y') ADVANCE(320); END_STATE(); case 252: if (lookahead == 'a') ADVANCE(321); END_STATE(); case 253: ACCEPT_TOKEN(anon_sym_class); END_STATE(); case 254: if (lookahead == 'e') ADVANCE(322); END_STATE(); case 255: if (lookahead == 'y') ADVANCE(323); END_STATE(); case 256: if (lookahead == 'i') ADVANCE(324); END_STATE(); case 257: if (lookahead == 'm') ADVANCE(325); END_STATE(); case 258: if (lookahead == 'a') ADVANCE(326); END_STATE(); case 259: if (lookahead == 's') ADVANCE(327); END_STATE(); case 260: if (lookahead == 'e') ADVANCE(328); END_STATE(); case 261: if (lookahead == 'i') ADVANCE(329); END_STATE(); case 262: if (lookahead == 'y') ADVANCE(330); END_STATE(); case 263: ACCEPT_TOKEN(anon_sym_event); END_STATE(); case 264: if (lookahead == 's') ADVANCE(331); END_STATE(); case 265: if (lookahead == 'c') ADVANCE(332); END_STATE(); case 266: ACCEPT_TOKEN(anon_sym_false); END_STATE(); case 267: ACCEPT_TOKEN(sym_kw_is_fixed); END_STATE(); case 268: ACCEPT_TOKEN(anon_sym_float); END_STATE(); case 269: if (lookahead == 'l') ADVANCE(333); END_STATE(); case 270: if (lookahead == 'i') ADVANCE(334); END_STATE(); case 271: if (lookahead == 'h') ADVANCE(335); END_STATE(); case 272: ACCEPT_TOKEN(anon_sym_gYear); if (lookahead == 'M') ADVANCE(336); END_STATE(); case 273: if (lookahead == 'n') ADVANCE(337); END_STATE(); case 274: if (lookahead == 'i') ADVANCE(338); END_STATE(); case 275: if (lookahead == 'e') ADVANCE(339); END_STATE(); case 276: if (lookahead == 't') ADVANCE(340); END_STATE(); case 277: if (lookahead == 'e') ADVANCE(341); END_STATE(); case 278: if (lookahead == 's') ADVANCE(342); END_STATE(); case 279: if (lookahead == 'a') ADVANCE(343); END_STATE(); case 280: if (lookahead == 'h') ADVANCE(344); END_STATE(); case 281: if (lookahead == 'c') ADVANCE(345); END_STATE(); case 282: if (lookahead == 'c') ADVANCE(346); END_STATE(); case 283: if (lookahead == 'n') ADVANCE(347); END_STATE(); case 284: if (lookahead == 'c') ADVANCE(348); END_STATE(); case 285: if (lookahead == 'c') ADVANCE(349); END_STATE(); case 286: if (lookahead == 'n') ADVANCE(350); END_STATE(); case 287: if (lookahead == 'e') ADVANCE(351); END_STATE(); case 288: if (lookahead == 'i') ADVANCE(352); END_STATE(); case 289: if (lookahead == 'g') ADVANCE(353); END_STATE(); case 290: if (lookahead == 's') ADVANCE(354); END_STATE(); case 291: if (lookahead == 'i') ADVANCE(355); END_STATE(); case 292: if (lookahead == 'l') ADVANCE(356); END_STATE(); case 293: if (lookahead == 'e') ADVANCE(357); END_STATE(); case 294: if (lookahead == 'n') ADVANCE(358); END_STATE(); case 295: if (lookahead == 'e') ADVANCE(359); END_STATE(); case 296: if (lookahead == 't') ADVANCE(360); END_STATE(); case 297: if (lookahead == 'r') ADVANCE(361); END_STATE(); case 298: if (lookahead == 'i') ADVANCE(362); END_STATE(); case 299: if (lookahead == 'b') ADVANCE(363); END_STATE(); case 300: if (lookahead == 'r') ADVANCE(364); END_STATE(); case 301: if (lookahead == 'n') ADVANCE(365); END_STATE(); case 302: if (lookahead == 'r') ADVANCE(366); END_STATE(); case 303: ACCEPT_TOKEN(anon_sym_short); END_STATE(); case 304: if (lookahead == 'e') ADVANCE(367); END_STATE(); case 305: if (lookahead == 'g') ADVANCE(368); END_STATE(); case 306: if (lookahead == 't') ADVANCE(369); END_STATE(); case 307: ACCEPT_TOKEN(anon_sym_token); END_STATE(); case 308: if (lookahead == 'D') ADVANCE(370); END_STATE(); case 309: ACCEPT_TOKEN(anon_sym_union); END_STATE(); case 310: if (lookahead == 'e') ADVANCE(371); END_STATE(); case 311: if (lookahead == 'w') ADVANCE(372); END_STATE(); case 312: if (lookahead == 'e') ADVANCE(373); END_STATE(); case 313: if (lookahead == 'n') ADVANCE(374); END_STATE(); case 314: if (lookahead == 'o') ADVANCE(375); END_STATE(); case 315: if (lookahead == 'o') ADVANCE(376); END_STATE(); case 316: if (lookahead == 'g') ADVANCE(377); END_STATE(); case 317: ACCEPT_TOKEN(anon_sym_anyURI); END_STATE(); case 318: ACCEPT_TOKEN(anon_sym_assert); END_STATE(); case 319: if (lookahead == 'B') ADVANCE(378); END_STATE(); case 320: ACCEPT_TOKEN(anon_sym_binary); END_STATE(); case 321: if (lookahead == 'n') ADVANCE(379); END_STATE(); case 322: if (lookahead == 'm') ADVANCE(380); END_STATE(); case 323: if (lookahead == 'p') ADVANCE(381); END_STATE(); case 324: if (lookahead == 'm') ADVANCE(382); END_STATE(); case 325: if (lookahead == 'e') ADVANCE(383); END_STATE(); case 326: if (lookahead == 'l') ADVANCE(384); END_STATE(); case 327: if (lookahead == 'i') ADVANCE(385); END_STATE(); case 328: ACCEPT_TOKEN(anon_sym_double); END_STATE(); case 329: if (lookahead == 'o') ADVANCE(386); END_STATE(); case 330: ACCEPT_TOKEN(anon_sym_entity); END_STATE(); case 331: ACCEPT_TOKEN(anon_sym_exists); END_STATE(); case 332: if (lookahead == 'i') ADVANCE(387); END_STATE(); case 333: ACCEPT_TOKEN(anon_sym_forall); END_STATE(); case 334: if (lookahead == 'o') ADVANCE(388); END_STATE(); case 335: ACCEPT_TOKEN(anon_sym_gMonth); if (lookahead == 'D') ADVANCE(389); END_STATE(); case 336: if (lookahead == 'o') ADVANCE(390); END_STATE(); case 337: if (lookahead == 'a') ADVANCE(391); END_STATE(); case 338: if (lookahead == 't') ADVANCE(392); END_STATE(); case 339: if (lookahead == 's') ADVANCE(393); END_STATE(); case 340: ACCEPT_TOKEN(anon_sym_import); END_STATE(); case 341: if (lookahead == 'r') ADVANCE(394); END_STATE(); case 342: if (lookahead == 'e') ADVANCE(395); END_STATE(); case 343: if (lookahead == 'g') ADVANCE(396); END_STATE(); case 344: ACCEPT_TOKEN(anon_sym_length); END_STATE(); case 345: if (lookahead == 'l') ADVANCE(397); END_STATE(); case 346: if (lookahead == 'l') ADVANCE(398); END_STATE(); case 347: if (lookahead == 'g') ADVANCE(399); END_STATE(); case 348: if (lookahead == 'l') ADVANCE(400); END_STATE(); case 349: if (lookahead == 'l') ADVANCE(401); END_STATE(); case 350: if (lookahead == 'g') ADVANCE(402); END_STATE(); case 351: ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 352: if (lookahead == 'v') ADVANCE(403); END_STATE(); case 353: if (lookahead == 'a') ADVANCE(404); END_STATE(); case 354: if (lookahead == 'i') ADVANCE(405); END_STATE(); case 355: if (lookahead == 'q') ADVANCE(406); END_STATE(); case 356: if (lookahead == 'i') ADVANCE(407); END_STATE(); case 357: ACCEPT_TOKEN(sym_opaque); END_STATE(); case 358: if (lookahead == 'a') ADVANCE(408); END_STATE(); case 359: if (lookahead == 'd') ADVANCE(409); END_STATE(); case 360: ACCEPT_TOKEN(anon_sym_parent); END_STATE(); case 361: if (lookahead == 'n') ADVANCE(410); END_STATE(); case 362: if (lookahead == 'v') ADVANCE(411); END_STATE(); case 363: if (lookahead == 'i') ADVANCE(412); END_STATE(); case 364: if (lookahead == 't') ADVANCE(413); END_STATE(); case 365: if (lookahead == 'a') ADVANCE(414); END_STATE(); case 366: if (lookahead == 'e') ADVANCE(415); END_STATE(); case 367: ACCEPT_TOKEN(anon_sym_source); END_STATE(); case 368: ACCEPT_TOKEN(anon_sym_string); END_STATE(); case 369: if (lookahead == 'u') ADVANCE(416); END_STATE(); case 370: if (lookahead == 'i') ADVANCE(417); END_STATE(); case 371: ACCEPT_TOKEN(anon_sym_unique); END_STATE(); case 372: if (lookahead == 'n') ADVANCE(418); END_STATE(); case 373: if (lookahead == 'r') ADVANCE(419); END_STATE(); case 374: if (lookahead == 'e') ADVANCE(420); END_STATE(); case 375: if (lookahead == 'n') ADVANCE(421); END_STATE(); case 376: if (lookahead == 'n') ADVANCE(422); END_STATE(); case 377: ACCEPT_TOKEN(anon_sym_Nothing); END_STATE(); case 378: if (lookahead == 'i') ADVANCE(423); END_STATE(); case 379: ACCEPT_TOKEN(anon_sym_boolean); END_STATE(); case 380: if (lookahead == 'e') ADVANCE(424); END_STATE(); case 381: if (lookahead == 'e') ADVANCE(425); END_STATE(); case 382: if (lookahead == 'e') ADVANCE(426); END_STATE(); case 383: if (lookahead == 'D') ADVANCE(427); END_STATE(); case 384: ACCEPT_TOKEN(anon_sym_decimal); END_STATE(); case 385: if (lookahead == 'o') ADVANCE(428); END_STATE(); case 386: if (lookahead == 'n') ADVANCE(429); END_STATE(); case 387: if (lookahead == 't') ADVANCE(430); END_STATE(); case 388: if (lookahead == 'n') ADVANCE(431); END_STATE(); case 389: if (lookahead == 'a') ADVANCE(432); END_STATE(); case 390: if (lookahead == 'n') ADVANCE(433); END_STATE(); case 391: if (lookahead == 'r') ADVANCE(434); END_STATE(); case 392: if (lookahead == 'y') ADVANCE(435); END_STATE(); case 393: ACCEPT_TOKEN(anon_sym_implies); END_STATE(); case 394: ACCEPT_TOKEN(anon_sym_integer); END_STATE(); case 395: if (lookahead == 'c') ADVANCE(436); END_STATE(); case 396: if (lookahead == 'e') ADVANCE(437); END_STATE(); case 397: if (lookahead == 'u') ADVANCE(438); END_STATE(); case 398: if (lookahead == 'u') ADVANCE(439); END_STATE(); case 399: if (lookahead == 't') ADVANCE(440); END_STATE(); case 400: if (lookahead == 'u') ADVANCE(441); END_STATE(); case 401: if (lookahead == 'u') ADVANCE(442); END_STATE(); case 402: if (lookahead == 't') ADVANCE(443); END_STATE(); case 403: if (lookahead == 'e') ADVANCE(444); END_STATE(); case 404: if (lookahead == 't') ADVANCE(445); END_STATE(); case 405: if (lookahead == 't') ADVANCE(446); END_STATE(); case 406: if (lookahead == 'u') ADVANCE(447); END_STATE(); case 407: if (lookahead == 'z') ADVANCE(448); END_STATE(); case 408: if (lookahead == 'l') ADVANCE(449); END_STATE(); case 409: ACCEPT_TOKEN(anon_sym_ordered); END_STATE(); case 410: ACCEPT_TOKEN(anon_sym_pattern); END_STATE(); case 411: if (lookahead == 'e') ADVANCE(450); END_STATE(); case 412: if (lookahead == 't') ADVANCE(451); END_STATE(); case 413: if (lookahead == 'y') ADVANCE(452); END_STATE(); case 414: if (lookahead == 'l') ADVANCE(453); END_STATE(); case 415: if (lookahead == 'd') ADVANCE(454); END_STATE(); case 416: if (lookahead == 'r') ADVANCE(455); END_STATE(); case 417: if (lookahead == 'g') ADVANCE(456); END_STATE(); case 418: ACCEPT_TOKEN(sym_unknown_type); END_STATE(); case 419: if (lookahead == 'e') ADVANCE(457); END_STATE(); case 420: if (lookahead == 'd') ADVANCE(458); END_STATE(); case 421: ACCEPT_TOKEN(anon_sym_version); END_STATE(); case 422: if (lookahead == 't') ADVANCE(459); END_STATE(); case 423: if (lookahead == 'n') ADVANCE(460); END_STATE(); case 424: if (lookahead == 'n') ADVANCE(461); END_STATE(); case 425: ACCEPT_TOKEN(anon_sym_datatype); END_STATE(); case 426: ACCEPT_TOKEN(anon_sym_dateTime); if (lookahead == 'S') ADVANCE(462); END_STATE(); case 427: if (lookahead == 'u') ADVANCE(463); END_STATE(); case 428: if (lookahead == 'n') ADVANCE(464); END_STATE(); case 429: ACCEPT_TOKEN(anon_sym_duration); END_STATE(); case 430: if (lookahead == 'T') ADVANCE(465); END_STATE(); case 431: if (lookahead == 'D') ADVANCE(466); END_STATE(); case 432: if (lookahead == 'y') ADVANCE(467); END_STATE(); case 433: if (lookahead == 't') ADVANCE(468); END_STATE(); case 434: if (lookahead == 'y') ADVANCE(469); END_STATE(); case 435: ACCEPT_TOKEN(anon_sym_identity); END_STATE(); case 436: if (lookahead == 't') ADVANCE(470); END_STATE(); case 437: ACCEPT_TOKEN(anon_sym_language); END_STATE(); case 438: if (lookahead == 's') ADVANCE(471); END_STATE(); case 439: if (lookahead == 's') ADVANCE(472); END_STATE(); case 440: if (lookahead == 'h') ADVANCE(473); END_STATE(); case 441: if (lookahead == 's') ADVANCE(474); END_STATE(); case 442: if (lookahead == 's') ADVANCE(475); END_STATE(); case 443: if (lookahead == 'h') ADVANCE(476); END_STATE(); case 444: if (lookahead == 'I') ADVANCE(477); END_STATE(); case 445: if (lookahead == 'i') ADVANCE(478); END_STATE(); case 446: if (lookahead == 'i') ADVANCE(479); END_STATE(); case 447: if (lookahead == 'e') ADVANCE(480); END_STATE(); case 448: if (lookahead == 'e') ADVANCE(481); END_STATE(); case 449: ACCEPT_TOKEN(anon_sym_optional); END_STATE(); case 450: if (lookahead == 'I') ADVANCE(482); END_STATE(); case 451: if (lookahead == 'e') ADVANCE(483); END_STATE(); case 452: ACCEPT_TOKEN(anon_sym_property); END_STATE(); case 453: ACCEPT_TOKEN(anon_sym_rational); END_STATE(); case 454: ACCEPT_TOKEN(anon_sym_required); END_STATE(); case 455: if (lookahead == 'e') ADVANCE(484); END_STATE(); case 456: if (lookahead == 'i') ADVANCE(485); END_STATE(); case 457: if (lookahead == 'd') ADVANCE(486); END_STATE(); case 458: ACCEPT_TOKEN(anon_sym_unsigned); if (lookahead == 'B') ADVANCE(487); if (lookahead == 'I') ADVANCE(488); if (lookahead == 'L') ADVANCE(489); if (lookahead == 'S') ADVANCE(490); END_STATE(); case 459: if (lookahead == 'h') ADVANCE(491); END_STATE(); case 460: if (lookahead == 'a') ADVANCE(492); END_STATE(); case 461: if (lookahead == 't') ADVANCE(493); END_STATE(); case 462: if (lookahead == 't') ADVANCE(494); END_STATE(); case 463: if (lookahead == 'r') ADVANCE(495); END_STATE(); case 464: ACCEPT_TOKEN(anon_sym_dimension); END_STATE(); case 465: if (lookahead == 'i') ADVANCE(496); END_STATE(); case 466: if (lookahead == 'i') ADVANCE(497); END_STATE(); case 467: ACCEPT_TOKEN(anon_sym_gMonthDay); END_STATE(); case 468: if (lookahead == 'h') ADVANCE(498); END_STATE(); case 469: ACCEPT_TOKEN(anon_sym_hexBinary); END_STATE(); case 470: if (lookahead == 'i') ADVANCE(499); END_STATE(); case 471: if (lookahead == 'i') ADVANCE(500); END_STATE(); case 472: if (lookahead == 'i') ADVANCE(501); END_STATE(); case 473: ACCEPT_TOKEN(anon_sym_maxLength); END_STATE(); case 474: if (lookahead == 'i') ADVANCE(502); END_STATE(); case 475: if (lookahead == 'i') ADVANCE(503); END_STATE(); case 476: ACCEPT_TOKEN(anon_sym_minLength); END_STATE(); case 477: if (lookahead == 'n') ADVANCE(504); END_STATE(); case 478: if (lookahead == 'v') ADVANCE(505); END_STATE(); case 479: if (lookahead == 'v') ADVANCE(506); END_STATE(); case 480: ACCEPT_TOKEN(anon_sym_nonunique); END_STATE(); case 481: if (lookahead == 'd') ADVANCE(507); END_STATE(); case 482: if (lookahead == 'n') ADVANCE(508); END_STATE(); case 483: if (lookahead == 'd') ADVANCE(509); END_STATE(); case 484: ACCEPT_TOKEN(anon_sym_structure); END_STATE(); case 485: if (lookahead == 't') ADVANCE(510); END_STATE(); case 486: ACCEPT_TOKEN(anon_sym_unordered); END_STATE(); case 487: if (lookahead == 'y') ADVANCE(511); END_STATE(); case 488: if (lookahead == 'n') ADVANCE(512); END_STATE(); case 489: if (lookahead == 'o') ADVANCE(513); END_STATE(); case 490: if (lookahead == 'h') ADVANCE(514); END_STATE(); case 491: if (lookahead == 'D') ADVANCE(515); END_STATE(); case 492: if (lookahead == 'r') ADVANCE(516); END_STATE(); case 493: ACCEPT_TOKEN(anon_sym_complement); END_STATE(); case 494: if (lookahead == 'a') ADVANCE(517); END_STATE(); case 495: if (lookahead == 'a') ADVANCE(518); END_STATE(); case 496: if (lookahead == 'm') ADVANCE(519); END_STATE(); case 497: if (lookahead == 'g') ADVANCE(520); END_STATE(); case 498: ACCEPT_TOKEN(anon_sym_gYearMonth); END_STATE(); case 499: if (lookahead == 'o') ADVANCE(521); END_STATE(); case 500: if (lookahead == 'v') ADVANCE(522); END_STATE(); case 501: if (lookahead == 'v') ADVANCE(523); END_STATE(); case 502: if (lookahead == 'v') ADVANCE(524); END_STATE(); case 503: if (lookahead == 'v') ADVANCE(525); END_STATE(); case 504: if (lookahead == 't') ADVANCE(526); END_STATE(); case 505: if (lookahead == 'e') ADVANCE(527); END_STATE(); case 506: if (lookahead == 'e') ADVANCE(528); END_STATE(); case 507: if (lookahead == 'S') ADVANCE(529); END_STATE(); case 508: if (lookahead == 't') ADVANCE(530); END_STATE(); case 509: ACCEPT_TOKEN(anon_sym_prohibited); END_STATE(); case 510: if (lookahead == 's') ADVANCE(531); END_STATE(); case 511: if (lookahead == 't') ADVANCE(532); END_STATE(); case 512: if (lookahead == 't') ADVANCE(533); END_STATE(); case 513: if (lookahead == 'n') ADVANCE(534); END_STATE(); case 514: if (lookahead == 'o') ADVANCE(535); END_STATE(); case 515: if (lookahead == 'u') ADVANCE(536); END_STATE(); case 516: if (lookahead == 'y') ADVANCE(537); END_STATE(); case 517: if (lookahead == 'm') ADVANCE(538); END_STATE(); case 518: if (lookahead == 't') ADVANCE(539); END_STATE(); case 519: if (lookahead == 'e') ADVANCE(540); END_STATE(); case 520: if (lookahead == 'i') ADVANCE(541); END_STATE(); case 521: if (lookahead == 'n') ADVANCE(542); END_STATE(); case 522: if (lookahead == 'e') ADVANCE(543); END_STATE(); case 523: if (lookahead == 'e') ADVANCE(544); END_STATE(); case 524: if (lookahead == 'e') ADVANCE(545); END_STATE(); case 525: if (lookahead == 'e') ADVANCE(546); END_STATE(); case 526: if (lookahead == 'e') ADVANCE(547); END_STATE(); case 527: if (lookahead == 'I') ADVANCE(548); END_STATE(); case 528: if (lookahead == 'I') ADVANCE(549); END_STATE(); case 529: if (lookahead == 't') ADVANCE(550); END_STATE(); case 530: if (lookahead == 'e') ADVANCE(551); END_STATE(); case 531: ACCEPT_TOKEN(anon_sym_totalDigits); END_STATE(); case 532: if (lookahead == 'e') ADVANCE(552); END_STATE(); case 533: ACCEPT_TOKEN(anon_sym_unsignedInt); END_STATE(); case 534: if (lookahead == 'g') ADVANCE(553); END_STATE(); case 535: if (lookahead == 'r') ADVANCE(554); END_STATE(); case 536: if (lookahead == 'r') ADVANCE(555); END_STATE(); case 537: ACCEPT_TOKEN(anon_sym_base64Binary); END_STATE(); case 538: if (lookahead == 'p') ADVANCE(556); END_STATE(); case 539: if (lookahead == 'i') ADVANCE(557); END_STATE(); case 540: if (lookahead == 'z') ADVANCE(558); END_STATE(); case 541: if (lookahead == 't') ADVANCE(559); END_STATE(); case 542: ACCEPT_TOKEN(anon_sym_intersection); END_STATE(); case 543: ACCEPT_TOKEN(anon_sym_maxExclusive); END_STATE(); case 544: ACCEPT_TOKEN(anon_sym_maxInclusive); END_STATE(); case 545: ACCEPT_TOKEN(anon_sym_minExclusive); END_STATE(); case 546: ACCEPT_TOKEN(anon_sym_minInclusive); END_STATE(); case 547: if (lookahead == 'g') ADVANCE(560); END_STATE(); case 548: if (lookahead == 'n') ADVANCE(561); END_STATE(); case 549: if (lookahead == 'n') ADVANCE(562); END_STATE(); case 550: if (lookahead == 'r') ADVANCE(563); END_STATE(); case 551: if (lookahead == 'g') ADVANCE(564); END_STATE(); case 552: ACCEPT_TOKEN(anon_sym_unsignedByte); END_STATE(); case 553: ACCEPT_TOKEN(anon_sym_unsignedLong); END_STATE(); case 554: if (lookahead == 't') ADVANCE(565); END_STATE(); case 555: if (lookahead == 'a') ADVANCE(566); END_STATE(); case 556: ACCEPT_TOKEN(anon_sym_dateTimeStamp); END_STATE(); case 557: if (lookahead == 'o') ADVANCE(567); END_STATE(); case 558: if (lookahead == 'o') ADVANCE(568); END_STATE(); case 559: if (lookahead == 's') ADVANCE(569); END_STATE(); case 560: if (lookahead == 'e') ADVANCE(570); END_STATE(); case 561: if (lookahead == 't') ADVANCE(571); END_STATE(); case 562: if (lookahead == 't') ADVANCE(572); END_STATE(); case 563: if (lookahead == 'i') ADVANCE(573); END_STATE(); case 564: if (lookahead == 'e') ADVANCE(574); END_STATE(); case 565: ACCEPT_TOKEN(anon_sym_unsignedShort); END_STATE(); case 566: if (lookahead == 't') ADVANCE(575); END_STATE(); case 567: if (lookahead == 'n') ADVANCE(576); END_STATE(); case 568: if (lookahead == 'n') ADVANCE(577); END_STATE(); case 569: ACCEPT_TOKEN(anon_sym_fractionDigits); END_STATE(); case 570: if (lookahead == 'r') ADVANCE(578); END_STATE(); case 571: if (lookahead == 'e') ADVANCE(579); END_STATE(); case 572: if (lookahead == 'e') ADVANCE(580); END_STATE(); case 573: if (lookahead == 'n') ADVANCE(581); END_STATE(); case 574: if (lookahead == 'r') ADVANCE(582); END_STATE(); case 575: if (lookahead == 'i') ADVANCE(583); END_STATE(); case 576: ACCEPT_TOKEN(anon_sym_dayTimeDuration); END_STATE(); case 577: if (lookahead == 'e') ADVANCE(584); END_STATE(); case 578: ACCEPT_TOKEN(anon_sym_negativeInteger); END_STATE(); case 579: if (lookahead == 'g') ADVANCE(585); END_STATE(); case 580: if (lookahead == 'g') ADVANCE(586); END_STATE(); case 581: if (lookahead == 'g') ADVANCE(587); END_STATE(); case 582: ACCEPT_TOKEN(anon_sym_positiveInteger); END_STATE(); case 583: if (lookahead == 'o') ADVANCE(588); END_STATE(); case 584: ACCEPT_TOKEN(anon_sym_explicitTimezone); END_STATE(); case 585: if (lookahead == 'e') ADVANCE(589); END_STATE(); case 586: if (lookahead == 'e') ADVANCE(590); END_STATE(); case 587: ACCEPT_TOKEN(anon_sym_normalizedString); END_STATE(); case 588: if (lookahead == 'n') ADVANCE(591); END_STATE(); case 589: if (lookahead == 'r') ADVANCE(592); END_STATE(); case 590: if (lookahead == 'r') ADVANCE(593); END_STATE(); case 591: ACCEPT_TOKEN(anon_sym_yearMonthDuration); END_STATE(); case 592: ACCEPT_TOKEN(anon_sym_nonNegativeInteger); END_STATE(); case 593: ACCEPT_TOKEN(anon_sym_nonPositiveInteger); END_STATE(); default: return false; } } static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 6}, [2] = {.lex_state = 6}, [3] = {.lex_state = 6}, [4] = {.lex_state = 9}, [5] = {.lex_state = 6}, [6] = {.lex_state = 6}, [7] = {.lex_state = 6}, [8] = {.lex_state = 6}, [9] = {.lex_state = 6}, [10] = {.lex_state = 6}, [11] = {.lex_state = 6}, [12] = {.lex_state = 6}, [13] = {.lex_state = 6}, [14] = {.lex_state = 6}, [15] = {.lex_state = 6}, [16] = {.lex_state = 6}, [17] = {.lex_state = 6}, [18] = {.lex_state = 6}, [19] = {.lex_state = 6}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, [22] = {.lex_state = 6}, [23] = {.lex_state = 1}, [24] = {.lex_state = 1}, [25] = {.lex_state = 1}, [26] = {.lex_state = 1}, [27] = {.lex_state = 1}, [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, [31] = {.lex_state = 1}, [32] = {.lex_state = 6}, [33] = {.lex_state = 6}, [34] = {.lex_state = 1}, [35] = {.lex_state = 6}, [36] = {.lex_state = 6}, [37] = {.lex_state = 6}, [38] = {.lex_state = 6}, [39] = {.lex_state = 6}, [40] = {.lex_state = 6}, [41] = {.lex_state = 6}, [42] = {.lex_state = 6}, [43] = {.lex_state = 6}, [44] = {.lex_state = 6}, [45] = {.lex_state = 1}, [46] = {.lex_state = 1}, [47] = {.lex_state = 1}, [48] = {.lex_state = 1}, [49] = {.lex_state = 1}, [50] = {.lex_state = 1}, [51] = {.lex_state = 1}, [52] = {.lex_state = 1}, [53] = {.lex_state = 6}, [54] = {.lex_state = 6}, [55] = {.lex_state = 1}, [56] = {.lex_state = 1}, [57] = {.lex_state = 1}, [58] = {.lex_state = 1}, [59] = {.lex_state = 1}, [60] = {.lex_state = 1}, [61] = {.lex_state = 1}, [62] = {.lex_state = 6}, [63] = {.lex_state = 1}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, [66] = {.lex_state = 1}, [67] = {.lex_state = 1}, [68] = {.lex_state = 1}, [69] = {.lex_state = 1}, [70] = {.lex_state = 1}, [71] = {.lex_state = 6}, [72] = {.lex_state = 1}, [73] = {.lex_state = 1}, [74] = {.lex_state = 6}, [75] = {.lex_state = 6}, [76] = {.lex_state = 6}, [77] = {.lex_state = 6}, [78] = {.lex_state = 1}, [79] = {.lex_state = 1}, [80] = {.lex_state = 1}, [81] = {.lex_state = 6}, [82] = {.lex_state = 6}, [83] = {.lex_state = 6}, [84] = {.lex_state = 6}, [85] = {.lex_state = 6}, [86] = {.lex_state = 6}, [87] = {.lex_state = 6}, [88] = {.lex_state = 6}, [89] = {.lex_state = 6}, [90] = {.lex_state = 6}, [91] = {.lex_state = 6}, [92] = {.lex_state = 6}, [93] = {.lex_state = 6}, [94] = {.lex_state = 6}, [95] = {.lex_state = 1}, [96] = {.lex_state = 1}, [97] = {.lex_state = 1}, [98] = {.lex_state = 1}, [99] = {.lex_state = 1}, [100] = {.lex_state = 6}, [101] = {.lex_state = 1}, [102] = {.lex_state = 6}, [103] = {.lex_state = 1}, [104] = {.lex_state = 1}, [105] = {.lex_state = 1}, [106] = {.lex_state = 1}, [107] = {.lex_state = 1}, [108] = {.lex_state = 1}, [109] = {.lex_state = 1}, [110] = {.lex_state = 1}, [111] = {.lex_state = 1}, [112] = {.lex_state = 6}, [113] = {.lex_state = 2}, [114] = {.lex_state = 1}, [115] = {.lex_state = 1}, [116] = {.lex_state = 1}, [117] = {.lex_state = 6}, [118] = {.lex_state = 6}, [119] = {.lex_state = 6}, [120] = {.lex_state = 1}, [121] = {.lex_state = 1}, [122] = {.lex_state = 1}, [123] = {.lex_state = 1}, [124] = {.lex_state = 1}, [125] = {.lex_state = 1}, [126] = {.lex_state = 1}, [127] = {.lex_state = 1}, [128] = {.lex_state = 6}, [129] = {.lex_state = 1}, [130] = {.lex_state = 1}, [131] = {.lex_state = 6}, [132] = {.lex_state = 1}, [133] = {.lex_state = 6}, [134] = {.lex_state = 6}, [135] = {.lex_state = 6}, [136] = {.lex_state = 6}, [137] = {.lex_state = 6}, [138] = {.lex_state = 1}, [139] = {.lex_state = 6}, [140] = {.lex_state = 6}, [141] = {.lex_state = 6}, [142] = {.lex_state = 6}, [143] = {.lex_state = 1}, [144] = {.lex_state = 1}, [145] = {.lex_state = 1}, [146] = {.lex_state = 1}, [147] = {.lex_state = 1}, [148] = {.lex_state = 1}, [149] = {.lex_state = 1}, [150] = {.lex_state = 1}, [151] = {.lex_state = 1}, [152] = {.lex_state = 1}, [153] = {.lex_state = 20}, [154] = {.lex_state = 1}, [155] = {.lex_state = 1}, [156] = {.lex_state = 6}, [157] = {.lex_state = 6}, [158] = {.lex_state = 6}, [159] = {.lex_state = 1}, [160] = {.lex_state = 6}, [161] = {.lex_state = 6}, [162] = {.lex_state = 1}, [163] = {.lex_state = 6}, [164] = {.lex_state = 1}, [165] = {.lex_state = 1}, [166] = {.lex_state = 6}, [167] = {.lex_state = 1}, [168] = {.lex_state = 6}, [169] = {.lex_state = 6}, [170] = {.lex_state = 6}, [171] = {.lex_state = 6}, [172] = {.lex_state = 6}, [173] = {.lex_state = 6}, [174] = {.lex_state = 6}, [175] = {.lex_state = 6}, [176] = {.lex_state = 6}, [177] = {.lex_state = 1}, [178] = {.lex_state = 6}, [179] = {.lex_state = 1}, [180] = {.lex_state = 6}, [181] = {.lex_state = 1}, [182] = {.lex_state = 6}, [183] = {.lex_state = 6}, [184] = {.lex_state = 6}, [185] = {.lex_state = 6}, [186] = {.lex_state = 6}, [187] = {.lex_state = 6}, [188] = {.lex_state = 6}, [189] = {.lex_state = 1}, [190] = {.lex_state = 1}, [191] = {.lex_state = 6}, [192] = {.lex_state = 6}, [193] = {.lex_state = 6}, [194] = {.lex_state = 6}, [195] = {.lex_state = 1}, [196] = {.lex_state = 1}, [197] = {.lex_state = 6}, [198] = {.lex_state = 6}, [199] = {.lex_state = 6}, [200] = {.lex_state = 1}, [201] = {.lex_state = 6}, [202] = {.lex_state = 6}, [203] = {.lex_state = 6}, [204] = {.lex_state = 6}, [205] = {.lex_state = 6}, [206] = {.lex_state = 6}, [207] = {.lex_state = 6}, [208] = {.lex_state = 6}, [209] = {.lex_state = 6}, [210] = {.lex_state = 1}, [211] = {.lex_state = 6}, [212] = {.lex_state = 6}, [213] = {.lex_state = 6}, [214] = {.lex_state = 6}, [215] = {.lex_state = 6}, [216] = {.lex_state = 6}, [217] = {.lex_state = 6}, [218] = {.lex_state = 6}, [219] = {.lex_state = 6}, [220] = {.lex_state = 6}, [221] = {.lex_state = 6}, [222] = {.lex_state = 6}, [223] = {.lex_state = 6}, [224] = {.lex_state = 6}, [225] = {.lex_state = 6}, [226] = {.lex_state = 6}, [227] = {.lex_state = 6}, [228] = {.lex_state = 6}, [229] = {.lex_state = 6}, [230] = {.lex_state = 6}, [231] = {.lex_state = 6}, [232] = {.lex_state = 6}, [233] = {.lex_state = 6}, [234] = {.lex_state = 6}, [235] = {.lex_state = 6}, [236] = {.lex_state = 6}, [237] = {.lex_state = 6}, [238] = {.lex_state = 6}, [239] = {.lex_state = 6}, [240] = {.lex_state = 6}, [241] = {.lex_state = 6}, [242] = {.lex_state = 6}, [243] = {.lex_state = 6}, [244] = {.lex_state = 6}, [245] = {.lex_state = 6}, [246] = {.lex_state = 6}, [247] = {.lex_state = 6}, [248] = {.lex_state = 6}, [249] = {.lex_state = 6}, [250] = {.lex_state = 6}, [251] = {.lex_state = 6}, [252] = {.lex_state = 6}, [253] = {.lex_state = 6}, [254] = {.lex_state = 6}, [255] = {.lex_state = 6}, [256] = {.lex_state = 6}, [257] = {.lex_state = 6}, [258] = {.lex_state = 6}, [259] = {.lex_state = 6}, [260] = {.lex_state = 6}, [261] = {.lex_state = 6}, [262] = {.lex_state = 6}, [263] = {.lex_state = 6}, [264] = {.lex_state = 6}, [265] = {.lex_state = 6}, [266] = {.lex_state = 6}, [267] = {.lex_state = 6}, [268] = {.lex_state = 6}, [269] = {.lex_state = 6}, [270] = {.lex_state = 6}, [271] = {.lex_state = 6}, [272] = {.lex_state = 6}, [273] = {.lex_state = 6}, [274] = {.lex_state = 6}, [275] = {.lex_state = 6}, [276] = {.lex_state = 6}, [277] = {.lex_state = 6}, [278] = {.lex_state = 6}, [279] = {.lex_state = 6}, [280] = {.lex_state = 6}, [281] = {.lex_state = 6}, [282] = {.lex_state = 6}, [283] = {.lex_state = 6}, [284] = {.lex_state = 6}, [285] = {.lex_state = 6}, [286] = {.lex_state = 6}, [287] = {.lex_state = 6}, [288] = {.lex_state = 6}, [289] = {.lex_state = 6}, [290] = {.lex_state = 6}, [291] = {.lex_state = 6}, [292] = {.lex_state = 6}, [293] = {.lex_state = 6}, [294] = {.lex_state = 6}, [295] = {.lex_state = 6}, [296] = {.lex_state = 6}, [297] = {.lex_state = 6}, [298] = {.lex_state = 6}, [299] = {.lex_state = 6}, [300] = {.lex_state = 6}, [301] = {.lex_state = 6}, [302] = {.lex_state = 6}, [303] = {.lex_state = 6}, [304] = {.lex_state = 6}, [305] = {.lex_state = 6}, [306] = {.lex_state = 6}, [307] = {.lex_state = 6}, [308] = {.lex_state = 6}, [309] = {.lex_state = 6}, [310] = {.lex_state = 6}, [311] = {.lex_state = 6}, [312] = {.lex_state = 6}, [313] = {.lex_state = 6}, [314] = {.lex_state = 6}, [315] = {.lex_state = 6}, [316] = {.lex_state = 6}, [317] = {.lex_state = 6}, [318] = {.lex_state = 6}, [319] = {.lex_state = 6}, [320] = {.lex_state = 6}, [321] = {.lex_state = 6}, [322] = {.lex_state = 6}, [323] = {.lex_state = 6}, [324] = {.lex_state = 1}, [325] = {.lex_state = 6}, [326] = {.lex_state = 6}, [327] = {.lex_state = 6}, [328] = {.lex_state = 6}, [329] = {.lex_state = 6}, [330] = {.lex_state = 6}, [331] = {.lex_state = 6}, [332] = {.lex_state = 6}, [333] = {.lex_state = 6}, [334] = {.lex_state = 6}, [335] = {.lex_state = 6}, [336] = {.lex_state = 6}, [337] = {.lex_state = 6}, [338] = {.lex_state = 6}, [339] = {.lex_state = 6}, [340] = {.lex_state = 6}, [341] = {.lex_state = 6}, [342] = {.lex_state = 6}, [343] = {.lex_state = 6}, [344] = {.lex_state = 6}, [345] = {.lex_state = 6}, [346] = {.lex_state = 6}, [347] = {.lex_state = 6}, [348] = {.lex_state = 6}, [349] = {.lex_state = 6}, [350] = {.lex_state = 6}, [351] = {.lex_state = 6}, [352] = {.lex_state = 6}, [353] = {.lex_state = 6}, [354] = {.lex_state = 6}, [355] = {.lex_state = 6}, [356] = {.lex_state = 6}, [357] = {.lex_state = 6}, [358] = {.lex_state = 6}, [359] = {.lex_state = 6}, [360] = {.lex_state = 6}, [361] = {.lex_state = 6}, [362] = {.lex_state = 1}, [363] = {.lex_state = 0}, [364] = {.lex_state = 6}, [365] = {.lex_state = 6}, [366] = {.lex_state = 6}, [367] = {.lex_state = 6}, [368] = {.lex_state = 6}, [369] = {.lex_state = 6}, [370] = {.lex_state = 6}, [371] = {.lex_state = 6}, [372] = {.lex_state = 6}, [373] = {.lex_state = 6}, [374] = {.lex_state = 6}, [375] = {.lex_state = 6}, [376] = {.lex_state = 9}, [377] = {.lex_state = 6}, [378] = {.lex_state = 6}, [379] = {.lex_state = 6}, [380] = {.lex_state = 6}, [381] = {.lex_state = 6}, [382] = {.lex_state = 6}, [383] = {.lex_state = 6}, [384] = {.lex_state = 6}, [385] = {.lex_state = 6}, [386] = {.lex_state = 6}, [387] = {.lex_state = 6}, [388] = {.lex_state = 0}, [389] = {.lex_state = 0}, [390] = {.lex_state = 6}, [391] = {.lex_state = 6}, [392] = {.lex_state = 6}, [393] = {.lex_state = 6}, [394] = {.lex_state = 6}, [395] = {.lex_state = 0}, [396] = {.lex_state = 6}, [397] = {.lex_state = 6}, [398] = {.lex_state = 6}, [399] = {.lex_state = 6}, [400] = {.lex_state = 0}, [401] = {.lex_state = 6}, [402] = {.lex_state = 6}, [403] = {.lex_state = 6}, [404] = {.lex_state = 6}, [405] = {.lex_state = 6}, [406] = {.lex_state = 6}, [407] = {.lex_state = 6}, [408] = {.lex_state = 6}, [409] = {.lex_state = 6}, [410] = {.lex_state = 20}, [411] = {.lex_state = 6}, [412] = {.lex_state = 6}, [413] = {.lex_state = 0}, [414] = {.lex_state = 6}, [415] = {.lex_state = 6}, [416] = {.lex_state = 0}, [417] = {.lex_state = 0}, [418] = {.lex_state = 6}, [419] = {.lex_state = 2}, [420] = {.lex_state = 2}, [421] = {.lex_state = 2}, [422] = {.lex_state = 9}, [423] = {.lex_state = 0}, [424] = {.lex_state = 22}, [425] = {.lex_state = 6}, [426] = {.lex_state = 2}, [427] = {.lex_state = 6}, [428] = {.lex_state = 2}, [429] = {.lex_state = 6}, [430] = {.lex_state = 1}, [431] = {.lex_state = 6}, [432] = {.lex_state = 22}, [433] = {.lex_state = 22}, [434] = {.lex_state = 6}, [435] = {.lex_state = 6}, [436] = {.lex_state = 22}, [437] = {.lex_state = 6}, [438] = {.lex_state = 22}, [439] = {.lex_state = 6}, [440] = {.lex_state = 6}, [441] = {.lex_state = 6}, [442] = {.lex_state = 0}, [443] = {.lex_state = 6}, [444] = {.lex_state = 6}, [445] = {.lex_state = 6}, [446] = {.lex_state = 6}, [447] = {.lex_state = 6}, [448] = {.lex_state = 6}, [449] = {.lex_state = 6}, [450] = {.lex_state = 6}, [451] = {.lex_state = 6}, [452] = {.lex_state = 6}, [453] = {.lex_state = 6}, [454] = {.lex_state = 6}, [455] = {.lex_state = 22}, [456] = {.lex_state = 6}, [457] = {.lex_state = 6}, [458] = {.lex_state = 1}, [459] = {.lex_state = 6}, [460] = {.lex_state = 0}, [461] = {.lex_state = 6}, [462] = {.lex_state = 6}, [463] = {.lex_state = 6}, [464] = {.lex_state = 0}, [465] = {.lex_state = 6}, [466] = {.lex_state = 6}, [467] = {.lex_state = 6}, [468] = {.lex_state = 6}, [469] = {.lex_state = 2}, [470] = {.lex_state = 6}, [471] = {.lex_state = 6}, [472] = {.lex_state = 6}, [473] = {.lex_state = 6}, [474] = {.lex_state = 0}, [475] = {.lex_state = 6}, [476] = {.lex_state = 6}, [477] = {.lex_state = 0}, [478] = {.lex_state = 0}, [479] = {.lex_state = 0}, [480] = {.lex_state = 0}, [481] = {.lex_state = 0}, [482] = {.lex_state = 6}, [483] = {.lex_state = 0}, [484] = {.lex_state = 0}, [485] = {.lex_state = 6}, [486] = {.lex_state = 0}, [487] = {.lex_state = 6}, [488] = {.lex_state = 0}, [489] = {.lex_state = 0}, [490] = {.lex_state = 6}, [491] = {.lex_state = 6}, [492] = {.lex_state = 6}, [493] = {.lex_state = 6}, [494] = {.lex_state = 0}, [495] = {.lex_state = 0}, [496] = {.lex_state = 0}, [497] = {.lex_state = 0}, [498] = {.lex_state = 0}, [499] = {.lex_state = 0}, [500] = {.lex_state = 0}, [501] = {.lex_state = 6}, [502] = {.lex_state = 6}, [503] = {.lex_state = 6}, [504] = {.lex_state = 6}, [505] = {.lex_state = 0}, [506] = {.lex_state = 6}, [507] = {.lex_state = 0}, [508] = {.lex_state = 0}, [509] = {.lex_state = 0}, [510] = {.lex_state = 0}, [511] = {.lex_state = 0}, [512] = {.lex_state = 0}, [513] = {.lex_state = 0}, [514] = {.lex_state = 0}, [515] = {.lex_state = 6}, [516] = {.lex_state = 0}, [517] = {.lex_state = 6}, [518] = {.lex_state = 0}, [519] = {.lex_state = 6}, [520] = {.lex_state = 0}, [521] = {.lex_state = 1}, [522] = {.lex_state = 6}, [523] = {.lex_state = 6}, [524] = {.lex_state = 6}, [525] = {.lex_state = 1}, [526] = {.lex_state = 6}, [527] = {.lex_state = 0}, [528] = {.lex_state = 6}, [529] = {.lex_state = 6}, [530] = {.lex_state = 6}, [531] = {.lex_state = 6}, [532] = {.lex_state = 6}, [533] = {.lex_state = 6}, [534] = {.lex_state = 6}, [535] = {.lex_state = 6}, [536] = {.lex_state = 6}, [537] = {.lex_state = 6}, [538] = {.lex_state = 6}, [539] = {.lex_state = 6}, [540] = {.lex_state = 0}, [541] = {.lex_state = 0}, [542] = {.lex_state = 0}, [543] = {.lex_state = 0}, [544] = {.lex_state = 0}, [545] = {.lex_state = 0}, [546] = {.lex_state = 121}, [547] = {.lex_state = 6}, [548] = {.lex_state = 0}, [549] = {.lex_state = 0}, [550] = {.lex_state = 121}, [551] = {.lex_state = 0}, [552] = {.lex_state = 0}, [553] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), [anon_sym_version] = ACTIONS(1), [anon_sym_is] = ACTIONS(1), [anon_sym_end] = ACTIONS(1), [anon_sym_import] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_from] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), [anon_sym_COLON_COLON2] = ACTIONS(1), [anon_sym_as] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_AT] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_assert] = ACTIONS(1), [sym_controlled_language_tag] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_u00b7] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [sym_reserved_self] = ACTIONS(1), [anon_sym_with] = ACTIONS(1), [anon_sym_def] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_Thing] = ACTIONS(1), [anon_sym_Nothing] = ACTIONS(1), [anon_sym_real] = ACTIONS(1), [anon_sym_rational] = ACTIONS(1), [anon_sym_anyURI] = ACTIONS(1), [anon_sym_iri] = ACTIONS(1), [anon_sym_base64Binary] = ACTIONS(1), [anon_sym_boolean] = ACTIONS(1), [anon_sym_date] = ACTIONS(1), [anon_sym_dateTime] = ACTIONS(1), [anon_sym_decimal] = ACTIONS(1), [anon_sym_double] = ACTIONS(1), [anon_sym_duration] = ACTIONS(1), [anon_sym_float] = ACTIONS(1), [anon_sym_gDay] = ACTIONS(1), [anon_sym_gMonth] = ACTIONS(1), [anon_sym_gMonthDay] = ACTIONS(1), [anon_sym_gYearMonth] = ACTIONS(1), [anon_sym_gYear] = ACTIONS(1), [anon_sym_hexBinary] = ACTIONS(1), [anon_sym_binary] = ACTIONS(1), [anon_sym_string] = ACTIONS(1), [anon_sym_time] = ACTIONS(1), [anon_sym_dateTimeStamp] = ACTIONS(1), [anon_sym_dayTimeDuration] = ACTIONS(1), [anon_sym_yearMonthDuration] = ACTIONS(1), [anon_sym_integer] = ACTIONS(1), [anon_sym_long] = ACTIONS(1), [anon_sym_int] = ACTIONS(1), [anon_sym_short] = ACTIONS(1), [anon_sym_byte] = ACTIONS(1), [anon_sym_nonNegativeInteger] = ACTIONS(1), [anon_sym_positiveInteger] = ACTIONS(1), [anon_sym_unsignedLong] = ACTIONS(1), [anon_sym_unsignedInt] = ACTIONS(1), [anon_sym_unsigned] = ACTIONS(1), [anon_sym_unsignedShort] = ACTIONS(1), [anon_sym_unsignedByte] = ACTIONS(1), [anon_sym_nonPositiveInteger] = ACTIONS(1), [anon_sym_negativeInteger] = ACTIONS(1), [anon_sym_normalizedString] = ACTIONS(1), [anon_sym_token] = ACTIONS(1), [anon_sym_language] = ACTIONS(1), [sym_quoted_string] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [anon_sym_POUND_LBRACK] = ACTIONS(1), [sym_hex_byte] = ACTIONS(1), [sym_double] = ACTIONS(1), [sym_decimal] = ACTIONS(1), [sym_integer] = ACTIONS(1), [sym_rational] = ACTIONS(1), [sym_unsigned] = ACTIONS(1), [anon_sym_true] = ACTIONS(1), [anon_sym_u22a4] = ACTIONS(1), [anon_sym_false] = ACTIONS(1), [anon_sym_u22a5] = ACTIONS(1), [anon_sym_datatype] = ACTIONS(1), [sym_opaque] = ACTIONS(1), [anon_sym_length] = ACTIONS(1), [anon_sym_maxLength] = ACTIONS(1), [anon_sym_minLength] = ACTIONS(1), [anon_sym_fractionDigits] = ACTIONS(1), [anon_sym_totalDigits] = ACTIONS(1), [anon_sym_maxExclusive] = ACTIONS(1), [anon_sym_maxInclusive] = ACTIONS(1), [anon_sym_minExclusive] = ACTIONS(1), [anon_sym_minInclusive] = ACTIONS(1), [anon_sym_explicitTimezone] = ACTIONS(1), [anon_sym_required] = ACTIONS(1), [anon_sym_prohibited] = ACTIONS(1), [anon_sym_optional] = ACTIONS(1), [anon_sym_pattern] = ACTIONS(1), [sym_kw_is_fixed] = ACTIONS(1), [anon_sym_dimension] = ACTIONS(1), [anon_sym_source] = ACTIONS(1), [anon_sym_parent] = ACTIONS(1), [anon_sym_entity] = ACTIONS(1), [anon_sym_enum] = ACTIONS(1), [anon_sym_of] = ACTIONS(1), [anon_sym_event] = ACTIONS(1), [anon_sym_property] = ACTIONS(1), [anon_sym_structure] = ACTIONS(1), [anon_sym_union] = ACTIONS(1), [anon_sym_rdf] = ACTIONS(1), [anon_sym_a] = ACTIONS(1), [anon_sym_type] = ACTIONS(1), [anon_sym_class] = ACTIONS(1), [sym_wildcard] = ACTIONS(1), [anon_sym_identity] = ACTIONS(1), [anon_sym_ref] = ACTIONS(1), [sym_unknown_type] = ACTIONS(1), [anon_sym_ordered] = ACTIONS(1), [anon_sym_unordered] = ACTIONS(1), [anon_sym_unique] = ACTIONS(1), [anon_sym_nonunique] = ACTIONS(1), [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_SLASH_EQ] = ACTIONS(1), [anon_sym_u2260] = ACTIONS(1), [sym_op_less_than] = ACTIONS(1), [sym_op_greater_than] = ACTIONS(1), [anon_sym_u2264] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_u2265] = ACTIONS(1), [anon_sym_not] = ACTIONS(1), [anon_sym_u00ac] = ACTIONS(1), [anon_sym_and] = ACTIONS(1), [anon_sym_u2227] = ACTIONS(1), [anon_sym_or] = ACTIONS(1), [anon_sym_u2228] = ACTIONS(1), [anon_sym_xor] = ACTIONS(1), [anon_sym_u22bb] = ACTIONS(1), [anon_sym_implies] = ACTIONS(1), [anon_sym_EQ_EQ_GT] = ACTIONS(1), [anon_sym_u21d2] = ACTIONS(1), [anon_sym_iff] = ACTIONS(1), [anon_sym_u21d4] = ACTIONS(1), [anon_sym_forall] = ACTIONS(1), [anon_sym_u2200] = ACTIONS(1), [anon_sym_exists] = ACTIONS(1), [anon_sym_u2203] = ACTIONS(1), [anon_sym_u222a] = ACTIONS(1), [anon_sym_intersection] = ACTIONS(1), [anon_sym_u2229] = ACTIONS(1), [anon_sym_complement] = ACTIONS(1), [anon_sym_u2216] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_u2208] = ACTIONS(1), [sym_set_op_builder] = ACTIONS(1), [anon_sym_COLON_EQ] = ACTIONS(1), [anon_sym_u2254] = ACTIONS(1), [anon_sym_u2192] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_u2190] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_u2295] = ACTIONS(1), [sym__value_empty_sequence] = ACTIONS(1), [sym_line_comment] = ACTIONS(3), }, [1] = { [sym_module] = STATE(553), [anon_sym_module] = ACTIONS(5), [sym_line_comment] = ACTIONS(3), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(7), 6, anon_sym_as, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(9), 55, anon_sym_version, anon_sym_is, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [69] = 12, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_LBRACE, ACTIONS(21), 1, sym_unknown_type, STATE(16), 1, sym_cardinality_expression, STATE(18), 1, sym_qualified_identifier, STATE(201), 1, sym_type_reference, STATE(169), 3, sym_identifier_reference, sym_builtin_simple_type, sym_mapping_type, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [153] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(27), 1, sym_language_tag, ACTIONS(23), 6, sym_identifier, anon_sym_AT, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(25), 51, anon_sym_is, anon_sym_end, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [221] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(29), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(31), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [286] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(33), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(35), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [351] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(37), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(39), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [416] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(41), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(43), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [481] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(45), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(47), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [546] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(49), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(51), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [611] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(53), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(55), 52, anon_sym_is, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_u2192, anon_sym_DASH_GT, [676] = 11, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(57), 1, anon_sym_LBRACE, STATE(17), 1, sym_function_cardinality_expression, STATE(18), 1, sym_qualified_identifier, STATE(320), 1, sym_function_type_reference, STATE(307), 3, sym_identifier_reference, sym_builtin_simple_type, sym_mapping_type, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [757] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(59), 6, anon_sym_as, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(61), 51, anon_sym_is, anon_sym_end, anon_sym_import, anon_sym_RBRACK, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_with, anon_sym_def, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_u2295, [822] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(21), 1, sym_unknown_type, STATE(18), 1, sym_qualified_identifier, STATE(423), 1, sym_type_reference, STATE(169), 3, sym_identifier_reference, sym_builtin_simple_type, sym_mapping_type, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [900] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(21), 1, sym_unknown_type, STATE(18), 1, sym_qualified_identifier, STATE(479), 1, sym_type_reference, STATE(169), 3, sym_identifier_reference, sym_builtin_simple_type, sym_mapping_type, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [978] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(21), 1, sym_unknown_type, STATE(18), 1, sym_qualified_identifier, STATE(202), 1, sym_type_reference, STATE(169), 3, sym_identifier_reference, sym_builtin_simple_type, sym_mapping_type, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [1056] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, STATE(18), 1, sym_qualified_identifier, STATE(306), 1, sym_function_type_reference, STATE(307), 3, sym_identifier_reference, sym_builtin_simple_type, sym_mapping_type, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [1131] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(63), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(65), 49, anon_sym_is, anon_sym_end, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_with, anon_sym_def, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_u2295, [1193] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(67), 1, sym_opaque, STATE(18), 1, sym_qualified_identifier, STATE(205), 3, sym_identifier_reference, sym_builtin_simple_type, sym__datatype_base, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [1265] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(20), 1, sym_logical_op_negation, STATE(140), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(211), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(548), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1386] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(20), 1, sym_logical_op_negation, STATE(133), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(199), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(548), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1507] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(206), 3, sym_identifier_reference, sym_builtin_simple_type, sym__datatype_base, STATE(128), 5, sym__owl_builtin_types, sym__builtin_primitive_datatypes, sym__derived_date_datetypes, sym__derived_numeric_datatypes, sym__derived_string_datatypes, ACTIONS(19), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(17), 37, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [1576] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(166), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(213), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1697] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(157), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(213), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1818] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(20), 1, sym_logical_op_negation, STATE(141), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(211), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(548), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1939] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(20), 1, sym_logical_op_negation, STATE(142), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(211), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(548), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2060] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(136), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(213), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2181] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(158), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(213), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2302] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(134), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(213), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2423] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(135), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(193), 1, sym_simple_sentence, STATE(213), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2544] = 33, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(20), 1, sym_logical_op_negation, STATE(133), 1, sym_constraint_sentence, STATE(185), 1, sym_boolean_sentence, STATE(187), 1, sym_quantified_sentence, STATE(192), 1, sym_term, STATE(193), 1, sym_simple_sentence, STATE(512), 1, sym__sequence_value_constraints, STATE(548), 1, sym_quantified_variable_binding, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(93), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(186), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(183), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2665] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(101), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(103), 39, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, sym_unknown_type, [2719] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(105), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(107), 39, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, sym_unknown_type, [2773] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(109), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(111), 42, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, anon_sym_RBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [2827] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(113), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(115), 39, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, sym_unknown_type, [2881] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(117), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(119), 39, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, sym_unknown_type, [2935] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(121), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(123), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [2988] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(125), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(127), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3041] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(129), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(131), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3094] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(133), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(135), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3147] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(137), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(139), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3200] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(141), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(143), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3253] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(145), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(147), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3306] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(149), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(151), 38, anon_sym_LPAREN, anon_sym_Thing, anon_sym_Nothing, anon_sym_real, anon_sym_rational, anon_sym_anyURI, anon_sym_iri, anon_sym_base64Binary, anon_sym_boolean, anon_sym_decimal, anon_sym_double, anon_sym_duration, anon_sym_float, anon_sym_gDay, anon_sym_gMonthDay, anon_sym_gYearMonth, anon_sym_hexBinary, anon_sym_binary, anon_sym_string, anon_sym_time, anon_sym_dateTimeStamp, anon_sym_dayTimeDuration, anon_sym_yearMonthDuration, anon_sym_integer, anon_sym_long, anon_sym_short, anon_sym_byte, anon_sym_nonNegativeInteger, anon_sym_positiveInteger, anon_sym_unsignedLong, anon_sym_unsignedInt, anon_sym_unsignedShort, anon_sym_unsignedByte, anon_sym_nonPositiveInteger, anon_sym_negativeInteger, anon_sym_normalizedString, anon_sym_token, anon_sym_language, [3359] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LPAREN, ACTIONS(153), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(155), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [3404] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(159), 1, sym_identifier, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(163), 1, anon_sym_RPAREN, ACTIONS(165), 1, sym_reserved_self, ACTIONS(167), 1, anon_sym_LBRACE, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, STATE(50), 1, aux_sym_actual_arguments_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(145), 1, sym_term, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(150), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(155), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3485] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(159), 1, sym_identifier, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_reserved_self, ACTIONS(167), 1, anon_sym_LBRACE, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(185), 1, anon_sym_RPAREN, STATE(49), 1, aux_sym_actual_arguments_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(145), 1, sym_term, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(150), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(155), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3566] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(159), 1, sym_identifier, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_reserved_self, ACTIONS(167), 1, anon_sym_LBRACE, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(187), 1, anon_sym_RPAREN, STATE(47), 1, aux_sym_actual_arguments_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(145), 1, sym_term, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(150), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(155), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3647] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(189), 1, sym_identifier, ACTIONS(192), 1, anon_sym_LBRACK, ACTIONS(195), 1, anon_sym_RPAREN, ACTIONS(197), 1, sym_reserved_self, ACTIONS(200), 1, anon_sym_LBRACE, ACTIONS(203), 1, sym_quoted_string, ACTIONS(206), 1, anon_sym_LT, ACTIONS(209), 1, anon_sym_POUND_LBRACK, ACTIONS(224), 1, sym__value_empty_sequence, STATE(49), 1, aux_sym_actual_arguments_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(145), 1, sym_term, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(212), 2, sym_double, sym_rational, ACTIONS(218), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(221), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(150), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(215), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(155), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3728] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(159), 1, sym_identifier, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_reserved_self, ACTIONS(167), 1, anon_sym_LBRACE, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(227), 1, anon_sym_RPAREN, STATE(49), 1, aux_sym_actual_arguments_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(145), 1, sym_term, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(150), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(155), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3809] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(229), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(231), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [3851] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(233), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(235), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [3893] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(237), 1, anon_sym_end, ACTIONS(239), 1, anon_sym_import, ACTIONS(241), 1, anon_sym_from, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, STATE(522), 1, sym_from_clause, STATE(83), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(118), 2, sym_definition, aux_sym_module_body_repeat3, STATE(172), 2, sym_import_statement, aux_sym_module_body_repeat1, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [3973] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(239), 1, anon_sym_import, ACTIONS(241), 1, anon_sym_from, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, ACTIONS(267), 1, anon_sym_end, STATE(522), 1, sym_from_clause, STATE(53), 2, sym_import_statement, aux_sym_module_body_repeat1, STATE(82), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(117), 2, sym_definition, aux_sym_module_body_repeat3, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [4053] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(269), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(271), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [4095] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(273), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(275), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [4137] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(277), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(279), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [4179] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(281), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(283), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [4221] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(153), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(155), 30, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, sym__value_empty_sequence, [4263] = 20, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(160), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [4338] = 20, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(417), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [4413] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(63), 1, sym_identifier, ACTIONS(285), 1, anon_sym_COLON, ACTIONS(65), 31, anon_sym_is, anon_sym_end, anon_sym_RBRACK, anon_sym_AT, anon_sym_EQ, anon_sym_assert, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_with, anon_sym_def, anon_sym_LBRACE, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_u2295, [4456] = 20, ACTIONS(3), 1, sym_line_comment, ACTIONS(69), 1, sym_identifier, ACTIONS(71), 1, anon_sym_LBRACK, ACTIONS(75), 1, sym_reserved_self, ACTIONS(77), 1, anon_sym_LBRACE, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(99), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(168), 1, sym_term, STATE(512), 1, sym__sequence_value_constraints, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(93), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(90), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [4531] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(289), 1, anon_sym_RBRACK, ACTIONS(291), 1, anon_sym_LBRACE, STATE(66), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4609] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(293), 1, anon_sym_RBRACK, STATE(68), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4687] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(295), 1, anon_sym_RBRACK, STATE(72), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4765] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(297), 1, anon_sym_RBRACK, STATE(73), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4843] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(299), 1, anon_sym_RBRACK, STATE(72), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4921] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(301), 1, anon_sym_RBRACK, STATE(72), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4999] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(303), 1, anon_sym_RBRACK, STATE(69), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5077] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(305), 1, anon_sym_COLON, STATE(75), 1, aux_sym_function_composition_repeat1, ACTIONS(307), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(63), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(65), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5123] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(309), 1, sym_identifier, ACTIONS(312), 1, anon_sym_LBRACK, ACTIONS(315), 1, anon_sym_RBRACK, ACTIONS(317), 1, anon_sym_LBRACE, ACTIONS(320), 1, sym_quoted_string, ACTIONS(323), 1, anon_sym_LT, ACTIONS(326), 1, anon_sym_POUND_LBRACK, ACTIONS(341), 1, sym__value_empty_sequence, STATE(72), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(329), 2, sym_double, sym_rational, ACTIONS(335), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(338), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(332), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5201] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(183), 1, sym__value_empty_sequence, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(344), 1, anon_sym_RBRACK, STATE(72), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(148), 1, sym_simple_value, STATE(150), 1, sym_sequence_of_predicate_values, STATE(177), 1, sym_identifier_reference, STATE(549), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(189), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5279] = 5, ACTIONS(3), 1, sym_line_comment, STATE(74), 1, aux_sym_function_composition_repeat1, ACTIONS(350), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(348), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(346), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5322] = 5, ACTIONS(3), 1, sym_line_comment, STATE(74), 1, aux_sym_function_composition_repeat1, ACTIONS(307), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(355), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(353), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5365] = 5, ACTIONS(3), 1, sym_line_comment, STATE(74), 1, aux_sym_function_composition_repeat1, ACTIONS(307), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(355), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(353), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5408] = 5, ACTIONS(3), 1, sym_line_comment, STATE(76), 1, aux_sym_function_composition_repeat1, ACTIONS(307), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(359), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(357), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5451] = 20, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(361), 1, anon_sym_LBRACK, ACTIONS(363), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(45), 1, sym_identifier_reference, STATE(137), 1, sym_simple_value, STATE(173), 1, sym_value, STATE(477), 1, sym__sequence_value_constraints, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(59), 3, sym_sequence_of_values, sym_value_constructor, sym_mapping_value, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5523] = 20, ACTIONS(3), 1, sym_line_comment, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(287), 1, sym_identifier, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(361), 1, anon_sym_LBRACK, ACTIONS(363), 1, sym__value_empty_sequence, STATE(45), 1, sym_identifier_reference, STATE(51), 1, sym_value, STATE(116), 1, sym_qualified_identifier, STATE(151), 1, sym_simple_value, STATE(477), 1, sym__sequence_value_constraints, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(59), 3, sym_sequence_of_values, sym_value_constructor, sym_mapping_value, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5595] = 20, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, anon_sym_LBRACE, ACTIONS(361), 1, anon_sym_LBRACK, ACTIONS(363), 1, sym__value_empty_sequence, STATE(18), 1, sym_qualified_identifier, STATE(45), 1, sym_identifier_reference, STATE(51), 1, sym_value, STATE(137), 1, sym_simple_value, STATE(477), 1, sym__sequence_value_constraints, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(59), 3, sym_sequence_of_values, sym_value_constructor, sym_mapping_value, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5667] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(367), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(365), 26, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_u00b7, anon_sym_DOT, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5705] = 18, ACTIONS(3), 1, sym_line_comment, ACTIONS(237), 1, anon_sym_end, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, STATE(118), 2, sym_definition, aux_sym_module_body_repeat3, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [5772] = 18, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, ACTIONS(369), 1, anon_sym_end, STATE(112), 2, sym_definition, aux_sym_module_body_repeat3, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [5839] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(373), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(371), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5875] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(377), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(375), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5911] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(381), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(379), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5947] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(385), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(383), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [5983] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(389), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(387), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6019] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(393), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(391), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6055] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(359), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(357), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6091] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(397), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(395), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6127] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(401), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(399), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6163] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(405), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(403), 24, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6199] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(411), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(407), 8, anon_sym_is, anon_sym_LPAREN, anon_sym_def, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, ACTIONS(409), 15, anon_sym_end, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6236] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(413), 1, sym_identifier, ACTIONS(416), 1, anon_sym_RBRACK, ACTIONS(418), 1, sym_quoted_string, ACTIONS(421), 1, anon_sym_LT, ACTIONS(424), 1, anon_sym_POUND_LBRACK, STATE(95), 1, aux_sym_sequence_of_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(196), 1, sym_simple_value, STATE(200), 1, sym_identifier_reference, ACTIONS(427), 2, sym_double, sym_rational, ACTIONS(433), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(436), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(210), 2, sym_value_constructor, sym_mapping_value, ACTIONS(430), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6298] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(287), 1, sym_identifier, ACTIONS(439), 1, anon_sym_RBRACK, STATE(95), 1, aux_sym_sequence_of_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(196), 1, sym_simple_value, STATE(200), 1, sym_identifier_reference, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(210), 2, sym_value_constructor, sym_mapping_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6360] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(287), 1, sym_identifier, ACTIONS(441), 1, anon_sym_RBRACK, STATE(96), 1, aux_sym_sequence_of_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(196), 1, sym_simple_value, STATE(200), 1, sym_identifier_reference, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(210), 2, sym_value_constructor, sym_mapping_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6422] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(287), 1, sym_identifier, ACTIONS(443), 1, anon_sym_RBRACK, STATE(95), 1, aux_sym_sequence_of_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(196), 1, sym_simple_value, STATE(200), 1, sym_identifier_reference, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(210), 2, sym_value_constructor, sym_mapping_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6484] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(169), 1, sym_quoted_string, ACTIONS(171), 1, anon_sym_LT, ACTIONS(173), 1, anon_sym_POUND_LBRACK, ACTIONS(287), 1, sym_identifier, ACTIONS(445), 1, anon_sym_RBRACK, STATE(98), 1, aux_sym_sequence_of_values_repeat1, STATE(116), 1, sym_qualified_identifier, STATE(196), 1, sym_simple_value, STATE(200), 1, sym_identifier_reference, ACTIONS(175), 2, sym_double, sym_rational, ACTIONS(179), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(181), 2, anon_sym_false, anon_sym_u22a5, STATE(127), 2, sym_boolean_truth, sym_boolean_falsity, STATE(210), 2, sym_value_constructor, sym_mapping_value, ACTIONS(177), 3, sym_decimal, sym_integer, sym_unsigned, STATE(130), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6546] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(411), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(407), 6, anon_sym_LPAREN, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, ACTIONS(409), 15, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6581] = 16, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, ACTIONS(447), 1, sym_kw_is_fixed, STATE(18), 1, sym_qualified_identifier, STATE(232), 1, sym_restriction_value, STATE(507), 1, sym_identifier_reference, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(230), 2, sym_value_constructor, sym_simple_value, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6640] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(411), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(407), 9, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_def, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, ACTIONS(409), 12, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [6675] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(449), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(451), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6707] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(453), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(455), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6739] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(457), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(459), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6771] = 15, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 1, sym_identifier, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, STATE(18), 1, sym_qualified_identifier, STATE(238), 1, sym_restriction_value, STATE(507), 1, sym_identifier_reference, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, STATE(230), 2, sym_value_constructor, sym_simple_value, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6827] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(461), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(463), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6859] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(465), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(467), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6891] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(469), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(471), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6923] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(473), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(475), 20, anon_sym_LBRACK, anon_sym_LPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_not, anon_sym_u00ac, anon_sym_forall, anon_sym_u2200, anon_sym_exists, anon_sym_u2203, sym__value_empty_sequence, [6955] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(7), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(9), 19, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_as, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [6986] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, ACTIONS(477), 1, anon_sym_end, STATE(119), 2, sym_definition, aux_sym_module_body_repeat3, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [7039] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(479), 1, sym_language_tag, ACTIONS(23), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(25), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7072] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(481), 1, anon_sym_COLON, STATE(123), 1, aux_sym_function_composition_repeat1, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(63), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(65), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7109] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(59), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(61), 19, anon_sym_is, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_as, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7140] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(63), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(65), 19, anon_sym_is, anon_sym_end, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_as, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7171] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(237), 1, anon_sym_end, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, STATE(119), 2, sym_definition, aux_sym_module_body_repeat3, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [7224] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(247), 1, anon_sym_datatype, ACTIONS(249), 1, anon_sym_dimension, ACTIONS(251), 1, anon_sym_entity, ACTIONS(253), 1, anon_sym_enum, ACTIONS(255), 1, anon_sym_event, ACTIONS(257), 1, anon_sym_property, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_union, ACTIONS(263), 1, anon_sym_rdf, ACTIONS(265), 1, anon_sym_class, ACTIONS(369), 1, anon_sym_end, STATE(119), 2, sym_definition, aux_sym_module_body_repeat3, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [7277] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(485), 1, anon_sym_end, ACTIONS(487), 1, anon_sym_datatype, ACTIONS(490), 1, anon_sym_dimension, ACTIONS(493), 1, anon_sym_entity, ACTIONS(496), 1, anon_sym_enum, ACTIONS(499), 1, anon_sym_event, ACTIONS(502), 1, anon_sym_property, ACTIONS(505), 1, anon_sym_structure, ACTIONS(508), 1, anon_sym_union, ACTIONS(511), 1, anon_sym_rdf, ACTIONS(514), 1, anon_sym_class, STATE(119), 2, sym_definition, aux_sym_module_body_repeat3, STATE(267), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_structure_def, sym_union_def, sym_rdf_def, sym_type_class_def, [7330] = 5, ACTIONS(3), 1, sym_line_comment, STATE(120), 1, aux_sym_function_composition_repeat1, ACTIONS(517), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(348), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(346), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7364] = 5, ACTIONS(3), 1, sym_line_comment, STATE(124), 1, aux_sym_function_composition_repeat1, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(359), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(357), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7398] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(41), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(43), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7428] = 5, ACTIONS(3), 1, sym_line_comment, STATE(120), 1, aux_sym_function_composition_repeat1, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(355), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(353), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7462] = 5, ACTIONS(3), 1, sym_line_comment, STATE(120), 1, aux_sym_function_composition_repeat1, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(355), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(353), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7496] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(29), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(31), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7526] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(37), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(39), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7556] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(33), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(35), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7586] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(520), 1, sym_identifier, ACTIONS(522), 21, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_LBRACE, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, [7616] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(53), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(55), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7646] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(45), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(47), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7676] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(524), 1, sym_identifier, ACTIONS(528), 1, anon_sym_AT, ACTIONS(531), 1, anon_sym_assert, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, ACTIONS(526), 15, anon_sym_end, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [7714] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(49), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(51), 18, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, anon_sym_u2192, anon_sym_DASH_GT, sym__value_empty_sequence, [7744] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(536), 2, anon_sym_and, anon_sym_u2227, ACTIONS(538), 2, anon_sym_or, anon_sym_u2228, ACTIONS(540), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(534), 3, anon_sym_is, anon_sym_end, anon_sym_def, ACTIONS(542), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(544), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(25), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, [7783] = 3, ACTIONS(3), 1, sym_line_comment, STATE(29), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, ACTIONS(546), 15, anon_sym_end, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [7812] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(536), 2, anon_sym_and, anon_sym_u2227, ACTIONS(538), 2, anon_sym_or, anon_sym_u2228, ACTIONS(540), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(542), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(544), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, ACTIONS(548), 3, anon_sym_end, anon_sym_RPAREN, anon_sym_RBRACE, STATE(29), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, [7851] = 3, ACTIONS(3), 1, sym_line_comment, STATE(29), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, ACTIONS(550), 15, anon_sym_end, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [7880] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(153), 1, sym_identifier, STATE(80), 1, sym__type_op_has_type, ACTIONS(552), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(155), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [7913] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(367), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(365), 17, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_u00b7, anon_sym_DOT, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [7942] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(554), 1, sym_identifier, ACTIONS(556), 20, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, [7971] = 3, ACTIONS(3), 1, sym_line_comment, STATE(25), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, ACTIONS(550), 15, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [8000] = 3, ACTIONS(3), 1, sym_line_comment, STATE(25), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, ACTIONS(546), 15, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [8029] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(536), 2, anon_sym_and, anon_sym_u2227, ACTIONS(538), 2, anon_sym_or, anon_sym_u2228, ACTIONS(540), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(542), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(544), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, ACTIONS(548), 3, anon_sym_is, anon_sym_end, anon_sym_def, STATE(25), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, [8068] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(377), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(375), 16, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8096] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(397), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(395), 16, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8124] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(562), 1, anon_sym_LPAREN, STATE(167), 1, sym_actual_arguments, ACTIONS(558), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(560), 14, anon_sym_LBRACK, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8156] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(401), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(399), 16, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8184] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(81), 1, anon_sym_LT, ACTIONS(305), 1, anon_sym_COLON, ACTIONS(566), 1, anon_sym_as, STATE(180), 1, sym__rename_import, STATE(188), 1, sym_iri, ACTIONS(564), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [8220] = 5, ACTIONS(3), 1, sym_line_comment, STATE(79), 1, sym__type_op_has_type, ACTIONS(568), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(405), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(403), 13, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8252] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(385), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(383), 16, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8280] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(405), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(403), 16, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8308] = 5, ACTIONS(3), 1, sym_line_comment, STATE(79), 1, sym__type_op_has_type, ACTIONS(568), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(153), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(155), 13, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8340] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(389), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(387), 16, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8368] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(574), 1, sym_controlled_language_tag, ACTIONS(570), 2, sym_identifier, anon_sym_AT, ACTIONS(572), 16, anon_sym_end, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [8397] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(373), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(371), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8424] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(359), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(357), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8451] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(576), 1, anon_sym_RBRACE, ACTIONS(584), 1, anon_sym_explicitTimezone, ACTIONS(586), 1, anon_sym_pattern, ACTIONS(580), 2, anon_sym_fractionDigits, anon_sym_totalDigits, ACTIONS(578), 3, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, ACTIONS(582), 4, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, STATE(163), 7, sym__restriction_facet, sym_length_restriction_facet, sym_digit_restriction_facet, sym_value_restriction_facet, sym_tz_restriction_facet, sym_pattern_restriction_facet, aux_sym_datatype_def_restriction_repeat1, [8488] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_end, ACTIONS(536), 2, anon_sym_and, anon_sym_u2227, ACTIONS(538), 2, anon_sym_or, anon_sym_u2228, ACTIONS(540), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(542), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(544), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(29), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, [8525] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(590), 1, anon_sym_RPAREN, ACTIONS(536), 2, anon_sym_and, anon_sym_u2227, ACTIONS(538), 2, anon_sym_or, anon_sym_u2228, ACTIONS(540), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(542), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(544), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(29), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, [8562] = 11, ACTIONS(3), 1, sym_line_comment, ACTIONS(79), 1, sym_quoted_string, ACTIONS(81), 1, anon_sym_LT, ACTIONS(83), 1, anon_sym_POUND_LBRACK, STATE(505), 1, sym_simple_value, ACTIONS(85), 2, sym_double, sym_rational, ACTIONS(89), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(91), 2, anon_sym_false, anon_sym_u22a5, STATE(6), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(87), 3, sym_decimal, sym_integer, sym_unsigned, STATE(9), 4, sym_string, sym_iri, sym_binary, sym_boolean, [8605] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, STATE(161), 1, sym_actual_arguments, ACTIONS(592), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [8634] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(407), 19, anon_sym_is, anon_sym_end, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [8659] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(381), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(379), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8686] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(596), 1, anon_sym_RBRACE, ACTIONS(607), 1, anon_sym_explicitTimezone, ACTIONS(610), 1, anon_sym_pattern, ACTIONS(601), 2, anon_sym_fractionDigits, anon_sym_totalDigits, ACTIONS(598), 3, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, ACTIONS(604), 4, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, STATE(163), 7, sym__restriction_facet, sym_length_restriction_facet, sym_digit_restriction_facet, sym_value_restriction_facet, sym_tz_restriction_facet, sym_pattern_restriction_facet, aux_sym_datatype_def_restriction_repeat1, [8723] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(481), 1, anon_sym_COLON, ACTIONS(63), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(65), 14, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LPAREN, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8752] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(393), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(391), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8779] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(613), 1, anon_sym_end, ACTIONS(536), 2, anon_sym_and, anon_sym_u2227, ACTIONS(538), 2, anon_sym_or, anon_sym_u2228, ACTIONS(540), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(542), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(544), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(29), 6, sym__logical_connective, sym_logical_op_conjunction, sym_logical_op_disjunction, sym_logical_op_exclusive_disjunction, sym_logical_op_implication, sym_logical_op_biconditional, [8816] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(411), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(407), 15, anon_sym_LBRACK, anon_sym_LPAREN, anon_sym_RPAREN, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [8843] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, STATE(161), 1, sym_actual_arguments, ACTIONS(615), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [8872] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(617), 1, sym_identifier, ACTIONS(619), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, anon_sym_u2192, anon_sym_DASH_GT, [8898] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(621), 1, sym_identifier, ACTIONS(623), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [8924] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(625), 1, sym_identifier, ACTIONS(627), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [8950] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(631), 1, anon_sym_import, ACTIONS(634), 1, anon_sym_from, STATE(522), 1, sym_from_clause, STATE(172), 2, sym_import_statement, aux_sym_module_body_repeat1, ACTIONS(629), 13, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [8982] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(637), 1, sym_identifier, ACTIONS(639), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [9008] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(641), 1, sym_identifier, ACTIONS(643), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [9034] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(645), 1, sym_identifier, ACTIONS(647), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [9060] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(649), 1, sym_identifier, ACTIONS(651), 17, anon_sym_end, anon_sym_AT, anon_sym_assert, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_source, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_identity, anon_sym_ref, [9086] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LPAREN, ACTIONS(653), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(655), 13, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [9114] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(584), 1, anon_sym_explicitTimezone, ACTIONS(586), 1, anon_sym_pattern, ACTIONS(580), 2, anon_sym_fractionDigits, anon_sym_totalDigits, ACTIONS(578), 3, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, ACTIONS(582), 4, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, STATE(156), 7, sym__restriction_facet, sym_length_restriction_facet, sym_digit_restriction_facet, sym_value_restriction_facet, sym_tz_restriction_facet, sym_pattern_restriction_facet, aux_sym_datatype_def_restriction_repeat1, [9148] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(657), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(659), 13, anon_sym_LBRACK, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [9173] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(661), 1, sym_identifier, ACTIONS(663), 16, anon_sym_end, anon_sym_import, anon_sym_RBRACK, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9198] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(665), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(667), 13, anon_sym_LBRACK, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [9223] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(669), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [9246] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(671), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [9269] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(566), 1, anon_sym_as, STATE(194), 1, sym__rename_import, ACTIONS(673), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9296] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(675), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [9319] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(677), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [9342] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(675), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [9365] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(566), 1, anon_sym_as, STATE(197), 1, sym__rename_import, ACTIONS(679), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9392] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(653), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(655), 13, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [9417] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(681), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(683), 13, anon_sym_LBRACK, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [9442] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(685), 1, sym_identifier, ACTIONS(687), 16, anon_sym_end, anon_sym_import, anon_sym_RBRACK, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9467] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, ACTIONS(689), 1, anon_sym_EQ, STATE(102), 1, sym_actual_arguments, ACTIONS(691), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(693), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(695), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(697), 2, anon_sym_GT_EQ, anon_sym_u2265, ACTIONS(534), 3, anon_sym_is, anon_sym_end, anon_sym_def, STATE(60), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [9506] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(675), 17, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_RBRACE, anon_sym_and, anon_sym_u2227, anon_sym_or, anon_sym_u2228, anon_sym_xor, anon_sym_u22bb, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, [9529] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(699), 1, sym_identifier, ACTIONS(701), 16, anon_sym_end, anon_sym_import, anon_sym_RBRACK, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9554] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(703), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(705), 13, anon_sym_LBRACK, sym_reserved_self, anon_sym_LBRACE, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, sym__value_empty_sequence, [9579] = 5, ACTIONS(3), 1, sym_line_comment, STATE(79), 1, sym__type_op_has_type, ACTIONS(568), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(707), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(709), 10, anon_sym_RBRACK, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, [9608] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(711), 1, sym_identifier, ACTIONS(713), 16, anon_sym_end, anon_sym_import, anon_sym_RBRACK, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9633] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(715), 1, sym_identifier, ACTIONS(717), 1, anon_sym_is, STATE(214), 1, sym_annotation_only_body, ACTIONS(719), 13, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, [9661] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, ACTIONS(689), 1, anon_sym_EQ, STATE(94), 1, sym_actual_arguments, ACTIONS(534), 2, anon_sym_is, anon_sym_def, ACTIONS(691), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(693), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(695), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(697), 2, anon_sym_GT_EQ, anon_sym_u2265, STATE(60), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [9699] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LPAREN, ACTIONS(707), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(709), 10, anon_sym_RBRACK, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, [9724] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(721), 1, sym_identifier, ACTIONS(723), 14, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, [9747] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(725), 1, sym_identifier, ACTIONS(727), 14, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, [9770] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(729), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9791] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9812] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, ACTIONS(735), 1, anon_sym_LBRACE, STATE(223), 1, sym_datatype_def_restriction, STATE(260), 1, sym_annotation_only_body, ACTIONS(733), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9841] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, ACTIONS(735), 1, anon_sym_LBRACE, STATE(222), 1, sym_datatype_def_restriction, STATE(261), 1, sym_annotation_only_body, ACTIONS(737), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9870] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(739), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9891] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(741), 15, anon_sym_end, anon_sym_import, anon_sym_from, anon_sym_AT, anon_sym_assert, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [9912] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(743), 1, sym_identifier, ACTIONS(745), 14, anon_sym_end, anon_sym_def, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, [9935] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(707), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(709), 10, anon_sym_RBRACK, sym_quoted_string, anon_sym_LT, anon_sym_POUND_LBRACK, sym_double, sym_rational, anon_sym_true, anon_sym_u22a4, anon_sym_false, anon_sym_u22a5, [9957] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, ACTIONS(689), 1, anon_sym_EQ, STATE(100), 1, sym_actual_arguments, ACTIONS(691), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(693), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(695), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(697), 2, anon_sym_GT_EQ, anon_sym_u2265, STATE(60), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [9991] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(747), 1, anon_sym_is, ACTIONS(751), 1, anon_sym_LPAREN, STATE(270), 1, sym_type_class_body, ACTIONS(749), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10017] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, ACTIONS(689), 1, anon_sym_EQ, STATE(94), 1, sym_actual_arguments, ACTIONS(691), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(693), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(695), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(697), 2, anon_sym_GT_EQ, anon_sym_u2265, STATE(60), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [10051] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(753), 1, sym_identifier, ACTIONS(755), 13, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, anon_sym_ref, [10073] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(747), 1, anon_sym_is, STATE(278), 1, sym_type_class_body, ACTIONS(757), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10096] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(759), 1, anon_sym_is, STATE(258), 1, sym_structure_body, ACTIONS(761), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10119] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(763), 1, anon_sym_is, STATE(252), 1, sym_event_body, ACTIONS(765), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10142] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(769), 1, anon_sym_of, STATE(244), 1, sym_enum_body, ACTIONS(767), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10165] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(771), 1, sym_identifier, ACTIONS(773), 1, anon_sym_end, ACTIONS(775), 1, anon_sym_ref, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(332), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [10200] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(777), 1, anon_sym_is, STATE(246), 1, sym_entity_body, ACTIONS(779), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10223] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(781), 1, anon_sym_is, STATE(250), 1, sym_dimension_body, ACTIONS(783), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10246] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, STATE(284), 1, sym_annotation_only_body, ACTIONS(785), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10269] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, STATE(253), 1, sym_annotation_only_body, ACTIONS(787), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10292] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(791), 1, anon_sym_of, STATE(262), 1, sym_union_body, ACTIONS(789), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10315] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(793), 1, anon_sym_end, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(219), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(316), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [10350] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(795), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10368] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(797), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10386] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(799), 1, sym_identifier, ACTIONS(801), 1, anon_sym_end, STATE(116), 1, sym_qualified_identifier, STATE(356), 1, sym_identifier_reference, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(229), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(352), 2, sym_type_variant, aux_sym_union_body_repeat1, [10420] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(799), 1, sym_identifier, ACTIONS(803), 1, anon_sym_end, STATE(116), 1, sym_qualified_identifier, STATE(356), 1, sym_identifier_reference, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(340), 2, sym_type_variant, aux_sym_union_body_repeat1, [10454] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10472] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(807), 12, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10490] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(809), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10508] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(811), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10526] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(813), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10544] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(815), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10562] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(817), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10580] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(819), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10598] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(821), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10616] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(823), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10634] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(825), 12, anon_sym_RBRACE, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, anon_sym_fractionDigits, anon_sym_totalDigits, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, anon_sym_explicitTimezone, anon_sym_pattern, [10652] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(827), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10669] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(829), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10686] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(831), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10703] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(833), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10720] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(835), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10737] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(837), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10754] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(839), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10771] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(841), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10788] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(843), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10805] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(845), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10822] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(847), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10839] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(849), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10856] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(851), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10873] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(853), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10890] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(855), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10907] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(857), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10924] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(859), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10941] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(861), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10958] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(863), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10975] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(865), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [10992] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(867), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11009] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(869), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11026] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(871), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11043] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(873), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11060] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(875), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11077] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(877), 1, anon_sym_end, ACTIONS(879), 1, anon_sym_def, STATE(299), 1, sym_function_signature, STATE(373), 1, aux_sym_type_class_body_repeat1, STATE(461), 1, sym_method_def, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(280), 2, sym_annotation, aux_sym_module_body_repeat2, [11110] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(881), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11127] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(883), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11144] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(885), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11161] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(887), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11178] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(889), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11195] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(891), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11212] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(893), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11229] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(895), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11246] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(897), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11263] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(899), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11280] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(901), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11297] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(903), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11314] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(905), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11331] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(879), 1, anon_sym_def, ACTIONS(907), 1, anon_sym_end, STATE(299), 1, sym_function_signature, STATE(374), 1, aux_sym_type_class_body_repeat1, STATE(461), 1, sym_method_def, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, [11364] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(909), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11381] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(911), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11398] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(913), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11415] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(915), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11432] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(917), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_structure, anon_sym_union, anon_sym_rdf, anon_sym_class, [11449] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(919), 1, anon_sym_source, ACTIONS(921), 1, anon_sym_identity, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(289), 2, sym_source_entity, sym_entity_identity, STATE(293), 2, sym_annotation, aux_sym_module_body_repeat2, [11477] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(923), 1, anon_sym_end, ACTIONS(925), 1, anon_sym_parent, STATE(291), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(334), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [11505] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(925), 1, anon_sym_parent, ACTIONS(927), 1, anon_sym_end, STATE(327), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(338), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(381), 2, sym_member_def, sym_property_ref, [11533] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(925), 1, anon_sym_parent, ACTIONS(929), 1, anon_sym_end, STATE(288), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(314), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [11561] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(931), 1, sym_identifier, ACTIONS(933), 1, anon_sym_end, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(391), 2, sym_value_variant, aux_sym_enum_body_repeat1, [11589] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(925), 1, anon_sym_parent, ACTIONS(935), 1, anon_sym_end, STATE(313), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(338), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(381), 2, sym_member_def, sym_property_ref, [11617] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(931), 1, sym_identifier, ACTIONS(937), 1, anon_sym_end, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(290), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(378), 2, sym_value_variant, aux_sym_enum_body_repeat1, [11645] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(919), 1, anon_sym_source, ACTIONS(921), 1, anon_sym_identity, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(287), 2, sym_source_entity, sym_entity_identity, [11673] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(939), 1, sym_identifier, STATE(380), 1, aux_sym_sequence_builder_repeat1, STATE(399), 1, sym_sequence_ordering, STATE(450), 1, sym_variable, STATE(509), 1, sym_sequence_uniqueness, ACTIONS(941), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [11700] = 7, ACTIONS(3), 1, sym_line_comment, STATE(488), 1, sym_sequence_builder_body, STATE(489), 1, sym_quantified_sentence, STATE(514), 1, sym_quantified_variable_binding, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, [11725] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(945), 1, anon_sym_RBRACE, ACTIONS(947), 1, sym_unsigned, STATE(337), 1, sym_sequence_ordering, STATE(435), 1, sym_sequence_uniqueness, STATE(480), 1, sym__cardinality_inner, ACTIONS(941), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [11752] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(939), 1, sym_identifier, STATE(387), 1, aux_sym_sequence_builder_repeat1, STATE(399), 1, sym_sequence_ordering, STATE(450), 1, sym_variable, STATE(509), 1, sym_sequence_uniqueness, ACTIONS(941), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [11779] = 7, ACTIONS(3), 1, sym_line_comment, STATE(489), 1, sym_quantified_sentence, STATE(514), 1, sym_quantified_variable_binding, STATE(545), 1, sym_sequence_builder_body, ACTIONS(95), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(97), 2, anon_sym_exists, anon_sym_u2203, STATE(437), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, [11804] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, STATE(31), 1, sym_function_op_by_definition, STATE(402), 1, sym_function_body, STATE(447), 1, sym_annotation_only_body, ACTIONS(949), 2, anon_sym_end, anon_sym_def, ACTIONS(951), 2, anon_sym_COLON_EQ, anon_sym_u2254, [11828] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, STATE(365), 1, sym_sequence_ordering, STATE(463), 1, sym_sequence_uniqueness, STATE(484), 1, sym__cardinality_inner, ACTIONS(941), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [11852] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(919), 1, anon_sym_source, STATE(326), 1, sym_source_entity, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, [11876] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(921), 1, anon_sym_identity, STATE(310), 1, sym_entity_identity, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(304), 2, sym_annotation, aux_sym_module_body_repeat2, [11900] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(919), 1, anon_sym_source, STATE(308), 1, sym_source_entity, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(301), 2, sym_annotation, aux_sym_module_body_repeat2, [11924] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(921), 1, anon_sym_identity, STATE(317), 1, sym_entity_identity, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, [11948] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(953), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [11969] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(955), 1, sym_identifier, ACTIONS(957), 6, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [11984] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(959), 1, sym_identifier, ACTIONS(961), 6, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [11999] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(963), 1, anon_sym_end, STATE(305), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12020] = 5, ACTIONS(3), 1, sym_line_comment, STATE(386), 1, sym__type_op_has_type, STATE(415), 1, sym__type_variable_restriction, ACTIONS(967), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(965), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [12039] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(969), 1, anon_sym_end, STATE(315), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12060] = 5, ACTIONS(3), 1, sym_line_comment, STATE(328), 1, aux_sym__type_variable_restriction_repeat1, STATE(384), 1, sym_type_op_combiner, ACTIONS(973), 2, anon_sym_PLUS, anon_sym_u2295, ACTIONS(971), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [12079] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(975), 1, sym_identifier, ACTIONS(977), 1, anon_sym_RBRACK, STATE(407), 1, sym_qualified_identifier, STATE(333), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [12098] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(979), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12119] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(927), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12140] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(981), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12161] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(773), 1, anon_sym_end, ACTIONS(775), 1, anon_sym_ref, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12182] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(983), 1, anon_sym_end, STATE(325), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12203] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(985), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12224] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(975), 1, sym_identifier, ACTIONS(987), 1, anon_sym_RBRACK, STATE(407), 1, sym_qualified_identifier, STATE(333), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [12243] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(989), 1, sym_identifier, ACTIONS(991), 6, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [12258] = 5, ACTIONS(3), 1, sym_line_comment, STATE(386), 1, sym__type_op_has_type, STATE(441), 1, sym__type_variable_restriction, ACTIONS(967), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(993), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [12277] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(995), 1, sym_identifier, STATE(491), 1, sym__type_op_has_type, ACTIONS(999), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(997), 3, anon_sym_in, anon_sym_u2208, sym_set_op_builder, [12296] = 5, ACTIONS(3), 1, sym_line_comment, STATE(311), 1, aux_sym__type_variable_restriction_repeat1, STATE(384), 1, sym_type_op_combiner, ACTIONS(973), 2, anon_sym_PLUS, anon_sym_u2295, ACTIONS(1001), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [12315] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(171), 1, anon_sym_LT, ACTIONS(481), 1, anon_sym_COLON, ACTIONS(564), 1, anon_sym_RBRACK, ACTIONS(1003), 1, sym_identifier, ACTIONS(1005), 1, anon_sym_as, STATE(180), 1, sym__rename_import, STATE(404), 1, sym_iri, [12340] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(1007), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12361] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(1009), 1, anon_sym_end, STATE(318), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12382] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(1011), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12403] = 5, ACTIONS(3), 1, sym_line_comment, STATE(328), 1, aux_sym__type_variable_restriction_repeat1, STATE(384), 1, sym_type_op_combiner, ACTIONS(1015), 2, anon_sym_PLUS, anon_sym_u2295, ACTIONS(1013), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [12422] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1020), 1, anon_sym_LPAREN, STATE(355), 1, sym_type_class_arguments, ACTIONS(1018), 5, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_PLUS, anon_sym_u2295, [12439] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, ACTIONS(1022), 1, anon_sym_end, STATE(131), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(176), 2, sym_annotation_property, sym_constraint, [12460] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1024), 1, sym_identifier, ACTIONS(1027), 1, anon_sym_end, ACTIONS(1029), 1, anon_sym_ref, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12481] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(1032), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12502] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1034), 1, sym_identifier, ACTIONS(1037), 1, anon_sym_RBRACK, STATE(407), 1, sym_qualified_identifier, STATE(333), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [12521] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, ACTIONS(935), 1, anon_sym_end, STATE(331), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(381), 2, sym_member_def, sym_property_ref, [12542] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(1039), 1, sym_identifier, ACTIONS(1042), 1, anon_sym_RPAREN, STATE(18), 1, sym_qualified_identifier, STATE(329), 1, sym_identifier_reference, STATE(335), 1, aux_sym_type_class_arguments_repeat1, STATE(471), 1, sym_type_class_reference, [12564] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(975), 1, sym_identifier, STATE(407), 1, sym_qualified_identifier, STATE(312), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [12580] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, ACTIONS(1044), 1, anon_sym_RBRACE, STATE(418), 1, sym_sequence_uniqueness, STATE(496), 1, sym__cardinality_inner, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [12600] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1046), 1, sym_identifier, ACTIONS(1050), 1, anon_sym_parent, ACTIONS(1048), 2, anon_sym_end, anon_sym_ref, STATE(338), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, [12618] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, ACTIONS(1055), 1, anon_sym_RPAREN, STATE(18), 1, sym_qualified_identifier, STATE(329), 1, sym_identifier_reference, STATE(335), 1, aux_sym_type_class_arguments_repeat1, STATE(471), 1, sym_type_class_reference, [12640] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(799), 1, sym_identifier, ACTIONS(1057), 1, anon_sym_end, STATE(116), 1, sym_qualified_identifier, STATE(356), 1, sym_identifier_reference, STATE(343), 2, sym_type_variant, aux_sym_union_body_repeat1, [12660] = 5, ACTIONS(3), 1, sym_line_comment, STATE(399), 1, sym_sequence_ordering, STATE(509), 1, sym_sequence_uniqueness, ACTIONS(941), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [12678] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, ACTIONS(1059), 1, sym_identifier, STATE(408), 1, sym_annotation_only_body, ACTIONS(1061), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [12696] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1063), 1, sym_identifier, ACTIONS(1066), 1, anon_sym_end, STATE(116), 1, sym_qualified_identifier, STATE(356), 1, sym_identifier_reference, STATE(343), 2, sym_type_variant, aux_sym_union_body_repeat1, [12716] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(243), 1, anon_sym_AT, ACTIONS(245), 1, anon_sym_assert, STATE(176), 2, sym_annotation_property, sym_constraint, STATE(330), 2, sym_annotation, aux_sym_module_body_repeat2, [12734] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1068), 1, sym_identifier, ACTIONS(1070), 1, anon_sym_LBRACK, STATE(184), 1, sym_qualified_identifier, STATE(208), 3, sym__import, sym_member_import, sym_module_import, [12752] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1072), 1, anon_sym_is, ACTIONS(1074), 1, anon_sym_EQ, ACTIONS(1076), 1, anon_sym_with, STATE(473), 1, sym_constraint_environment, STATE(175), 2, sym_informal_constraint, sym_formal_constraint, [12772] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(975), 1, sym_identifier, STATE(407), 1, sym_qualified_identifier, STATE(319), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [12788] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, ACTIONS(1078), 1, sym_wildcard, STATE(18), 1, sym_qualified_identifier, STATE(329), 1, sym_identifier_reference, STATE(339), 1, aux_sym_type_class_arguments_repeat1, STATE(471), 1, sym_type_class_reference, [12810] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(1080), 1, sym_identifier, ACTIONS(1083), 1, anon_sym_RPAREN, ACTIONS(1085), 1, anon_sym_LBRACE, STATE(349), 1, aux_sym_type_class_def_repeat1, STATE(427), 1, sym_type_variable, STATE(492), 1, sym_function_cardinality_expression, [12832] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(57), 1, anon_sym_LBRACE, ACTIONS(1088), 1, sym_identifier, ACTIONS(1090), 1, anon_sym_RPAREN, STATE(349), 1, aux_sym_type_class_def_repeat1, STATE(427), 1, sym_type_variable, STATE(492), 1, sym_function_cardinality_expression, [12854] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1068), 1, sym_identifier, ACTIONS(1092), 1, anon_sym_LBRACK, STATE(184), 1, sym_qualified_identifier, STATE(207), 3, sym__import, sym_member_import, sym_module_import, [12872] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(799), 1, sym_identifier, ACTIONS(803), 1, anon_sym_end, STATE(116), 1, sym_qualified_identifier, STATE(356), 1, sym_identifier_reference, STATE(343), 2, sym_type_variant, aux_sym_union_body_repeat1, [12892] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, ACTIONS(1094), 1, anon_sym_RBRACK, STATE(18), 1, sym_qualified_identifier, STATE(360), 1, aux_sym_rdf_types_repeat1, STATE(466), 1, sym_identifier_reference, [12911] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(879), 1, anon_sym_def, ACTIONS(1096), 1, anon_sym_is, STATE(389), 1, sym_function_signature, STATE(357), 2, sym_function_def, aux_sym_constraint_environment_repeat1, [12928] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1098), 5, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_PLUS, anon_sym_u2295, [12939] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, ACTIONS(1100), 1, sym_identifier, ACTIONS(1102), 1, anon_sym_end, ACTIONS(1104), 1, anon_sym_as, STATE(462), 1, sym_annotation_only_body, [12958] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1106), 1, anon_sym_is, ACTIONS(1108), 1, anon_sym_def, STATE(389), 1, sym_function_signature, STATE(357), 2, sym_function_def, aux_sym_constraint_environment_repeat1, [12975] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1111), 5, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [12986] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, ACTIONS(1113), 1, anon_sym_RBRACK, STATE(18), 1, sym_qualified_identifier, STATE(353), 1, aux_sym_rdf_types_repeat1, STATE(466), 1, sym_identifier_reference, [13005] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1115), 1, sym_identifier, ACTIONS(1118), 1, anon_sym_RBRACK, STATE(18), 1, sym_qualified_identifier, STATE(360), 1, aux_sym_rdf_types_repeat1, STATE(466), 1, sym_identifier_reference, [13024] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(771), 1, sym_identifier, ACTIONS(775), 1, anon_sym_ref, STATE(382), 1, sym_member, STATE(381), 2, sym_member_def, sym_property_ref, [13041] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(81), 1, anon_sym_LT, ACTIONS(1120), 1, anon_sym_is, STATE(448), 1, sym__module_locations, STATE(449), 1, sym_iri, STATE(544), 1, sym_module_body, [13060] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1122), 1, anon_sym_LPAREN, STATE(12), 1, sym__type_op_has_type, STATE(358), 1, sym__function_type, ACTIONS(1124), 2, anon_sym_u2192, anon_sym_DASH_GT, [13077] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1013), 5, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_PLUS, anon_sym_u2295, [13088] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, STATE(457), 1, sym_sequence_uniqueness, STATE(516), 1, sym__cardinality_inner, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [13105] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1126), 5, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [13116] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1128), 5, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_PLUS, anon_sym_u2295, [13127] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1130), 5, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_PLUS, anon_sym_u2295, [13138] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(57), 1, anon_sym_LBRACE, ACTIONS(1088), 1, sym_identifier, STATE(350), 1, aux_sym_type_class_def_repeat1, STATE(427), 1, sym_type_variable, STATE(492), 1, sym_function_cardinality_expression, [13157] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1134), 1, sym_kw_is_fixed, STATE(236), 1, sym_tz_restriction_value, ACTIONS(1132), 3, anon_sym_required, anon_sym_prohibited, anon_sym_optional, [13172] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(63), 1, sym_identifier, ACTIONS(481), 1, anon_sym_COLON, ACTIONS(65), 3, anon_sym_is, anon_sym_end, anon_sym_as, [13187] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1136), 1, sym_identifier, ACTIONS(1140), 1, anon_sym_with, ACTIONS(1138), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13202] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(879), 1, anon_sym_def, ACTIONS(1142), 1, anon_sym_end, STATE(299), 1, sym_function_signature, STATE(377), 1, aux_sym_type_class_body_repeat1, STATE(461), 1, sym_method_def, [13221] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(879), 1, anon_sym_def, ACTIONS(1144), 1, anon_sym_end, STATE(299), 1, sym_function_signature, STATE(377), 1, aux_sym_type_class_body_repeat1, STATE(461), 1, sym_method_def, [13240] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, STATE(264), 1, sym_annotation_only_body, STATE(467), 1, sym_rdf_types, ACTIONS(1146), 2, anon_sym_a, anon_sym_type, [13257] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1148), 1, sym_identifier, ACTIONS(1150), 1, anon_sym_COLON_COLON, STATE(515), 3, sym_module_path_root_only, sym_module_path_absolute, sym_module_path_relative, [13272] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1152), 1, anon_sym_end, ACTIONS(1154), 1, anon_sym_def, STATE(299), 1, sym_function_signature, STATE(377), 1, aux_sym_type_class_body_repeat1, STATE(461), 1, sym_method_def, [13291] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(931), 1, sym_identifier, ACTIONS(933), 1, anon_sym_end, STATE(394), 2, sym_value_variant, aux_sym_enum_body_repeat1, [13305] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1157), 1, sym_identifier, ACTIONS(1160), 1, sym_set_op_builder, STATE(379), 1, aux_sym_sequence_builder_repeat1, STATE(450), 1, sym_variable, [13321] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1162), 1, sym_identifier, ACTIONS(1164), 1, sym_set_op_builder, STATE(379), 1, aux_sym_sequence_builder_repeat1, STATE(450), 1, sym_variable, [13337] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1166), 1, sym_identifier, ACTIONS(1168), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13349] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1170), 1, sym_identifier, ACTIONS(1172), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13361] = 3, ACTIONS(3), 1, sym_line_comment, STATE(235), 1, sym_tz_restriction_value, ACTIONS(1132), 3, anon_sym_required, anon_sym_prohibited, anon_sym_optional, [13373] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(329), 1, sym_identifier_reference, STATE(364), 1, sym_type_class_reference, [13389] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1174), 1, sym_identifier, ACTIONS(1177), 1, anon_sym_RPAREN, STATE(385), 1, aux_sym_function_signature_repeat1, STATE(470), 1, sym_function_parameter, [13405] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(323), 1, sym_type_class_reference, STATE(329), 1, sym_identifier_reference, [13421] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1162), 1, sym_identifier, ACTIONS(1179), 1, sym_set_op_builder, STATE(379), 1, aux_sym_sequence_builder_repeat1, STATE(450), 1, sym_variable, [13437] = 4, ACTIONS(3), 1, sym_line_comment, STATE(12), 1, sym__type_op_has_type, STATE(366), 1, sym__function_type, ACTIONS(1124), 2, anon_sym_u2192, anon_sym_DASH_GT, [13451] = 4, ACTIONS(3), 1, sym_line_comment, STATE(21), 1, sym_function_op_by_definition, STATE(445), 1, sym_function_body, ACTIONS(951), 2, anon_sym_COLON_EQ, anon_sym_u2254, [13465] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, ACTIONS(1181), 1, sym_identifier, ACTIONS(1183), 1, anon_sym_end, STATE(454), 1, sym_annotation_only_body, [13481] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(931), 1, sym_identifier, ACTIONS(1185), 1, anon_sym_end, STATE(394), 2, sym_value_variant, aux_sym_enum_body_repeat1, [13495] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1187), 1, sym_identifier, ACTIONS(1189), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13507] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1191), 1, sym_identifier, ACTIONS(1193), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13519] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1195), 1, sym_identifier, ACTIONS(1198), 1, anon_sym_end, STATE(394), 2, sym_value_variant, aux_sym_enum_body_repeat1, [13533] = 4, ACTIONS(3), 1, sym_line_comment, STATE(3), 1, sym__type_op_has_type, STATE(198), 1, sym__type_expression_to, ACTIONS(1200), 2, anon_sym_u2192, anon_sym_DASH_GT, [13547] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1202), 1, sym_identifier, ACTIONS(1204), 1, anon_sym_RPAREN, STATE(385), 1, aux_sym_function_signature_repeat1, STATE(470), 1, sym_function_parameter, [13563] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1206), 1, sym_identifier, ACTIONS(1208), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13575] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, ACTIONS(1210), 1, sym_identifier, ACTIONS(1212), 1, anon_sym_end, STATE(446), 1, sym_annotation_only_body, [13591] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1214), 1, anon_sym_RBRACE, STATE(513), 1, sym_sequence_uniqueness, ACTIONS(943), 2, anon_sym_unique, anon_sym_nonunique, [13605] = 4, ACTIONS(3), 1, sym_line_comment, STATE(12), 1, sym__type_op_has_type, STATE(453), 1, sym__function_type, ACTIONS(1124), 2, anon_sym_u2192, anon_sym_DASH_GT, [13619] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(879), 1, anon_sym_def, STATE(389), 1, sym_function_signature, STATE(354), 2, sym_function_def, aux_sym_constraint_environment_repeat1, [13633] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, STATE(459), 1, sym_annotation_only_body, ACTIONS(1216), 2, anon_sym_end, anon_sym_def, [13647] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1218), 4, anon_sym_RBRACE, sym_unsigned, anon_sym_unique, anon_sym_nonunique, [13657] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(679), 1, anon_sym_RBRACK, ACTIONS(1005), 1, anon_sym_as, ACTIONS(1220), 1, sym_identifier, STATE(197), 1, sym__rename_import, [13673] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, ACTIONS(1222), 1, anon_sym_LBRACK, STATE(18), 1, sym_qualified_identifier, STATE(487), 1, sym_identifier_reference, [13689] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1224), 1, sym_identifier, ACTIONS(1226), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13701] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(673), 1, anon_sym_RBRACK, ACTIONS(1005), 1, anon_sym_as, ACTIONS(1228), 1, sym_identifier, STATE(194), 1, sym__rename_import, [13717] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1230), 1, sym_identifier, ACTIONS(1232), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13729] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1234), 1, sym_identifier, ACTIONS(1236), 3, anon_sym_in, anon_sym_u2208, sym_set_op_builder, [13741] = 3, ACTIONS(3), 1, sym_line_comment, STATE(19), 1, sym__type_op_type_restriction, ACTIONS(1238), 2, anon_sym_u2190, anon_sym_LT_DASH, [13752] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(342), 1, sym_identifier_reference, [13765] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1240), 1, sym_identifier, ACTIONS(1242), 1, anon_sym_LBRACK, STATE(392), 1, sym__identifier_or_sequence, [13778] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1244), 1, anon_sym_RBRACK, ACTIONS(1246), 1, sym_quoted_string, STATE(413), 1, aux_sym_pattern_restriction_facet_repeat1, [13791] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1249), 1, sym_identifier, ACTIONS(1252), 1, anon_sym_RBRACK, STATE(414), 1, aux_sym__identifier_or_sequence_repeat1, [13804] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1254), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [13813] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1256), 1, anon_sym_RBRACK, ACTIONS(1258), 1, sym_quoted_string, STATE(413), 1, aux_sym_pattern_restriction_facet_repeat1, [13826] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(594), 1, anon_sym_LPAREN, ACTIONS(1260), 1, anon_sym_COMMA, STATE(161), 1, sym_actual_arguments, [13839] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, ACTIONS(1262), 1, anon_sym_RBRACE, STATE(540), 1, sym__cardinality_inner, [13852] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1264), 1, anon_sym_import, ACTIONS(1266), 1, anon_sym_COLON_COLON2, STATE(428), 1, aux_sym_module_path_absolute_repeat1, [13865] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1266), 1, anon_sym_COLON_COLON2, ACTIONS(1268), 1, anon_sym_import, STATE(421), 1, aux_sym_module_path_absolute_repeat1, [13878] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1266), 1, anon_sym_COLON_COLON2, ACTIONS(1270), 1, anon_sym_import, STATE(428), 1, aux_sym_module_path_absolute_repeat1, [13891] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1272), 1, anon_sym_RBRACE, ACTIONS(1274), 1, anon_sym_DOT_DOT, STATE(527), 1, sym_cardinality_range, [13904] = 3, ACTIONS(3), 1, sym_line_comment, STATE(15), 1, sym__type_op_has_type, ACTIONS(1276), 2, anon_sym_u2192, anon_sym_DASH_GT, [13915] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1278), 1, anon_sym_RBRACK, ACTIONS(1280), 1, sym_hex_byte, STATE(424), 1, aux_sym_binary_repeat1, [13928] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(372), 1, sym_identifier_reference, [13941] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1266), 1, anon_sym_COLON_COLON2, ACTIONS(1283), 1, anon_sym_import, STATE(419), 1, aux_sym_module_path_absolute_repeat1, [13954] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1285), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [13963] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1287), 1, anon_sym_import, ACTIONS(1289), 1, anon_sym_COLON_COLON2, STATE(428), 1, aux_sym_module_path_absolute_repeat1, [13976] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(397), 1, sym_identifier_reference, [13989] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(81), 1, anon_sym_LT, ACTIONS(1292), 1, sym_quoted_string, STATE(506), 1, sym_iri, [14002] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1202), 1, sym_identifier, STATE(396), 1, aux_sym_function_signature_repeat1, STATE(470), 1, sym_function_parameter, [14015] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1294), 1, anon_sym_RBRACK, ACTIONS(1296), 1, sym_hex_byte, STATE(436), 1, aux_sym_binary_repeat1, [14028] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1296), 1, sym_hex_byte, ACTIONS(1298), 1, anon_sym_RBRACK, STATE(438), 1, aux_sym_binary_repeat1, [14041] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1300), 1, sym_identifier, ACTIONS(1302), 1, anon_sym_RBRACK, STATE(414), 1, aux_sym__identifier_or_sequence_repeat1, [14054] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, ACTIONS(1304), 1, anon_sym_RBRACE, STATE(495), 1, sym__cardinality_inner, [14067] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1296), 1, sym_hex_byte, ACTIONS(1306), 1, anon_sym_RBRACK, STATE(424), 1, aux_sym_binary_repeat1, [14080] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1162), 1, sym_identifier, STATE(440), 1, sym_variable, STATE(541), 1, sym_quantified_variable, [14093] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1296), 1, sym_hex_byte, ACTIONS(1308), 1, anon_sym_RBRACK, STATE(424), 1, aux_sym_binary_repeat1, [14106] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, STATE(18), 1, sym_qualified_identifier, STATE(474), 1, sym_identifier_reference, [14119] = 3, ACTIONS(3), 1, sym_line_comment, STATE(61), 1, sym_set_op_membership, ACTIONS(1310), 2, anon_sym_in, anon_sym_u2208, [14130] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1312), 3, sym_identifier, anon_sym_RPAREN, anon_sym_LBRACE, [14139] = 3, ACTIONS(3), 1, sym_line_comment, STATE(411), 1, sym__type_op_has_type, ACTIONS(1314), 2, anon_sym_u2192, anon_sym_DASH_GT, [14150] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1316), 1, sym_unsigned, ACTIONS(1318), 1, sym_kw_is_fixed, [14160] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1300), 1, sym_identifier, STATE(434), 1, aux_sym__identifier_or_sequence_repeat1, [14170] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1320), 2, anon_sym_is, anon_sym_def, [14178] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1322), 1, sym_identifier, ACTIONS(1324), 1, anon_sym_end, [14188] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1326), 2, anon_sym_end, anon_sym_def, [14196] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1120), 1, anon_sym_is, STATE(520), 1, sym_module_body, [14206] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1328), 1, anon_sym_version, ACTIONS(1330), 1, anon_sym_is, [14216] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1332), 2, sym_identifier, sym_set_op_builder, [14224] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1334), 1, anon_sym_RBRACE, ACTIONS(1336), 1, sym_unsigned, [14234] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1338), 1, sym_identifier, STATE(276), 1, sym_member_def, [14244] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1340), 2, sym_identifier, anon_sym_RPAREN, [14252] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1342), 1, sym_identifier, ACTIONS(1344), 1, anon_sym_end, [14262] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1346), 2, anon_sym_RBRACK, sym_hex_byte, [14270] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1348), 1, sym_identifier, ACTIONS(1350), 1, anon_sym_import, [14280] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, STATE(500), 1, sym__cardinality_inner, [14290] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(81), 1, anon_sym_LT, STATE(485), 1, sym_iri, [14300] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1352), 2, anon_sym_end, anon_sym_def, [14308] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1354), 1, anon_sym_LBRACK, ACTIONS(1356), 1, sym_quoted_string, [14318] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1358), 2, anon_sym_end, anon_sym_def, [14326] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1360), 1, sym_identifier, ACTIONS(1362), 1, anon_sym_end, [14336] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(947), 1, sym_unsigned, STATE(511), 1, sym__cardinality_inner, [14346] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1364), 1, sym_quoted_string, STATE(416), 1, aux_sym_pattern_restriction_facet_repeat1, [14356] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1366), 2, anon_sym_RBRACK, sym_identifier, [14364] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1368), 2, anon_sym_RBRACK, sym_identifier, [14372] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_is, STATE(282), 1, sym_annotation_only_body, [14382] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1370), 1, sym_unsigned, ACTIONS(1372), 1, sym_kw_is_fixed, [14392] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1374), 2, anon_sym_import, anon_sym_COLON_COLON2, [14400] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1376), 2, sym_identifier, anon_sym_RPAREN, [14408] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1378), 2, sym_identifier, anon_sym_RPAREN, [14416] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1380), 2, anon_sym_RBRACE, sym_unsigned, [14424] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1382), 1, anon_sym_is, [14431] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1384), 1, anon_sym_EQ, [14438] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1386), 1, sym_identifier, [14445] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1388), 1, sym_identifier, [14452] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1390), 1, anon_sym_LBRACK, [14459] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1392), 1, anon_sym_EQ, [14466] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1394), 1, anon_sym_RPAREN, [14473] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1396), 1, anon_sym_RBRACE, [14480] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1398), 1, anon_sym_RPAREN, [14487] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1400), 1, sym_identifier, [14494] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1402), 1, anon_sym_EQ, [14501] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1404), 1, anon_sym_RBRACE, [14508] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1406), 1, anon_sym_is, [14515] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1408), 1, ts_builtin_sym_end, [14522] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1410), 1, anon_sym_is, [14529] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1412), 1, anon_sym_RBRACE, [14536] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1414), 1, anon_sym_RBRACE, [14543] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1416), 1, sym_identifier, [14550] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1418), 1, sym_identifier, [14557] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1420), 1, sym_identifier, [14564] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1422), 1, anon_sym_is, [14571] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1424), 1, anon_sym_LBRACK, [14578] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1426), 1, anon_sym_RBRACE, [14585] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1428), 1, anon_sym_RBRACE, [14592] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1430), 1, ts_builtin_sym_end, [14599] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1432), 1, anon_sym_RBRACE, [14606] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1434), 1, sym_quoted_string, [14613] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1436), 1, anon_sym_RBRACE, [14620] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1438), 1, sym_identifier, [14627] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1440), 1, anon_sym_is, [14634] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1442), 1, sym_identifier, [14641] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1444), 1, sym_identifier, [14648] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1446), 1, anon_sym_RPAREN, [14655] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1448), 1, anon_sym_is, [14662] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LPAREN, [14669] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1450), 1, ts_builtin_sym_end, [14676] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1452), 1, anon_sym_RBRACE, [14683] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1454), 1, anon_sym_LBRACK, [14690] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1456), 1, anon_sym_RBRACE, [14697] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1458), 1, anon_sym_LBRACK, [14704] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1460), 1, anon_sym_RBRACE, [14711] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1462), 1, anon_sym_COMMA, [14718] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1464), 1, anon_sym_import, [14725] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1466), 1, anon_sym_RBRACE, [14732] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1468), 1, sym_unsigned, [14739] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1470), 1, anon_sym_LBRACK, [14746] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1472), 1, sym_unsigned, [14753] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1474), 1, ts_builtin_sym_end, [14760] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1476), 1, anon_sym_GT, [14767] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1478), 1, anon_sym_import, [14774] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1480), 1, sym_identifier, [14781] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1482), 1, sym_identifier, [14788] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1484), 1, anon_sym_GT, [14795] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1486), 1, sym_identifier, [14802] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1488), 1, anon_sym_RBRACE, [14809] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1490), 1, sym_identifier, [14816] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1492), 1, sym_identifier, [14823] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1494), 1, sym_identifier, [14830] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1496), 1, sym_identifier, [14837] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1498), 1, sym_identifier, [14844] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1500), 1, sym_identifier, [14851] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1502), 1, sym_identifier, [14858] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1504), 1, sym_identifier, [14865] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1506), 1, sym_identifier, [14872] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1508), 1, sym_identifier, [14879] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1510), 1, sym_identifier, [14886] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1512), 1, sym_identifier, [14893] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1514), 1, anon_sym_RBRACE, [14900] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1516), 1, anon_sym_COMMA, [14907] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1518), 1, ts_builtin_sym_end, [14914] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1520), 1, anon_sym_EQ, [14921] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1522), 1, ts_builtin_sym_end, [14928] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1524), 1, anon_sym_RBRACE, [14935] = 2, ACTIONS(1526), 1, aux_sym_iri_token1, ACTIONS(1528), 1, sym_line_comment, [14942] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1530), 1, sym_identifier, [14949] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1532), 1, anon_sym_COMMA, [14956] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1534), 1, anon_sym_LBRACK, [14963] = 2, ACTIONS(1528), 1, sym_line_comment, ACTIONS(1536), 1, aux_sym_iri_token1, [14970] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1538), 1, anon_sym_EQ, [14977] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1540), 1, anon_sym_EQ, [14984] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1542), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 69, [SMALL_STATE(4)] = 153, [SMALL_STATE(5)] = 221, [SMALL_STATE(6)] = 286, [SMALL_STATE(7)] = 351, [SMALL_STATE(8)] = 416, [SMALL_STATE(9)] = 481, [SMALL_STATE(10)] = 546, [SMALL_STATE(11)] = 611, [SMALL_STATE(12)] = 676, [SMALL_STATE(13)] = 757, [SMALL_STATE(14)] = 822, [SMALL_STATE(15)] = 900, [SMALL_STATE(16)] = 978, [SMALL_STATE(17)] = 1056, [SMALL_STATE(18)] = 1131, [SMALL_STATE(19)] = 1193, [SMALL_STATE(20)] = 1265, [SMALL_STATE(21)] = 1386, [SMALL_STATE(22)] = 1507, [SMALL_STATE(23)] = 1576, [SMALL_STATE(24)] = 1697, [SMALL_STATE(25)] = 1818, [SMALL_STATE(26)] = 1939, [SMALL_STATE(27)] = 2060, [SMALL_STATE(28)] = 2181, [SMALL_STATE(29)] = 2302, [SMALL_STATE(30)] = 2423, [SMALL_STATE(31)] = 2544, [SMALL_STATE(32)] = 2665, [SMALL_STATE(33)] = 2719, [SMALL_STATE(34)] = 2773, [SMALL_STATE(35)] = 2827, [SMALL_STATE(36)] = 2881, [SMALL_STATE(37)] = 2935, [SMALL_STATE(38)] = 2988, [SMALL_STATE(39)] = 3041, [SMALL_STATE(40)] = 3094, [SMALL_STATE(41)] = 3147, [SMALL_STATE(42)] = 3200, [SMALL_STATE(43)] = 3253, [SMALL_STATE(44)] = 3306, [SMALL_STATE(45)] = 3359, [SMALL_STATE(46)] = 3404, [SMALL_STATE(47)] = 3485, [SMALL_STATE(48)] = 3566, [SMALL_STATE(49)] = 3647, [SMALL_STATE(50)] = 3728, [SMALL_STATE(51)] = 3809, [SMALL_STATE(52)] = 3851, [SMALL_STATE(53)] = 3893, [SMALL_STATE(54)] = 3973, [SMALL_STATE(55)] = 4053, [SMALL_STATE(56)] = 4095, [SMALL_STATE(57)] = 4137, [SMALL_STATE(58)] = 4179, [SMALL_STATE(59)] = 4221, [SMALL_STATE(60)] = 4263, [SMALL_STATE(61)] = 4338, [SMALL_STATE(62)] = 4413, [SMALL_STATE(63)] = 4456, [SMALL_STATE(64)] = 4531, [SMALL_STATE(65)] = 4609, [SMALL_STATE(66)] = 4687, [SMALL_STATE(67)] = 4765, [SMALL_STATE(68)] = 4843, [SMALL_STATE(69)] = 4921, [SMALL_STATE(70)] = 4999, [SMALL_STATE(71)] = 5077, [SMALL_STATE(72)] = 5123, [SMALL_STATE(73)] = 5201, [SMALL_STATE(74)] = 5279, [SMALL_STATE(75)] = 5322, [SMALL_STATE(76)] = 5365, [SMALL_STATE(77)] = 5408, [SMALL_STATE(78)] = 5451, [SMALL_STATE(79)] = 5523, [SMALL_STATE(80)] = 5595, [SMALL_STATE(81)] = 5667, [SMALL_STATE(82)] = 5705, [SMALL_STATE(83)] = 5772, [SMALL_STATE(84)] = 5839, [SMALL_STATE(85)] = 5875, [SMALL_STATE(86)] = 5911, [SMALL_STATE(87)] = 5947, [SMALL_STATE(88)] = 5983, [SMALL_STATE(89)] = 6019, [SMALL_STATE(90)] = 6055, [SMALL_STATE(91)] = 6091, [SMALL_STATE(92)] = 6127, [SMALL_STATE(93)] = 6163, [SMALL_STATE(94)] = 6199, [SMALL_STATE(95)] = 6236, [SMALL_STATE(96)] = 6298, [SMALL_STATE(97)] = 6360, [SMALL_STATE(98)] = 6422, [SMALL_STATE(99)] = 6484, [SMALL_STATE(100)] = 6546, [SMALL_STATE(101)] = 6581, [SMALL_STATE(102)] = 6640, [SMALL_STATE(103)] = 6675, [SMALL_STATE(104)] = 6707, [SMALL_STATE(105)] = 6739, [SMALL_STATE(106)] = 6771, [SMALL_STATE(107)] = 6827, [SMALL_STATE(108)] = 6859, [SMALL_STATE(109)] = 6891, [SMALL_STATE(110)] = 6923, [SMALL_STATE(111)] = 6955, [SMALL_STATE(112)] = 6986, [SMALL_STATE(113)] = 7039, [SMALL_STATE(114)] = 7072, [SMALL_STATE(115)] = 7109, [SMALL_STATE(116)] = 7140, [SMALL_STATE(117)] = 7171, [SMALL_STATE(118)] = 7224, [SMALL_STATE(119)] = 7277, [SMALL_STATE(120)] = 7330, [SMALL_STATE(121)] = 7364, [SMALL_STATE(122)] = 7398, [SMALL_STATE(123)] = 7428, [SMALL_STATE(124)] = 7462, [SMALL_STATE(125)] = 7496, [SMALL_STATE(126)] = 7526, [SMALL_STATE(127)] = 7556, [SMALL_STATE(128)] = 7586, [SMALL_STATE(129)] = 7616, [SMALL_STATE(130)] = 7646, [SMALL_STATE(131)] = 7676, [SMALL_STATE(132)] = 7714, [SMALL_STATE(133)] = 7744, [SMALL_STATE(134)] = 7783, [SMALL_STATE(135)] = 7812, [SMALL_STATE(136)] = 7851, [SMALL_STATE(137)] = 7880, [SMALL_STATE(138)] = 7913, [SMALL_STATE(139)] = 7942, [SMALL_STATE(140)] = 7971, [SMALL_STATE(141)] = 8000, [SMALL_STATE(142)] = 8029, [SMALL_STATE(143)] = 8068, [SMALL_STATE(144)] = 8096, [SMALL_STATE(145)] = 8124, [SMALL_STATE(146)] = 8156, [SMALL_STATE(147)] = 8184, [SMALL_STATE(148)] = 8220, [SMALL_STATE(149)] = 8252, [SMALL_STATE(150)] = 8280, [SMALL_STATE(151)] = 8308, [SMALL_STATE(152)] = 8340, [SMALL_STATE(153)] = 8368, [SMALL_STATE(154)] = 8397, [SMALL_STATE(155)] = 8424, [SMALL_STATE(156)] = 8451, [SMALL_STATE(157)] = 8488, [SMALL_STATE(158)] = 8525, [SMALL_STATE(159)] = 8562, [SMALL_STATE(160)] = 8605, [SMALL_STATE(161)] = 8634, [SMALL_STATE(162)] = 8659, [SMALL_STATE(163)] = 8686, [SMALL_STATE(164)] = 8723, [SMALL_STATE(165)] = 8752, [SMALL_STATE(166)] = 8779, [SMALL_STATE(167)] = 8816, [SMALL_STATE(168)] = 8843, [SMALL_STATE(169)] = 8872, [SMALL_STATE(170)] = 8898, [SMALL_STATE(171)] = 8924, [SMALL_STATE(172)] = 8950, [SMALL_STATE(173)] = 8982, [SMALL_STATE(174)] = 9008, [SMALL_STATE(175)] = 9034, [SMALL_STATE(176)] = 9060, [SMALL_STATE(177)] = 9086, [SMALL_STATE(178)] = 9114, [SMALL_STATE(179)] = 9148, [SMALL_STATE(180)] = 9173, [SMALL_STATE(181)] = 9198, [SMALL_STATE(182)] = 9223, [SMALL_STATE(183)] = 9246, [SMALL_STATE(184)] = 9269, [SMALL_STATE(185)] = 9296, [SMALL_STATE(186)] = 9319, [SMALL_STATE(187)] = 9342, [SMALL_STATE(188)] = 9365, [SMALL_STATE(189)] = 9392, [SMALL_STATE(190)] = 9417, [SMALL_STATE(191)] = 9442, [SMALL_STATE(192)] = 9467, [SMALL_STATE(193)] = 9506, [SMALL_STATE(194)] = 9529, [SMALL_STATE(195)] = 9554, [SMALL_STATE(196)] = 9579, [SMALL_STATE(197)] = 9608, [SMALL_STATE(198)] = 9633, [SMALL_STATE(199)] = 9661, [SMALL_STATE(200)] = 9699, [SMALL_STATE(201)] = 9724, [SMALL_STATE(202)] = 9747, [SMALL_STATE(203)] = 9770, [SMALL_STATE(204)] = 9791, [SMALL_STATE(205)] = 9812, [SMALL_STATE(206)] = 9841, [SMALL_STATE(207)] = 9870, [SMALL_STATE(208)] = 9891, [SMALL_STATE(209)] = 9912, [SMALL_STATE(210)] = 9935, [SMALL_STATE(211)] = 9957, [SMALL_STATE(212)] = 9991, [SMALL_STATE(213)] = 10017, [SMALL_STATE(214)] = 10051, [SMALL_STATE(215)] = 10073, [SMALL_STATE(216)] = 10096, [SMALL_STATE(217)] = 10119, [SMALL_STATE(218)] = 10142, [SMALL_STATE(219)] = 10165, [SMALL_STATE(220)] = 10200, [SMALL_STATE(221)] = 10223, [SMALL_STATE(222)] = 10246, [SMALL_STATE(223)] = 10269, [SMALL_STATE(224)] = 10292, [SMALL_STATE(225)] = 10315, [SMALL_STATE(226)] = 10350, [SMALL_STATE(227)] = 10368, [SMALL_STATE(228)] = 10386, [SMALL_STATE(229)] = 10420, [SMALL_STATE(230)] = 10454, [SMALL_STATE(231)] = 10472, [SMALL_STATE(232)] = 10490, [SMALL_STATE(233)] = 10508, [SMALL_STATE(234)] = 10526, [SMALL_STATE(235)] = 10544, [SMALL_STATE(236)] = 10562, [SMALL_STATE(237)] = 10580, [SMALL_STATE(238)] = 10598, [SMALL_STATE(239)] = 10616, [SMALL_STATE(240)] = 10634, [SMALL_STATE(241)] = 10652, [SMALL_STATE(242)] = 10669, [SMALL_STATE(243)] = 10686, [SMALL_STATE(244)] = 10703, [SMALL_STATE(245)] = 10720, [SMALL_STATE(246)] = 10737, [SMALL_STATE(247)] = 10754, [SMALL_STATE(248)] = 10771, [SMALL_STATE(249)] = 10788, [SMALL_STATE(250)] = 10805, [SMALL_STATE(251)] = 10822, [SMALL_STATE(252)] = 10839, [SMALL_STATE(253)] = 10856, [SMALL_STATE(254)] = 10873, [SMALL_STATE(255)] = 10890, [SMALL_STATE(256)] = 10907, [SMALL_STATE(257)] = 10924, [SMALL_STATE(258)] = 10941, [SMALL_STATE(259)] = 10958, [SMALL_STATE(260)] = 10975, [SMALL_STATE(261)] = 10992, [SMALL_STATE(262)] = 11009, [SMALL_STATE(263)] = 11026, [SMALL_STATE(264)] = 11043, [SMALL_STATE(265)] = 11060, [SMALL_STATE(266)] = 11077, [SMALL_STATE(267)] = 11110, [SMALL_STATE(268)] = 11127, [SMALL_STATE(269)] = 11144, [SMALL_STATE(270)] = 11161, [SMALL_STATE(271)] = 11178, [SMALL_STATE(272)] = 11195, [SMALL_STATE(273)] = 11212, [SMALL_STATE(274)] = 11229, [SMALL_STATE(275)] = 11246, [SMALL_STATE(276)] = 11263, [SMALL_STATE(277)] = 11280, [SMALL_STATE(278)] = 11297, [SMALL_STATE(279)] = 11314, [SMALL_STATE(280)] = 11331, [SMALL_STATE(281)] = 11364, [SMALL_STATE(282)] = 11381, [SMALL_STATE(283)] = 11398, [SMALL_STATE(284)] = 11415, [SMALL_STATE(285)] = 11432, [SMALL_STATE(286)] = 11449, [SMALL_STATE(287)] = 11477, [SMALL_STATE(288)] = 11505, [SMALL_STATE(289)] = 11533, [SMALL_STATE(290)] = 11561, [SMALL_STATE(291)] = 11589, [SMALL_STATE(292)] = 11617, [SMALL_STATE(293)] = 11645, [SMALL_STATE(294)] = 11673, [SMALL_STATE(295)] = 11700, [SMALL_STATE(296)] = 11725, [SMALL_STATE(297)] = 11752, [SMALL_STATE(298)] = 11779, [SMALL_STATE(299)] = 11804, [SMALL_STATE(300)] = 11828, [SMALL_STATE(301)] = 11852, [SMALL_STATE(302)] = 11876, [SMALL_STATE(303)] = 11900, [SMALL_STATE(304)] = 11924, [SMALL_STATE(305)] = 11948, [SMALL_STATE(306)] = 11969, [SMALL_STATE(307)] = 11984, [SMALL_STATE(308)] = 11999, [SMALL_STATE(309)] = 12020, [SMALL_STATE(310)] = 12039, [SMALL_STATE(311)] = 12060, [SMALL_STATE(312)] = 12079, [SMALL_STATE(313)] = 12098, [SMALL_STATE(314)] = 12119, [SMALL_STATE(315)] = 12140, [SMALL_STATE(316)] = 12161, [SMALL_STATE(317)] = 12182, [SMALL_STATE(318)] = 12203, [SMALL_STATE(319)] = 12224, [SMALL_STATE(320)] = 12243, [SMALL_STATE(321)] = 12258, [SMALL_STATE(322)] = 12277, [SMALL_STATE(323)] = 12296, [SMALL_STATE(324)] = 12315, [SMALL_STATE(325)] = 12340, [SMALL_STATE(326)] = 12361, [SMALL_STATE(327)] = 12382, [SMALL_STATE(328)] = 12403, [SMALL_STATE(329)] = 12422, [SMALL_STATE(330)] = 12439, [SMALL_STATE(331)] = 12460, [SMALL_STATE(332)] = 12481, [SMALL_STATE(333)] = 12502, [SMALL_STATE(334)] = 12521, [SMALL_STATE(335)] = 12542, [SMALL_STATE(336)] = 12564, [SMALL_STATE(337)] = 12580, [SMALL_STATE(338)] = 12600, [SMALL_STATE(339)] = 12618, [SMALL_STATE(340)] = 12640, [SMALL_STATE(341)] = 12660, [SMALL_STATE(342)] = 12678, [SMALL_STATE(343)] = 12696, [SMALL_STATE(344)] = 12716, [SMALL_STATE(345)] = 12734, [SMALL_STATE(346)] = 12752, [SMALL_STATE(347)] = 12772, [SMALL_STATE(348)] = 12788, [SMALL_STATE(349)] = 12810, [SMALL_STATE(350)] = 12832, [SMALL_STATE(351)] = 12854, [SMALL_STATE(352)] = 12872, [SMALL_STATE(353)] = 12892, [SMALL_STATE(354)] = 12911, [SMALL_STATE(355)] = 12928, [SMALL_STATE(356)] = 12939, [SMALL_STATE(357)] = 12958, [SMALL_STATE(358)] = 12975, [SMALL_STATE(359)] = 12986, [SMALL_STATE(360)] = 13005, [SMALL_STATE(361)] = 13024, [SMALL_STATE(362)] = 13041, [SMALL_STATE(363)] = 13060, [SMALL_STATE(364)] = 13077, [SMALL_STATE(365)] = 13088, [SMALL_STATE(366)] = 13105, [SMALL_STATE(367)] = 13116, [SMALL_STATE(368)] = 13127, [SMALL_STATE(369)] = 13138, [SMALL_STATE(370)] = 13157, [SMALL_STATE(371)] = 13172, [SMALL_STATE(372)] = 13187, [SMALL_STATE(373)] = 13202, [SMALL_STATE(374)] = 13221, [SMALL_STATE(375)] = 13240, [SMALL_STATE(376)] = 13257, [SMALL_STATE(377)] = 13272, [SMALL_STATE(378)] = 13291, [SMALL_STATE(379)] = 13305, [SMALL_STATE(380)] = 13321, [SMALL_STATE(381)] = 13337, [SMALL_STATE(382)] = 13349, [SMALL_STATE(383)] = 13361, [SMALL_STATE(384)] = 13373, [SMALL_STATE(385)] = 13389, [SMALL_STATE(386)] = 13405, [SMALL_STATE(387)] = 13421, [SMALL_STATE(388)] = 13437, [SMALL_STATE(389)] = 13451, [SMALL_STATE(390)] = 13465, [SMALL_STATE(391)] = 13481, [SMALL_STATE(392)] = 13495, [SMALL_STATE(393)] = 13507, [SMALL_STATE(394)] = 13519, [SMALL_STATE(395)] = 13533, [SMALL_STATE(396)] = 13547, [SMALL_STATE(397)] = 13563, [SMALL_STATE(398)] = 13575, [SMALL_STATE(399)] = 13591, [SMALL_STATE(400)] = 13605, [SMALL_STATE(401)] = 13619, [SMALL_STATE(402)] = 13633, [SMALL_STATE(403)] = 13647, [SMALL_STATE(404)] = 13657, [SMALL_STATE(405)] = 13673, [SMALL_STATE(406)] = 13689, [SMALL_STATE(407)] = 13701, [SMALL_STATE(408)] = 13717, [SMALL_STATE(409)] = 13729, [SMALL_STATE(410)] = 13741, [SMALL_STATE(411)] = 13752, [SMALL_STATE(412)] = 13765, [SMALL_STATE(413)] = 13778, [SMALL_STATE(414)] = 13791, [SMALL_STATE(415)] = 13804, [SMALL_STATE(416)] = 13813, [SMALL_STATE(417)] = 13826, [SMALL_STATE(418)] = 13839, [SMALL_STATE(419)] = 13852, [SMALL_STATE(420)] = 13865, [SMALL_STATE(421)] = 13878, [SMALL_STATE(422)] = 13891, [SMALL_STATE(423)] = 13904, [SMALL_STATE(424)] = 13915, [SMALL_STATE(425)] = 13928, [SMALL_STATE(426)] = 13941, [SMALL_STATE(427)] = 13954, [SMALL_STATE(428)] = 13963, [SMALL_STATE(429)] = 13976, [SMALL_STATE(430)] = 13989, [SMALL_STATE(431)] = 14002, [SMALL_STATE(432)] = 14015, [SMALL_STATE(433)] = 14028, [SMALL_STATE(434)] = 14041, [SMALL_STATE(435)] = 14054, [SMALL_STATE(436)] = 14067, [SMALL_STATE(437)] = 14080, [SMALL_STATE(438)] = 14093, [SMALL_STATE(439)] = 14106, [SMALL_STATE(440)] = 14119, [SMALL_STATE(441)] = 14130, [SMALL_STATE(442)] = 14139, [SMALL_STATE(443)] = 14150, [SMALL_STATE(444)] = 14160, [SMALL_STATE(445)] = 14170, [SMALL_STATE(446)] = 14178, [SMALL_STATE(447)] = 14188, [SMALL_STATE(448)] = 14196, [SMALL_STATE(449)] = 14206, [SMALL_STATE(450)] = 14216, [SMALL_STATE(451)] = 14224, [SMALL_STATE(452)] = 14234, [SMALL_STATE(453)] = 14244, [SMALL_STATE(454)] = 14252, [SMALL_STATE(455)] = 14262, [SMALL_STATE(456)] = 14270, [SMALL_STATE(457)] = 14280, [SMALL_STATE(458)] = 14290, [SMALL_STATE(459)] = 14300, [SMALL_STATE(460)] = 14308, [SMALL_STATE(461)] = 14318, [SMALL_STATE(462)] = 14326, [SMALL_STATE(463)] = 14336, [SMALL_STATE(464)] = 14346, [SMALL_STATE(465)] = 14356, [SMALL_STATE(466)] = 14364, [SMALL_STATE(467)] = 14372, [SMALL_STATE(468)] = 14382, [SMALL_STATE(469)] = 14392, [SMALL_STATE(470)] = 14400, [SMALL_STATE(471)] = 14408, [SMALL_STATE(472)] = 14416, [SMALL_STATE(473)] = 14424, [SMALL_STATE(474)] = 14431, [SMALL_STATE(475)] = 14438, [SMALL_STATE(476)] = 14445, [SMALL_STATE(477)] = 14452, [SMALL_STATE(478)] = 14459, [SMALL_STATE(479)] = 14466, [SMALL_STATE(480)] = 14473, [SMALL_STATE(481)] = 14480, [SMALL_STATE(482)] = 14487, [SMALL_STATE(483)] = 14494, [SMALL_STATE(484)] = 14501, [SMALL_STATE(485)] = 14508, [SMALL_STATE(486)] = 14515, [SMALL_STATE(487)] = 14522, [SMALL_STATE(488)] = 14529, [SMALL_STATE(489)] = 14536, [SMALL_STATE(490)] = 14543, [SMALL_STATE(491)] = 14550, [SMALL_STATE(492)] = 14557, [SMALL_STATE(493)] = 14564, [SMALL_STATE(494)] = 14571, [SMALL_STATE(495)] = 14578, [SMALL_STATE(496)] = 14585, [SMALL_STATE(497)] = 14592, [SMALL_STATE(498)] = 14599, [SMALL_STATE(499)] = 14606, [SMALL_STATE(500)] = 14613, [SMALL_STATE(501)] = 14620, [SMALL_STATE(502)] = 14627, [SMALL_STATE(503)] = 14634, [SMALL_STATE(504)] = 14641, [SMALL_STATE(505)] = 14648, [SMALL_STATE(506)] = 14655, [SMALL_STATE(507)] = 14662, [SMALL_STATE(508)] = 14669, [SMALL_STATE(509)] = 14676, [SMALL_STATE(510)] = 14683, [SMALL_STATE(511)] = 14690, [SMALL_STATE(512)] = 14697, [SMALL_STATE(513)] = 14704, [SMALL_STATE(514)] = 14711, [SMALL_STATE(515)] = 14718, [SMALL_STATE(516)] = 14725, [SMALL_STATE(517)] = 14732, [SMALL_STATE(518)] = 14739, [SMALL_STATE(519)] = 14746, [SMALL_STATE(520)] = 14753, [SMALL_STATE(521)] = 14760, [SMALL_STATE(522)] = 14767, [SMALL_STATE(523)] = 14774, [SMALL_STATE(524)] = 14781, [SMALL_STATE(525)] = 14788, [SMALL_STATE(526)] = 14795, [SMALL_STATE(527)] = 14802, [SMALL_STATE(528)] = 14809, [SMALL_STATE(529)] = 14816, [SMALL_STATE(530)] = 14823, [SMALL_STATE(531)] = 14830, [SMALL_STATE(532)] = 14837, [SMALL_STATE(533)] = 14844, [SMALL_STATE(534)] = 14851, [SMALL_STATE(535)] = 14858, [SMALL_STATE(536)] = 14865, [SMALL_STATE(537)] = 14872, [SMALL_STATE(538)] = 14879, [SMALL_STATE(539)] = 14886, [SMALL_STATE(540)] = 14893, [SMALL_STATE(541)] = 14900, [SMALL_STATE(542)] = 14907, [SMALL_STATE(543)] = 14914, [SMALL_STATE(544)] = 14921, [SMALL_STATE(545)] = 14928, [SMALL_STATE(546)] = 14935, [SMALL_STATE(547)] = 14942, [SMALL_STATE(548)] = 14949, [SMALL_STATE(549)] = 14956, [SMALL_STATE(550)] = 14963, [SMALL_STATE(551)] = 14970, [SMALL_STATE(552)] = 14977, [SMALL_STATE(553)] = 14984, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), [7] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_iri, 3, 0, 0), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_iri, 3, 0, 0), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), [23] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [29] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary, 3, 0, 61), [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary, 3, 0, 61), [33] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1, 0, 0), [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1, 0, 0), [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_falsity, 1, 0, 0), [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_falsity, 1, 0, 0), [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_truth, 1, 0, 0), [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_truth, 1, 0, 0), [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_simple_value, 1, 0, 0), [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_simple_value, 1, 0, 0), [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary, 2, 0, 0), [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary, 2, 0, 0), [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 32), [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 32), [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_identifier, 3, 0, 16), [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_identifier, 3, 0, 16), [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier_reference, 1, 0, 0), [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier_reference, 1, 0, 0), [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 5, 0, 106), [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 5, 0, 106), [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 3, 0, 78), [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 3, 0, 78), [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_constructor, 4, 0, 85), [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_constructor, 4, 0, 85), [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 4, 0, 97), [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 4, 0, 97), [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 4, 0, 96), [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 4, 0, 96), [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 4, 0, 96), [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 4, 0, 96), [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 3, 0, 60), [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 3, 0, 60), [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 2, 0, 0), [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 2, 0, 0), [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 3, 0, 78), [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 3, 0, 78), [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 5, 0, 106), [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 5, 0, 106), [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 4, 0, 84), [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 4, 0, 84), [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 4, 0, 97), [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 4, 0, 97), [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_cardinality_expression, 3, 0, 59), [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_cardinality_expression, 3, 0, 59), [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1, 0, 0), [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1, 0, 0), [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(114), [192] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(70), [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(121), [200] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(294), [203] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(113), [206] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(546), [209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(433), [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(130), [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(130), [218] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(122), [221] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(126), [224] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 2, 0, 89), SHIFT_REPEAT(144), [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mapping_value, 3, 0, 64), [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mapping_value, 3, 0, 64), [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 4, 0, 86), [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 4, 0, 86), [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535), [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533), [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(529), [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528), [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(524), [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542), [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 1, 0, 20), [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 1, 0, 20), [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 3, 0, 57), [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 3, 0, 57), [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 2, 0, 0), [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 2, 0, 0), [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 3, 0, 63), [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 3, 0, 63), [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(503), [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), [309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(164), [312] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(70), [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), [317] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(341), [320] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(113), [323] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(546), [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(433), [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(130), [332] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(130), [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(122), [338] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(126), [341] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 58), SHIFT_REPEAT(144), [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 65), [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 65), [350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 65), SHIFT_REPEAT(539), [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_composition, 2, 0, 34), [355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_composition, 2, 0, 34), [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 1, 0, 0), [359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_term, 1, 0, 0), [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 6), [367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 6), [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486), [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_builder, 5, 0, 100), [373] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_builder, 5, 0, 100), [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 63), [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 63), [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_actual_arguments, 3, 0, 88), [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_actual_arguments, 3, 0, 88), [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 4, 0, 86), [385] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 4, 0, 86), [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 57), [389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 57), [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_actual_arguments, 2, 0, 0), [393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_actual_arguments, 2, 0, 0), [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 1, 0, 20), [397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 1, 0, 20), [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 2, 0, 0), [401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 2, 0, 0), [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate_value, 1, 0, 0), [405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_predicate_value, 1, 0, 0), [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_functional_term, 2, 0, 37), [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_atomic_sentence, 2, 0, 36), [411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_functional_term, 2, 0, 37), [413] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(164), [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), [418] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(113), [421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(546), [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(433), [427] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(130), [430] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(130), [433] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(122), [436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 58), SHIFT_REPEAT(126), [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), [449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_implication, 1, 0, 0), [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_implication, 1, 0, 0), [453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_negation, 1, 0, 0), [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_negation, 1, 0, 0), [457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_op_by_definition, 1, 0, 0), [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_op_by_definition, 1, 0, 0), [461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_conjunction, 1, 0, 0), [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_conjunction, 1, 0, 0), [465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_disjunction, 1, 0, 0), [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_disjunction, 1, 0, 0), [469] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_exclusive_disjunction, 1, 0, 0), [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_exclusive_disjunction, 1, 0, 0), [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_biconditional, 1, 0, 0), [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_biconditional, 1, 0, 0), [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534), [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), [487] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(537), [490] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(536), [493] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(535), [496] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(533), [499] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(531), [502] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(452), [505] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(529), [508] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(528), [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(524), [514] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(523), [517] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 65), SHIFT_REPEAT(534), [520] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_simple_type, 1, 0, 0), [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_simple_type, 1, 0, 0), [524] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_module_body_repeat2, 2, 0, 0), [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_body_repeat2, 2, 0, 0), [528] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat2, 2, 0, 0), SHIFT_REPEAT(439), [531] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat2, 2, 0, 0), SHIFT_REPEAT(538), [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_body, 2, 0, 35), [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_boolean_sentence, 3, 0, 66), [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantified_sentence, 3, 0, 67), [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_boolean_sentence, 2, 0, 38), [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), [554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mapping_type, 5, 0, 105), [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mapping_type, 5, 0, 105), [558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_actual_arguments_repeat1, 1, 0, 69), [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_actual_arguments_repeat1, 1, 0, 69), [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 1, 0, 4), [566] = {.entry = {.count = 1, .reusable = false}}, SHIFT(504), [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), [570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_informal_constraint, 2, 0, 22), [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_informal_constraint, 2, 0, 22), [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552), [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inequation, 3, 0, 70), [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), [598] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(543), [601] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(551), [604] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(552), [607] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(483), [610] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(478), [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_equation, 3, 0, 68), [617] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_reference, 1, 0, 0), [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_reference, 1, 0, 0), [621] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_formal_constraint, 3, 0, 35), [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_constraint, 3, 0, 35), [625] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_informal_constraint, 3, 0, 40), [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_informal_constraint, 3, 0, 40), [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2, 0, 0), [631] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2, 0, 0), SHIFT_REPEAT(351), [634] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2, 0, 0), SHIFT_REPEAT(376), [637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_property, 4, 0, 21), [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_property, 4, 0, 21), [641] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_formal_constraint, 4, 0, 72), [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_constraint, 4, 0, 72), [645] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constraint, 3, 0, 1), [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 3, 0, 1), [649] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation, 1, 0, 0), [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation, 1, 0, 0), [653] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 1, 0, 31), [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 1, 0, 31), [657] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_op_greater_than_or_equal, 1, 0, 0), [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_greater_than_or_equal, 1, 0, 0), [661] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 2, 0, 9), [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 2, 0, 9), [665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_op_inequality, 1, 0, 0), [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_inequality, 1, 0, 0), [669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_sentence, 3, 0, 0), [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_simple_sentence, 1, 0, 0), [673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_import, 1, 0, 4), [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_sentence, 1, 0, 0), [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_sentence, 1, 0, 0), [679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 2, 0, 10), [681] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_op_less_than_or_equal, 1, 0, 0), [683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_less_than_or_equal, 1, 0, 0), [685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__rename_import, 2, 0, 15), [687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__rename_import, 2, 0, 15), [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), [693] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_import, 2, 0, 9), [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_import, 2, 0, 9), [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_op_membership, 1, 0, 0), [705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_op_membership, 1, 0, 0), [707] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sequence_of_values_repeat1, 1, 0, 31), [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 1, 0, 31), [711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 3, 0, 17), [713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 3, 0, 17), [715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_def, 2, 0, 13), [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_def, 2, 0, 13), [721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_expression_to, 2, 0, 25), [723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression_to, 2, 0, 25), [725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_expression_to, 3, 0, 49), [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression_to, 3, 0, 49), [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 4, 0, 0), [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 5, 0, 0), [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 4, 0, 23), [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), [737] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 5, 0, 42), [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 0), [741] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, 0, 0), [743] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_only_body, 3, 0, 0), [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_only_body, 3, 0, 0), [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), [749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 2, 0, 6), [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), [753] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_def, 3, 0, 24), [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_def, 3, 0, 24), [757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 5, 0, 55), [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_def, 2, 0, 6), [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), [765] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_def, 2, 0, 6), [767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_def, 2, 0, 6), [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), [771] = {.entry = {.count = 1, .reusable = false}}, SHIFT(395), [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), [779] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_def, 2, 0, 6), [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), [783] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_def, 2, 0, 6), [785] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 6, 0, 73), [787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 5, 0, 43), [789] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_def, 2, 0, 6), [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), [795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_digit_restriction_facet, 4, 0, 108), [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tz_restriction_value, 1, 0, 0), [799] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371), [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_restriction_value, 1, 0, 0), [807] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_datatype_def_restriction, 3, 0, 0), [809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_restriction_facet, 3, 0, 102), [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_length_restriction_facet, 3, 0, 102), [813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_restriction_facet, 5, 0, 115), [815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tz_restriction_facet, 4, 0, 109), [817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tz_restriction_facet, 3, 0, 103), [819] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_digit_restriction_facet, 3, 0, 102), [821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_restriction_facet, 4, 0, 108), [823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_restriction_facet, 3, 0, 103), [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_length_restriction_facet, 4, 0, 108), [827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 2, 0, 0), [829] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 3, 0, 0), [831] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 2, 0, 0), [833] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_def, 3, 0, 1), [835] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 5, 0, 76), [837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_def, 3, 0, 1), [839] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 3, 0, 52), [841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 3, 0, 0), [843] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 4, 0, 76), [845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_def, 3, 0, 1), [847] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 4, 0, 46), [849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_def, 3, 0, 1), [851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 6, 0, 75), [853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 5, 0, 76), [855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 4, 0, 46), [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 4, 0, 76), [859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 4, 0, 0), [861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_def, 3, 0, 1), [863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 4, 0, 46), [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 5, 0, 44), [867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 6, 0, 74), [869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_def, 3, 0, 1), [871] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 3, 0, 46), [873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_def, 3, 0, 1), [875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 5, 0, 76), [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), [881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 1, 0, 0), [883] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 3, 0, 46), [885] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 4, 0, 76), [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 3, 0, 1), [889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_body, 4, 0, 0), [891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_body, 3, 0, 0), [893] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_body, 4, 0, 0), [895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 4, 0, 82), [897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 3, 0, 46), [899] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property_def, 2, 0, 7), [901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 6, 0, 76), [903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 6, 0, 83), [905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_body, 2, 0, 0), [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 5, 0, 46), [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_def, 4, 0, 27), [913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_body, 2, 0, 0), [915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 7, 0, 92), [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_body, 3, 0, 0), [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), [931] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390), [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), [939] = {.entry = {.count = 1, .reusable = false}}, SHIFT(322), [941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), [943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), [949] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 1, 0, 28), [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), [955] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_type, 3, 0, 49), [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_type, 3, 0, 49), [959] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_reference, 1, 0, 0), [961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_reference, 1, 0, 0), [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), [965] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variable, 2, 0, 54), [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), [969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), [971] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_variable_restriction, 3, 0, 0), [973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), [975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), [979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), [981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), [983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), [989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_type, 2, 0, 25), [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_type, 2, 0, 25), [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variable, 1, 0, 4), [995] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1, 0, 0), [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1, 0, 0), [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), [1001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_variable_restriction, 2, 0, 0), [1003] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 1, 0, 4), [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), [1007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), [1009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), [1013] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_variable_restriction_repeat1, 2, 0, 0), [1015] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_variable_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(547), [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_reference, 1, 0, 4), [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), [1022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), [1024] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dimension_body_repeat2, 2, 0, 0), SHIFT_REPEAT(395), [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat2, 2, 0, 0), [1029] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat2, 2, 0, 0), SHIFT_REPEAT(429), [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), [1034] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(324), [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat1, 2, 0, 0), [1039] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_class_arguments_repeat1, 2, 0, 56), SHIFT_REPEAT(62), [1042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_arguments_repeat1, 2, 0, 56), [1044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), [1046] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_dimension_body_repeat1, 2, 0, 0), [1048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat1, 2, 0, 0), [1050] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat1, 2, 0, 0), SHIFT_REPEAT(532), [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), [1059] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dimension_parent, 4, 0, 104), [1061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_parent, 4, 0, 104), [1063] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_body_repeat1, 2, 0, 0), SHIFT_REPEAT(371), [1066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_body_repeat1, 2, 0, 0), [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), [1080] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 2, 0, 56), SHIFT_REPEAT(321), [1083] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 2, 0, 56), [1085] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 2, 0, 56), SHIFT_REPEAT(296), [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), [1090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), [1092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), [1094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), [1096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_environment, 2, 0, 0), [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_reference, 2, 0, 99), [1100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 1, 0, 4), [1102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 1, 0, 4), [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(490), [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constraint_environment_repeat1, 2, 0, 0), [1108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraint_environment_repeat1, 2, 0, 0), SHIFT_REPEAT(530), [1111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_signature, 3, 0, 71), [1113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), [1115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_rdf_types_repeat1, 2, 0, 81), SHIFT_REPEAT(62), [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_rdf_types_repeat1, 2, 0, 81), [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_signature, 6, 0, 107), [1128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_arguments, 3, 0, 113), [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_arguments, 3, 0, 114), [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), [1136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_source_entity, 2, 0, 45), [1138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_entity, 2, 0, 45), [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), [1152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_body_repeat1, 2, 0, 53), [1154] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_class_body_repeat1, 2, 0, 53), SHIFT_REPEAT(530), [1157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_builder_repeat1, 2, 0, 56), SHIFT_REPEAT(322), [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_builder_repeat1, 2, 0, 56), [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), [1166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 1, 0, 0), [1168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 1, 0, 0), [1170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_entity_identity, 2, 0, 46), [1172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_identity, 2, 0, 46), [1174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_signature_repeat1, 2, 0, 101), SHIFT_REPEAT(400), [1177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_signature_repeat1, 2, 0, 101), [1179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), [1181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_variant, 1, 0, 4), [1183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_variant, 1, 0, 4), [1185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), [1187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_source_entity, 4, 0, 94), [1189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_entity, 4, 0, 94), [1191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__identifier_or_sequence, 1, 0, 93), [1193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_or_sequence, 1, 0, 93), [1195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enum_body_repeat1, 2, 0, 0), SHIFT_REPEAT(390), [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_body_repeat1, 2, 0, 0), [1200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), [1206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_property_ref, 2, 0, 50), [1208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property_ref, 2, 0, 50), [1210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 3, 0, 79), [1212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 3, 0, 79), [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), [1216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 2, 0, 41), [1218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_ordering, 1, 0, 0), [1220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 2, 0, 10), [1222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), [1224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__identifier_or_sequence, 3, 0, 110), [1226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_or_sequence, 3, 0, 110), [1228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_import, 1, 0, 4), [1230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dimension_parent, 5, 0, 112), [1232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_parent, 5, 0, 112), [1234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 3, 0, 87), [1236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, 0, 87), [1238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), [1242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), [1244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pattern_restriction_facet_repeat1, 2, 0, 0), [1246] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_pattern_restriction_facet_repeat1, 2, 0, 0), SHIFT_REPEAT(413), [1249] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__identifier_or_sequence_repeat1, 2, 0, 111), SHIFT_REPEAT(465), [1252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__identifier_or_sequence_repeat1, 2, 0, 111), [1254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variable, 3, 0, 54), [1256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), [1260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantified_variable, 3, 0, 90), [1262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [1264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_relative, 2, 0, 12), [1266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), [1268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_absolute, 2, 0, 11), [1270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_absolute, 3, 0, 18), [1272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__cardinality_inner, 1, 0, 48), [1274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), [1276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [1278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_binary_repeat1, 2, 0, 62), [1280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_binary_repeat1, 2, 0, 62), SHIFT_REPEAT(455), [1283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_relative, 1, 0, 5), [1285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 1, 0, 30), [1287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_path_absolute_repeat1, 2, 0, 19), [1289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_path_absolute_repeat1, 2, 0, 19), SHIFT_REPEAT(501), [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), [1294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [1296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), [1298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), [1300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), [1302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), [1304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), [1306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), [1308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), [1310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), [1312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variable, 2, 0, 4), [1314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), [1316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), [1318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), [1320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_def, 2, 0, 41), [1322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 4, 0, 98), [1324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 4, 0, 98), [1326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 2, 0, 28), [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), [1330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_locations, 1, 0, 2), [1332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_builder_repeat1, 1, 0, 30), [1334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_range, 1, 0, 0), [1336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), [1338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), [1340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter, 2, 0, 13), [1342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_variant, 2, 0, 47), [1344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_variant, 2, 0, 47), [1346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_binary_repeat1, 1, 0, 33), [1348] = {.entry = {.count = 1, .reusable = false}}, SHIFT(420), [1350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_root_only, 1, 0, 0), [1352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 3, 0, 41), [1354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), [1356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), [1358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_body_repeat1, 1, 0, 29), [1360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 2, 0, 47), [1362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 2, 0, 47), [1364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416), [1366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__identifier_or_sequence_repeat1, 1, 0, 93), [1368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_rdf_types_repeat1, 1, 0, 51), [1370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), [1372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519), [1374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_path_absolute_repeat1, 2, 0, 11), [1376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_signature_repeat1, 1, 0, 91), [1378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_arguments_repeat1, 1, 0, 30), [1380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_uniqueness, 1, 0, 0), [1382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [1384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), [1386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_quantifier_existential, 1, 0, 0), [1388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), [1390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), [1392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), [1394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), [1396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [1398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_quantifier_universal, 1, 0, 0), [1402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), [1404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_locations, 4, 0, 14), [1408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 4, 0, 0), [1410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_types, 2, 0, 26), [1412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_builder_body, 1, 0, 0), [1416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), [1418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), [1420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), [1422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_types, 3, 0, 0), [1424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sequence_value_constraints, 4, 0, 84), [1426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), [1428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), [1430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 5, 0, 0), [1432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_range, 2, 0, 95), [1434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), [1436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), [1438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469), [1440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_types, 4, 0, 80), [1442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [1444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), [1446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), [1448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_locations, 3, 0, 8), [1450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 3, 0, 0), [1452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), [1454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sequence_value_constraints, 3, 0, 60), [1456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [1458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), [1462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [1464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_clause, 2, 0, 0), [1466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), [1468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sequence_value_constraints, 3, 0, 59), [1472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), [1474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, 0, 3), [1476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [1478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), [1480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), [1482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), [1484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), [1486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), [1488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__cardinality_inner, 2, 0, 77), [1490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), [1492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), [1494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), [1496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), [1498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), [1500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), [1502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), [1504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), [1506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), [1508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), [1510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), [1512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), [1514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [1516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantified_variable_binding, 2, 0, 39), [1518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 2, 0, 0), [1520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), [1522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, 0, 1), [1524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), [1526] = {.entry = {.count = 1, .reusable = false}}, SHIFT(525), [1528] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), [1530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_op_combiner, 1, 0, 0), [1532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), [1534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), [1536] = {.entry = {.count = 1, .reusable = false}}, SHIFT(521), [1538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), [1540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), [1542] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus extern "C" { #endif #ifdef TREE_SITTER_HIDE_SYMBOLS #define TS_PUBLIC #elif defined(_WIN32) #define TS_PUBLIC __declspec(dllexport) #else #define TS_PUBLIC __attribute__((visibility("default"))) #endif TS_PUBLIC const TSLanguage *tree_sitter_sdml(void) { static const TSLanguage language = { .version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, .external_token_count = EXTERNAL_TOKEN_COUNT, .state_count = STATE_COUNT, .large_state_count = LARGE_STATE_COUNT, .production_id_count = PRODUCTION_ID_COUNT, .field_count = FIELD_COUNT, .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, .parse_table = &ts_parse_table[0][0], .small_parse_table = ts_small_parse_table, .small_parse_table_map = ts_small_parse_table_map, .parse_actions = ts_parse_actions, .symbol_names = ts_symbol_names, .field_names = ts_field_names, .field_map_slices = ts_field_map_slices, .field_map_entries = ts_field_map_entries, .symbol_metadata = ts_symbol_metadata, .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = ts_lex_modes, .lex_fn = ts_lex, .keyword_lex_fn = ts_lex_keywords, .keyword_capture_token = sym_identifier, .primary_state_ids = ts_primary_state_ids, }; return &language; } #ifdef __cplusplus } #endif sdm-lang-tree-sitter-sdml-ae9db9a/src/tree_sitter/000077500000000000000000000000001476262407100223275ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/src/tree_sitter/alloc.h000066400000000000000000000016761476262407100236040ustar00rootroot00000000000000#ifndef TREE_SITTER_ALLOC_H_ #define TREE_SITTER_ALLOC_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR extern void *(*ts_current_malloc)(size_t); extern void *(*ts_current_calloc)(size_t, size_t); extern void *(*ts_current_realloc)(void *, size_t); extern void (*ts_current_free)(void *); #ifndef ts_malloc #define ts_malloc ts_current_malloc #endif #ifndef ts_calloc #define ts_calloc ts_current_calloc #endif #ifndef ts_realloc #define ts_realloc ts_current_realloc #endif #ifndef ts_free #define ts_free ts_current_free #endif #else #ifndef ts_malloc #define ts_malloc malloc #endif #ifndef ts_calloc #define ts_calloc calloc #endif #ifndef ts_realloc #define ts_realloc realloc #endif #ifndef ts_free #define ts_free free #endif #endif #ifdef __cplusplus } #endif #endif // TREE_SITTER_ALLOC_H_ sdm-lang-tree-sitter-sdml-ae9db9a/src/tree_sitter/array.h000066400000000000000000000242641476262407100236260ustar00rootroot00000000000000#ifndef TREE_SITTER_ARRAY_H_ #define TREE_SITTER_ARRAY_H_ #ifdef __cplusplus extern "C" { #endif #include "./alloc.h" #include #include #include #include #include #ifdef _MSC_VER #pragma warning(disable : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" #endif #define Array(T) \ struct { \ T *contents; \ uint32_t size; \ uint32_t capacity; \ } /// Initialize an array. #define array_init(self) \ ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) /// Create an empty array. #define array_new() \ { NULL, 0, 0 } /// Get a pointer to the element at a given `index` in the array. #define array_get(self, _index) \ (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) /// Get a pointer to the first element in the array. #define array_front(self) array_get(self, 0) /// Get a pointer to the last element in the array. #define array_back(self) array_get(self, (self)->size - 1) /// Clear the array, setting its size to zero. Note that this does not free any /// memory allocated for the array's contents. #define array_clear(self) ((self)->size = 0) /// Reserve `new_capacity` elements of space in the array. If `new_capacity` is /// less than the array's current capacity, this function has no effect. #define array_reserve(self, new_capacity) \ _array__reserve((Array *)(self), array_elem_size(self), new_capacity) /// Free any memory allocated for this array. Note that this does not free any /// memory allocated for the array's contents. #define array_delete(self) _array__delete((Array *)(self)) /// Push a new `element` onto the end of the array. #define array_push(self, element) \ (_array__grow((Array *)(self), 1, array_elem_size(self)), \ (self)->contents[(self)->size++] = (element)) /// Increase the array's size by `count` elements. /// New elements are zero-initialized. #define array_grow_by(self, count) \ do { \ if ((count) == 0) break; \ _array__grow((Array *)(self), count, array_elem_size(self)); \ memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ (self)->size += (count); \ } while (0) /// Append all elements from one array to the end of another. #define array_push_all(self, other) \ array_extend((self), (other)->size, (other)->contents) /// Append `count` elements to the end of the array, reading their values from the /// `contents` pointer. #define array_extend(self, count, contents) \ _array__splice( \ (Array *)(self), array_elem_size(self), (self)->size, \ 0, count, contents \ ) /// Remove `old_count` elements from the array starting at the given `index`. At /// the same index, insert `new_count` new elements, reading their values from the /// `new_contents` pointer. #define array_splice(self, _index, old_count, new_count, new_contents) \ _array__splice( \ (Array *)(self), array_elem_size(self), _index, \ old_count, new_count, new_contents \ ) /// Insert one `element` into the array at the given `index`. #define array_insert(self, _index, element) \ _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) /// Remove one element from the array at the given `index`. #define array_erase(self, _index) \ _array__erase((Array *)(self), array_elem_size(self), _index) /// Pop the last element off the array, returning the element by value. #define array_pop(self) ((self)->contents[--(self)->size]) /// Assign the contents of one array to another, reallocating if necessary. #define array_assign(self, other) \ _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) /// Swap one array with another #define array_swap(self, other) \ _array__swap((Array *)(self), (Array *)(other)) /// Get the size of the array contents #define array_elem_size(self) (sizeof *(self)->contents) /// Search a sorted array for a given `needle` value, using the given `compare` /// callback to determine the order. /// /// If an existing element is found to be equal to `needle`, then the `index` /// out-parameter is set to the existing value's index, and the `exists` /// out-parameter is set to true. Otherwise, `index` is set to an index where /// `needle` should be inserted in order to preserve the sorting, and `exists` /// is set to false. #define array_search_sorted_with(self, compare, needle, _index, _exists) \ _array__search_sorted(self, 0, compare, , needle, _index, _exists) /// Search a sorted array for a given `needle` value, using integer comparisons /// of a given struct field (specified with a leading dot) to determine the order. /// /// See also `array_search_sorted_with`. #define array_search_sorted_by(self, field, needle, _index, _exists) \ _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) /// Insert a given `value` into a sorted array, using the given `compare` /// callback to determine the order. #define array_insert_sorted_with(self, compare, value) \ do { \ unsigned _index, _exists; \ array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ if (!_exists) array_insert(self, _index, value); \ } while (0) /// Insert a given `value` into a sorted array, using integer comparisons of /// a given struct field (specified with a leading dot) to determine the order. /// /// See also `array_search_sorted_by`. #define array_insert_sorted_by(self, field, value) \ do { \ unsigned _index, _exists; \ array_search_sorted_by(self, field, (value) field, &_index, &_exists); \ if (!_exists) array_insert(self, _index, value); \ } while (0) // Private typedef Array(void) Array; /// This is not what you're looking for, see `array_delete`. static inline void _array__delete(Array *self) { if (self->contents) { ts_free(self->contents); self->contents = NULL; self->size = 0; self->capacity = 0; } } /// This is not what you're looking for, see `array_erase`. static inline void _array__erase(Array *self, size_t element_size, uint32_t index) { assert(index < self->size); char *contents = (char *)self->contents; memmove(contents + index * element_size, contents + (index + 1) * element_size, (self->size - index - 1) * element_size); self->size--; } /// This is not what you're looking for, see `array_reserve`. static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { if (new_capacity > self->capacity) { if (self->contents) { self->contents = ts_realloc(self->contents, new_capacity * element_size); } else { self->contents = ts_malloc(new_capacity * element_size); } self->capacity = new_capacity; } } /// This is not what you're looking for, see `array_assign`. static inline void _array__assign(Array *self, const Array *other, size_t element_size) { _array__reserve(self, element_size, other->size); self->size = other->size; memcpy(self->contents, other->contents, self->size * element_size); } /// This is not what you're looking for, see `array_swap`. static inline void _array__swap(Array *self, Array *other) { Array swap = *other; *other = *self; *self = swap; } /// This is not what you're looking for, see `array_push` or `array_grow_by`. static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { uint32_t new_size = self->size + count; if (new_size > self->capacity) { uint32_t new_capacity = self->capacity * 2; if (new_capacity < 8) new_capacity = 8; if (new_capacity < new_size) new_capacity = new_size; _array__reserve(self, element_size, new_capacity); } } /// This is not what you're looking for, see `array_splice`. static inline void _array__splice(Array *self, size_t element_size, uint32_t index, uint32_t old_count, uint32_t new_count, const void *elements) { uint32_t new_size = self->size + new_count - old_count; uint32_t old_end = index + old_count; uint32_t new_end = index + new_count; assert(old_end <= self->size); _array__reserve(self, element_size, new_size); char *contents = (char *)self->contents; if (self->size > old_end) { memmove( contents + new_end * element_size, contents + old_end * element_size, (self->size - old_end) * element_size ); } if (new_count > 0) { if (elements) { memcpy( (contents + index * element_size), elements, new_count * element_size ); } else { memset( (contents + index * element_size), 0, new_count * element_size ); } } self->size += new_count - old_count; } /// A binary search routine, based on Rust's `std::slice::binary_search_by`. /// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`. #define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ do { \ *(_index) = start; \ *(_exists) = false; \ uint32_t size = (self)->size - *(_index); \ if (size == 0) break; \ int comparison; \ while (size > 1) { \ uint32_t half_size = size / 2; \ uint32_t mid_index = *(_index) + half_size; \ comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ if (comparison <= 0) *(_index) = mid_index; \ size -= half_size; \ } \ comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ if (comparison == 0) *(_exists) = true; \ else if (comparison < 0) *(_index) += 1; \ } while (0) /// Helper macro for the `_sorted_by` routines below. This takes the left (existing) /// parameter by reference in order to work with the generic sorting function above. #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER #pragma warning(default : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif #ifdef __cplusplus } #endif #endif // TREE_SITTER_ARRAY_H_ sdm-lang-tree-sitter-sdml-ae9db9a/src/tree_sitter/parser.h000066400000000000000000000155141476262407100240020ustar00rootroot00000000000000#ifndef TREE_SITTER_PARSER_H_ #define TREE_SITTER_PARSER_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include #define ts_builtin_sym_error ((TSSymbol)-1) #define ts_builtin_sym_end 0 #define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 #ifndef TREE_SITTER_API_H_ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; #endif typedef struct { TSFieldId field_id; uint8_t child_index; bool inherited; } TSFieldMapEntry; typedef struct { uint16_t index; uint16_t length; } TSFieldMapSlice; typedef struct { bool visible; bool named; bool supertype; } TSSymbolMetadata; typedef struct TSLexer TSLexer; struct TSLexer { int32_t lookahead; TSSymbol result_symbol; void (*advance)(TSLexer *, bool); void (*mark_end)(TSLexer *); uint32_t (*get_column)(TSLexer *); bool (*is_at_included_range_start)(const TSLexer *); bool (*eof)(const TSLexer *); }; typedef enum { TSParseActionTypeShift, TSParseActionTypeReduce, TSParseActionTypeAccept, TSParseActionTypeRecover, } TSParseActionType; typedef union { struct { uint8_t type; TSStateId state; bool extra; bool repetition; } shift; struct { uint8_t type; uint8_t child_count; TSSymbol symbol; int16_t dynamic_precedence; uint16_t production_id; } reduce; uint8_t type; } TSParseAction; typedef struct { uint16_t lex_state; uint16_t external_lex_state; } TSLexMode; typedef union { TSParseAction action; struct { uint8_t count; bool reusable; } entry; } TSParseActionEntry; typedef struct { int32_t start; int32_t end; } TSCharacterRange; struct TSLanguage { uint32_t version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; uint32_t external_token_count; uint32_t state_count; uint32_t large_state_count; uint32_t production_id_count; uint32_t field_count; uint16_t max_alias_sequence_length; const uint16_t *parse_table; const uint16_t *small_parse_table; const uint32_t *small_parse_table_map; const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; const TSFieldMapSlice *field_map_slices; const TSFieldMapEntry *field_map_entries; const TSSymbolMetadata *symbol_metadata; const TSSymbol *public_symbol_map; const uint16_t *alias_map; const TSSymbol *alias_sequences; const TSLexMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; struct { const bool *states; const TSSymbol *symbol_map; void *(*create)(void); void (*destroy)(void *); bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); unsigned (*serialize)(void *, char *); void (*deserialize)(void *, const char *, unsigned); } external_scanner; const TSStateId *primary_state_ids; }; static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { uint32_t index = 0; uint32_t size = len - index; while (size > 1) { uint32_t half_size = size / 2; uint32_t mid_index = index + half_size; TSCharacterRange *range = &ranges[mid_index]; if (lookahead >= range->start && lookahead <= range->end) { return true; } else if (lookahead > range->end) { index = mid_index; } size -= half_size; } TSCharacterRange *range = &ranges[index]; return (lookahead >= range->start && lookahead <= range->end); } /* * Lexer Macros */ #ifdef _MSC_VER #define UNUSED __pragma(warning(suppress : 4101)) #else #define UNUSED __attribute__((unused)) #endif #define START_LEXER() \ bool result = false; \ bool skip = false; \ UNUSED \ bool eof = false; \ int32_t lookahead; \ goto start; \ next_state: \ lexer->advance(lexer, skip); \ start: \ skip = false; \ lookahead = lexer->lookahead; #define ADVANCE(state_value) \ { \ state = state_value; \ goto next_state; \ } #define ADVANCE_MAP(...) \ { \ static const uint16_t map[] = { __VA_ARGS__ }; \ for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \ if (map[i] == lookahead) { \ state = map[i + 1]; \ goto next_state; \ } \ } \ } #define SKIP(state_value) \ { \ skip = true; \ state = state_value; \ goto next_state; \ } #define ACCEPT_TOKEN(symbol_value) \ result = true; \ lexer->result_symbol = symbol_value; \ lexer->mark_end(lexer); #define END_STATE() return result; /* * Parse Table Macros */ #define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) #define STATE(id) id #define ACTIONS(id) id #define SHIFT(state_value) \ {{ \ .shift = { \ .type = TSParseActionTypeShift, \ .state = (state_value) \ } \ }} #define SHIFT_REPEAT(state_value) \ {{ \ .shift = { \ .type = TSParseActionTypeShift, \ .state = (state_value), \ .repetition = true \ } \ }} #define SHIFT_EXTRA() \ {{ \ .shift = { \ .type = TSParseActionTypeShift, \ .extra = true \ } \ }} #define REDUCE(symbol_name, children, precedence, prod_id) \ {{ \ .reduce = { \ .type = TSParseActionTypeReduce, \ .symbol = symbol_name, \ .child_count = children, \ .dynamic_precedence = precedence, \ .production_id = prod_id \ }, \ }} #define RECOVER() \ {{ \ .type = TSParseActionTypeRecover \ }} #define ACCEPT_INPUT() \ {{ \ .type = TSParseActionTypeAccept \ }} #ifdef __cplusplus } #endif #endif // TREE_SITTER_PARSER_H_ sdm-lang-tree-sitter-sdml-ae9db9a/test/000077500000000000000000000000001476262407100201665ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/000077500000000000000000000000001476262407100215015ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_decimal.sdm000066400000000000000000000011061476262407100277470ustar00rootroot00000000000000============================= Annotation, Multiple Decimals ============================= module Campaign is @dc:some = [ 101.0 102.201 0.1 ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (sequence_of_values element: (simple_value (decimal)) element: (simple_value (decimal)) element: (simple_value (decimal)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_double.sdm000066400000000000000000000011141476262407100276220ustar00rootroot00000000000000============================ Annotation, Multiple Doubles ============================ module Campaign is @dc:some = [ 3.1e+101 1.2e-10 0.01E+10 ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (sequence_of_values element: (simple_value (double)) element: (simple_value (double)) element: (simple_value (double)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_integer.sdm000066400000000000000000000010751476262407100300130ustar00rootroot00000000000000============================= Annotation, Multiple Integers ============================= module Campaign is @dc:version = [ 1 2 3 ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (sequence_of_values element: (simple_value (integer)) element: (simple_value (integer)) element: (simple_value (integer)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_iri.sdm000066400000000000000000000012011476262407100271300ustar00rootroot00000000000000========================= Annotation, Multiple IRIs ========================= module Campaign is @dc:seeAlso = [ ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (sequence_of_values element: (simple_value (iri)) element: (simple_value (iri)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_language_string.sdm000066400000000000000000000014121476262407100315220ustar00rootroot00000000000000============================================ Annotation, Multiple Language-Tagged Strings ============================================ module Campaign is @dc:title = [ "a rather good test"@en-GB "a test"@en-US ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (sequence_of_values element: (simple_value (string (quoted_string) language: (language_tag))) element: (simple_value (string (quoted_string) language: (language_tag))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_separate.sdm000066400000000000000000000021061476262407100301560ustar00rootroot00000000000000============================= Annotation, Multiple Separate ============================= module Campaign is @skos:prefLabel = "" @skos:altLabel = ""@en @dc:version = 3 end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (string (quoted_string)))))) (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (string (quoted_string) language: (language_tag)))))) (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (integer))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_multiple_string.sdm000066400000000000000000000013131476262407100276570ustar00rootroot00000000000000============================ Annotation, Multiple Strings ============================ module Campaign is @dc:author = [ "me" "and" "you" ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (sequence_of_values element: (simple_value (string (quoted_string))) element: (simple_value (string (quoted_string))) element: (simple_value (string (quoted_string))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_binary.sdm000066400000000000000000000030041476262407100272620ustar00rootroot00000000000000========================= Annotation, Single Binary ========================= module Campaign is @dc:author = #[ 52 32 39 76 5a 43 42 43 65 57 55 67 51 33 4a 31 5a 57 77 67 56 32 39 79 62 47 51 4b ] end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (binary byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte) byte: (hex_byte)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_boolean.sdm000066400000000000000000000007321476262407100274220ustar00rootroot00000000000000========================== Annotation, Single Boolean ========================== module Campaign is @dc:published = false end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (boolean (boolean_falsity)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_constructor.sdm000066400000000000000000000012321476262407100303640ustar00rootroot00000000000000============================== Annotation, Single Constructor ============================== module Campaign is @dc:author = xsd:positiveInteger(1) end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (value_constructor name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (simple_value (integer)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_decimal.sdm000066400000000000000000000006511476262407100274010ustar00rootroot00000000000000========================== Annotation, Single Decimal ========================== module Campaign is @dc:some = 102.201 end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (decimal))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_double.sdm000066400000000000000000000006611476262407100272560ustar00rootroot00000000000000========================= Annotation, Single Double ========================= module Campaign is @dc:some = 1.2e-10 end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (double))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_integer.sdm000066400000000000000000000006651476262407100274450ustar00rootroot00000000000000========================== Annotation, Single Integer ========================== module Campaign is @dc:version = 2 end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (integer))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_iri.sdm000066400000000000000000000006621476262407100265700ustar00rootroot00000000000000====================== Annotation, Single IRI ====================== module Campaign is @dc:seeAlso = end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (iri))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_language_string.sdm000066400000000000000000000010531476262407100311510ustar00rootroot00000000000000========================================= Annotation, Single Language-Tagged String ========================================= module Campaign is @dc:title = "a test"@en-US end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (string (quoted_string) language: (language_tag)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_mapping.sdm000066400000000000000000000015701476262407100274370ustar00rootroot00000000000000========================== Annotation, Single Mapping ========================== module Campaign is @dc:published = "date" -> xsd:date("2023-08-04") end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (mapping_value domain: (simple_value (string (quoted_string))) range: (value (value_constructor name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (simple_value (string (quoted_string))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_rational.sdm000066400000000000000000000006651476262407100276210ustar00rootroot00000000000000=========================== Annotation, Single Rational =========================== module Campaign is @dc:some = 3/4 end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (rational))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/annotation_single_string.sdm000066400000000000000000000007261476262407100273140ustar00rootroot00000000000000========================= Annotation, Single String ========================= module Campaign is @dc:author = "me" end --- (module name: (identifier) body: (module_body (annotation (annotation_property name: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))) value: (value (simple_value (string (quoted_string)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/constraint_formal_with_environment.sdm000066400000000000000000000040271476262407100314140ustar00rootroot00000000000000=================================== Constraint, formal with environment =================================== module Example is structure Outer is inner -> string is assert tagged_with_foo_path with def foo -> string := "foo" is self.tags.contains(foo) end end end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_environment (function_def (function_signature (identifier) (function_type_reference (builtin_simple_type))) (function_body (function_op_by_definition) (term (predicate_value (simple_value (string (quoted_string)))))))) (constraint_sentence (simple_sentence (atomic_sentence (term (function_composition (reserved_self) (identifier) (identifier))) (actual_arguments (term (identifier_reference (identifier)))))))))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/constraint_informal.sdm000066400000000000000000000005141476262407100262610ustar00rootroot00000000000000=========================== Constraint, informal string =========================== module Example is assert no_definitions = "This module has no definitions" end --- (module (identifier) (module_body (annotation (constraint (identifier) (informal_constraint (quoted_string)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/constraint_informal_language.sdm000066400000000000000000000006361476262407100301310ustar00rootroot00000000000000========================================= Constraint, informal string with language ========================================= module Example is assert no_definitions = "This module has no definitions"@en end --- (module (identifier) (module_body (annotation (constraint (identifier) (informal_constraint (quoted_string) (controlled_language_tag)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/constraint_informal_language_controlled.sdm000066400000000000000000000007041476262407100323520ustar00rootroot00000000000000==================================================== Constraint, informal string with controlled language ==================================================== module Example is assert no_definitions = "This module has no definitions"@en-ACE end --- (module (identifier) (module_body (annotation (constraint (identifier) (informal_constraint (quoted_string) (controlled_language_tag)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/datatype_empty.sdm000066400000000000000000000005661476262407100252460ustar00rootroot00000000000000================ Data Type, Empty ================ module campaign is datatype nameString <- xsd:string end --- (module name: (identifier) body: (module_body (definition (data_type_def name: (identifier) base: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/datatype_from_simple.sdm000066400000000000000000000004561476262407100264220ustar00rootroot00000000000000=========================== Data Type, From Simple Type =========================== module example is datatype nameString <- string end --- (module name: (identifier) body: (module_body (definition (data_type_def name: (identifier) base: (builtin_simple_type))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/datatype_with_fixed_restriction.sdm000066400000000000000000000007311476262407100306610ustar00rootroot00000000000000================================= Data Type, With Fixed Restriction ================================= module example is datatype timeChanged <- dateTime { explicitTimezone = fixed required } end --- (module (identifier) (module_body (definition (data_type_def (identifier) (builtin_simple_type) (datatype_def_restriction (tz_restriction_facet (kw_is_fixed) (tz_restriction_value))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/datatype_with_pattern_restriction.sdm000066400000000000000000000010661476262407100312410ustar00rootroot00000000000000==================================== Data Type, With Pattern Restrictions ==================================== module example is datatype nameString <- string { pattern = [ "A[A-Z0-9]{19}" "C[A-Z0-9]{19}" "X[A-Z0-9]{19}" ] } end --- (module (identifier) (module_body (definition (data_type_def (identifier) (builtin_simple_type) (datatype_def_restriction (pattern_restriction_facet (quoted_string) (quoted_string) (quoted_string))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/datatype_with_restrictions.sdm000066400000000000000000000007371476262407100276730ustar00rootroot00000000000000============================ Data Type, With Restrictions ============================ module example is datatype unixUserId <- string { minLength = 1 maxLength = 8 } end --- (module (identifier) (module_body (definition (data_type_def (identifier) (builtin_simple_type) (datatype_def_restriction (length_restriction_facet (unsigned)) (length_restriction_facet (unsigned))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_empty.sdm000066400000000000000000000003371476262407100254140ustar00rootroot00000000000000================ Dimension, Empty ================ module Campaign is dimension Campaigns end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_with_identity.sdm000066400000000000000000000010731476262407100271400ustar00rootroot00000000000000======================== Dimension, With Identity ======================== module dimensions is dimension Campaigns is identity campaign -> CampaignId end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) body: (dimension_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_with_identity_and_members.sdm000066400000000000000000000016631476262407100315010ustar00rootroot00000000000000==================================== Dimension, With Identity and Members ==================================== module dimensions is dimension Campaigns is identity campaign -> CampaignId name -> Name ref Target end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) body: (dimension_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier)))))) (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))) (member (property_ref property: (identifier_reference (identifier))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_with_identity_and_parents.sdm000066400000000000000000000014031476262407100315130ustar00rootroot00000000000000==================================== Dimension, With Identity and Parents ==================================== module dimensions is dimension Campaigns is identity campaign -> CampaignId parent portfolio -> Portfolio end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) body: (dimension_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier)))))) (dimension_parent name: (identifier) entity: (identifier_reference (identifier)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_with_source.sdm000066400000000000000000000007641476262407100266150ustar00rootroot00000000000000====================== Dimension, With Source ====================== module dimensions is dimension Campaigns is source entity:Campaign end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) body: (dimension_body identity: (source_entity entity: (identifier_reference (qualified_identifier module: (identifier) member: (identifier))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_with_source_and_members.sdm000066400000000000000000000014761476262407100311520ustar00rootroot00000000000000================================== Dimension, With Source and Members ================================== module dimensions is dimension Campaigns is source Campaign with status name -> Name ref Target end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) body: (dimension_body identity: (source_entity entity: (identifier_reference (identifier)) member: (identifier)) (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))) (member (property_ref property: (identifier_reference (identifier))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/dimension_with_source_and_parents.sdm000066400000000000000000000011411476262407100311610ustar00rootroot00000000000000================================== Dimension, With Source and Parents ================================== module dimensions is dimension Campaigns is source Campaign parent portfolio -> Portfolio end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) body: (dimension_body identity: (source_entity entity: (identifier_reference (identifier))) (dimension_parent name: (identifier) entity: (identifier_reference (identifier)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/empty-file.sdm000066400000000000000000000000601476262407100242550ustar00rootroot00000000000000========== Empty file ========== --- (ERROR) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/entity_empty.sdm000066400000000000000000000003171476262407100247410ustar00rootroot00000000000000============= Entity, Empty ============= module Campaign is entity Campaign end --- (module name: (identifier) body: (module_body (definition (entity_def name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/entity_with_constraints.sdm000066400000000000000000000044271476262407100272130ustar00rootroot00000000000000======================== Entity, With Constraints ======================== module Campaign is entity Campaign is identity a -> CampaignId b -> xsd:string is assert not_null = "self is not null" end c -> Target is assert tagged_with_foo is self.tags.contains("foo") end end end end --- (module (identifier) (module_body (definition (entity_def (identifier) (entity_body (entity_identity (member (member_def (identifier) (type_reference (identifier_reference (identifier)))))) (member (member_def (identifier) (type_reference (identifier_reference (qualified_identifier (identifier) (identifier)))) (annotation_only_body (annotation (constraint (identifier) (informal_constraint (quoted_string))))))) (member (member_def (identifier) (type_reference (identifier_reference (identifier))) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (simple_sentence (atomic_sentence (term (function_composition (reserved_self) (identifier) (identifier))) (actual_arguments (term (predicate_value (simple_value (string (quoted_string)))))))))))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/entity_with_diff_members.sdm000066400000000000000000000023261476262407100272620ustar00rootroot00000000000000============================== Entity, With Different Members ============================== module Campaign is entity Campaign is identity a -> CampaignId b -> xsd:string c -> {0..1} Target end end --- (module (identifier) (module_body (definition (entity_def (identifier) (entity_body (entity_identity (member (member_def (identifier) (type_reference (identifier_reference (identifier)))))) (member (member_def (identifier) (type_reference (identifier_reference (qualified_identifier (identifier) (identifier)))))) (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range (unsigned))) (type_reference (identifier_reference (identifier)))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/entity_with_members.sdm000066400000000000000000000023241476262407100262700ustar00rootroot00000000000000==================== Entity, With Members ==================== module Campaign is entity Campaign is identity id -> xs:string a -> xsd:string b -> xsd:integer end end --- (module name: (identifier) body: (module_body (definition (entity_def name: (identifier) body: (entity_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (qualified_identifier module: (identifier) member: (identifier))))))) (member (member_def name: (identifier) target: (type_reference (identifier_reference (qualified_identifier module: (identifier) member: (identifier)))))) (member (member_def name: (identifier) target: (type_reference (identifier_reference (qualified_identifier module: (identifier) member: (identifier))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/entity_with_unknowns.sdm000066400000000000000000000012771476262407100265260ustar00rootroot00000000000000================================= Entity, With Unknown Member Types ================================= module Campaign is entity Campaign is identity id -> unknown a -> unknown end end --- (module (identifier) (module_body (definition (entity_def (identifier) (entity_body (entity_identity (member (member_def (identifier) (type_reference (unknown_type))))) (member (member_def (identifier) (type_reference (unknown_type))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/enum_empty.sdm000066400000000000000000000003071476262407100243700ustar00rootroot00000000000000============ Enum, Empty ============ module campaign is enum NameKind end --- (module name: (identifier) body: (module_body (definition (enum_def name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/enum_variants.sdm000066400000000000000000000006141476262407100250620ustar00rootroot00000000000000=================== Enum, With Variants =================== module campaign is enum NameKind of Internal External end end --- (module name: (identifier) body: (module_body (definition (enum_def name: (identifier) body: (enum_body (value_variant name: (identifier)) (value_variant name: (identifier))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/escaped_strings.sdm000066400000000000000000000044301476262407100253640ustar00rootroot00000000000000============================ Escapes in annotation strings ============================ module example is @char_escape_a = "\a" @char_escape_b = "\b" @char_escape_e = "\e" @char_escape_f = "\f" @char_escape_n = "\n" @char_escape_r = "\r" @char_escape_t = "\t" @char_escape_v = "\a" @char_escape_backslash = "\\" @char_escape_doublequote = "\"" end --- (module (identifier) (module_body (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/event_empty.sdm000066400000000000000000000003151476262407100245440ustar00rootroot00000000000000============ Event, Empty ============ module campaign is event NameChanged end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/event_with_members.sdm000066400000000000000000000013461476262407100261000ustar00rootroot00000000000000=================== Event, With Members =================== module campaign is event NameChanged is source Campaign old_name -> string new_name -> string end end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier) body: (event_body identity: (source_entity entity: (identifier_reference (identifier))) (member (member_def name: (identifier) target: (type_reference (builtin_simple_type)))) (member (member_def name: (identifier) target: (type_reference (builtin_simple_type))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/event_with_source.sdm000066400000000000000000000006011476262407100257370ustar00rootroot00000000000000================== Event, With Source ================== module campaign is event NameChanged is source Campaign end end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier) body: (event_body identity: (source_entity entity: (identifier_reference (identifier)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_member_from.sdm000066400000000000000000000014561476262407100261000ustar00rootroot00000000000000========================= Import single member from ========================= module Campaign is from :: import xsd:base from xsd import facets:minLength from ::xsd import facets:minLength end --- (module (identifier) (module_body (import_statement (from_clause (module_path_root_only)) (member_import (qualified_identifier (identifier) (identifier)))) (import_statement (from_clause (module_path_relative (identifier))) (member_import (qualified_identifier (identifier) (identifier)))) (import_statement (from_clause (module_path_absolute (identifier))) (member_import (qualified_identifier (identifier) (identifier)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_member_only.sdm000066400000000000000000000005041476262407100261070ustar00rootroot00000000000000========================= Import single member only ========================= module Campaign is import xsd:base end --- (module name: (identifier) body: (module_body (import_statement (member_import name: (qualified_identifier module: (identifier) member: (identifier)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_member_rename.sdm000066400000000000000000000005471476262407100264040ustar00rootroot00000000000000======================== Import and rename member ======================== module Campaign is import xsd:base as base end --- (module name: (identifier) body: (module_body (import_statement (member_import name: (qualified_identifier module: (identifier) member: (identifier)) rename: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_module_from.sdm000066400000000000000000000012211476262407100261040ustar00rootroot00000000000000========================= Import single module from ========================= module Campaign is from :: import xsd from ::xsd import facets from reporting::common import enums end --- (module (identifier) (module_body (import_statement (from_clause (module_path_root_only)) (module_import (identifier))) (import_statement (from_clause (module_path_absolute (identifier))) (module_import (identifier))) (import_statement (from_clause (module_path_relative (identifier) (identifier))) (module_import (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_module_only.sdm000066400000000000000000000003671476262407100261340ustar00rootroot00000000000000========================= Import single module only ========================= module Campaign is import xsd end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_module_rename.sdml000066400000000000000000000004331476262407100265700ustar00rootroot00000000000000======================== Import and rename module ======================== module Campaign is import xsd as schema end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier) rename: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_module_version.sdm000066400000000000000000000004641476262407100266360ustar00rootroot00000000000000======================= Import versioned module ======================= module campaign is import customer end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier) version_uri: (iri))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_multiple_from.sdm000066400000000000000000000014321476262407100264560ustar00rootroot00000000000000============================ Import multiple members from ============================ module Campaign is from :: import xsd:base from xsd import facets from ::reporting::common import [ datatypes enums ] end --- (module (identifier) (module_body (import_statement (from_clause (module_path_root_only)) (member_import (qualified_identifier (identifier) (identifier)))) (import_statement (from_clause (module_path_relative (identifier))) (module_import (identifier))) (import_statement (from_clause (module_path_absolute (identifier) (identifier))) (module_import (identifier)) (module_import (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_multiple_members.sdm000066400000000000000000000007041476262407100271460ustar00rootroot00000000000000======================= Import multiple members ======================= module Campaign is import [ xsd:base xml:lang ] end --- (module name: (identifier) body: (module_body (import_statement (member_import name: (qualified_identifier module: (identifier) member: (identifier))) (member_import name: (qualified_identifier module: (identifier) member: (identifier)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_multiple_mixed.sdm000066400000000000000000000010541476262407100266210ustar00rootroot00000000000000===================== Import multiple mixed ===================== module Campaign is import [ target xsd:base xml:lang skos ] end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier)) (member_import name: (qualified_identifier module: (identifier) member: (identifier))) (member_import name: (qualified_identifier module: (identifier) member: (identifier))) (module_import name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_multiple_module_version.sdm000066400000000000000000000010021476262407100305360ustar00rootroot00000000000000================================ Import multiple versioned module ================================ module campaign is import [ sdml customer rdf skos ] end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier)) (module_import name: (identifier) version_uri: (iri)) (module_import name: (identifier)) (module_import name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/import_multiple_modules.sdm000066400000000000000000000004541476262407100271660ustar00rootroot00000000000000======================= Import multiple modules ======================= module Campaign is import [ xsd skos ] end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier)) (module_import name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/module_empty.sdm000066400000000000000000000001711476262407100247100ustar00rootroot00000000000000============ Empty module ============ module Campaign is end --- (module name: (identifier) body: (module_body)) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/module_empty_with_base.sdm000066400000000000000000000003121476262407100267320ustar00rootroot00000000000000======================= Module, empty with base ======================= module Campaign is end --- (module name: (identifier) base: (iri) body: (module_body)) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/module_empty_with_comments.sdm000066400000000000000000000006301476262407100276500ustar00rootroot00000000000000=========================== Module, Empty with Comments =========================== ;;; This is a file document, using Lispy conventions. ;;; This is where you put file stuff. ;; This is a general comment that starts at the left ;; with current indentation module Campaign is end --- (module (line_comment) (line_comment) (line_comment) (line_comment) name: (identifier) body: (module_body)) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/module_empty_with_version.sdm000066400000000000000000000004711476262407100275130ustar00rootroot00000000000000========================== Module, empty with version ========================== module Campaign version "2" is end --- (module name: (identifier) base: (iri) version_info: (quoted_string) version_uri: (iri) body: (module_body)) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/module_with_underscore.sdm000066400000000000000000000002651476262407100267620ustar00rootroot00000000000000=============================== Module, with underscore in name =============================== module Rental_Cars is end --- (module name: (identifier) body: (module_body)) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/property_def_empty.sdm000066400000000000000000000005411476262407100261260ustar00rootroot00000000000000========================== Property Definition, Empty ========================== module ddict is property accountId -> unknown end --- (module (identifier) (module_body (definition (property_def (member_def (identifier) (type_reference (unknown_type))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/property_def_some.sdm000066400000000000000000000017661476262407100257450ustar00rootroot00000000000000=================== Property Definition =================== module ddict is property accountId -> {1} account:AccountId is @skos:definition = "a"@en end end --- (module (identifier) (module_body (definition (property_def (member_def (identifier) (cardinality_expression (unsigned)) (type_reference (identifier_reference (qualified_identifier (identifier) (identifier)))) (annotation_only_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (string (quoted_string) (language_tag)))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/property_def_used.sdm000066400000000000000000000006751476262407100257400ustar00rootroot00000000000000============================= Property Referenced as Member ============================= module ddict is structure Account is ref accountId end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (property_ref (identifier_reference (identifier))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/rdf_definitions.sdm000066400000000000000000000110051476262407100253510ustar00rootroot00000000000000====================== RDF Custom Definitions ====================== module rdfs is import [ owl rdf ] rdf Resource is @isDefinedBy = rdfs @label = "Resource"@en @comment = "The class resource, everything." end rdf subClassOf type rdf:Property is @domain = Class @range = Class @isDefinedBy = rdfs @label = "subClassOf" @comment = "The subject is a subclass of a class." end rdf comment type [ rdf:Property owl:AnnotationProperty ] is @domain = Resource @range = Literal @isDefinedBy = rdfs @label = "comment" @comment = "A description of the subject resource." end end --- (module (identifier) (iri) (module_body (import_statement (module_import (identifier)) (module_import (identifier))) (definition (rdf_def (identifier) (annotation_only_body (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string) (language_tag)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string))))))))) (definition (rdf_def (identifier) (rdf_types (identifier_reference (qualified_identifier (identifier) (identifier)))) (annotation_only_body (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string))))))))) (definition (rdf_def (identifier) (rdf_types (identifier_reference (qualified_identifier (identifier) (identifier))) (identifier_reference (qualified_identifier (identifier) (identifier)))) (annotation_only_body (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (identifier_reference (identifier))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string)))))) (annotation (annotation_property (identifier_reference (identifier)) (value (simple_value (string (quoted_string))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/simple_types.sdm000066400000000000000000000024421476262407100247250ustar00rootroot00000000000000============= Simple Types ============= module example is structure SimpleTypes is a -> string b -> double c -> decimal d -> integer e -> boolean f -> iri end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (type_reference (builtin_simple_type))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/structure_empty.sdm000066400000000000000000000003361476262407100254660ustar00rootroot00000000000000================ Structure, Empty ================ module Campaign is structure Duration end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/structure_map_type.sdm000066400000000000000000000014671476262407100261540ustar00rootroot00000000000000========================== Structure, Map Type Member ========================== module Campaign is structure Thing is properties -> {unique 1..} (string -> integer) end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (sequence_uniqueness) (unsigned) (cardinality_range)) (type_reference (mapping_type (type_reference (builtin_simple_type)) (type_reference (builtin_simple_type))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/structure_simple_types.sdm000066400000000000000000000012431476262407100270430ustar00rootroot00000000000000============================== Structure, Simple Type Members ============================== module Campaign is structure Duration is seconds -> double precision -> integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (type_reference (builtin_simple_type))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/type_class_empty.sdm000066400000000000000000000003731476262407100255750ustar00rootroot00000000000000================= Type Class, Empty ================= module sdml_core is class Any (T) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_variable (identifier)))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/type_class_methods.sdm000066400000000000000000000046361476262407100261100ustar00rootroot00000000000000======================== Type Class, with Methods ======================== module sdml_core is class Any (T) is def is_structure(v -> T) -> boolean def new -> T def is_entity(v -> T) -> boolean is @skos:prefLabel = "is an entity" end def has_member(v -> T) -> boolean := is_product_type(v) end end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_variable (identifier)) (type_class_body (method_def (function_signature (identifier) (function_parameter (identifier) (function_type_reference (identifier_reference (identifier)))) (function_type_reference (builtin_simple_type)))) (method_def (function_signature (identifier) (function_type_reference (identifier_reference (identifier))))) (method_def (function_signature (identifier) (function_parameter (identifier) (function_type_reference (identifier_reference (identifier)))) (function_type_reference (builtin_simple_type))) (annotation_only_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (string (quoted_string)))))))) (method_def (function_signature (identifier) (function_parameter (identifier) (function_type_reference (identifier_reference (identifier)))) (function_type_reference (builtin_simple_type))) (function_body (function_op_by_definition) (term (functional_term (term (identifier_reference (identifier))) (actual_arguments (term (identifier_reference (identifier))))))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/type_class_subtype.sdm000066400000000000000000000010101476262407100261170ustar00rootroot00000000000000======================== Type Class, With Subtype ======================== module sdml_core is class Any (T -> None(T)) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_variable (identifier) (type_class_reference (identifier_reference (identifier)) (type_class_arguments (type_class_reference (identifier_reference (identifier)))))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/union_empty.sdm000066400000000000000000000003161476262407100245540ustar00rootroot00000000000000============ Union, Empty ============ module campaign is union VehicleClass end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/union_rename_variant.sdm000066400000000000000000000010271476262407100264110ustar00rootroot00000000000000=========================== Union, With Renamed Variant =========================== module campaign is union VehicleClass of Car Boat as WaterCar end end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier) body: (union_body (type_variant name: (identifier_reference (identifier))) (type_variant name: (identifier_reference (identifier)) rename: (identifier))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/corpus/variants.sdm000066400000000000000000000007251476262407100240410ustar00rootroot00000000000000==================== Union, With Variants ==================== module campaign is union VehicleClass of Car Boat end end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier) body: (union_body (type_variant name: (identifier_reference (identifier))) (type_variant name: (identifier_reference (identifier)))))))) sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/000077500000000000000000000000001476262407100221355ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/another.sdm000066400000000000000000000005741476262407100243100ustar00rootroot00000000000000module another is assert just_testing is def has_pref_label(anns -> {0..} Annotation) -> boolean := ∃ a ∈ anns, name(a) = skos:prefLabel ∧ ¬empty(value(a)) def foo := "foo" in ∀ self self.tags.contains(foo) end datatype byte ← integer is @xsd:minValue = 0 @xsd:maxValue = 256 end structure Foo is name → string end end sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/constraints.sdm000066400000000000000000000077321476262407100252220ustar00rootroot00000000000000module Campaign is ; <- keyword ; ^ module.definition ; ^ keyword @skos:prefLabel = "Example" ; <- property ;^ property ; ^ operator ; ^ string entity Campaign is ; <- keyword ; ^ type.definition ; ^ keyword identity a -> CampaignId ; <- keyword ; ^ variable.field ; ^ operator ; ^ type b -> xsd:string is ; <- variable.field ; ^ operator ; ^ type ; ^ keyword assert not_null = "self is not null" ; <- keyword ; ^ property ; ^ operator ; ^ embedded end ; <- keyword c -> Target is ; <- variable.field ; ^ operator ; ^ type ; ^ keyword assert tagged_with_foo is ; <- keyword ; ^ property ; ^ keyword contains(self.tags "foo") ; <- function.call ; ^ punctuation.bracket ; ^ variable.builtin ; ^ operator ; ^ function.call ; ^ string ; ^ punctuation.bracket end ; <- keyword end ; <- keyword d -> Target is ; <- variable.field ; ^ operator ; ^ type ; ^ keyword assert tagged_with_foo_path with ; <- keyword ; ^ property ; ^ keyword def foo -> string := "foo" ; <- keyword ; ^ function.definition ; ^ operator ; ^ type.builtin ; ^ operator ; ^ string is ; <- keyword self.tags.contains(foo) ; <- variable.builtin ; ^ operator ; ^ function.call ; ^ operator ; ^ function.call ; ^ punctuation.bracket ; ^ variable ; ^ punctuation.bracket end ; <- keyword end ; <- keyword e -> Target is ; <- variable.field ; ^ operator ; ^ type ; ^ keyword assert tagged_with_foo_builder is ; <- keyword ; ^ property ; ^ keyword ¬is_empty( ; <- operator ; ^ function.call ; ^ punctuation.bracket {t | t in self.tags, t = "foo"} ; <- punctuation.bracket ;^ variable ; ^ punctuation.separator ; ^ variable ; ^ keyword ; ^ variable.builtin ; ^ operator ; ^ function.call ; ^ operator ; ^ string ; ^ punctuation.bracket ) ; ^ punctuation.bracket end ; <- keyword end ; <- keyword f -> Target is ; <- variable.field ; ^ operator ; ^ type ; ^ keyword assert tagged_with_parent_tags is ; <- keyword ; ^ property ; ^ keyword ∃ tag ∈ self.container.tags, ;<- operator ; ^ variable ; ^ operator ; ^ variable.builtin ; ^ operator ; ^ function.call ; ^ operator ; ^ function.call self.tags.contains(tag) ; <- variable.builtin ; ^ operator ; ^ function.call ; ^ operator ; ^ function.call ; ^ punctuation.bracket ; ^ punctuation.bracket end ; <- keyword end ; <- keyword end ; <- keyword end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/datatypes.sdm000066400000000000000000000056411476262407100246460ustar00rootroot00000000000000module datatypes is ; <- keyword ; ^ module.definition ; ^ keyword import skos ; <- keyword ; ^ module datatype shortName <- string { ; <- keyword ; ^ type.definition ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket minLength = fixed 2 ; <- property ; ^ operator ; ^ keyword ; ^ number maxLength = 20 ; <- property ; ^ operator ; ^ number } is ; <- punctuation.bracket ; ^ keyword @skos:prefLabel = "short name" ; <- property ;^ property ; ^ operator ; ^ string @skos:definition = "A short descriptive name" ; <- property ;^ property ; ^ operator ; ^ string end datatype eventOcurred <- dateTime { ; <- keyword ; ^ type.definition ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket explicitTimezone = fixed required ; <- property ; ^ operator ; ^ keyword ; ^ keyword } ; <- punctuation.bracket datatype thing <- string { ; <- keyword ; ^ type.definition ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket pattern = "" ; <- property ; ^ operator ; ^ string } ; <- punctuation.bracket datatype uuid <- string { ; <- keyword ; ^ type.definition ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket pattern = [ ; <- property ; ^ operator ; ^ punctuation.bracket "^(?:[[:xdigit:]]{32})$" ; <- string "^(?:[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12})$" ; <- string "^(?:\\{[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}\\})$" ; <- string "^(?:\\([[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}\\))$" ; <- string "^(?:\\{0x[[:xdigit:]]{8},(?:0x[[:xdigit:]]{4},){2}\\{(?:0x[[:xdigit:]]{2},){7}0x[[:xdigit:]]{2}\\}\\})$" ; <- string ] ; <- punctuation.bracket } is ; <- punctuation.bracket ; ^ keyword @skos:prefLabel = "UUID"@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property @dc:description = "The string form of a UUID, conforming to one of 5 standard patterns."@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/dimensions.sdm000066400000000000000000000021171476262407100250130ustar00rootroot00000000000000module dimensions is ; <- keyword ; ^ module.definition ; ^ keyword dimension Zero ; <- keyword ; ^ type.definition dimension One is ; <- keyword ; ^ type.definition ; ^ keyword source SourceEntity with title ; <- keyword ; ^ type ; ^ keyword ; ^ variable.field parent some -> OtherDimension ; <- keyword ; ^ variable.field ; ^ operator ; ^ type name -> Name ; <- variable.field ; ^ operator ; ^ type ref Property ; <- keyword ; ^ variable.field end ; <- keyword dimension Two is ; <- keyword ; ^ type.definition ; ^ keyword identity source -> SourceEntity ; <- keyword ; ^ variable.field ; ^ operator ; ^ type name -> Name ; <- variable.field ; ^ operator ; ^ type ref Property ; <- keyword ; ^ variable.field end ; <- keyword end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/imports.sdm000066400000000000000000000021371476262407100243420ustar00rootroot00000000000000module imports is ; <- keyword ; ^ module.definition ; ^ keyword ;; import members from module paths. from :: import xsd:base ; <- keyword ; ^ punctuation.separator ; ^ keyword ; ^ type from local::other import test ; <- keyword ; ^ module.special ; ^ punctuation.separator ; ^ module.special ; ^ keyword ; ^ module from xsd import facets:minLength ; <- keyword ; ^ module.special ; ^ keyword ; ^ type from ::xsd import facets:minLength ; <- keyword ; ^ punctuation.separator ; ^ module.special ; ^ keyword ; ^ type from ::reporting::common import [ ; <- keyword ; ^ punctuation.separator ; ^ module.special ; ^ punctuation.separator ; ^ module.special ; ^ keyword ; ^ punctuation.bracket datatypes ; <- module enums:DayOfWeek ; <- type ] ; <- punctuation.bracket end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/properties.sdm000066400000000000000000000020671476262407100250430ustar00rootroot00000000000000module properties is ; <- keyword ; ^ module.definition ; ^ keyword import [ account skos ] ; <- keyword ; ^ punctuation.bracket ; ^ module ; ^ module ; ^ punctuation.bracket property accountId -> {1} account:AccountId is ; <- keyword ; ^ variable.field ; ^ operator ; ^ punctuation.bracket ; ^ number ; ^ punctuation.bracket ; ^ type ; ^ keyword @skos:definition = "a"@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword structure Account is ; <- keyword ; ^ type.definition ; ^ keyword ref accountId ; <- keyword ; ^ variable.field name -> string ; <- variable.field ; ^ operator ; ^ type.builtin end ; <- keyword end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/sdml_sequence_ordered.sdm000066400000000000000000000132521476262407100272000ustar00rootroot00000000000000module sdml_sequence_ordered is ; <- keyword ; ^ module.definition ; ^ keyword import skos ; <- keyword ; ^ module class Ordered({ordered nonunique 0..} S) is ; <- keyword ; ^ type.definition ; ^ punctuation.bracket ; ^ punctuation.bracket ; ^ keyword ; ^ keyword ; ^ number ; ^ operator ; ^ punctuation.bracket ; ^ punctuation.bracket ; ^ keyword def drop(vs -> S count → unsigned) → S is ; <- keyword ; ^ method.definition ; ^ punctuation.bracket ; ^ variable.parameter ; ^ operator ; ^ type ; ^ variable.parameter ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket ; ^ operator ; ^ type ; ^ keyword @skos:definition = "Drop ~count~ items from the beginning of the sequence and return the rest."@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword def get(vs -> S index -> unsigned) -> {0..1} S is ; <- keyword ; ^ method.definition ; ^ punctuation.bracket ; ^ variable.parameter ; ^ operator ; ^ type ; ^ variable.parameter ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket ; ^ operator ; ^ punctuation.bracket ; ^ number ; ^ operator ; ^ number ; ^ punctuation.bracket ; ^ type ; ^ keyword @skos:definition = "Return the element in this sequence at the position ~index~."@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword def reverse(vs -> S) -> S is ; <- keyword ; ^ method.definition ; ^ punctuation.bracket ; ^ variable.parameter ; ^ operator ; ^ type ; ^ punctuation.bracket ; ^ operator ; ^ type ; ^ keyword @skos:definition = "Return a new sequence with the order of elements reversed."@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword def slice(vs -> S start -> unsigned count -> unsigned) -> S ; <- keyword ; ^ method.definition ; ^ punctuation.bracket ; ^ variable.parameter ; ^ operator ; ^ type ; ^ variable.parameter ; ^ operator ; ^ type.builtin ; ^ variable.parameter ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket ; ^ operator ; ^ type := take(drop(start) count) is ; <- operator ; ^ function.call ; ^ punctuation.bracket ; ^ punctuation.bracket ; ^ variable ; ^ punctuation.bracket ; ^ punctuation.bracket ; ^ keyword @skos:definition = "Return a sub-sequence of ~count~ elements starting at ~start~."@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword def take(vs -> S count -> unsigned) -> S is ; <- keyword ; ^ method.definition ; ^ punctuation.bracket ; ^ variable.parameter ; ^ operator ; ^ type ; ^ variable.parameter ; ^ operator ; ^ type.builtin ; ^ punctuation.bracket ; ^ operator ; ^ type ; ^ keyword @skos:definition = "Return ~count~ items from the beginning of the sequence and discard the rest."@en ; <- property ;^ property ; ^ operator ; ^ string ; ^ property end ; <- keyword end ; <- keyword end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/highlight/simple.sdm000066400000000000000000000071711476262407100241410ustar00rootroot00000000000000module Campaign is ; <- keyword ; ^ module.definition ; ^ keyword import foo as bar ; <- keyword ; ^ module ; ^ keyword ; ^ module import versioned as bar ; <- keyword ; ^ module ; ^ keyword ; ^ module import skos:prefLabel as label ; <- keyword ; ^ type ; ^ keyword ; ^ type import [xsd skos xml:base dc] ; <- keyword ; ^ punctuation.bracket ; ^ module ; ^ module ; ^ type ; ^ module ; ^ punctuation.bracket @xml:base = ; <- property ;^ property ; ^ operator ; ^ string.special @skos:version = xsd:decimal(2) ; <- property ;^ property ; ^ operator ; ^ function.call ; ^ punctuation.bracket ; ^ number ; ^ punctuation.bracket datatype name <- xsd:string is ; <- keyword ; ^ type.definition ; ^ operator ; ^ type ; ^ keyword @xsd:minLength = 5 ; <- property ;^ property ; ^ operator ; ^ number @xsd:maxLength = 25 ; <- property ;^ property ; ^ operator ; ^ number end ; <- keyword datatype CampaignId <- xsd:string is ; <- keyword ; ^ type.definition ; ^ operator ; ^ type ; ^ keyword @skos:prefLabel = [ ; <- property ;^ property ; ^ operator ; ^ punctuation.bracket "Campaign Identifier"@en ; <- string ; ^ property "Identifiant de campagne"@fr ; <- string ; ^ property ] ; <- punctuation.bracket end ; <- keyword structure Tag is ; <- keyword ; ^ type.definition ; ^ keyword key -> xsd:NMTOKEN ; <- variable.field ; ^ operator ; ^ type value -> {0..} rdfs:langString ; <- variable.field ; ^ operator ; ^ punctuation.bracket ; ^ number ; ^ operator ; ^ punctuation.bracket ; ^ type end ; <- keyword entity Campaign is ; <- keyword ; ^ type.definition ; ^ keyword identity campaignId -> CampaignId ; <- keyword ; ^ variable.field ; ^ operator ; ^ type name -> Name is ; <- variable.field ; ^ operator ; ^ type ; ^ keyword @skos:definition = "" ; <- property ;^ property ; ^ operator ; ^ string end ; <- keyword something -> unknown ; <- variable.field ; ^ operator ; ^ type.builtin target -> {1..} Target ; <- variable.field ; ^ operator ; ^ punctuation.bracket ; ^ number ; ^ operator ; ^ punctuation.bracket ; ^ type end ; <- keyword entity Target ; <- keyword ; ^ type.definition event CampaignNameChanged is ; <- keyword ; ^ type.definition ; ^ keyword source Campaign ; <- keyword ; ^ type end end ; <- keyword sdm-lang-tree-sitter-sdml-ae9db9a/test/tags/000077500000000000000000000000001476262407100211245ustar00rootroot00000000000000sdm-lang-tree-sitter-sdml-ae9db9a/test/tags/simple.sdm000066400000000000000000000104461476262407100231270ustar00rootroot00000000000000module invoice version "2023-12-21" is ; ^ definition.module import [dc skos xsd:decimal xsd:date xsd:string] ; ^ reference.module ; ^ reference.module ; ^ reference.module ; ^ reference.type ; ^ reference.module ; ^ reference.type ; ^ reference.module ; ^ reference.type import customers:foo as Foo ; ^ reference.module ; ^ reference.type ; ^ reference.type import finance as banking ; ^ reference.module ; ^ reference.module import vehicles ; ^ reference.module from ::gs1::location import gln ; ^ reference.module ; ^ reference.module ; ^ reference.module @skos:release = xsd:date("2023-08-12") ;^ reference.type @skos:definition = "hello" ;^ reference.type structure DateRange is ; ^ definition.structure assert valid_date_range is ; ^ definition.constraint self.end_date >= self.start_date ; <- reference.variable ; ^ reference.call ; ^ reference.variable ; ^ reference.call end start_date -> xsd:date ; <- definition.field ; ^ reference.type end_date -> xsd:date ; <- definition.field ; ^ reference.type end structure OdometerRange is ; ^ definition.structure start_miles -> vehicles:OdometerReading ; <- definition.field end_miles -> vehicles:OdometerReading is ; <- definition.field assert valid_range = "self.end_miles >= self.start_miles" ; ^ definition.constraint end end entity Invoice is ; ^ definition.entity identity id -> integer ; ^ definition.field ; ^ reference.type customer -> customers:Customer ; <- definition.field ; ^ reference.type vehicle -> vehicles:Vehicle ; <- definition.field ; ^ reference.type rental_dates -> DateRange ; <- definition.field ; ^ reference.type mileage -> OdometerRange ; <- definition.field ; ^ reference.type day_rate -> finance:CurrencyRate ; <- definition.field ; ^ reference.type mile_rate -> finance:CurrencyRate ; <- definition.field ; ^ reference.type discount -> finance:DiscountPercentage ; <- definition.field ; ^ reference.type end datatype Name <- xsd:string is ; ^ definition.datatype ; ^ reference.datatype @xsd:minLength = true ;^ reference.type @xsd:maxLength = 25 ;^ reference.type end datatype InvoiceId <- opaque integer ; ^ definition.datatype ; ^ reference.datatype event InvoiceCreated is ; ^ definition.event source Invoice ; ^ reference.entity at -> xsd:dateTime ; <- definition.field ; ^ reference.type end event InvoicePayed is ; ^ definition.event source Invoice ; ^ reference.entity at -> xsd:dateTime ; <- definition.field ; ^ reference.type end event InvoiceOverdue is ; ^ definition.event source Invoice with total ; ^ reference.entity ; ^ reference.field at -> xsd:dateTime ; <- definition.field ; ^ reference.type end structure Payment is ; ^ definition.structure received -> xsd:dateTime ; <- definition.field ; ^ reference.type amount -> finance:CurrencyAmount ; <- definition.field ; ^ reference.type kind -> finance:PaymentKind ; <- definition.field ; ^ reference.type end enum Terms of ; ^ definition.enum Immediate is ; <- definition.constant @skos:preLabel = "NOW" ;^ reference.type end ThirtyDays ; <- definition.constant SixtyDays ; <- definition.constant end union PaymentKind of ; ^ definition.union Cash ; <- reference.type Card as Plastic ; <- reference.type ; ^ definition.type end end