pax_global_header00006660000000000000000000000064150154206630014514gustar00rootroot0000000000000052 comment=83d68b835a99fe424da3cf613670523be36be1f7 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/000077500000000000000000000000001501542066300216575ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/.gitignore000066400000000000000000000075641501542066300236630ustar00rootroot00000000000000# -*- 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/.npmignore000066400000000000000000000000531501542066300236540ustar00rootroot00000000000000bindings/rust build dev dist examples test tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/CHANGES.md000066400000000000000000001120211501542066300232460ustar00rootroot00000000000000# Changes for tree-sitter-sdml ## Version 0.4.10 * Fix: Grammar rule for `type_class_def` changed signifiantly for type parameters. * The term *type variable* is replaced by *type parameter* and a type class may have zero or more type parameters. * A type parameter is a name, introducing a new class within the scope of the outer class definition, with an optional restriction expression. * A parameter restriction expression may restrict the cardinality of a sequence type, and may restrict the class of the parameter to implement one or more other classes. New Grammar: ```ebnf TypeClassDef ::= "class" Identifier TypeParameterList? FromDefinitionClause? TYpeClassBody? TypeParameterList ::= "(" TypeParameter+ ")" TypeParameter ::= Identifier ( "<-" TypeParameterRestrictionList )? TypeParameterRestrictionList ::= TypeParameterRestriction ( "+" TypeParameterRestriction)* TypeParameterRestriction ::= CardinalityReferenceExpression? IdentifierReference TypeParameterArgumentList? TypeParameterArgumentList ::= "(" Identifier+ ")" ``` This allows the expression of a number of specific forms required by the SDML standard library, such as: | Pattern | Example | Comments | |-----------------+------------------------------------------+----------------------------------------------------------------------------------------------| | Parameterless | `class Any` | No parameters are required for the `Any` class as it makes no reference to any other class. | | Mixin Reference | `class Number <- Eq + Ord + Add + Sub + Mul + Div` | Mixins allow for simple behavior to be described and implemented across differernt classes. | | Sequence Types | `class Unique {unique} Eq` | Denotes a class restricted to a sequence of any value that implements `Eq`, allowing the sequence to have the constraint `unique`. | | Ordered Types | `class Ordered {ordered} Ord` | Denotes a class restricted to a sequence of any value that implements `Ord`, allowing the sequence to have the constraint `ordered`. | ## Version 0.4.9 (Rust only) * Build: update `tree-sitter` dependency from 0.24 to 0.25.3. ## Version 0.4.8 * Feature: Add grammar rule to compound definitions to allow copying content from another model element allowing a simple *copy-over* extension mechanism. Changes for new datatype syntax in BNF form: ``` ebnf FromDefinition ::= "from" IdentifierReference "with" ( "_" | Identifier | "[" Identifier+ "]" ) EnumBody ::= "is" Annotation* FromDefinition? ValueVariant+ "end" StructureBody ::= "is" Annotation* FromDefinition? Member+ "end" ``` The grammar above includes the definition of some body rules as examples, the rest (dimension, entity, event, type class, and union) follow the same pattern. The example below demonstrates the use of this clause to extend the enumeration `Country` with additional values. Note that in this case the extension copies all values from the source definition by specifying the wildcard `"_"`. ``` sdml module example is enum Country of US CA MX end enum ExtendedCountry of from Country with _ UK FR DE end end ``` ## Version 0.4.7 * Fix: Grammar for rules `sequence_of_values` and `sequence_of_predicate_values` to allow constraints on the empty symbol. * Fix: Grammar for rules `sequence_of_values` and `sequence_of_predicate_values` to allow optional ordering and uniqueness constraints. * Test: Add tests for above. * Feat: Add highlighting rules for sequence constraints. Original Grammar: ``` ebnf SequenceOfValues ::= "∅" | Constraints? "[" Element* "]" Constraints ::= "{" ( Ordering | Uniqueness | Ordering Uniqueness ) "}" ``` New Grammar: ``` ebnf SequenceOfValues ::= Constraints? ( "∅" | ( "[" Element* "]" ) ) Constraints ::= "{" ( ( Ordering Uniqueness? ) | ( Ordering? Uniqueness ) ) "}" ``` ### Version 0.4.6 * Fix: Rename grammar rule `function_op_by_definition` to `_function_op_by_definition`. * Fix: Rename grammar rule `_type_variable_restriction` to `type_variable_restriction`. ## 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. tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/Cargo.toml000066400000000000000000000012011501542066300236010ustar00rootroot00000000000000[package] name = "tree-sitter-sdml" description = "sdml grammar for the tree-sitter parsing library" authors = ["Simon Johnston "] version = "0.4.10" 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.25.3" [build-dependencies] cc = "1.1" tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/LICENSE000066400000000000000000000261361501542066300226740ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] 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. tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/Makefile000066400000000000000000000266261501542066300233330ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # 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) $(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) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/Package.swift000066400000000000000000000021001501542066300242610ustar00rootroot00000000000000// 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")]) ] ) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/README.md000066400000000000000000000051141501542066300231370ustar00rootroot00000000000000g# 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) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/binding.gyp000066400000000000000000000012051501542066300240100ustar00rootroot00000000000000{ "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) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/node/index.d.ts000066400000000000000000000007041501542066300263030ustar00rootroot00000000000000type 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; tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/node/index.js000066400000000000000000000003111501542066300260410ustar00rootroot00000000000000const root = require("path").join(__dirname, "..", ".."); module.exports = require("node-gyp-build")(root); try { module.exports.nodeTypeInfo = require("../../src/node-types.json"); } catch (_) {} tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/000077500000000000000000000000001501542066300247755ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/dist_name.py000066400000000000000000000040041501542066300273100ustar00rootroot00000000000000import 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() tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/tree_sitter_sdml/000077500000000000000000000000001501542066300303455ustar00rootroot00000000000000__init__.py000066400000000000000000000001271501542066300323770ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/tree_sitter_sdml"Sdml grammar for tree-sitter" from ._binding import language __all__ = ["language"] __init__.pyi000066400000000000000000000000331501542066300325440ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/tree_sitter_sdmldef language() -> int: ... tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/tree_sitter_sdml/binding.c000066400000000000000000000011701501542066300321220ustar00rootroot00000000000000#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); } tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/python/tree_sitter_sdml/py.typed000066400000000000000000000000001501542066300320320ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/rust/000077500000000000000000000000001501542066300244515ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/rust/build.rs000066400000000000000000000025441501542066300261230ustar00rootroot00000000000000fn 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()); */ } tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/rust/lib.rs000066400000000000000000000057421501542066300255750ustar00rootroot00000000000000//! 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"); } } } } tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/swift/000077500000000000000000000000001501542066300246105ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/swift/TreeSitterSdml/000077500000000000000000000000001501542066300275225ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/bindings/swift/TreeSitterSdml/sdml.h000066400000000000000000000003561501542066300306360ustar00rootroot00000000000000#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_ tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/000077500000000000000000000000001501542066300234755ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/another.sdm000066400000000000000000000005761501542066300256520ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/constraints.sdm000066400000000000000000000033451501542066300265560ustar00rootroot00000000000000module constraints is @skos:prefLabel = "Example" assert tagged_with_foo_path with def foo -> string := "foo" is self.tags.contains(foo) end 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/datatypes.sdm000066400000000000000000000017231501542066300262030ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/dimensions.sdm000066400000000000000000000003031501542066300263460ustar00rootroot00000000000000module dimensions is import [ sales stores ] dimension Location is source sales:Sale with [ store city ] state -> stores:State country -> stores:Country end event Foo end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/escaped_strings.sdm000066400000000000000000000004421501542066300273570ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/imports.sdm000066400000000000000000000003541501542066300257010ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/labelled.sdm000066400000000000000000000014401501542066300257450ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/properties.sdm000066400000000000000000000004331501542066300263760ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/rdf_schema.sdm000066400000000000000000000007771501542066300263100ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/sdml_sequence_ordered.sdm000066400000000000000000000016611501542066300305410ustar00rootroot00000000000000module sdml_sequence_ordered is import skos class Ordered (S <- {ordered 0..} T) is def drop (self -> S count → unsigned) → S is @skos:definition = "Drop ~count~ items from the beginning of the sequence and return the rest."@en end def get (self -> S index → unsigned) → {0..1} T is @skos:definition = "Return the element in this sequence at the position ~index~."@en end def reverse(self -> S) → S is @skos:definition = "Return a new sequence with the order of elements reversed."@en end def slice (self -> S start → unsigned count → unsigned) → S := take(drop(self count) start) is @skos:definition = "Return a sub-sequence of ~count~ elements starting at ~start~."@en end def take (self -> S count → unsigned) → S is @skos:definition = "Return ~count~ items from the beginning of the sequence and discard the rest."@en end end end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/examples/simple.sdm000066400000000000000000000031351501542066300254750ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/grammar.js000066400000000000000000001277721501542066300236630ustar00rootroot00000000000000// ------------------------------------------------------------------- // // Project: tree-sitter-sdml // Author: Simon Johnston // Version: 0.4.10 // 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 // ----------------------------------------------------------------------- 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, ) ) ), // ----------------------------------------------------------------------- // Annotations ❯ Annotation Only Body // ----------------------------------------------------------------------- annotation_only_body: $ => seq( keyword('is'), repeat1($.annotation), keyword('end') ), // ----------------------------------------------------------------------- // Annotations ❯ Informal Constraints // ----------------------------------------------------------------------- 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})?/) ), // ----------------------------------------------------------------------- // Annotations ❯ Formal Constraints // ----------------------------------------------------------------------- formal_constraint: $ => seq( optional( field('environment', $.constraint_environment) ), keyword('is'), field('body', $.constraint_sentence), keyword('end'), ), // ----------------------------------------------------------------------- // Annotations ❯ Formal Constraints ❯ Sentences // ----------------------------------------------------------------------- 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('variable', $.variable), $.set_op_membership, field('source', $.term) ) ), variable: $ => seq( field('name', $.identifier), optional( seq( $._type_op_has_type, field('range', $.identifier_reference) ) ) ), // ----------------------------------------------------------------------- // Annotations ❯ Formal Constraints ❯ Terms // ----------------------------------------------------------------------- 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( $._function_op_composition, field('name', $.identifier) ) ) ) ), predicate_value: $ => choice( $.simple_value, $.sequence_of_predicate_values, ), sequence_of_predicate_values: $ => seq( optional($._sequence_value_constraints), choice( field('empty', $._value_empty_sequence), seq( '[', repeat( field( 'element', choice( $.predicate_value, $.value_constructor, $.mapping_value, $.identifier_reference ) ) ), ']' ) ) ), reserved_self: $ => keyword('self'), // ----------------------------------------------------------------------- // Annotations ❯ Formal Constraints ❯ Environments // ----------------------------------------------------------------------- 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', $.cardinality_reference_expression) ), field('target', $.function_type_reference) ), 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) ) ) ), // ----------------------------------------------------------------------- // Annotations ❯ Formal Constraints ❯ Sequence Builder // ----------------------------------------------------------------------- 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 ), // ----------------------------------------------------------------------- // Values ❯ Simple // ----------------------------------------------------------------------- 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('⊥'), ), // ----------------------------------------------------------------------- // Values ❯ Constructors // ----------------------------------------------------------------------- value_constructor: $ => seq( field('name', $.identifier_reference), '(', field('value', $.simple_value), ')' ), // ----------------------------------------------------------------------- // Values ❯ Mappings // ----------------------------------------------------------------------- mapping_value: $ => seq( field('domain', $.simple_value), prec.right( seq( $._type_op_has_type, field('range', $.value) ) ), ), // ----------------------------------------------------------------------- // Values ❯ Sequences // ----------------------------------------------------------------------- sequence_of_values: $ => seq( optional($._sequence_value_constraints), choice( field('empty', $._value_empty_sequence), seq( '[', repeat( field( 'element', choice( $.simple_value, $.value_constructor, $.mapping_value, $.identifier_reference ) ) ), ']' ) ) ), _sequence_value_constraints: $ => seq( '{', choice( seq( field('ordering', $.sequence_ordering), optional(field('uniqueness', $.sequence_uniqueness)), ), seq( optional(field('ordering', $.sequence_ordering)), field('uniqueness', $.sequence_uniqueness) ) ), '}' ), // ----------------------------------------------------------------------- // Datatype Names // ----------------------------------------------------------------------- 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') ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Definition // ----------------------------------------------------------------------- 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 ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ From Definition // ----------------------------------------------------------------------- from_definition_clause: $ => seq( keyword('from'), field('from', $.identifier_reference), choice( $.from_definition_with, $.from_definition_without ) ), from_definition_with: $ => seq( keyword('with'), $._wildcard_or_identifier_or_sequence ), from_definition_without: $ => seq( keyword('without'), $._identifier_or_sequence ), _wildcard_or_identifier_or_sequence: $ => choice( field('wildcard', $.wildcard), field('member', $.identifier), seq( '[', repeat1(field('member', $.identifier)), ']' ) ), _identifier_or_sequence: $ => choice( field('member', $.identifier), seq( '[', repeat1(field('member', $.identifier)), ']' ) ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Datatype // ----------------------------------------------------------------------- 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), '}' ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Datatype ❯ Facets // ----------------------------------------------------------------------- _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'), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Dimension // ----------------------------------------------------------------------- dimension_def: $ => seq( keyword('dimension'), field('name', $.identifier), optional(field('from', $.from_definition_clause)), 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 ) ) ), dimension_parent: $ => seq( keyword('parent'), field('name', $.identifier), $._type_op_has_type, field('parent', $.identifier_reference), optional(field('body', $.annotation_only_body)) ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Entity // ----------------------------------------------------------------------- entity_def: $ => seq( keyword('entity'), field('name', $.identifier), optional(field('from', $.from_definition_clause)), optional(field('body', $.entity_body)) ), entity_body: $ => seq( keyword('is'), repeat($.annotation), field('identity', $.entity_identity), repeat($.member), keyword('end') ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Enum // ----------------------------------------------------------------------- enum_def: $ => seq( keyword('enum'), field('name', $.identifier), optional(field('from', $.from_definition_clause)), optional(field('body', $.enum_body)) ), enum_body: $ => seq( keyword('of'), repeat($.annotation), repeat($.value_variant), keyword('end') ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Event // ----------------------------------------------------------------------- event_def: $ => seq( keyword('event'), field('name', $.identifier), optional(field('from', $.from_definition_clause)), optional(field('body', $.event_body)) ), event_body: $ => seq( keyword('is'), repeat($.annotation), field('identity', $.source_entity), repeat($.member), keyword('end') ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Property // ----------------------------------------------------------------------- property_def: $ => seq( keyword('property'), field('member', $.member_def) ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ RDF // ----------------------------------------------------------------------- rdf_def: $ => seq( keyword('rdf'), field('name', $.identifier), optional(field('types', $.rdf_types)), optional(field('body', $.annotation_only_body)) ), rdf_types: $ => seq( choice( keyword('a'), keyword('type') ), choice( field('type', $.identifier_reference), seq( '[', repeat(field('type', $.identifier_reference)), ']' ) ) ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Structure // ----------------------------------------------------------------------- structure_def: $ => seq( keyword('structure'), field('name', $.identifier), optional(field('from', $.from_definition_clause)), optional(field('body', $.structure_body)) ), structure_body: $ => seq( keyword('is'), repeat($.annotation), repeat($.member), keyword('end') ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ TypeClass // ----------------------------------------------------------------------- type_class_def: $ => seq( keyword('class'), field('name', $.identifier), optional( seq( '(', repeat1(field('parameter', $.type_parameter)), ')', ) ), optional(field('from', $.from_definition_clause)), optional(field('body', $.type_class_body)) ), type_parameter: $ => seq( field('name', $.identifier), optional( seq( $._type_op_type_restriction, $.type_parameter_restriction, repeat( seq( $.type_op_combiner, $.type_parameter_restriction, ) ) ) ) ), type_parameter_restriction: $ => seq( optional( field('cardinality', $.cardinality_reference_expression) ), field('class', $.identifier_reference), // Actual arguments to match the parameters for the class 'class'. optional( seq( "(", repeat1( field('argument',$.type_restriction_argument) ), ")" ) ) ), type_restriction_argument: $ => choice( $.identifier, $.wildcard ), 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) ), // ----------------------------------------------------------------------- // Top-Level Definitions ❯ Union // ----------------------------------------------------------------------- union_def: $ => seq( keyword('union'), field('name', $.identifier), optional(field('from', $.from_definition_clause)), optional(field('body', $.union_body)) ), union_body: $ => seq( keyword('of'), repeat($.annotation), repeat($.type_variant), keyword('end') ), // ----------------------------------------------------------------------- // 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), ), // ----------------------------------------------------------------------- // Members ❯ Type Expressions // ----------------------------------------------------------------------- _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) ) ), ")" ), // ----------------------------------------------------------------------- // Members ❯ Cardinality // ----------------------------------------------------------------------- cardinality_expression: $ => seq( '{', optional( field('ordering', $.sequence_ordering) ), optional( field('uniqueness', $.sequence_uniqueness) ), $._cardinality_inner, '}' ), cardinality_reference_expression: $ => seq( '{', optional( field('ordering', $.sequence_ordering) ), optional( field('uniqueness', $.sequence_uniqueness) ), optional( $._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_subset: $ => choice( keyword('subset'), keyword('⊂'), ), set_op_subset_or_equal: $ => choice( keyword('subseteq'), 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_composition: $ => choice( token.immediate('·'), token.immediate('.') ), _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( ';', /.*/ ) ) ) } }) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/package.json000066400000000000000000000021131501542066300241420ustar00rootroot00000000000000{ "name": "tree-sitter-sdml", "version": "0.4.10", "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-sdml-83d68b835a99fe424da3cf613670523be36be1f7/pyproject.toml000066400000000000000000000013231501542066300245720ustar00rootroot00000000000000[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.10" keywords = ["incremental", "parsing", "tree-sitter", "sdml"] classifiers = [ "Intended Audience :: Developers", "Topic :: Software Development :: Compilers", "Topic :: Text Processing :: Linguistic", "Typing :: Typed" ] requires-python = ">=3.8" license = "Apache-2.0" license-files = ["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" tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/000077500000000000000000000000001501542066300233345ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/folds.scm000066400000000000000000000010421501542066300251440ustar00rootroot00000000000000[ (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) (datatype_def_restriction) ;; ---------------- (formal_constraint) (constraint_environment) (function_body) (constraint_sentence) (sequence_builder) ;; ---------------- (sequence_of_values) (sequence_of_predicate_values) ] @fold tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/highlights.scm000066400000000000000000000245201501542066300261750ustar00rootroot00000000000000;; --------------------------------------------------------------------------- ;; 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) (cardinality_reference_expression (sequence_ordering) @keyword) (cardinality_reference_expression (sequence_uniqueness) @keyword) (cardinality_reference_expression [ "{" "}" ] @punctuation.bracket) (function_body [ ":=" "≔" ] @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)) (atomic_sentence [ "(" ")" ] @punctuation.bracket) (atomic_sentence 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) (variable range: (identifier_reference) @type) (functional_term function: (term (identifier_reference) @function.call)) (functional_term [ "(" ")" ] @punctuation.bracket) (functional_term argument: (term (identifier_reference (identifier) @variable))) (sequence_builder [ "{" "}" ] @punctuation.bracket (set_op_builder) @punctuation.separator) (sequence_of_predicate_values [ "{" "}" ] @punctuation.bracket) (sequence_of_predicate_values (sequence_ordering) @keyword) (sequence_of_predicate_values (sequence_uniqueness) @keyword) (sequence_of_predicate_values [ "[" "]" ] @punctuation.bracket) (sequence_of_predicate_values (identifier_reference) @type) (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) (from_definition_clause "from" @keyword from: (identifier_reference) @type) (from_definition_with "with" @keyword) (from_definition_with wildcard: (_) @type.builtin) (from_definition_with member: (identifier) @variable) (from_definition_with [ "[" "]" ] @punctuation.bracket) (from_definition_without "without" @keyword) (from_definition_without member: (identifier) @variable) (from_definition_without [ "[" "]" ] @punctuation.bracket) (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_parameter name: (identifier) @type.definition) (type_parameter (type_op_combiner) @operator) (type_parameter_restriction class: (identifier_reference) @type) (type_parameter_restriction [ "(" ")" ] @punctuation.bracket) (type_restriction_argument (identifier) @type.definition) (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 parent: (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 [ "{" "}" ] @punctuation.bracket) (sequence_of_values (sequence_ordering) @keyword) (sequence_of_values (sequence_uniqueness) @keyword) (sequence_of_values [ "[" "]" ] @punctuation.bracket) (sequence_of_values (identifier_reference) @type) ;; --------------------------------------------------------------------------- ;; 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) ) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/indent.scm000066400000000000000000000015651501542066300253300ustar00rootroot00000000000000[ "is" "of" ] @indent [ "end" ] @indent.end [ (string) (line_comment) (function_body) ] @indent.auto (import_statement "[" @indent "]" @indent.end) (datatype_def_restriction "{" @indent "}" @indent.end) (from_definition_with "[" @indent "]" @indent.end) (from_definition_without "[" @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) (atomic_sentence "(" @indent ")" @indent.end) (functional_term "(" @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)) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/injections.scm000066400000000000000000000000001501542066300261730ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/locals.scm000066400000000000000000000000001501542066300253030ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/queries/tags.scm000066400000000000000000000112261501542066300250000ustar00rootroot00000000000000;; --------------------------------------------------------------------------- ;; 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 (data_type_def base: (_) @name) @reference.datatype (length_restriction_facet ["length" "maxLength" "minLength"] @name) @reference.facet (digit_restriction_facet ["fractionDigits" "totalDigits"] @name) @reference.facet (value_restriction_facet ["maxExclusive" "maxInclusive" "minExclusive" "minInclusive"] @name) @reference.facet (tz_restriction_facet ["explicitTimezone" ] @name) @reference.facet (pattern_restriction_facet ["pattern"] @name) @reference.facet (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 (type_parameter name: (identifier) @name) @definition.class (type_parameter_restriction class: (identifier_reference) @name) @reference.class (type_restriction_argument (identifier) @name) @definition.class (union_def name: (identifier) @name) @definition.union (from_definition_clause from: (identifier_reference) @name) @reference.type (from_definition_with member: (identifier) @name) @reference.field (from_definition_without member: (identifier) @name) @reference.field ;; common to dimension and event (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 parent: (identifier_reference) @name) @reference.dimension (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) @reference.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) (function_signature (function_type_reference) @name) @reference.type (method_def (function_signature name: (identifier) @name) @definition.method) (function_parameter name: (identifier) @name) @definition.variable tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/setup.py000066400000000000000000000031731501542066300233750ustar00rootroot00000000000000from 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 ) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/000077500000000000000000000000001501542066300224465ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/grammar.json000066400000000000000000003646541501542066300250110ustar00rootroot00000000000000{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "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" } ] } } ] }, "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" } } } ] }, "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": "variable", "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": "FIELD", "name": "name", "content": { "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_reference" } } ] }, { "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": "SYMBOL", "name": "_function_op_composition" }, { "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": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sequence_value_constraints" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "empty", "content": { "type": "SYMBOL", "name": "_value_empty_sequence" } }, { "type": "SEQ", "members": [ { "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": "cardinality_reference_expression" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "function_type_reference" } } ] }, "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" } ] }, "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": "⊥" } } } ] }, "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" } } ] } } ] }, "sequence_of_values": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sequence_value_constraints" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "empty", "content": { "type": "SYMBOL", "name": "_value_empty_sequence" } }, { "type": "SEQ", "members": [ { "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": "SEQ", "members": [ { "type": "FIELD", "name": "ordering", "content": { "type": "SYMBOL", "name": "sequence_ordering" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "uniqueness", "content": { "type": "SYMBOL", "name": "sequence_uniqueness" } }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "ordering", "content": { "type": "SYMBOL", "name": "sequence_ordering" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "uniqueness", "content": { "type": "SYMBOL", "name": "sequence_uniqueness" } } ] } ] }, { "type": "STRING", "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" } } } ] }, "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" } ] }, "from_definition_clause": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "from" } } }, { "type": "FIELD", "name": "from", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "from_definition_with" }, { "type": "SYMBOL", "name": "from_definition_without" } ] } ] }, "from_definition_with": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "with" } } }, { "type": "SYMBOL", "name": "_wildcard_or_identifier_or_sequence" } ] }, "from_definition_without": { "type": "SEQ", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "without" } } }, { "type": "SYMBOL", "name": "_identifier_or_sequence" } ] }, "_wildcard_or_identifier_or_sequence": { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "wildcard", "content": { "type": "SYMBOL", "name": "wildcard" } }, { "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": "]" } ] } ] }, "_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": "]" } ] } ] }, "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" } } }, "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": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "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" } ] } ] }, "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": "parent", "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": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "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": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "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": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "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" } } ] }, "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": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "annotation_only_body" } }, { "type": "BLANK" } ] } ] }, "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": "]" } ] } ] } ] }, "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": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "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" } } } ] }, "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": "parameter", "content": { "type": "SYMBOL", "name": "type_parameter" } } }, { "type": "STRING", "value": ")" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "type_class_body" } }, { "type": "BLANK" } ] } ] }, "type_parameter": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_op_type_restriction" }, { "type": "SYMBOL", "name": "type_parameter_restriction" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type_op_combiner" }, { "type": "SYMBOL", "name": "type_parameter_restriction" } ] } } ] }, { "type": "BLANK" } ] } ] }, "type_parameter_restriction": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "cardinality", "content": { "type": "SYMBOL", "name": "cardinality_reference_expression" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "class", "content": { "type": "SYMBOL", "name": "identifier_reference" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT1", "content": { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "type_restriction_argument" } } }, { "type": "STRING", "value": ")" } ] }, { "type": "BLANK" } ] } ] }, "type_restriction_argument": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "wildcard" } ] }, "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" } ] } ] }, "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": "from", "content": { "type": "SYMBOL", "name": "from_definition_clause" } }, { "type": "BLANK" } ] }, { "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" } } } ] }, "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_reference_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": "}" } ] }, "_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_subset": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "subset" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "⊂" } } } ] }, "set_op_subset_or_equal": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": 2, "content": { "type": "STRING", "value": "subseteq" } } }, { "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_composition": { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "·" } }, { "type": "IMMEDIATE_TOKEN", "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": [] } tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/node-types.json000066400000000000000000001720651501542066300254430ustar00rootroot00000000000000[ { "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": { "argument": { "multiple": true, "required": false, "types": [ { "type": "term", "named": true } ] }, "predicate": { "multiple": false, "required": true, "types": [ { "type": "term", "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": "cardinality_reference_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": "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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "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 } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parent": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "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": "from_definition_clause", "named": true, "fields": { "from": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "from_definition_with", "named": true }, { "type": "from_definition_without", "named": true } ] } }, { "type": "from_definition_with", "named": true, "fields": { "member": { "multiple": true, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "wildcard": { "multiple": false, "required": false, "types": [ { "type": "wildcard", "named": true } ] } } }, { "type": "from_definition_without", "named": true, "fields": { "member": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "function_body", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "constraint_sentence", "named": true }, { "type": "term", "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_parameter", "named": true, "fields": { "cardinality": { "multiple": false, "required": false, "types": [ { "type": "cardinality_reference_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": "cardinality_reference_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": { "argument": { "multiple": true, "required": false, "types": [ { "type": "term", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "term", "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, "root": 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": { "source": { "multiple": false, "required": true, "types": [ { "type": "term", "named": true } ] }, "variable": { "multiple": false, "required": true, "types": [ { "type": "variable", "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": false, "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 } ] }, "empty": { "multiple": false, "required": false, "types": [ { "type": "∅", "named": false } ] }, "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 } ] }, "empty": { "multiple": false, "required": false, "types": [ { "type": "∅", "named": false } ] }, "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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "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_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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parameter": { "multiple": true, "required": false, "types": [ { "type": "type_parameter", "named": true } ] } } }, { "type": "type_op_combiner", "named": true, "fields": {} }, { "type": "type_parameter", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_op_combiner", "named": true }, { "type": "type_parameter_restriction", "named": true } ] } }, { "type": "type_parameter_restriction", "named": true, "fields": { "argument": { "multiple": true, "required": false, "types": [ { "type": "type_restriction_argument", "named": true } ] }, "cardinality": { "multiple": false, "required": false, "types": [ { "type": "cardinality_reference_expression", "named": true } ] }, "class": { "multiple": false, "required": true, "types": [ { "type": "identifier_reference", "named": true } ] } } }, { "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_restriction_argument", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "wildcard", "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 } ] }, "from": { "multiple": false, "required": false, "types": [ { "type": "from_definition_clause", "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": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "range": { "multiple": false, "required": false, "types": [ { "type": "identifier_reference", "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": "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": false }, { "type": "double", "named": true }, { "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": true }, { "type": "integer", "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": false }, { "type": "rational", "named": true }, { "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": "without", "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 } ]tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/parser.c000066400000000000000000021313271501542066300241170ustar00rootroot00000000000000#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 584 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 331 #define ALIAS_COUNT 0 #define TOKEN_COUNT 167 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 51 #define MAX_ALIAS_SEQUENCE_LENGTH 7 #define PRODUCTION_ID_COUNT 125 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, sym_reserved_self = 21, anon_sym_with = 22, anon_sym_def = 23, anon_sym_LBRACE = 24, anon_sym_RBRACE = 25, sym_quoted_string = 26, sym_language_tag = 27, anon_sym_LT = 28, aux_sym_iri_token1 = 29, anon_sym_GT = 30, anon_sym_POUND_LBRACK = 31, sym_hex_byte = 32, sym_double = 33, sym_decimal = 34, sym_integer = 35, sym_rational = 36, sym_unsigned = 37, anon_sym_true = 38, anon_sym_u22a4 = 39, anon_sym_false = 40, anon_sym_u22a5 = 41, anon_sym_Thing = 42, anon_sym_Nothing = 43, anon_sym_real = 44, anon_sym_rational = 45, anon_sym_anyURI = 46, anon_sym_iri = 47, anon_sym_base64Binary = 48, anon_sym_boolean = 49, anon_sym_date = 50, anon_sym_dateTime = 51, anon_sym_decimal = 52, anon_sym_double = 53, anon_sym_duration = 54, anon_sym_float = 55, anon_sym_gDay = 56, anon_sym_gMonth = 57, anon_sym_gMonthDay = 58, anon_sym_gYearMonth = 59, anon_sym_gYear = 60, anon_sym_hexBinary = 61, anon_sym_binary = 62, anon_sym_string = 63, anon_sym_time = 64, anon_sym_dateTimeStamp = 65, anon_sym_dayTimeDuration = 66, anon_sym_yearMonthDuration = 67, anon_sym_integer = 68, anon_sym_long = 69, anon_sym_int = 70, anon_sym_short = 71, anon_sym_byte = 72, anon_sym_nonNegativeInteger = 73, anon_sym_positiveInteger = 74, anon_sym_unsignedLong = 75, anon_sym_unsignedInt = 76, anon_sym_unsigned = 77, anon_sym_unsignedShort = 78, anon_sym_unsignedByte = 79, anon_sym_nonPositiveInteger = 80, anon_sym_negativeInteger = 81, anon_sym_normalizedString = 82, anon_sym_token = 83, anon_sym_language = 84, anon_sym_without = 85, anon_sym_datatype = 86, sym_opaque = 87, anon_sym_length = 88, anon_sym_maxLength = 89, anon_sym_minLength = 90, anon_sym_fractionDigits = 91, anon_sym_totalDigits = 92, anon_sym_maxExclusive = 93, anon_sym_maxInclusive = 94, anon_sym_minExclusive = 95, anon_sym_minInclusive = 96, anon_sym_explicitTimezone = 97, anon_sym_required = 98, anon_sym_prohibited = 99, anon_sym_optional = 100, anon_sym_pattern = 101, sym_kw_is_fixed = 102, anon_sym_dimension = 103, anon_sym_source = 104, anon_sym_parent = 105, anon_sym_entity = 106, anon_sym_enum = 107, anon_sym_of = 108, anon_sym_event = 109, anon_sym_property = 110, anon_sym_rdf = 111, anon_sym_a = 112, anon_sym_type = 113, anon_sym_structure = 114, anon_sym_class = 115, sym_wildcard = 116, anon_sym_union = 117, anon_sym_identity = 118, anon_sym_ref = 119, sym_unknown_type = 120, anon_sym_ordered = 121, anon_sym_unordered = 122, anon_sym_unique = 123, anon_sym_nonunique = 124, anon_sym_DOT_DOT = 125, anon_sym_SLASH_EQ = 126, anon_sym_u2260 = 127, sym_op_less_than = 128, sym_op_greater_than = 129, anon_sym_LT_EQ = 130, anon_sym_u2264 = 131, anon_sym_GT_EQ = 132, anon_sym_u2265 = 133, anon_sym_not = 134, anon_sym_u00ac = 135, anon_sym_and = 136, anon_sym_u2227 = 137, anon_sym_or = 138, anon_sym_u2228 = 139, anon_sym_xor = 140, anon_sym_u22bb = 141, anon_sym_implies = 142, anon_sym_EQ_EQ_GT = 143, anon_sym_u21d2 = 144, anon_sym_iff = 145, anon_sym_LT_EQ_EQ_GT = 146, anon_sym_u21d4 = 147, anon_sym_forall = 148, anon_sym_u2200 = 149, anon_sym_exists = 150, anon_sym_u2203 = 151, anon_sym_in = 152, anon_sym_u2208 = 153, sym_set_op_builder = 154, anon_sym_u00b7 = 155, anon_sym_DOT = 156, anon_sym_COLON_EQ = 157, anon_sym_u2254 = 158, anon_sym_u2192 = 159, anon_sym_DASH_GT = 160, anon_sym_u2190 = 161, anon_sym_LT_DASH = 162, anon_sym_PLUS = 163, anon_sym_u2295 = 164, anon_sym_u2205 = 165, sym_line_comment = 166, sym_module = 167, sym__module_locations = 168, sym_module_body = 169, sym_import_statement = 170, sym_from_clause = 171, sym_module_path_root_only = 172, sym_module_path_absolute = 173, sym_module_path_relative = 174, sym__import = 175, sym__rename_import = 176, sym_member_import = 177, sym_module_import = 178, sym_qualified_identifier = 179, sym_identifier_reference = 180, sym_annotation = 181, sym_annotation_property = 182, sym_constraint = 183, sym_annotation_only_body = 184, sym_informal_constraint = 185, sym_formal_constraint = 186, sym_constraint_sentence = 187, sym_simple_sentence = 188, sym_atomic_sentence = 189, sym__actual_arguments = 190, sym_equation = 191, sym_inequation = 192, sym_boolean_sentence = 193, sym_unary_boolean_sentence = 194, sym_binary_boolean_sentence = 195, sym__logical_connective = 196, sym_quantified_sentence = 197, sym_quantified_variable_binding = 198, sym_quantified_variable = 199, sym_variable = 200, sym_term = 201, sym_functional_term = 202, sym_function_composition = 203, sym_predicate_value = 204, sym_sequence_of_predicate_values = 205, sym_constraint_environment = 206, sym_function_def = 207, sym_function_signature = 208, sym_function_parameter = 209, sym__function_type = 210, sym_function_type_reference = 211, sym_function_body = 212, sym_sequence_builder = 213, sym_sequence_builder_body = 214, sym_value = 215, sym_simple_value = 216, sym_string = 217, sym_iri = 218, sym_binary = 219, sym_boolean = 220, sym_boolean_truth = 221, sym_boolean_falsity = 222, sym_value_constructor = 223, sym_mapping_value = 224, sym_sequence_of_values = 225, sym__sequence_value_constraints = 226, sym_builtin_simple_type = 227, sym__owl_builtin_types = 228, sym__builtin_primitive_datatypes = 229, sym__derived_date_datetypes = 230, sym__derived_numeric_datatypes = 231, sym__derived_string_datatypes = 232, sym_definition = 233, sym_from_definition_clause = 234, sym_from_definition_with = 235, sym_from_definition_without = 236, sym__wildcard_or_identifier_or_sequence = 237, sym__identifier_or_sequence = 238, sym_data_type_def = 239, sym__datatype_base = 240, sym_datatype_def_restriction = 241, sym__restriction_facet = 242, sym_length_restriction_facet = 243, sym_digit_restriction_facet = 244, sym_value_restriction_facet = 245, sym_restriction_value = 246, sym_tz_restriction_facet = 247, sym_tz_restriction_value = 248, sym_pattern_restriction_facet = 249, sym_dimension_def = 250, sym_dimension_body = 251, sym_source_entity = 252, sym_dimension_parent = 253, sym_entity_def = 254, sym_entity_body = 255, sym_enum_def = 256, sym_enum_body = 257, sym_event_def = 258, sym_event_body = 259, sym_property_def = 260, sym_rdf_def = 261, sym_rdf_types = 262, sym_structure_def = 263, sym_structure_body = 264, sym_type_class_def = 265, sym_type_parameter = 266, sym_type_parameter_restriction = 267, sym_type_restriction_argument = 268, sym_type_class_body = 269, sym_method_def = 270, sym_union_def = 271, sym_union_body = 272, sym_entity_identity = 273, sym_member = 274, sym_member_def = 275, sym_property_ref = 276, sym__type_expression_to = 277, sym_type_reference = 278, sym_mapping_type = 279, sym_cardinality_expression = 280, sym_cardinality_reference_expression = 281, sym__cardinality_inner = 282, sym_sequence_ordering = 283, sym_sequence_uniqueness = 284, sym_cardinality_range = 285, sym_value_variant = 286, sym_type_variant = 287, sym_op_inequality = 288, sym_op_less_than_or_equal = 289, sym_op_greater_than_or_equal = 290, sym_logical_op_negation = 291, sym_logical_op_conjunction = 292, sym_logical_op_disjunction = 293, sym_logical_op_exclusive_disjunction = 294, sym_logical_op_implication = 295, sym_logical_op_biconditional = 296, sym_logical_quantifier_universal = 297, sym_logical_quantifier_existential = 298, sym_set_op_membership = 299, sym__function_op_composition = 300, sym__function_op_by_definition = 301, sym__type_op_has_type = 302, sym__type_op_type_restriction = 303, sym_type_op_combiner = 304, sym__value_empty_sequence = 305, aux_sym_module_body_repeat1 = 306, aux_sym_module_body_repeat2 = 307, aux_sym_module_body_repeat3 = 308, aux_sym_import_statement_repeat1 = 309, aux_sym_module_path_absolute_repeat1 = 310, aux_sym__actual_arguments_repeat1 = 311, aux_sym_function_composition_repeat1 = 312, aux_sym_sequence_of_predicate_values_repeat1 = 313, aux_sym_constraint_environment_repeat1 = 314, aux_sym_function_signature_repeat1 = 315, aux_sym_sequence_builder_repeat1 = 316, aux_sym_binary_repeat1 = 317, aux_sym_sequence_of_values_repeat1 = 318, aux_sym__wildcard_or_identifier_or_sequence_repeat1 = 319, aux_sym_datatype_def_restriction_repeat1 = 320, aux_sym_pattern_restriction_facet_repeat1 = 321, aux_sym_dimension_body_repeat1 = 322, aux_sym_dimension_body_repeat2 = 323, aux_sym_enum_body_repeat1 = 324, aux_sym_rdf_types_repeat1 = 325, aux_sym_type_class_def_repeat1 = 326, aux_sym_type_parameter_repeat1 = 327, aux_sym_type_parameter_restriction_repeat1 = 328, aux_sym_type_class_body_repeat1 = 329, aux_sym_union_body_repeat1 = 330, }; 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] = ",", [sym_reserved_self] = "reserved_self", [anon_sym_with] = "with", [anon_sym_def] = "def", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [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_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", [anon_sym_without] = "without", [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_rdf] = "rdf", [anon_sym_a] = "a", [anon_sym_type] = "type", [anon_sym_structure] = "structure", [anon_sym_class] = "class", [sym_wildcard] = "wildcard", [anon_sym_union] = "union", [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_in] = "in", [anon_sym_u2208] = "\u2208", [sym_set_op_builder] = "set_op_builder", [anon_sym_u00b7] = "\u00b7", [anon_sym_DOT] = ".", [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", [anon_sym_u2205] = "\u2205", [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_annotation_only_body] = "annotation_only_body", [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_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_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_value_constructor] = "value_constructor", [sym_mapping_value] = "mapping_value", [sym_sequence_of_values] = "sequence_of_values", [sym__sequence_value_constraints] = "_sequence_value_constraints", [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_definition] = "definition", [sym_from_definition_clause] = "from_definition_clause", [sym_from_definition_with] = "from_definition_with", [sym_from_definition_without] = "from_definition_without", [sym__wildcard_or_identifier_or_sequence] = "_wildcard_or_identifier_or_sequence", [sym__identifier_or_sequence] = "_identifier_or_sequence", [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_dimension_def] = "dimension_def", [sym_dimension_body] = "dimension_body", [sym_source_entity] = "source_entity", [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_rdf_def] = "rdf_def", [sym_rdf_types] = "rdf_types", [sym_structure_def] = "structure_def", [sym_structure_body] = "structure_body", [sym_type_class_def] = "type_class_def", [sym_type_parameter] = "type_parameter", [sym_type_parameter_restriction] = "type_parameter_restriction", [sym_type_restriction_argument] = "type_restriction_argument", [sym_type_class_body] = "type_class_body", [sym_method_def] = "method_def", [sym_union_def] = "union_def", [sym_union_body] = "union_body", [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_reference_expression] = "cardinality_reference_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_composition] = "_function_op_composition", [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", [sym__value_empty_sequence] = "_value_empty_sequence", [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_binary_repeat1] = "binary_repeat1", [aux_sym_sequence_of_values_repeat1] = "sequence_of_values_repeat1", [aux_sym__wildcard_or_identifier_or_sequence_repeat1] = "_wildcard_or_identifier_or_sequence_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_enum_body_repeat1] = "enum_body_repeat1", [aux_sym_rdf_types_repeat1] = "rdf_types_repeat1", [aux_sym_type_class_def_repeat1] = "type_class_def_repeat1", [aux_sym_type_parameter_repeat1] = "type_parameter_repeat1", [aux_sym_type_parameter_restriction_repeat1] = "type_parameter_restriction_repeat1", [aux_sym_type_class_body_repeat1] = "type_class_body_repeat1", [aux_sym_union_body_repeat1] = "union_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, [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, [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_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, [anon_sym_without] = anon_sym_without, [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_rdf] = anon_sym_rdf, [anon_sym_a] = anon_sym_a, [anon_sym_type] = anon_sym_type, [anon_sym_structure] = anon_sym_structure, [anon_sym_class] = anon_sym_class, [sym_wildcard] = sym_wildcard, [anon_sym_union] = anon_sym_union, [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_in] = anon_sym_in, [anon_sym_u2208] = anon_sym_u2208, [sym_set_op_builder] = sym_set_op_builder, [anon_sym_u00b7] = anon_sym_u00b7, [anon_sym_DOT] = anon_sym_DOT, [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, [anon_sym_u2205] = anon_sym_u2205, [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_annotation_only_body] = sym_annotation_only_body, [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_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_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_value_constructor] = sym_value_constructor, [sym_mapping_value] = sym_mapping_value, [sym_sequence_of_values] = sym_sequence_of_values, [sym__sequence_value_constraints] = sym__sequence_value_constraints, [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_definition] = sym_definition, [sym_from_definition_clause] = sym_from_definition_clause, [sym_from_definition_with] = sym_from_definition_with, [sym_from_definition_without] = sym_from_definition_without, [sym__wildcard_or_identifier_or_sequence] = sym__wildcard_or_identifier_or_sequence, [sym__identifier_or_sequence] = sym__identifier_or_sequence, [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_dimension_def] = sym_dimension_def, [sym_dimension_body] = sym_dimension_body, [sym_source_entity] = sym_source_entity, [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_rdf_def] = sym_rdf_def, [sym_rdf_types] = sym_rdf_types, [sym_structure_def] = sym_structure_def, [sym_structure_body] = sym_structure_body, [sym_type_class_def] = sym_type_class_def, [sym_type_parameter] = sym_type_parameter, [sym_type_parameter_restriction] = sym_type_parameter_restriction, [sym_type_restriction_argument] = sym_type_restriction_argument, [sym_type_class_body] = sym_type_class_body, [sym_method_def] = sym_method_def, [sym_union_def] = sym_union_def, [sym_union_body] = sym_union_body, [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_reference_expression] = sym_cardinality_reference_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_composition] = sym__function_op_composition, [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, [sym__value_empty_sequence] = sym__value_empty_sequence, [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_binary_repeat1] = aux_sym_binary_repeat1, [aux_sym_sequence_of_values_repeat1] = aux_sym_sequence_of_values_repeat1, [aux_sym__wildcard_or_identifier_or_sequence_repeat1] = aux_sym__wildcard_or_identifier_or_sequence_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_enum_body_repeat1] = aux_sym_enum_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_parameter_repeat1] = aux_sym_type_parameter_repeat1, [aux_sym_type_parameter_restriction_repeat1] = aux_sym_type_parameter_restriction_repeat1, [aux_sym_type_class_body_repeat1] = aux_sym_type_class_body_repeat1, [aux_sym_union_body_repeat1] = aux_sym_union_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, }, [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, }, [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_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, }, [anon_sym_without] = { .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_rdf] = { .visible = true, .named = false, }, [anon_sym_a] = { .visible = true, .named = false, }, [anon_sym_type] = { .visible = true, .named = false, }, [anon_sym_structure] = { .visible = true, .named = false, }, [anon_sym_class] = { .visible = true, .named = false, }, [sym_wildcard] = { .visible = true, .named = true, }, [anon_sym_union] = { .visible = true, .named = false, }, [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_in] = { .visible = true, .named = false, }, [anon_sym_u2208] = { .visible = true, .named = false, }, [sym_set_op_builder] = { .visible = true, .named = true, }, [anon_sym_u00b7] = { .visible = true, .named = false, }, [anon_sym_DOT] = { .visible = true, .named = false, }, [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, }, [anon_sym_u2205] = { .visible = true, .named = false, }, [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_annotation_only_body] = { .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 = false, .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_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_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_value_constructor] = { .visible = true, .named = true, }, [sym_mapping_value] = { .visible = true, .named = true, }, [sym_sequence_of_values] = { .visible = true, .named = true, }, [sym__sequence_value_constraints] = { .visible = false, .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_definition] = { .visible = true, .named = true, }, [sym_from_definition_clause] = { .visible = true, .named = true, }, [sym_from_definition_with] = { .visible = true, .named = true, }, [sym_from_definition_without] = { .visible = true, .named = true, }, [sym__wildcard_or_identifier_or_sequence] = { .visible = false, .named = true, }, [sym__identifier_or_sequence] = { .visible = false, .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_dimension_def] = { .visible = true, .named = true, }, [sym_dimension_body] = { .visible = true, .named = true, }, [sym_source_entity] = { .visible = true, .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_rdf_def] = { .visible = true, .named = true, }, [sym_rdf_types] = { .visible = true, .named = true, }, [sym_structure_def] = { .visible = true, .named = true, }, [sym_structure_body] = { .visible = true, .named = true, }, [sym_type_class_def] = { .visible = true, .named = true, }, [sym_type_parameter] = { .visible = true, .named = true, }, [sym_type_parameter_restriction] = { .visible = true, .named = true, }, [sym_type_restriction_argument] = { .visible = true, .named = true, }, [sym_type_class_body] = { .visible = true, .named = true, }, [sym_method_def] = { .visible = true, .named = true, }, [sym_union_def] = { .visible = true, .named = true, }, [sym_union_body] = { .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_reference_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_composition] = { .visible = false, .named = true, }, [sym__function_op_by_definition] = { .visible = false, .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, }, [sym__value_empty_sequence] = { .visible = false, .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_binary_repeat1] = { .visible = false, .named = false, }, [aux_sym_sequence_of_values_repeat1] = { .visible = false, .named = false, }, [aux_sym__wildcard_or_identifier_or_sequence_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_enum_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_parameter_repeat1] = { .visible = false, .named = false, }, [aux_sym_type_parameter_restriction_repeat1] = { .visible = false, .named = false, }, [aux_sym_type_class_body_repeat1] = { .visible = false, .named = false, }, [aux_sym_union_body_repeat1] = { .visible = false, .named = false, }, }; enum ts_field_identifiers { field_argument = 1, field_base = 2, field_binding = 3, field_body = 4, field_byte = 5, field_cardinality = 6, field_class = 7, field_domain = 8, field_element = 9, field_empty = 10, field_entity = 11, field_environment = 12, field_facet = 13, field_from = 14, field_function = 15, field_identity = 16, field_is_fixed = 17, field_language = 18, field_lhs = 19, field_max = 20, field_member = 21, field_method = 22, field_min = 23, field_module = 24, field_name = 25, field_opaque = 26, field_operator = 27, field_ordering = 28, field_parameter = 29, field_parent = 30, field_predicate = 31, field_property = 32, field_quantifier = 33, field_range = 34, field_relation = 35, field_rename = 36, field_restriction = 37, field_rhs = 38, field_segment = 39, field_signature = 40, field_source = 41, field_subject = 42, field_target = 43, field_type = 44, field_types = 45, field_uniqueness = 46, field_value = 47, field_variable = 48, field_version_info = 49, field_version_uri = 50, field_wildcard = 51, }; static const char * const ts_field_names[] = { [0] = NULL, [field_argument] = "argument", [field_base] = "base", [field_binding] = "binding", [field_body] = "body", [field_byte] = "byte", [field_cardinality] = "cardinality", [field_class] = "class", [field_domain] = "domain", [field_element] = "element", [field_empty] = "empty", [field_entity] = "entity", [field_environment] = "environment", [field_facet] = "facet", [field_from] = "from", [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_parent] = "parent", [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 = 2}, [14] = {.index = 23, .length = 3}, [15] = {.index = 26, .length = 2}, [16] = {.index = 28, .length = 3}, [17] = {.index = 31, .length = 1}, [18] = {.index = 32, .length = 2}, [19] = {.index = 34, .length = 3}, [20] = {.index = 37, .length = 2}, [21] = {.index = 39, .length = 2}, [22] = {.index = 41, .length = 2}, [23] = {.index = 43, .length = 1}, [24] = {.index = 44, .length = 1}, [25] = {.index = 45, .length = 2}, [26] = {.index = 47, .length = 3}, [27] = {.index = 50, .length = 4}, [28] = {.index = 54, .length = 1}, [29] = {.index = 55, .length = 1}, [30] = {.index = 56, .length = 3}, [31] = {.index = 59, .length = 1}, [32] = {.index = 60, .length = 1}, [33] = {.index = 61, .length = 1}, [34] = {.index = 62, .length = 1}, [35] = {.index = 63, .length = 1}, [36] = {.index = 64, .length = 1}, [37] = {.index = 65, .length = 3}, [38] = {.index = 68, .length = 2}, [39] = {.index = 70, .length = 1}, [40] = {.index = 71, .length = 1}, [41] = {.index = 72, .length = 2}, [42] = {.index = 74, .length = 2}, [43] = {.index = 76, .length = 2}, [44] = {.index = 78, .length = 2}, [45] = {.index = 80, .length = 2}, [46] = {.index = 82, .length = 2}, [47] = {.index = 84, .length = 3}, [48] = {.index = 87, .length = 3}, [49] = {.index = 90, .length = 3}, [50] = {.index = 93, .length = 1}, [51] = {.index = 94, .length = 1}, [52] = {.index = 95, .length = 1}, [53] = {.index = 96, .length = 2}, [54] = {.index = 98, .length = 1}, [55] = {.index = 99, .length = 2}, [56] = {.index = 101, .length = 1}, [57] = {.index = 102, .length = 1}, [58] = {.index = 103, .length = 1}, [59] = {.index = 104, .length = 2}, [60] = {.index = 106, .length = 2}, [61] = {.index = 108, .length = 2}, [62] = {.index = 110, .length = 1}, [63] = {.index = 111, .length = 2}, [64] = {.index = 113, .length = 1}, [65] = {.index = 114, .length = 1}, [66] = {.index = 115, .length = 1}, [67] = {.index = 116, .length = 2}, [68] = {.index = 118, .length = 2}, [69] = {.index = 120, .length = 2}, [70] = {.index = 122, .length = 2}, [71] = {.index = 124, .length = 2}, [72] = {.index = 126, .length = 3}, [73] = {.index = 129, .length = 2}, [74] = {.index = 131, .length = 2}, [75] = {.index = 133, .length = 1}, [76] = {.index = 134, .length = 3}, [77] = {.index = 137, .length = 3}, [78] = {.index = 140, .length = 2}, [79] = {.index = 142, .length = 4}, [80] = {.index = 146, .length = 4}, [81] = {.index = 150, .length = 4}, [82] = {.index = 154, .length = 1}, [83] = {.index = 155, .length = 1}, [84] = {.index = 156, .length = 1}, [85] = {.index = 157, .length = 2}, [86] = {.index = 159, .length = 1}, [87] = {.index = 160, .length = 2}, [88] = {.index = 162, .length = 2}, [89] = {.index = 164, .length = 1}, [90] = {.index = 165, .length = 2}, [91] = {.index = 167, .length = 1}, [92] = {.index = 168, .length = 1}, [93] = {.index = 169, .length = 3}, [94] = {.index = 172, .length = 3}, [95] = {.index = 175, .length = 2}, [96] = {.index = 177, .length = 2}, [97] = {.index = 179, .length = 2}, [98] = {.index = 181, .length = 3}, [99] = {.index = 184, .length = 2}, [100] = {.index = 186, .length = 1}, [101] = {.index = 187, .length = 2}, [102] = {.index = 189, .length = 2}, [103] = {.index = 191, .length = 5}, [104] = {.index = 196, .length = 2}, [105] = {.index = 198, .length = 1}, [106] = {.index = 199, .length = 3}, [107] = {.index = 202, .length = 3}, [108] = {.index = 205, .length = 2}, [109] = {.index = 207, .length = 4}, [110] = {.index = 211, .length = 3}, [111] = {.index = 214, .length = 2}, [112] = {.index = 216, .length = 2}, [113] = {.index = 218, .length = 1}, [114] = {.index = 219, .length = 2}, [115] = {.index = 221, .length = 2}, [116] = {.index = 223, .length = 2}, [117] = {.index = 225, .length = 4}, [118] = {.index = 229, .length = 4}, [119] = {.index = 233, .length = 3}, [120] = {.index = 236, .length = 2}, [121] = {.index = 238, .length = 3}, [122] = {.index = 241, .length = 2}, [123] = {.index = 243, .length = 3}, [124] = {.index = 246, .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_from, 2}, {field_name, 1}, [23] = {field_cardinality, 1, .inherited = true}, {field_name, 0}, {field_target, 1, .inherited = true}, [26] = {field_name, 1}, {field_types, 2}, [28] = {field_base, 0}, {field_version_info, 2}, {field_version_uri, 3}, [31] = {field_rename, 1}, [32] = {field_member, 2}, {field_module, 0}, [34] = {field_name, 0}, {field_rename, 2, .inherited = true}, {field_version_uri, 1}, [37] = {field_segment, 1}, {field_segment, 2, .inherited = true}, [39] = {field_segment, 0, .inherited = true}, {field_segment, 1, .inherited = true}, [41] = {field_name, 1}, {field_value, 3}, [43] = {field_empty, 0}, [44] = {field_value, 1}, [45] = {field_base, 3}, {field_name, 1}, [47] = {field_body, 3}, {field_from, 2}, {field_name, 1}, [50] = {field_body, 2}, {field_cardinality, 1, .inherited = true}, {field_name, 0}, {field_target, 1, .inherited = true}, [54] = {field_target, 1}, [55] = {field_type, 1}, [56] = {field_body, 3}, {field_name, 1}, {field_types, 2}, [59] = {field_signature, 0}, [60] = {field_method, 0}, [61] = {field_parameter, 0}, [62] = {field_element, 0}, [63] = {field_language, 1}, [64] = {field_byte, 0}, [65] = {field_empty, 1}, {field_ordering, 0, .inherited = true}, {field_uniqueness, 0, .inherited = true}, [68] = {field_name, 1, .inherited = true}, {field_subject, 0}, [70] = {field_variable, 0}, [71] = {field_body, 1}, [72] = {field_argument, 1, .inherited = true}, {field_predicate, 0}, [74] = {field_argument, 1, .inherited = true}, {field_function, 0}, [76] = {field_operator, 0}, {field_rhs, 1}, [78] = {field_binding, 1}, {field_quantifier, 0}, [80] = {field_language, 2}, {field_value, 1}, [82] = {field_body, 1}, {field_signature, 0}, [84] = {field_base, 4}, {field_name, 1}, {field_opaque, 3}, [87] = {field_base, 3}, {field_body, 4}, {field_name, 1}, [90] = {field_base, 3}, {field_name, 1}, {field_restriction, 4}, [93] = {field_entity, 1}, [94] = {field_identity, 1}, [95] = {field_from, 1}, [96] = {field_body, 1}, {field_name, 0}, [98] = {field_min, 0}, [99] = {field_cardinality, 1}, {field_target, 2}, [101] = {field_type, 0}, [102] = {field_property, 1}, [103] = {field_method, 1, .inherited = true}, [104] = {field_method, 0, .inherited = true}, {field_method, 1, .inherited = true}, [106] = {field_name, 1}, {field_parameter, 3, .inherited = true}, [108] = {field_parameter, 0, .inherited = true}, {field_parameter, 1, .inherited = true}, [110] = {field_element, 1, .inherited = true}, [111] = {field_element, 0, .inherited = true}, {field_element, 1, .inherited = true}, [113] = {field_ordering, 1}, [114] = {field_uniqueness, 1}, [115] = {field_byte, 1, .inherited = true}, [116] = {field_byte, 0, .inherited = true}, {field_byte, 1, .inherited = true}, [118] = {field_domain, 0}, {field_range, 2}, [120] = {field_ordering, 0, .inherited = true}, {field_uniqueness, 0, .inherited = true}, [122] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, [124] = {field_variable, 0, .inherited = true}, {field_variable, 1, .inherited = true}, [126] = {field_lhs, 0}, {field_operator, 1}, {field_rhs, 2}, [129] = {field_binding, 0}, {field_body, 2}, [131] = {field_lhs, 0}, {field_rhs, 2}, [133] = {field_argument, 0}, [134] = {field_lhs, 0}, {field_relation, 1}, {field_rhs, 2}, [137] = {field_cardinality, 2, .inherited = true}, {field_name, 1}, {field_target, 2, .inherited = true}, [140] = {field_body, 2}, {field_environment, 0}, [142] = {field_base, 4}, {field_body, 5}, {field_name, 1}, {field_opaque, 3}, [146] = {field_base, 4}, {field_name, 1}, {field_opaque, 3}, {field_restriction, 5}, [150] = {field_base, 3}, {field_body, 5}, {field_name, 1}, {field_restriction, 4}, [154] = {field_identity, 2}, [155] = {field_member, 0}, [156] = {field_wildcard, 0}, [157] = {field_member, 1, .inherited = true}, {field_wildcard, 1, .inherited = true}, [159] = {field_member, 1, .inherited = true}, [160] = {field_min, 0}, {field_range, 1}, [162] = {field_min, 1, .inherited = true}, {field_range, 1, .inherited = true}, [164] = {field_type, 2, .inherited = true}, [165] = {field_type, 0, .inherited = true}, {field_type, 1, .inherited = true}, [167] = {field_method, 2, .inherited = true}, [168] = {field_class, 0}, [169] = {field_from, 5}, {field_name, 1}, {field_parameter, 3, .inherited = true}, [172] = {field_body, 5}, {field_name, 1}, {field_parameter, 3, .inherited = true}, [175] = {field_name, 0}, {field_rename, 2}, [177] = {field_ordering, 1}, {field_uniqueness, 2}, [179] = {field_name, 0}, {field_value, 2}, [181] = {field_element, 2, .inherited = true}, {field_ordering, 0, .inherited = true}, {field_uniqueness, 0, .inherited = true}, [184] = {field_name, 0}, {field_range, 2}, [186] = {field_argument, 1, .inherited = true}, [187] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, [189] = {field_source, 2}, {field_variable, 0}, [191] = {field_base, 4}, {field_body, 6}, {field_name, 1}, {field_opaque, 3}, {field_restriction, 5}, [196] = {field_entity, 1}, {field_member, 3, .inherited = true}, [198] = {field_max, 1}, [199] = {field_min, 2, .inherited = true}, {field_ordering, 1}, {field_range, 2, .inherited = true}, [202] = {field_min, 2, .inherited = true}, {field_range, 2, .inherited = true}, {field_uniqueness, 1}, [205] = {field_cardinality, 0}, {field_class, 1}, [207] = {field_body, 6}, {field_from, 5}, {field_name, 1}, {field_parameter, 3, .inherited = true}, [211] = {field_body, 3}, {field_name, 0}, {field_rename, 2}, [214] = {field_body, 3}, {field_variable, 1, .inherited = true}, [216] = {field_facet, 0}, {field_value, 2}, [218] = {field_value, 2}, [219] = {field_name, 1}, {field_parent, 3}, [221] = {field_member, 0, .inherited = true}, {field_member, 1, .inherited = true}, [223] = {field_domain, 1}, {field_range, 3}, [225] = {field_min, 3, .inherited = true}, {field_ordering, 1}, {field_range, 3, .inherited = true}, {field_uniqueness, 2}, [229] = {field_cardinality, 5, .inherited = true}, {field_name, 1}, {field_parameter, 3, .inherited = true}, {field_target, 5, .inherited = true}, [233] = {field_facet, 0}, {field_is_fixed, 2}, {field_value, 3}, [236] = {field_is_fixed, 2}, {field_value, 3}, [238] = {field_body, 4}, {field_name, 1}, {field_parent, 3}, [241] = {field_argument, 2, .inherited = true}, {field_class, 0}, [243] = {field_value, 2}, {field_value, 3}, {field_value, 4}, [246] = {field_argument, 3, .inherited = true}, {field_cardinality, 0}, {field_class, 1}, }; 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] = 19, [25] = 25, [26] = 26, [27] = 27, [28] = 23, [29] = 27, [30] = 20, [31] = 31, [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] = 48, [49] = 47, [50] = 46, [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] = 67, [68] = 68, [69] = 69, [70] = 70, [71] = 67, [72] = 70, [73] = 69, [74] = 65, [75] = 75, [76] = 76, [77] = 77, [78] = 78, [79] = 79, [80] = 80, [81] = 79, [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] = 100, [101] = 5, [102] = 2, [103] = 103, [104] = 96, [105] = 105, [106] = 96, [107] = 107, [108] = 108, [109] = 109, [110] = 110, [111] = 111, [112] = 112, [113] = 113, [114] = 66, [115] = 115, [116] = 116, [117] = 117, [118] = 118, [119] = 3, [120] = 75, [121] = 76, [122] = 4, [123] = 77, [124] = 78, [125] = 8, [126] = 126, [127] = 9, [128] = 128, [129] = 7, [130] = 14, [131] = 12, [132] = 10, [133] = 13, [134] = 134, [135] = 135, [136] = 136, [137] = 137, [138] = 82, [139] = 139, [140] = 134, [141] = 141, [142] = 141, [143] = 136, [144] = 144, [145] = 95, [146] = 89, [147] = 86, [148] = 87, [149] = 149, [150] = 85, [151] = 91, [152] = 135, [153] = 153, [154] = 94, [155] = 155, [156] = 88, [157] = 157, [158] = 155, [159] = 90, [160] = 92, [161] = 161, [162] = 162, [163] = 163, [164] = 164, [165] = 165, [166] = 166, [167] = 45, [168] = 168, [169] = 169, [170] = 93, [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] = 199, [200] = 182, [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] = 213, [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] = 225, [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] = 297, [298] = 298, [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] = 324, [325] = 325, [326] = 326, [327] = 327, [328] = 327, [329] = 325, [330] = 330, [331] = 331, [332] = 332, [333] = 333, [334] = 334, [335] = 335, [336] = 45, [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] = 153, [360] = 360, [361] = 361, [362] = 362, [363] = 363, [364] = 364, [365] = 365, [366] = 366, [367] = 367, [368] = 368, [369] = 369, [370] = 370, [371] = 371, [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] = 387, [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] = 404, [405] = 405, [406] = 406, [407] = 407, [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] = 199, [430] = 183, [431] = 431, [432] = 432, [433] = 433, [434] = 434, [435] = 435, [436] = 436, [437] = 437, [438] = 419, [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] = 452, [466] = 466, [467] = 467, [468] = 468, [469] = 469, [470] = 467, [471] = 471, [472] = 472, [473] = 473, [474] = 474, [475] = 469, [476] = 476, [477] = 477, [478] = 478, [479] = 479, [480] = 480, [481] = 474, [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] = 525, [526] = 526, [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] = 539, [540] = 540, [541] = 541, [542] = 542, [543] = 543, [544] = 544, [545] = 545, [546] = 546, [547] = 547, [548] = 548, [549] = 549, [550] = 550, [551] = 551, [552] = 552, [553] = 553, [554] = 554, [555] = 555, [556] = 523, [557] = 557, [558] = 558, [559] = 559, [560] = 560, [561] = 561, [562] = 562, [563] = 563, [564] = 553, [565] = 565, [566] = 566, [567] = 567, [568] = 568, [569] = 569, [570] = 570, [571] = 571, [572] = 572, [573] = 573, [574] = 555, [575] = 535, [576] = 547, [577] = 577, [578] = 545, [579] = 579, [580] = 580, [581] = 581, [582] = 582, [583] = 583, }; 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, '+', 171, ',', 98, '-', 14, '.', 164, '/', 23, '0', 132, ':', 79, ';', 183, '<', 143, '=', 84, '>', 145, '@', 82, '[', 72, '\\', 16, ']', 73, '_', 139, '{', 99, '|', 161, '}', 100, 0xac, 150, 0xb7, 162, 0x2190, 169, 0x2192, 167, 0x21d2, 155, 0x21d4, 157, 0x2200, 158, 0x2203, 159, 0x2205, 173, 0x2208, 160, 0x2227, 151, 0x2228, 152, 0x2254, 166, 0x2260, 142, 0x2264, 147, 0x2265, 149, 0x2295, 172, 0x22a4, 137, 0x22a5, 138, 0x22bb, 153, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(70); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(131); 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, '+', 15, '-', 14, '.', 163, '0', 129, ':', 78, ';', 183, '<', 117, '>', 121, '@', 81, '[', 72, '\\', 16, ']', 73, '{', 99, '}', 100, 0xac, 150, 0xb7, 162, 0x2192, 167, 0x2200, 158, 0x2203, 159, 0x2205, 173, 0x22a4, 137, 0x22a5, 138, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(3); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(130); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 2: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 15, '-', 14, '0', 129, ':', 19, ';', 183, '<', 117, '@', 66, '[', 72, '\\', 16, ']', 73, '{', 99, 0x2192, 167, 0x2205, 173, 0x22a4, 137, 0x22a5, 138, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(130); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 3: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 15, '-', 14, '0', 129, ';', 183, '<', 117, '@', 81, '[', 72, '\\', 16, ']', 73, '{', 99, '}', 100, 0xac, 150, 0x2192, 167, 0x2200, 158, 0x2203, 159, 0x2205, 173, 0x22a4, 137, 0x22a5, 138, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(3); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(130); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 4: ADVANCE_MAP( '"', 5, '#', 29, '(', 96, ')', 97, '+', 15, '-', 14, '0', 129, ';', 183, '<', 117, '[', 72, '\\', 16, ']', 73, '{', 99, 0x2192, 167, 0x2205, 173, 0x22a4, 137, 0x22a5, 138, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(130); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 5: if (lookahead == '"') ADVANCE(101); if (lookahead == '\\') ADVANCE(31); if (lookahead > 0x08 && (lookahead < 0x0b || 0x1f < lookahead) && lookahead != 0x7f) ADVANCE(5); END_STATE(); case 6: ADVANCE_MAP( '(', 96, ')', 97, '+', 171, ',', 98, '-', 25, '.', 163, '/', 23, '0', 135, ':', 80, ';', 183, '<', 144, '=', 84, '>', 145, '@', 81, '[', 72, ']', 73, '_', 139, '{', 99, '|', 161, '}', 100, 0xb7, 162, 0x2192, 167, 0x21d2, 155, 0x21d4, 157, 0x2200, 158, 0x2203, 159, 0x2208, 160, 0x2227, 151, 0x2228, 152, 0x2254, 166, 0x2260, 142, 0x2264, 147, 0x2265, 149, 0x2295, 172, 0x22bb, 153, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(136); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 7: ADVANCE_MAP( '(', 96, ')', 97, '+', 171, ',', 98, '-', 25, '/', 23, '0', 135, ':', 24, ';', 183, '<', 144, '=', 84, '>', 145, '@', 81, '[', 72, ']', 73, '_', 139, '{', 99, '|', 161, '}', 100, 0x2192, 167, 0x21d2, 155, 0x21d4, 157, 0x2200, 158, 0x2203, 159, 0x2208, 160, 0x2227, 151, 0x2228, 152, 0x2254, 166, 0x2260, 142, 0x2264, 147, 0x2265, 149, 0x2295, 172, 0x22bb, 153, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(136); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 8: ADVANCE_MAP( '(', 96, ')', 97, ',', 98, '-', 25, '.', 13, '/', 23, ':', 20, ';', 183, '<', 144, '=', 84, '>', 145, '@', 81, '}', 100, 0x2192, 167, 0x21d2, 155, 0x21d4, 157, 0x2227, 151, 0x2228, 152, 0x2260, 142, 0x2264, 147, 0x2265, 149, 0x22bb, 153, ); 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, '.', 13, '/', 23, ':', 20, ';', 183, '<', 144, '=', 84, '>', 145, '@', 83, '}', 100, 0x2192, 167, 0x21d2, 155, 0x21d4, 157, 0x2227, 151, 0x2228, 152, 0x2260, 142, 0x2264, 147, 0x2265, 149, 0x22bb, 153, ); 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(97); if (lookahead == ';') ADVANCE(183); if (lookahead == '<') ADVANCE(12); if (lookahead == '@') ADVANCE(82); if (lookahead == 0x2190) ADVANCE(169); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(11); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 11: if (lookahead == ')') ADVANCE(97); if (lookahead == ';') ADVANCE(183); if (lookahead == '<') ADVANCE(12); if (lookahead == '@') ADVANCE(81); if (lookahead == 0x2190) ADVANCE(169); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(11); if (set_contains(sym_identifier_character_set_1, 112, lookahead)) ADVANCE(77); END_STATE(); case 12: if (lookahead == '-') ADVANCE(170); END_STATE(); case 13: if (lookahead == '.') ADVANCE(140); END_STATE(); case 14: if (lookahead == '0') ADVANCE(129); if (lookahead == '>') ADVANCE(168); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(130); END_STATE(); case 15: if (lookahead == '0') ADVANCE(129); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(130); END_STATE(); case 16: if (lookahead == '0') ADVANCE(128); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(133); END_STATE(); case 17: if (lookahead == '0') ADVANCE(125); if (lookahead == '+' || lookahead == '-' || lookahead == '\\') ADVANCE(18); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(126); END_STATE(); case 18: if (lookahead == '0') ADVANCE(125); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(126); END_STATE(); case 19: if (lookahead == ':') ADVANCE(75); END_STATE(); case 20: if (lookahead == ':') ADVANCE(74); END_STATE(); case 21: if (lookahead == ':') ADVANCE(74); if (lookahead == '=') ADVANCE(165); END_STATE(); case 22: if (lookahead == ';') ADVANCE(183); 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(141); END_STATE(); case 24: if (lookahead == '=') ADVANCE(165); END_STATE(); case 25: if (lookahead == '>') ADVANCE(168); END_STATE(); case 26: if (lookahead == '>') ADVANCE(154); END_STATE(); case 27: if (lookahead == '>') ADVANCE(156); END_STATE(); case 28: if (lookahead == 'U') ADVANCE(57); if (lookahead == 'u') ADVANCE(53); END_STATE(); case 29: if (lookahead == '[') ADVANCE(122); 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(134); END_STATE(); case 39: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127); END_STATE(); case 40: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(102); 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(123); 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(119); 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(114); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 60: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(102); END_STATE(); case 61: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(102); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 62: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(115); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(68); END_STATE(); case 63: if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(116); 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(108); END_STATE(); case 66: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(65); END_STATE(); case 67: if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(110); 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, '+', 171, ',', 98, '-', 14, '.', 13, '/', 23, '0', 132, ':', 21, ';', 183, '<', 143, '=', 84, '>', 145, '@', 81, '[', 72, '\\', 16, ']', 73, '_', 139, '{', 99, '|', 161, '}', 100, 0xac, 150, 0x2190, 169, 0x2192, 167, 0x21d2, 155, 0x21d4, 157, 0x2200, 158, 0x2203, 159, 0x2205, 173, 0x2208, 160, 0x2227, 151, 0x2228, 152, 0x2254, 166, 0x2260, 142, 0x2264, 147, 0x2265, 149, 0x2295, 172, 0x22a4, 137, 0x22a5, 138, 0x22bb, 153, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(70); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(131); 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(165); END_STATE(); case 80: ACCEPT_TOKEN(anon_sym_COLON); if (lookahead == '=') ADVANCE(165); 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_LBRACE); END_STATE(); case 100: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 101: ACCEPT_TOKEN(sym_quoted_string); END_STATE(); case 102: ACCEPT_TOKEN(sym_language_tag); END_STATE(); case 103: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); END_STATE(); case 104: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(109); END_STATE(); case 105: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(104); END_STATE(); case 106: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(105); END_STATE(); case 107: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(41); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(106); 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(103); END_STATE(); case 110: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(42); END_STATE(); case 111: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(43); END_STATE(); case 112: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(44); END_STATE(); case 113: ACCEPT_TOKEN(sym_language_tag); if (lookahead == '-') ADVANCE(45); END_STATE(); case 114: ACCEPT_TOKEN(sym_language_tag); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(113); END_STATE(); case 115: ACCEPT_TOKEN(sym_language_tag); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(111); END_STATE(); case 116: ACCEPT_TOKEN(sym_language_tag); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(112); END_STATE(); case 117: ACCEPT_TOKEN(anon_sym_LT); END_STATE(); case 118: ACCEPT_TOKEN(aux_sym_iri_token1); if (lookahead == ';') ADVANCE(120); if (lookahead == '\\') ADVANCE(28); if (lookahead > ' ' && lookahead != '"' && lookahead != ';' && lookahead != '<' && lookahead != '>' && lookahead != '^' && lookahead != '`' && (lookahead < '{' || '}' < lookahead)) ADVANCE(119); END_STATE(); case 119: ACCEPT_TOKEN(aux_sym_iri_token1); if (lookahead == '\\') ADVANCE(28); if (lookahead > ' ' && lookahead != '"' && lookahead != '<' && lookahead != '>' && lookahead != '^' && lookahead != '`' && (lookahead < '{' || '}' < lookahead)) ADVANCE(119); END_STATE(); case 120: ACCEPT_TOKEN(aux_sym_iri_token1); if (lookahead == '\\') ADVANCE(174); if ((!eof && lookahead <= '\t') || (0x0b <= lookahead && lookahead <= ' ') || lookahead == '"' || lookahead == '<' || lookahead == '>' || lookahead == '^' || lookahead == '`' || ('{' <= lookahead && lookahead <= '}')) ADVANCE(183); if (lookahead > ' ') ADVANCE(120); END_STATE(); case 121: ACCEPT_TOKEN(anon_sym_GT); END_STATE(); case 122: ACCEPT_TOKEN(anon_sym_POUND_LBRACK); END_STATE(); case 123: ACCEPT_TOKEN(sym_hex_byte); END_STATE(); case 124: ACCEPT_TOKEN(sym_hex_byte); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130); END_STATE(); case 125: ACCEPT_TOKEN(sym_double); END_STATE(); case 126: ACCEPT_TOKEN(sym_double); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126); END_STATE(); case 127: ACCEPT_TOKEN(sym_decimal); if (lookahead == 'E' || lookahead == 'e') ADVANCE(17); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127); END_STATE(); case 128: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); END_STATE(); case 129: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); END_STATE(); case 130: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130); END_STATE(); case 131: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (lookahead == '/') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(124); if (('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(123); END_STATE(); case 132: 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(123); END_STATE(); case 133: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(39); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(133); END_STATE(); case 134: ACCEPT_TOKEN(sym_rational); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(134); END_STATE(); case 135: ACCEPT_TOKEN(sym_unsigned); END_STATE(); case 136: ACCEPT_TOKEN(sym_unsigned); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136); END_STATE(); case 137: ACCEPT_TOKEN(anon_sym_u22a4); END_STATE(); case 138: ACCEPT_TOKEN(anon_sym_u22a5); END_STATE(); case 139: ACCEPT_TOKEN(sym_wildcard); END_STATE(); case 140: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 141: ACCEPT_TOKEN(anon_sym_SLASH_EQ); END_STATE(); case 142: ACCEPT_TOKEN(anon_sym_u2260); END_STATE(); case 143: ACCEPT_TOKEN(sym_op_less_than); END_STATE(); case 144: ACCEPT_TOKEN(sym_op_less_than); if (lookahead == '=') ADVANCE(146); END_STATE(); case 145: ACCEPT_TOKEN(sym_op_greater_than); if (lookahead == '=') ADVANCE(148); END_STATE(); case 146: ACCEPT_TOKEN(anon_sym_LT_EQ); if (lookahead == '=') ADVANCE(27); END_STATE(); case 147: ACCEPT_TOKEN(anon_sym_u2264); END_STATE(); case 148: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 149: ACCEPT_TOKEN(anon_sym_u2265); END_STATE(); case 150: ACCEPT_TOKEN(anon_sym_u00ac); END_STATE(); case 151: ACCEPT_TOKEN(anon_sym_u2227); END_STATE(); case 152: ACCEPT_TOKEN(anon_sym_u2228); END_STATE(); case 153: ACCEPT_TOKEN(anon_sym_u22bb); END_STATE(); case 154: ACCEPT_TOKEN(anon_sym_EQ_EQ_GT); END_STATE(); case 155: ACCEPT_TOKEN(anon_sym_u21d2); END_STATE(); case 156: ACCEPT_TOKEN(anon_sym_LT_EQ_EQ_GT); END_STATE(); case 157: ACCEPT_TOKEN(anon_sym_u21d4); END_STATE(); case 158: ACCEPT_TOKEN(anon_sym_u2200); END_STATE(); case 159: ACCEPT_TOKEN(anon_sym_u2203); END_STATE(); case 160: ACCEPT_TOKEN(anon_sym_u2208); END_STATE(); case 161: ACCEPT_TOKEN(sym_set_op_builder); END_STATE(); case 162: ACCEPT_TOKEN(anon_sym_u00b7); END_STATE(); case 163: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 164: ACCEPT_TOKEN(anon_sym_DOT); if (lookahead == '.') ADVANCE(140); END_STATE(); case 165: ACCEPT_TOKEN(anon_sym_COLON_EQ); END_STATE(); case 166: ACCEPT_TOKEN(anon_sym_u2254); END_STATE(); case 167: ACCEPT_TOKEN(anon_sym_u2192); END_STATE(); case 168: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 169: ACCEPT_TOKEN(anon_sym_u2190); END_STATE(); case 170: ACCEPT_TOKEN(anon_sym_LT_DASH); END_STATE(); case 171: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 172: ACCEPT_TOKEN(anon_sym_u2295); END_STATE(); case 173: ACCEPT_TOKEN(anon_sym_u2205); END_STATE(); case 174: ACCEPT_TOKEN(sym_line_comment); if (lookahead == 'U') ADVANCE(182); if (lookahead == 'u') ADVANCE(178); if (lookahead != 0 && lookahead != '\n') ADVANCE(183); END_STATE(); case 175: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(120); if (lookahead != 0 && lookahead != '\n') ADVANCE(183); END_STATE(); case 176: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(175); if (lookahead != 0 && lookahead != '\n') ADVANCE(183); END_STATE(); case 177: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(176); if (lookahead != 0 && lookahead != '\n') ADVANCE(183); END_STATE(); case 178: ACCEPT_TOKEN(sym_line_comment); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(177); if (lookahead != 0 && lookahead != '\n') ADVANCE(183); 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(183); 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(183); 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(183); 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(183); END_STATE(); case 183: ACCEPT_TOKEN(sym_line_comment); if (lookahead != 0 && lookahead != '\n') ADVANCE(183); 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); END_STATE(); case 6: if (lookahead == 'a') ADVANCE(34); if (lookahead == 'e') ADVANCE(35); if (lookahead == 'i') ADVANCE(36); if (lookahead == 'o') ADVANCE(37); if (lookahead == 'u') ADVANCE(38); END_STATE(); case 7: if (lookahead == 'n') ADVANCE(39); if (lookahead == 'v') ADVANCE(40); if (lookahead == 'x') ADVANCE(41); END_STATE(); case 8: if (lookahead == 'a') ADVANCE(42); if (lookahead == 'i') ADVANCE(43); if (lookahead == 'l') ADVANCE(44); if (lookahead == 'o') ADVANCE(45); if (lookahead == 'r') ADVANCE(46); END_STATE(); case 9: if (lookahead == 'D') ADVANCE(47); if (lookahead == 'M') ADVANCE(48); if (lookahead == 'Y') ADVANCE(49); END_STATE(); case 10: if (lookahead == 'e') ADVANCE(50); END_STATE(); case 11: if (lookahead == 'd') ADVANCE(51); if (lookahead == 'f') ADVANCE(52); if (lookahead == 'm') ADVANCE(53); if (lookahead == 'n') ADVANCE(54); if (lookahead == 'r') ADVANCE(55); if (lookahead == 's') ADVANCE(56); END_STATE(); case 12: if (lookahead == 'a') ADVANCE(57); if (lookahead == 'e') ADVANCE(58); if (lookahead == 'o') ADVANCE(59); END_STATE(); case 13: if (lookahead == 'a') ADVANCE(60); if (lookahead == 'i') ADVANCE(61); if (lookahead == 'o') ADVANCE(62); END_STATE(); case 14: if (lookahead == 'e') ADVANCE(63); if (lookahead == 'o') ADVANCE(64); END_STATE(); case 15: if (lookahead == 'f') ADVANCE(65); if (lookahead == 'p') ADVANCE(66); if (lookahead == 'r') ADVANCE(67); END_STATE(); case 16: if (lookahead == 'a') ADVANCE(68); if (lookahead == 'o') ADVANCE(69); if (lookahead == 'r') ADVANCE(70); END_STATE(); case 17: if (lookahead == 'a') ADVANCE(71); if (lookahead == 'd') ADVANCE(72); if (lookahead == 'e') ADVANCE(73); END_STATE(); case 18: if (lookahead == 'e') ADVANCE(74); if (lookahead == 'h') ADVANCE(75); if (lookahead == 'o') ADVANCE(76); if (lookahead == 't') ADVANCE(77); END_STATE(); case 19: if (lookahead == 'i') ADVANCE(78); if (lookahead == 'o') ADVANCE(79); if (lookahead == 'r') ADVANCE(80); if (lookahead == 'y') ADVANCE(81); END_STATE(); case 20: if (lookahead == 'n') ADVANCE(82); END_STATE(); case 21: if (lookahead == 'e') ADVANCE(83); END_STATE(); case 22: if (lookahead == 'i') ADVANCE(84); END_STATE(); case 23: if (lookahead == 'o') ADVANCE(85); END_STATE(); case 24: if (lookahead == 'e') ADVANCE(86); END_STATE(); case 25: if (lookahead == 't') ADVANCE(87); END_STATE(); case 26: if (lookahead == 'i') ADVANCE(88); END_STATE(); case 27: if (lookahead == 'd') ADVANCE(89); if (lookahead == 'y') ADVANCE(90); END_STATE(); case 28: ACCEPT_TOKEN(anon_sym_as); if (lookahead == 's') ADVANCE(91); END_STATE(); case 29: if (lookahead == 's') ADVANCE(92); END_STATE(); case 30: if (lookahead == 'n') ADVANCE(93); END_STATE(); case 31: if (lookahead == 'o') ADVANCE(94); END_STATE(); case 32: if (lookahead == 't') ADVANCE(95); END_STATE(); case 33: if (lookahead == 'a') ADVANCE(96); END_STATE(); case 34: if (lookahead == 't') ADVANCE(97); if (lookahead == 'y') ADVANCE(98); END_STATE(); case 35: if (lookahead == 'c') ADVANCE(99); if (lookahead == 'f') ADVANCE(100); END_STATE(); case 36: if (lookahead == 'm') ADVANCE(101); END_STATE(); case 37: if (lookahead == 'u') ADVANCE(102); END_STATE(); case 38: if (lookahead == 'r') ADVANCE(103); END_STATE(); case 39: if (lookahead == 'd') ADVANCE(104); if (lookahead == 't') ADVANCE(105); if (lookahead == 'u') ADVANCE(106); END_STATE(); case 40: if (lookahead == 'e') ADVANCE(107); END_STATE(); case 41: if (lookahead == 'i') ADVANCE(108); if (lookahead == 'p') ADVANCE(109); END_STATE(); case 42: if (lookahead == 'l') ADVANCE(110); END_STATE(); case 43: if (lookahead == 'x') ADVANCE(111); END_STATE(); case 44: if (lookahead == 'o') ADVANCE(112); END_STATE(); case 45: if (lookahead == 'r') ADVANCE(113); END_STATE(); case 46: if (lookahead == 'a') ADVANCE(114); if (lookahead == 'o') ADVANCE(115); END_STATE(); case 47: if (lookahead == 'a') ADVANCE(116); END_STATE(); case 48: if (lookahead == 'o') ADVANCE(117); END_STATE(); case 49: if (lookahead == 'e') ADVANCE(118); END_STATE(); case 50: if (lookahead == 'x') ADVANCE(119); END_STATE(); case 51: if (lookahead == 'e') ADVANCE(120); END_STATE(); case 52: if (lookahead == 'f') ADVANCE(121); END_STATE(); case 53: if (lookahead == 'p') ADVANCE(122); END_STATE(); case 54: ACCEPT_TOKEN(anon_sym_in); if (lookahead == 't') ADVANCE(123); END_STATE(); case 55: if (lookahead == 'i') ADVANCE(124); END_STATE(); case 56: ACCEPT_TOKEN(anon_sym_is); END_STATE(); case 57: if (lookahead == 'n') ADVANCE(125); END_STATE(); case 58: if (lookahead == 'n') ADVANCE(126); END_STATE(); case 59: if (lookahead == 'n') ADVANCE(127); END_STATE(); case 60: if (lookahead == 'x') ADVANCE(128); END_STATE(); case 61: if (lookahead == 'n') ADVANCE(129); END_STATE(); case 62: if (lookahead == 'd') ADVANCE(130); END_STATE(); case 63: if (lookahead == 'g') ADVANCE(131); END_STATE(); case 64: if (lookahead == 'n') ADVANCE(132); if (lookahead == 'r') ADVANCE(133); if (lookahead == 't') ADVANCE(134); END_STATE(); case 65: ACCEPT_TOKEN(anon_sym_of); END_STATE(); case 66: if (lookahead == 'a') ADVANCE(135); if (lookahead == 't') ADVANCE(136); END_STATE(); case 67: ACCEPT_TOKEN(anon_sym_or); if (lookahead == 'd') ADVANCE(137); END_STATE(); case 68: if (lookahead == 'r') ADVANCE(138); if (lookahead == 't') ADVANCE(139); END_STATE(); case 69: if (lookahead == 's') ADVANCE(140); END_STATE(); case 70: if (lookahead == 'o') ADVANCE(141); END_STATE(); case 71: if (lookahead == 't') ADVANCE(142); END_STATE(); case 72: if (lookahead == 'f') ADVANCE(143); END_STATE(); case 73: if (lookahead == 'a') ADVANCE(144); if (lookahead == 'f') ADVANCE(145); if (lookahead == 'q') ADVANCE(146); END_STATE(); case 74: if (lookahead == 'l') ADVANCE(147); END_STATE(); case 75: if (lookahead == 'o') ADVANCE(148); END_STATE(); case 76: if (lookahead == 'u') ADVANCE(149); END_STATE(); case 77: if (lookahead == 'r') ADVANCE(150); END_STATE(); case 78: if (lookahead == 'm') ADVANCE(151); END_STATE(); case 79: if (lookahead == 'k') ADVANCE(152); if (lookahead == 't') ADVANCE(153); END_STATE(); case 80: if (lookahead == 'u') ADVANCE(154); END_STATE(); case 81: if (lookahead == 'p') ADVANCE(155); END_STATE(); case 82: if (lookahead == 'i') ADVANCE(156); if (lookahead == 'k') ADVANCE(157); if (lookahead == 'o') ADVANCE(158); if (lookahead == 's') ADVANCE(159); END_STATE(); case 83: if (lookahead == 'r') ADVANCE(160); END_STATE(); case 84: if (lookahead == 't') ADVANCE(161); END_STATE(); case 85: if (lookahead == 'r') ADVANCE(162); END_STATE(); case 86: if (lookahead == 'a') ADVANCE(163); END_STATE(); case 87: if (lookahead == 'h') ADVANCE(164); END_STATE(); case 88: if (lookahead == 'n') ADVANCE(165); END_STATE(); case 89: ACCEPT_TOKEN(anon_sym_and); END_STATE(); case 90: if (lookahead == 'U') ADVANCE(166); END_STATE(); case 91: if (lookahead == 'e') ADVANCE(167); END_STATE(); case 92: if (lookahead == 'e') ADVANCE(168); END_STATE(); case 93: if (lookahead == 'a') ADVANCE(169); END_STATE(); case 94: if (lookahead == 'l') ADVANCE(170); END_STATE(); case 95: if (lookahead == 'e') ADVANCE(171); END_STATE(); case 96: if (lookahead == 's') ADVANCE(172); END_STATE(); case 97: if (lookahead == 'a') ADVANCE(173); if (lookahead == 'e') ADVANCE(174); END_STATE(); case 98: if (lookahead == 'T') ADVANCE(175); END_STATE(); case 99: if (lookahead == 'i') ADVANCE(176); END_STATE(); case 100: ACCEPT_TOKEN(anon_sym_def); END_STATE(); case 101: if (lookahead == 'e') ADVANCE(177); END_STATE(); case 102: if (lookahead == 'b') ADVANCE(178); END_STATE(); case 103: if (lookahead == 'a') ADVANCE(179); END_STATE(); case 104: ACCEPT_TOKEN(anon_sym_end); END_STATE(); case 105: if (lookahead == 'i') ADVANCE(180); END_STATE(); case 106: if (lookahead == 'm') ADVANCE(181); END_STATE(); case 107: if (lookahead == 'n') ADVANCE(182); END_STATE(); case 108: if (lookahead == 's') ADVANCE(183); END_STATE(); case 109: if (lookahead == 'l') ADVANCE(184); END_STATE(); case 110: if (lookahead == 's') ADVANCE(185); END_STATE(); case 111: if (lookahead == 'e') ADVANCE(186); END_STATE(); case 112: if (lookahead == 'a') ADVANCE(187); END_STATE(); case 113: if (lookahead == 'a') ADVANCE(188); END_STATE(); case 114: if (lookahead == 'c') ADVANCE(189); END_STATE(); case 115: if (lookahead == 'm') ADVANCE(190); END_STATE(); case 116: if (lookahead == 'y') ADVANCE(191); END_STATE(); case 117: if (lookahead == 'n') ADVANCE(192); END_STATE(); case 118: if (lookahead == 'a') ADVANCE(193); END_STATE(); case 119: if (lookahead == 'B') ADVANCE(194); END_STATE(); case 120: if (lookahead == 'n') ADVANCE(195); END_STATE(); case 121: ACCEPT_TOKEN(anon_sym_iff); END_STATE(); case 122: if (lookahead == 'l') ADVANCE(196); if (lookahead == 'o') ADVANCE(197); END_STATE(); case 123: ACCEPT_TOKEN(anon_sym_int); if (lookahead == 'e') ADVANCE(198); END_STATE(); case 124: ACCEPT_TOKEN(anon_sym_iri); END_STATE(); case 125: if (lookahead == 'g') ADVANCE(199); END_STATE(); case 126: if (lookahead == 'g') ADVANCE(200); END_STATE(); case 127: if (lookahead == 'g') ADVANCE(201); END_STATE(); case 128: if (lookahead == 'E') ADVANCE(202); if (lookahead == 'I') ADVANCE(203); if (lookahead == 'L') ADVANCE(204); END_STATE(); case 129: if (lookahead == 'E') ADVANCE(205); if (lookahead == 'I') ADVANCE(206); if (lookahead == 'L') ADVANCE(207); END_STATE(); case 130: if (lookahead == 'u') ADVANCE(208); END_STATE(); case 131: if (lookahead == 'a') ADVANCE(209); END_STATE(); case 132: if (lookahead == 'N') ADVANCE(210); if (lookahead == 'P') ADVANCE(211); if (lookahead == 'u') ADVANCE(212); END_STATE(); case 133: if (lookahead == 'm') ADVANCE(213); END_STATE(); case 134: ACCEPT_TOKEN(anon_sym_not); END_STATE(); case 135: if (lookahead == 'q') ADVANCE(214); END_STATE(); case 136: if (lookahead == 'i') ADVANCE(215); END_STATE(); case 137: if (lookahead == 'e') ADVANCE(216); END_STATE(); case 138: if (lookahead == 'e') ADVANCE(217); END_STATE(); case 139: if (lookahead == 't') ADVANCE(218); END_STATE(); case 140: if (lookahead == 'i') ADVANCE(219); END_STATE(); case 141: if (lookahead == 'h') ADVANCE(220); if (lookahead == 'p') ADVANCE(221); END_STATE(); case 142: if (lookahead == 'i') ADVANCE(222); END_STATE(); case 143: ACCEPT_TOKEN(anon_sym_rdf); END_STATE(); case 144: if (lookahead == 'l') ADVANCE(223); END_STATE(); case 145: ACCEPT_TOKEN(anon_sym_ref); END_STATE(); case 146: if (lookahead == 'u') ADVANCE(224); END_STATE(); case 147: if (lookahead == 'f') ADVANCE(225); END_STATE(); case 148: if (lookahead == 'r') ADVANCE(226); END_STATE(); case 149: if (lookahead == 'r') ADVANCE(227); END_STATE(); case 150: if (lookahead == 'i') ADVANCE(228); if (lookahead == 'u') ADVANCE(229); END_STATE(); case 151: if (lookahead == 'e') ADVANCE(230); END_STATE(); case 152: if (lookahead == 'e') ADVANCE(231); END_STATE(); case 153: if (lookahead == 'a') ADVANCE(232); END_STATE(); case 154: if (lookahead == 'e') ADVANCE(233); END_STATE(); case 155: if (lookahead == 'e') ADVANCE(234); END_STATE(); case 156: if (lookahead == 'o') ADVANCE(235); if (lookahead == 'q') ADVANCE(236); END_STATE(); case 157: if (lookahead == 'n') ADVANCE(237); END_STATE(); case 158: if (lookahead == 'r') ADVANCE(238); END_STATE(); case 159: if (lookahead == 'i') ADVANCE(239); END_STATE(); case 160: if (lookahead == 's') ADVANCE(240); END_STATE(); case 161: if (lookahead == 'h') ADVANCE(241); END_STATE(); case 162: ACCEPT_TOKEN(anon_sym_xor); END_STATE(); case 163: if (lookahead == 'r') ADVANCE(242); END_STATE(); case 164: if (lookahead == 'i') ADVANCE(243); END_STATE(); case 165: if (lookahead == 'g') ADVANCE(244); END_STATE(); case 166: if (lookahead == 'R') ADVANCE(245); END_STATE(); case 167: if (lookahead == 'r') ADVANCE(246); END_STATE(); case 168: if (lookahead == '6') ADVANCE(247); END_STATE(); case 169: if (lookahead == 'r') ADVANCE(248); END_STATE(); case 170: if (lookahead == 'e') ADVANCE(249); END_STATE(); case 171: ACCEPT_TOKEN(anon_sym_byte); END_STATE(); case 172: if (lookahead == 's') ADVANCE(250); END_STATE(); case 173: if (lookahead == 't') ADVANCE(251); END_STATE(); case 174: ACCEPT_TOKEN(anon_sym_date); if (lookahead == 'T') ADVANCE(252); END_STATE(); case 175: if (lookahead == 'i') ADVANCE(253); END_STATE(); case 176: if (lookahead == 'm') ADVANCE(254); END_STATE(); case 177: if (lookahead == 'n') ADVANCE(255); END_STATE(); case 178: if (lookahead == 'l') ADVANCE(256); END_STATE(); case 179: if (lookahead == 't') ADVANCE(257); END_STATE(); case 180: if (lookahead == 't') ADVANCE(258); END_STATE(); case 181: ACCEPT_TOKEN(anon_sym_enum); END_STATE(); case 182: if (lookahead == 't') ADVANCE(259); END_STATE(); case 183: if (lookahead == 't') ADVANCE(260); END_STATE(); case 184: if (lookahead == 'i') ADVANCE(261); END_STATE(); case 185: if (lookahead == 'e') ADVANCE(262); END_STATE(); case 186: if (lookahead == 'd') ADVANCE(263); END_STATE(); case 187: if (lookahead == 't') ADVANCE(264); END_STATE(); case 188: if (lookahead == 'l') ADVANCE(265); END_STATE(); case 189: if (lookahead == 't') ADVANCE(266); END_STATE(); case 190: ACCEPT_TOKEN(anon_sym_from); END_STATE(); case 191: ACCEPT_TOKEN(anon_sym_gDay); END_STATE(); case 192: if (lookahead == 't') ADVANCE(267); END_STATE(); case 193: if (lookahead == 'r') ADVANCE(268); END_STATE(); case 194: if (lookahead == 'i') ADVANCE(269); END_STATE(); case 195: if (lookahead == 't') ADVANCE(270); END_STATE(); case 196: if (lookahead == 'i') ADVANCE(271); END_STATE(); case 197: if (lookahead == 'r') ADVANCE(272); END_STATE(); case 198: if (lookahead == 'g') ADVANCE(273); END_STATE(); case 199: if (lookahead == 'u') ADVANCE(274); END_STATE(); case 200: if (lookahead == 't') ADVANCE(275); END_STATE(); case 201: ACCEPT_TOKEN(anon_sym_long); END_STATE(); case 202: if (lookahead == 'x') ADVANCE(276); END_STATE(); case 203: if (lookahead == 'n') ADVANCE(277); END_STATE(); case 204: if (lookahead == 'e') ADVANCE(278); END_STATE(); case 205: if (lookahead == 'x') ADVANCE(279); END_STATE(); case 206: if (lookahead == 'n') ADVANCE(280); END_STATE(); case 207: if (lookahead == 'e') ADVANCE(281); END_STATE(); case 208: if (lookahead == 'l') ADVANCE(282); END_STATE(); case 209: if (lookahead == 't') ADVANCE(283); END_STATE(); case 210: if (lookahead == 'e') ADVANCE(284); END_STATE(); case 211: if (lookahead == 'o') ADVANCE(285); END_STATE(); case 212: if (lookahead == 'n') ADVANCE(286); END_STATE(); case 213: if (lookahead == 'a') ADVANCE(287); END_STATE(); case 214: if (lookahead == 'u') ADVANCE(288); END_STATE(); case 215: if (lookahead == 'o') ADVANCE(289); END_STATE(); case 216: if (lookahead == 'r') ADVANCE(290); END_STATE(); case 217: if (lookahead == 'n') ADVANCE(291); END_STATE(); case 218: if (lookahead == 'e') ADVANCE(292); END_STATE(); case 219: if (lookahead == 't') ADVANCE(293); END_STATE(); case 220: if (lookahead == 'i') ADVANCE(294); END_STATE(); case 221: if (lookahead == 'e') ADVANCE(295); END_STATE(); case 222: if (lookahead == 'o') ADVANCE(296); END_STATE(); case 223: ACCEPT_TOKEN(anon_sym_real); END_STATE(); case 224: if (lookahead == 'i') ADVANCE(297); END_STATE(); case 225: ACCEPT_TOKEN(sym_reserved_self); END_STATE(); case 226: if (lookahead == 't') ADVANCE(298); END_STATE(); case 227: if (lookahead == 'c') ADVANCE(299); END_STATE(); case 228: if (lookahead == 'n') ADVANCE(300); END_STATE(); case 229: if (lookahead == 'c') ADVANCE(301); END_STATE(); case 230: ACCEPT_TOKEN(anon_sym_time); END_STATE(); case 231: if (lookahead == 'n') ADVANCE(302); END_STATE(); case 232: if (lookahead == 'l') ADVANCE(303); END_STATE(); case 233: ACCEPT_TOKEN(anon_sym_true); END_STATE(); case 234: ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 235: if (lookahead == 'n') ADVANCE(304); END_STATE(); case 236: if (lookahead == 'u') ADVANCE(305); END_STATE(); case 237: if (lookahead == 'o') ADVANCE(306); END_STATE(); case 238: if (lookahead == 'd') ADVANCE(307); END_STATE(); case 239: if (lookahead == 'g') ADVANCE(308); END_STATE(); case 240: if (lookahead == 'i') ADVANCE(309); END_STATE(); case 241: ACCEPT_TOKEN(anon_sym_with); if (lookahead == 'o') ADVANCE(310); END_STATE(); case 242: if (lookahead == 'M') ADVANCE(311); END_STATE(); case 243: if (lookahead == 'n') ADVANCE(312); END_STATE(); case 244: ACCEPT_TOKEN(anon_sym_Thing); END_STATE(); case 245: if (lookahead == 'I') ADVANCE(313); END_STATE(); case 246: if (lookahead == 't') ADVANCE(314); END_STATE(); case 247: if (lookahead == '4') ADVANCE(315); END_STATE(); case 248: if (lookahead == 'y') ADVANCE(316); END_STATE(); case 249: if (lookahead == 'a') ADVANCE(317); END_STATE(); case 250: ACCEPT_TOKEN(anon_sym_class); END_STATE(); case 251: if (lookahead == 'y') ADVANCE(318); END_STATE(); case 252: if (lookahead == 'i') ADVANCE(319); END_STATE(); case 253: if (lookahead == 'm') ADVANCE(320); END_STATE(); case 254: if (lookahead == 'a') ADVANCE(321); END_STATE(); case 255: if (lookahead == 's') ADVANCE(322); END_STATE(); case 256: if (lookahead == 'e') ADVANCE(323); END_STATE(); case 257: if (lookahead == 'i') ADVANCE(324); END_STATE(); case 258: if (lookahead == 'y') ADVANCE(325); END_STATE(); case 259: ACCEPT_TOKEN(anon_sym_event); END_STATE(); case 260: if (lookahead == 's') ADVANCE(326); END_STATE(); case 261: if (lookahead == 'c') ADVANCE(327); END_STATE(); case 262: ACCEPT_TOKEN(anon_sym_false); END_STATE(); case 263: ACCEPT_TOKEN(sym_kw_is_fixed); END_STATE(); case 264: ACCEPT_TOKEN(anon_sym_float); END_STATE(); case 265: if (lookahead == 'l') ADVANCE(328); END_STATE(); case 266: if (lookahead == 'i') ADVANCE(329); END_STATE(); case 267: if (lookahead == 'h') ADVANCE(330); END_STATE(); case 268: ACCEPT_TOKEN(anon_sym_gYear); if (lookahead == 'M') ADVANCE(331); END_STATE(); case 269: if (lookahead == 'n') ADVANCE(332); END_STATE(); case 270: if (lookahead == 'i') ADVANCE(333); END_STATE(); case 271: if (lookahead == 'e') ADVANCE(334); END_STATE(); case 272: if (lookahead == 't') ADVANCE(335); END_STATE(); case 273: if (lookahead == 'e') ADVANCE(336); END_STATE(); case 274: if (lookahead == 'a') ADVANCE(337); END_STATE(); case 275: if (lookahead == 'h') ADVANCE(338); END_STATE(); case 276: if (lookahead == 'c') ADVANCE(339); END_STATE(); case 277: if (lookahead == 'c') ADVANCE(340); END_STATE(); case 278: if (lookahead == 'n') ADVANCE(341); END_STATE(); case 279: if (lookahead == 'c') ADVANCE(342); END_STATE(); case 280: if (lookahead == 'c') ADVANCE(343); END_STATE(); case 281: if (lookahead == 'n') ADVANCE(344); END_STATE(); case 282: if (lookahead == 'e') ADVANCE(345); END_STATE(); case 283: if (lookahead == 'i') ADVANCE(346); END_STATE(); case 284: if (lookahead == 'g') ADVANCE(347); END_STATE(); case 285: if (lookahead == 's') ADVANCE(348); END_STATE(); case 286: if (lookahead == 'i') ADVANCE(349); END_STATE(); case 287: if (lookahead == 'l') ADVANCE(350); END_STATE(); case 288: if (lookahead == 'e') ADVANCE(351); END_STATE(); case 289: if (lookahead == 'n') ADVANCE(352); END_STATE(); case 290: if (lookahead == 'e') ADVANCE(353); END_STATE(); case 291: if (lookahead == 't') ADVANCE(354); END_STATE(); case 292: if (lookahead == 'r') ADVANCE(355); END_STATE(); case 293: if (lookahead == 'i') ADVANCE(356); END_STATE(); case 294: if (lookahead == 'b') ADVANCE(357); END_STATE(); case 295: if (lookahead == 'r') ADVANCE(358); END_STATE(); case 296: if (lookahead == 'n') ADVANCE(359); END_STATE(); case 297: if (lookahead == 'r') ADVANCE(360); END_STATE(); case 298: ACCEPT_TOKEN(anon_sym_short); END_STATE(); case 299: if (lookahead == 'e') ADVANCE(361); END_STATE(); case 300: if (lookahead == 'g') ADVANCE(362); END_STATE(); case 301: if (lookahead == 't') ADVANCE(363); END_STATE(); case 302: ACCEPT_TOKEN(anon_sym_token); END_STATE(); case 303: if (lookahead == 'D') ADVANCE(364); END_STATE(); case 304: ACCEPT_TOKEN(anon_sym_union); END_STATE(); case 305: if (lookahead == 'e') ADVANCE(365); END_STATE(); case 306: if (lookahead == 'w') ADVANCE(366); END_STATE(); case 307: if (lookahead == 'e') ADVANCE(367); END_STATE(); case 308: if (lookahead == 'n') ADVANCE(368); END_STATE(); case 309: if (lookahead == 'o') ADVANCE(369); END_STATE(); case 310: if (lookahead == 'u') ADVANCE(370); END_STATE(); case 311: if (lookahead == 'o') ADVANCE(371); END_STATE(); case 312: if (lookahead == 'g') ADVANCE(372); END_STATE(); case 313: ACCEPT_TOKEN(anon_sym_anyURI); END_STATE(); case 314: ACCEPT_TOKEN(anon_sym_assert); END_STATE(); case 315: if (lookahead == 'B') ADVANCE(373); END_STATE(); case 316: ACCEPT_TOKEN(anon_sym_binary); END_STATE(); case 317: if (lookahead == 'n') ADVANCE(374); END_STATE(); case 318: if (lookahead == 'p') ADVANCE(375); END_STATE(); case 319: if (lookahead == 'm') ADVANCE(376); END_STATE(); case 320: if (lookahead == 'e') ADVANCE(377); END_STATE(); case 321: if (lookahead == 'l') ADVANCE(378); END_STATE(); case 322: if (lookahead == 'i') ADVANCE(379); END_STATE(); case 323: ACCEPT_TOKEN(anon_sym_double); END_STATE(); case 324: if (lookahead == 'o') ADVANCE(380); END_STATE(); case 325: ACCEPT_TOKEN(anon_sym_entity); END_STATE(); case 326: ACCEPT_TOKEN(anon_sym_exists); END_STATE(); case 327: if (lookahead == 'i') ADVANCE(381); END_STATE(); case 328: ACCEPT_TOKEN(anon_sym_forall); END_STATE(); case 329: if (lookahead == 'o') ADVANCE(382); END_STATE(); case 330: ACCEPT_TOKEN(anon_sym_gMonth); if (lookahead == 'D') ADVANCE(383); END_STATE(); case 331: if (lookahead == 'o') ADVANCE(384); END_STATE(); case 332: if (lookahead == 'a') ADVANCE(385); END_STATE(); case 333: if (lookahead == 't') ADVANCE(386); END_STATE(); case 334: if (lookahead == 's') ADVANCE(387); END_STATE(); case 335: ACCEPT_TOKEN(anon_sym_import); END_STATE(); case 336: if (lookahead == 'r') ADVANCE(388); END_STATE(); case 337: if (lookahead == 'g') ADVANCE(389); END_STATE(); case 338: ACCEPT_TOKEN(anon_sym_length); END_STATE(); case 339: if (lookahead == 'l') ADVANCE(390); END_STATE(); case 340: if (lookahead == 'l') ADVANCE(391); END_STATE(); case 341: if (lookahead == 'g') ADVANCE(392); END_STATE(); case 342: if (lookahead == 'l') ADVANCE(393); END_STATE(); case 343: if (lookahead == 'l') ADVANCE(394); END_STATE(); case 344: if (lookahead == 'g') ADVANCE(395); END_STATE(); case 345: ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 346: if (lookahead == 'v') ADVANCE(396); END_STATE(); case 347: if (lookahead == 'a') ADVANCE(397); END_STATE(); case 348: if (lookahead == 'i') ADVANCE(398); END_STATE(); case 349: if (lookahead == 'q') ADVANCE(399); END_STATE(); case 350: if (lookahead == 'i') ADVANCE(400); END_STATE(); case 351: ACCEPT_TOKEN(sym_opaque); END_STATE(); case 352: if (lookahead == 'a') ADVANCE(401); END_STATE(); case 353: if (lookahead == 'd') ADVANCE(402); END_STATE(); case 354: ACCEPT_TOKEN(anon_sym_parent); END_STATE(); case 355: if (lookahead == 'n') ADVANCE(403); END_STATE(); case 356: if (lookahead == 'v') ADVANCE(404); END_STATE(); case 357: if (lookahead == 'i') ADVANCE(405); END_STATE(); case 358: if (lookahead == 't') ADVANCE(406); END_STATE(); case 359: if (lookahead == 'a') ADVANCE(407); END_STATE(); case 360: if (lookahead == 'e') ADVANCE(408); END_STATE(); case 361: ACCEPT_TOKEN(anon_sym_source); END_STATE(); case 362: ACCEPT_TOKEN(anon_sym_string); END_STATE(); case 363: if (lookahead == 'u') ADVANCE(409); END_STATE(); case 364: if (lookahead == 'i') ADVANCE(410); END_STATE(); case 365: ACCEPT_TOKEN(anon_sym_unique); END_STATE(); case 366: if (lookahead == 'n') ADVANCE(411); END_STATE(); case 367: if (lookahead == 'r') ADVANCE(412); END_STATE(); case 368: if (lookahead == 'e') ADVANCE(413); END_STATE(); case 369: if (lookahead == 'n') ADVANCE(414); END_STATE(); case 370: if (lookahead == 't') ADVANCE(415); END_STATE(); case 371: if (lookahead == 'n') ADVANCE(416); END_STATE(); case 372: ACCEPT_TOKEN(anon_sym_Nothing); END_STATE(); case 373: if (lookahead == 'i') ADVANCE(417); END_STATE(); case 374: ACCEPT_TOKEN(anon_sym_boolean); END_STATE(); case 375: if (lookahead == 'e') ADVANCE(418); END_STATE(); case 376: if (lookahead == 'e') ADVANCE(419); END_STATE(); case 377: if (lookahead == 'D') ADVANCE(420); END_STATE(); case 378: ACCEPT_TOKEN(anon_sym_decimal); END_STATE(); case 379: if (lookahead == 'o') ADVANCE(421); END_STATE(); case 380: if (lookahead == 'n') ADVANCE(422); END_STATE(); case 381: if (lookahead == 't') ADVANCE(423); END_STATE(); case 382: if (lookahead == 'n') ADVANCE(424); END_STATE(); case 383: if (lookahead == 'a') ADVANCE(425); END_STATE(); case 384: if (lookahead == 'n') ADVANCE(426); END_STATE(); case 385: if (lookahead == 'r') ADVANCE(427); END_STATE(); case 386: if (lookahead == 'y') ADVANCE(428); END_STATE(); case 387: ACCEPT_TOKEN(anon_sym_implies); END_STATE(); case 388: ACCEPT_TOKEN(anon_sym_integer); END_STATE(); case 389: if (lookahead == 'e') ADVANCE(429); END_STATE(); case 390: if (lookahead == 'u') ADVANCE(430); END_STATE(); case 391: if (lookahead == 'u') ADVANCE(431); END_STATE(); case 392: if (lookahead == 't') ADVANCE(432); END_STATE(); case 393: if (lookahead == 'u') ADVANCE(433); END_STATE(); case 394: if (lookahead == 'u') ADVANCE(434); END_STATE(); case 395: if (lookahead == 't') ADVANCE(435); END_STATE(); case 396: if (lookahead == 'e') ADVANCE(436); END_STATE(); case 397: if (lookahead == 't') ADVANCE(437); END_STATE(); case 398: if (lookahead == 't') ADVANCE(438); END_STATE(); case 399: if (lookahead == 'u') ADVANCE(439); END_STATE(); case 400: if (lookahead == 'z') ADVANCE(440); END_STATE(); case 401: if (lookahead == 'l') ADVANCE(441); END_STATE(); case 402: ACCEPT_TOKEN(anon_sym_ordered); END_STATE(); case 403: ACCEPT_TOKEN(anon_sym_pattern); END_STATE(); case 404: if (lookahead == 'e') ADVANCE(442); END_STATE(); case 405: if (lookahead == 't') ADVANCE(443); END_STATE(); case 406: if (lookahead == 'y') ADVANCE(444); END_STATE(); case 407: if (lookahead == 'l') ADVANCE(445); END_STATE(); case 408: if (lookahead == 'd') ADVANCE(446); END_STATE(); case 409: if (lookahead == 'r') ADVANCE(447); END_STATE(); case 410: if (lookahead == 'g') ADVANCE(448); END_STATE(); case 411: ACCEPT_TOKEN(sym_unknown_type); END_STATE(); case 412: if (lookahead == 'e') ADVANCE(449); END_STATE(); case 413: if (lookahead == 'd') ADVANCE(450); END_STATE(); case 414: ACCEPT_TOKEN(anon_sym_version); END_STATE(); case 415: ACCEPT_TOKEN(anon_sym_without); END_STATE(); case 416: if (lookahead == 't') ADVANCE(451); END_STATE(); case 417: if (lookahead == 'n') ADVANCE(452); END_STATE(); case 418: ACCEPT_TOKEN(anon_sym_datatype); END_STATE(); case 419: ACCEPT_TOKEN(anon_sym_dateTime); if (lookahead == 'S') ADVANCE(453); END_STATE(); case 420: if (lookahead == 'u') ADVANCE(454); END_STATE(); case 421: if (lookahead == 'n') ADVANCE(455); END_STATE(); case 422: ACCEPT_TOKEN(anon_sym_duration); END_STATE(); case 423: if (lookahead == 'T') ADVANCE(456); END_STATE(); case 424: if (lookahead == 'D') ADVANCE(457); END_STATE(); case 425: if (lookahead == 'y') ADVANCE(458); END_STATE(); case 426: if (lookahead == 't') ADVANCE(459); END_STATE(); case 427: if (lookahead == 'y') ADVANCE(460); END_STATE(); case 428: ACCEPT_TOKEN(anon_sym_identity); END_STATE(); case 429: ACCEPT_TOKEN(anon_sym_language); END_STATE(); case 430: if (lookahead == 's') ADVANCE(461); END_STATE(); case 431: if (lookahead == 's') ADVANCE(462); END_STATE(); case 432: if (lookahead == 'h') ADVANCE(463); END_STATE(); case 433: if (lookahead == 's') ADVANCE(464); END_STATE(); case 434: if (lookahead == 's') ADVANCE(465); END_STATE(); case 435: if (lookahead == 'h') ADVANCE(466); END_STATE(); case 436: if (lookahead == 'I') ADVANCE(467); END_STATE(); case 437: if (lookahead == 'i') ADVANCE(468); END_STATE(); case 438: if (lookahead == 'i') ADVANCE(469); END_STATE(); case 439: if (lookahead == 'e') ADVANCE(470); END_STATE(); case 440: if (lookahead == 'e') ADVANCE(471); END_STATE(); case 441: ACCEPT_TOKEN(anon_sym_optional); END_STATE(); case 442: if (lookahead == 'I') ADVANCE(472); END_STATE(); case 443: if (lookahead == 'e') ADVANCE(473); END_STATE(); case 444: ACCEPT_TOKEN(anon_sym_property); END_STATE(); case 445: ACCEPT_TOKEN(anon_sym_rational); END_STATE(); case 446: ACCEPT_TOKEN(anon_sym_required); END_STATE(); case 447: if (lookahead == 'e') ADVANCE(474); END_STATE(); case 448: if (lookahead == 'i') ADVANCE(475); END_STATE(); case 449: if (lookahead == 'd') ADVANCE(476); END_STATE(); case 450: ACCEPT_TOKEN(anon_sym_unsigned); if (lookahead == 'B') ADVANCE(477); if (lookahead == 'I') ADVANCE(478); if (lookahead == 'L') ADVANCE(479); if (lookahead == 'S') ADVANCE(480); END_STATE(); case 451: if (lookahead == 'h') ADVANCE(481); END_STATE(); case 452: if (lookahead == 'a') ADVANCE(482); END_STATE(); case 453: if (lookahead == 't') ADVANCE(483); END_STATE(); case 454: if (lookahead == 'r') ADVANCE(484); END_STATE(); case 455: ACCEPT_TOKEN(anon_sym_dimension); END_STATE(); case 456: if (lookahead == 'i') ADVANCE(485); END_STATE(); case 457: if (lookahead == 'i') ADVANCE(486); END_STATE(); case 458: ACCEPT_TOKEN(anon_sym_gMonthDay); END_STATE(); case 459: if (lookahead == 'h') ADVANCE(487); END_STATE(); case 460: ACCEPT_TOKEN(anon_sym_hexBinary); END_STATE(); case 461: if (lookahead == 'i') ADVANCE(488); END_STATE(); case 462: if (lookahead == 'i') ADVANCE(489); END_STATE(); case 463: ACCEPT_TOKEN(anon_sym_maxLength); END_STATE(); case 464: if (lookahead == 'i') ADVANCE(490); END_STATE(); case 465: if (lookahead == 'i') ADVANCE(491); END_STATE(); case 466: ACCEPT_TOKEN(anon_sym_minLength); END_STATE(); case 467: if (lookahead == 'n') ADVANCE(492); END_STATE(); case 468: if (lookahead == 'v') ADVANCE(493); END_STATE(); case 469: if (lookahead == 'v') ADVANCE(494); END_STATE(); case 470: ACCEPT_TOKEN(anon_sym_nonunique); END_STATE(); case 471: if (lookahead == 'd') ADVANCE(495); END_STATE(); case 472: if (lookahead == 'n') ADVANCE(496); END_STATE(); case 473: if (lookahead == 'd') ADVANCE(497); END_STATE(); case 474: ACCEPT_TOKEN(anon_sym_structure); END_STATE(); case 475: if (lookahead == 't') ADVANCE(498); END_STATE(); case 476: ACCEPT_TOKEN(anon_sym_unordered); END_STATE(); case 477: if (lookahead == 'y') ADVANCE(499); END_STATE(); case 478: if (lookahead == 'n') ADVANCE(500); END_STATE(); case 479: if (lookahead == 'o') ADVANCE(501); END_STATE(); case 480: if (lookahead == 'h') ADVANCE(502); END_STATE(); case 481: if (lookahead == 'D') ADVANCE(503); END_STATE(); case 482: if (lookahead == 'r') ADVANCE(504); END_STATE(); case 483: if (lookahead == 'a') ADVANCE(505); END_STATE(); case 484: if (lookahead == 'a') ADVANCE(506); END_STATE(); case 485: if (lookahead == 'm') ADVANCE(507); END_STATE(); case 486: if (lookahead == 'g') ADVANCE(508); END_STATE(); case 487: ACCEPT_TOKEN(anon_sym_gYearMonth); END_STATE(); case 488: if (lookahead == 'v') ADVANCE(509); END_STATE(); case 489: if (lookahead == 'v') ADVANCE(510); END_STATE(); case 490: if (lookahead == 'v') ADVANCE(511); END_STATE(); case 491: if (lookahead == 'v') ADVANCE(512); END_STATE(); case 492: if (lookahead == 't') ADVANCE(513); END_STATE(); case 493: if (lookahead == 'e') ADVANCE(514); END_STATE(); case 494: if (lookahead == 'e') ADVANCE(515); END_STATE(); case 495: if (lookahead == 'S') ADVANCE(516); END_STATE(); case 496: if (lookahead == 't') ADVANCE(517); END_STATE(); case 497: ACCEPT_TOKEN(anon_sym_prohibited); END_STATE(); case 498: if (lookahead == 's') ADVANCE(518); END_STATE(); case 499: if (lookahead == 't') ADVANCE(519); END_STATE(); case 500: if (lookahead == 't') ADVANCE(520); END_STATE(); case 501: if (lookahead == 'n') ADVANCE(521); END_STATE(); case 502: if (lookahead == 'o') ADVANCE(522); END_STATE(); case 503: if (lookahead == 'u') ADVANCE(523); END_STATE(); case 504: if (lookahead == 'y') ADVANCE(524); END_STATE(); case 505: if (lookahead == 'm') ADVANCE(525); END_STATE(); case 506: if (lookahead == 't') ADVANCE(526); END_STATE(); case 507: if (lookahead == 'e') ADVANCE(527); END_STATE(); case 508: if (lookahead == 'i') ADVANCE(528); END_STATE(); case 509: if (lookahead == 'e') ADVANCE(529); END_STATE(); case 510: if (lookahead == 'e') ADVANCE(530); END_STATE(); case 511: if (lookahead == 'e') ADVANCE(531); END_STATE(); case 512: if (lookahead == 'e') ADVANCE(532); END_STATE(); case 513: if (lookahead == 'e') ADVANCE(533); END_STATE(); case 514: if (lookahead == 'I') ADVANCE(534); END_STATE(); case 515: if (lookahead == 'I') ADVANCE(535); END_STATE(); case 516: if (lookahead == 't') ADVANCE(536); END_STATE(); case 517: if (lookahead == 'e') ADVANCE(537); END_STATE(); case 518: ACCEPT_TOKEN(anon_sym_totalDigits); END_STATE(); case 519: if (lookahead == 'e') ADVANCE(538); END_STATE(); case 520: ACCEPT_TOKEN(anon_sym_unsignedInt); END_STATE(); case 521: if (lookahead == 'g') ADVANCE(539); END_STATE(); case 522: if (lookahead == 'r') ADVANCE(540); END_STATE(); case 523: if (lookahead == 'r') ADVANCE(541); END_STATE(); case 524: ACCEPT_TOKEN(anon_sym_base64Binary); END_STATE(); case 525: if (lookahead == 'p') ADVANCE(542); END_STATE(); case 526: if (lookahead == 'i') ADVANCE(543); END_STATE(); case 527: if (lookahead == 'z') ADVANCE(544); END_STATE(); case 528: if (lookahead == 't') ADVANCE(545); END_STATE(); case 529: ACCEPT_TOKEN(anon_sym_maxExclusive); END_STATE(); case 530: ACCEPT_TOKEN(anon_sym_maxInclusive); END_STATE(); case 531: ACCEPT_TOKEN(anon_sym_minExclusive); END_STATE(); case 532: ACCEPT_TOKEN(anon_sym_minInclusive); END_STATE(); case 533: if (lookahead == 'g') ADVANCE(546); END_STATE(); case 534: if (lookahead == 'n') ADVANCE(547); END_STATE(); case 535: if (lookahead == 'n') ADVANCE(548); END_STATE(); case 536: if (lookahead == 'r') ADVANCE(549); END_STATE(); case 537: if (lookahead == 'g') ADVANCE(550); END_STATE(); case 538: ACCEPT_TOKEN(anon_sym_unsignedByte); END_STATE(); case 539: ACCEPT_TOKEN(anon_sym_unsignedLong); END_STATE(); case 540: if (lookahead == 't') ADVANCE(551); END_STATE(); case 541: if (lookahead == 'a') ADVANCE(552); END_STATE(); case 542: ACCEPT_TOKEN(anon_sym_dateTimeStamp); END_STATE(); case 543: if (lookahead == 'o') ADVANCE(553); END_STATE(); case 544: if (lookahead == 'o') ADVANCE(554); END_STATE(); case 545: if (lookahead == 's') ADVANCE(555); END_STATE(); case 546: if (lookahead == 'e') ADVANCE(556); END_STATE(); case 547: if (lookahead == 't') ADVANCE(557); END_STATE(); case 548: if (lookahead == 't') ADVANCE(558); END_STATE(); case 549: if (lookahead == 'i') ADVANCE(559); END_STATE(); case 550: if (lookahead == 'e') ADVANCE(560); END_STATE(); case 551: ACCEPT_TOKEN(anon_sym_unsignedShort); END_STATE(); case 552: if (lookahead == 't') ADVANCE(561); END_STATE(); case 553: if (lookahead == 'n') ADVANCE(562); END_STATE(); case 554: if (lookahead == 'n') ADVANCE(563); END_STATE(); case 555: ACCEPT_TOKEN(anon_sym_fractionDigits); END_STATE(); case 556: if (lookahead == 'r') ADVANCE(564); END_STATE(); case 557: if (lookahead == 'e') ADVANCE(565); END_STATE(); case 558: if (lookahead == 'e') ADVANCE(566); END_STATE(); case 559: if (lookahead == 'n') ADVANCE(567); END_STATE(); case 560: if (lookahead == 'r') ADVANCE(568); END_STATE(); case 561: if (lookahead == 'i') ADVANCE(569); END_STATE(); case 562: ACCEPT_TOKEN(anon_sym_dayTimeDuration); END_STATE(); case 563: if (lookahead == 'e') ADVANCE(570); END_STATE(); case 564: ACCEPT_TOKEN(anon_sym_negativeInteger); END_STATE(); case 565: if (lookahead == 'g') ADVANCE(571); END_STATE(); case 566: if (lookahead == 'g') ADVANCE(572); END_STATE(); case 567: if (lookahead == 'g') ADVANCE(573); END_STATE(); case 568: ACCEPT_TOKEN(anon_sym_positiveInteger); END_STATE(); case 569: if (lookahead == 'o') ADVANCE(574); END_STATE(); case 570: ACCEPT_TOKEN(anon_sym_explicitTimezone); END_STATE(); case 571: if (lookahead == 'e') ADVANCE(575); END_STATE(); case 572: if (lookahead == 'e') ADVANCE(576); END_STATE(); case 573: ACCEPT_TOKEN(anon_sym_normalizedString); END_STATE(); case 574: if (lookahead == 'n') ADVANCE(577); END_STATE(); case 575: if (lookahead == 'r') ADVANCE(578); END_STATE(); case 576: if (lookahead == 'r') ADVANCE(579); END_STATE(); case 577: ACCEPT_TOKEN(anon_sym_yearMonthDuration); END_STATE(); case 578: ACCEPT_TOKEN(anon_sym_nonNegativeInteger); END_STATE(); case 579: 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 = 1}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, [22] = {.lex_state = 1}, [23] = {.lex_state = 1}, [24] = {.lex_state = 1}, [25] = {.lex_state = 6}, [26] = {.lex_state = 1}, [27] = {.lex_state = 1}, [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, [31] = {.lex_state = 6}, [32] = {.lex_state = 6}, [33] = {.lex_state = 1}, [34] = {.lex_state = 6}, [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 = 6}, [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 = 1}, [55] = {.lex_state = 1}, [56] = {.lex_state = 1}, [57] = {.lex_state = 1}, [58] = {.lex_state = 1}, [59] = {.lex_state = 6}, [60] = {.lex_state = 1}, [61] = {.lex_state = 1}, [62] = {.lex_state = 1}, [63] = {.lex_state = 1}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, [66] = {.lex_state = 6}, [67] = {.lex_state = 1}, [68] = {.lex_state = 1}, [69] = {.lex_state = 1}, [70] = {.lex_state = 1}, [71] = {.lex_state = 1}, [72] = {.lex_state = 1}, [73] = {.lex_state = 1}, [74] = {.lex_state = 1}, [75] = {.lex_state = 6}, [76] = {.lex_state = 6}, [77] = {.lex_state = 6}, [78] = {.lex_state = 6}, [79] = {.lex_state = 1}, [80] = {.lex_state = 1}, [81] = {.lex_state = 1}, [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 = 6}, [96] = {.lex_state = 6}, [97] = {.lex_state = 1}, [98] = {.lex_state = 1}, [99] = {.lex_state = 1}, [100] = {.lex_state = 1}, [101] = {.lex_state = 1}, [102] = {.lex_state = 1}, [103] = {.lex_state = 1}, [104] = {.lex_state = 6}, [105] = {.lex_state = 1}, [106] = {.lex_state = 6}, [107] = {.lex_state = 1}, [108] = {.lex_state = 1}, [109] = {.lex_state = 1}, [110] = {.lex_state = 1}, [111] = {.lex_state = 1}, [112] = {.lex_state = 1}, [113] = {.lex_state = 1}, [114] = {.lex_state = 1}, [115] = {.lex_state = 6}, [116] = {.lex_state = 6}, [117] = {.lex_state = 6}, [118] = {.lex_state = 6}, [119] = {.lex_state = 1}, [120] = {.lex_state = 1}, [121] = {.lex_state = 1}, [122] = {.lex_state = 2}, [123] = {.lex_state = 1}, [124] = {.lex_state = 1}, [125] = {.lex_state = 1}, [126] = {.lex_state = 6}, [127] = {.lex_state = 1}, [128] = {.lex_state = 6}, [129] = {.lex_state = 1}, [130] = {.lex_state = 1}, [131] = {.lex_state = 1}, [132] = {.lex_state = 1}, [133] = {.lex_state = 1}, [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 = 6}, [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 = 1}, [154] = {.lex_state = 1}, [155] = {.lex_state = 1}, [156] = {.lex_state = 1}, [157] = {.lex_state = 6}, [158] = {.lex_state = 6}, [159] = {.lex_state = 1}, [160] = {.lex_state = 1}, [161] = {.lex_state = 6}, [162] = {.lex_state = 1}, [163] = {.lex_state = 6}, [164] = {.lex_state = 10}, [165] = {.lex_state = 6}, [166] = {.lex_state = 6}, [167] = {.lex_state = 1}, [168] = {.lex_state = 6}, [169] = {.lex_state = 6}, [170] = {.lex_state = 1}, [171] = {.lex_state = 6}, [172] = {.lex_state = 1}, [173] = {.lex_state = 6}, [174] = {.lex_state = 6}, [175] = {.lex_state = 6}, [176] = {.lex_state = 6}, [177] = {.lex_state = 6}, [178] = {.lex_state = 6}, [179] = {.lex_state = 6}, [180] = {.lex_state = 6}, [181] = {.lex_state = 6}, [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 = 6}, [190] = {.lex_state = 1}, [191] = {.lex_state = 6}, [192] = {.lex_state = 1}, [193] = {.lex_state = 6}, [194] = {.lex_state = 1}, [195] = {.lex_state = 1}, [196] = {.lex_state = 6}, [197] = {.lex_state = 1}, [198] = {.lex_state = 1}, [199] = {.lex_state = 6}, [200] = {.lex_state = 6}, [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 = 6}, [211] = {.lex_state = 6}, [212] = {.lex_state = 6}, [213] = {.lex_state = 1}, [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 = 1}, [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 = 6}, [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 = 1}, [360] = {.lex_state = 6}, [361] = {.lex_state = 6}, [362] = {.lex_state = 6}, [363] = {.lex_state = 6}, [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 = 6}, [377] = {.lex_state = 6}, [378] = {.lex_state = 6}, [379] = {.lex_state = 1}, [380] = {.lex_state = 6}, [381] = {.lex_state = 6}, [382] = {.lex_state = 9}, [383] = {.lex_state = 0}, [384] = {.lex_state = 6}, [385] = {.lex_state = 6}, [386] = {.lex_state = 6}, [387] = {.lex_state = 6}, [388] = {.lex_state = 6}, [389] = {.lex_state = 6}, [390] = {.lex_state = 6}, [391] = {.lex_state = 6}, [392] = {.lex_state = 6}, [393] = {.lex_state = 10}, [394] = {.lex_state = 6}, [395] = {.lex_state = 6}, [396] = {.lex_state = 6}, [397] = {.lex_state = 6}, [398] = {.lex_state = 6}, [399] = {.lex_state = 6}, [400] = {.lex_state = 6}, [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 = 0}, [408] = {.lex_state = 6}, [409] = {.lex_state = 6}, [410] = {.lex_state = 6}, [411] = {.lex_state = 6}, [412] = {.lex_state = 6}, [413] = {.lex_state = 6}, [414] = {.lex_state = 6}, [415] = {.lex_state = 6}, [416] = {.lex_state = 6}, [417] = {.lex_state = 0}, [418] = {.lex_state = 6}, [419] = {.lex_state = 6}, [420] = {.lex_state = 6}, [421] = {.lex_state = 6}, [422] = {.lex_state = 6}, [423] = {.lex_state = 6}, [424] = {.lex_state = 6}, [425] = {.lex_state = 6}, [426] = {.lex_state = 6}, [427] = {.lex_state = 6}, [428] = {.lex_state = 6}, [429] = {.lex_state = 6}, [430] = {.lex_state = 6}, [431] = {.lex_state = 0}, [432] = {.lex_state = 6}, [433] = {.lex_state = 6}, [434] = {.lex_state = 6}, [435] = {.lex_state = 6}, [436] = {.lex_state = 6}, [437] = {.lex_state = 0}, [438] = {.lex_state = 6}, [439] = {.lex_state = 6}, [440] = {.lex_state = 6}, [441] = {.lex_state = 6}, [442] = {.lex_state = 6}, [443] = {.lex_state = 6}, [444] = {.lex_state = 6}, [445] = {.lex_state = 6}, [446] = {.lex_state = 0}, [447] = {.lex_state = 2}, [448] = {.lex_state = 9}, [449] = {.lex_state = 6}, [450] = {.lex_state = 6}, [451] = {.lex_state = 0}, [452] = {.lex_state = 0}, [453] = {.lex_state = 6}, [454] = {.lex_state = 6}, [455] = {.lex_state = 6}, [456] = {.lex_state = 6}, [457] = {.lex_state = 2}, [458] = {.lex_state = 10}, [459] = {.lex_state = 0}, [460] = {.lex_state = 6}, [461] = {.lex_state = 1}, [462] = {.lex_state = 0}, [463] = {.lex_state = 2}, [464] = {.lex_state = 22}, [465] = {.lex_state = 0}, [466] = {.lex_state = 6}, [467] = {.lex_state = 0}, [468] = {.lex_state = 6}, [469] = {.lex_state = 22}, [470] = {.lex_state = 0}, [471] = {.lex_state = 6}, [472] = {.lex_state = 6}, [473] = {.lex_state = 6}, [474] = {.lex_state = 22}, [475] = {.lex_state = 22}, [476] = {.lex_state = 2}, [477] = {.lex_state = 6}, [478] = {.lex_state = 0}, [479] = {.lex_state = 2}, [480] = {.lex_state = 6}, [481] = {.lex_state = 22}, [482] = {.lex_state = 6}, [483] = {.lex_state = 6}, [484] = {.lex_state = 6}, [485] = {.lex_state = 6}, [486] = {.lex_state = 6}, [487] = {.lex_state = 6}, [488] = {.lex_state = 6}, [489] = {.lex_state = 2}, [490] = {.lex_state = 6}, [491] = {.lex_state = 6}, [492] = {.lex_state = 6}, [493] = {.lex_state = 6}, [494] = {.lex_state = 6}, [495] = {.lex_state = 0}, [496] = {.lex_state = 6}, [497] = {.lex_state = 0}, [498] = {.lex_state = 6}, [499] = {.lex_state = 6}, [500] = {.lex_state = 6}, [501] = {.lex_state = 6}, [502] = {.lex_state = 6}, [503] = {.lex_state = 22}, [504] = {.lex_state = 0}, [505] = {.lex_state = 6}, [506] = {.lex_state = 6}, [507] = {.lex_state = 6}, [508] = {.lex_state = 6}, [509] = {.lex_state = 0}, [510] = {.lex_state = 6}, [511] = {.lex_state = 6}, [512] = {.lex_state = 6}, [513] = {.lex_state = 1}, [514] = {.lex_state = 6}, [515] = {.lex_state = 0}, [516] = {.lex_state = 6}, [517] = {.lex_state = 0}, [518] = {.lex_state = 6}, [519] = {.lex_state = 0}, [520] = {.lex_state = 6}, [521] = {.lex_state = 0}, [522] = {.lex_state = 0}, [523] = {.lex_state = 6}, [524] = {.lex_state = 0}, [525] = {.lex_state = 0}, [526] = {.lex_state = 6}, [527] = {.lex_state = 6}, [528] = {.lex_state = 6}, [529] = {.lex_state = 6}, [530] = {.lex_state = 6}, [531] = {.lex_state = 6}, [532] = {.lex_state = 0}, [533] = {.lex_state = 6}, [534] = {.lex_state = 0}, [535] = {.lex_state = 0}, [536] = {.lex_state = 0}, [537] = {.lex_state = 6}, [538] = {.lex_state = 6}, [539] = {.lex_state = 6}, [540] = {.lex_state = 0}, [541] = {.lex_state = 6}, [542] = {.lex_state = 6}, [543] = {.lex_state = 0}, [544] = {.lex_state = 0}, [545] = {.lex_state = 0}, [546] = {.lex_state = 0}, [547] = {.lex_state = 118}, [548] = {.lex_state = 6}, [549] = {.lex_state = 0}, [550] = {.lex_state = 0}, [551] = {.lex_state = 0}, [552] = {.lex_state = 0}, [553] = {.lex_state = 6}, [554] = {.lex_state = 0}, [555] = {.lex_state = 1}, [556] = {.lex_state = 6}, [557] = {.lex_state = 0}, [558] = {.lex_state = 0}, [559] = {.lex_state = 6}, [560] = {.lex_state = 0}, [561] = {.lex_state = 0}, [562] = {.lex_state = 0}, [563] = {.lex_state = 0}, [564] = {.lex_state = 6}, [565] = {.lex_state = 0}, [566] = {.lex_state = 0}, [567] = {.lex_state = 6}, [568] = {.lex_state = 6}, [569] = {.lex_state = 0}, [570] = {.lex_state = 0}, [571] = {.lex_state = 6}, [572] = {.lex_state = 0}, [573] = {.lex_state = 6}, [574] = {.lex_state = 1}, [575] = {.lex_state = 0}, [576] = {.lex_state = 118}, [577] = {.lex_state = 0}, [578] = {.lex_state = 0}, [579] = {.lex_state = 6}, [580] = {.lex_state = 0}, [581] = {.lex_state = 6}, [582] = {.lex_state = 6}, [583] = {.lex_state = 6}, }; 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), [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), [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_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), [anon_sym_without] = 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_rdf] = ACTIONS(1), [anon_sym_a] = ACTIONS(1), [anon_sym_type] = ACTIONS(1), [anon_sym_structure] = ACTIONS(1), [anon_sym_class] = ACTIONS(1), [sym_wildcard] = ACTIONS(1), [anon_sym_union] = 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_in] = ACTIONS(1), [anon_sym_u2208] = ACTIONS(1), [sym_set_op_builder] = ACTIONS(1), [anon_sym_u00b7] = ACTIONS(1), [anon_sym_DOT] = 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), [anon_sym_u2205] = ACTIONS(1), [sym_line_comment] = ACTIONS(3), }, [1] = { [sym_module] = STATE(544), [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), 7, anon_sym_as, sym_identifier, anon_sym_EQ, anon_sym_with, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(9), 54, 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_def, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_without, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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_in, anon_sym_u2208, sym_set_op_builder, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_u2295, [69] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 6, anon_sym_as, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(13), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [138] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(19), 1, sym_language_tag, ACTIONS(15), 6, sym_identifier, anon_sym_AT, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(17), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [206] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 6, sym_identifier, anon_sym_EQ, anon_sym_with, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(23), 52, 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_def, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_without, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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_in, anon_sym_u2208, sym_set_op_builder, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_u2295, [272] = 12, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(27), 1, anon_sym_LPAREN, ACTIONS(29), 1, anon_sym_LBRACE, ACTIONS(35), 1, sym_unknown_type, STATE(5), 1, sym_qualified_identifier, STATE(16), 1, sym_cardinality_expression, STATE(211), 1, sym_type_reference, STATE(177), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [356] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [421] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [486] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [551] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [616] = 11, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(27), 1, anon_sym_LPAREN, ACTIONS(53), 1, anon_sym_LBRACE, STATE(5), 1, sym_qualified_identifier, STATE(18), 1, sym_cardinality_reference_expression, STATE(345), 1, sym_function_type_reference, STATE(344), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [697] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(55), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(57), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [762] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(59), 5, sym_identifier, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(61), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [827] = 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), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, 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, [892] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(27), 1, anon_sym_LPAREN, ACTIONS(35), 1, sym_unknown_type, STATE(5), 1, sym_qualified_identifier, STATE(446), 1, sym_type_reference, STATE(177), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [970] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(27), 1, anon_sym_LPAREN, ACTIONS(35), 1, sym_unknown_type, STATE(5), 1, sym_qualified_identifier, STATE(209), 1, sym_type_reference, STATE(177), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [1048] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(27), 1, anon_sym_LPAREN, ACTIONS(35), 1, sym_unknown_type, STATE(5), 1, sym_qualified_identifier, STATE(552), 1, sym_type_reference, STATE(177), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [1126] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(27), 1, anon_sym_LPAREN, STATE(5), 1, sym_qualified_identifier, STATE(341), 1, sym_function_type_reference, STATE(344), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [1201] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(29), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(137), 1, sym_constraint_sentence, STATE(182), 1, sym_term, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(470), 1, sym__sequence_value_constraints, STATE(578), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1325] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(140), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(226), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(545), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1449] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(169), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(226), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(545), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1573] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(166), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(226), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(545), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1697] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(136), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(226), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(545), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1821] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(29), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(137), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(200), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(578), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [1945] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(99), 1, sym_opaque, STATE(5), 1, sym_qualified_identifier, STATE(219), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [2017] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(165), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(226), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(545), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2141] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(27), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(141), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(226), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(545), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2265] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(29), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(143), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(225), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(578), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2389] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(29), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(142), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(225), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(578), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2513] = 34, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(71), 1, anon_sym_LPAREN, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(29), 1, sym_logical_op_negation, STATE(95), 1, sym__value_empty_sequence, STATE(134), 1, sym_constraint_sentence, STATE(184), 1, sym_simple_sentence, STATE(187), 1, sym_boolean_sentence, STATE(189), 1, sym_quantified_sentence, STATE(225), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, STATE(578), 1, sym_quantified_variable_binding, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, ACTIONS(91), 2, anon_sym_not, anon_sym_u00ac, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, STATE(188), 2, sym_unary_boolean_sentence, sym_binary_boolean_sentence, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(185), 3, sym_atomic_sentence, sym_equation, sym_inequation, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [2637] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(210), 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(33), 6, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(31), 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, [2706] = 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, [2760] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(105), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(107), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [2814] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(109), 7, sym_identifier, anon_sym_date, anon_sym_dateTime, anon_sym_gMonth, anon_sym_gYear, anon_sym_int, anon_sym_unsigned, ACTIONS(111), 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, [2868] = 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, [2922] = 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, [2976] = 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, [3029] = 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, [3082] = 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, [3135] = 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, [3188] = 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, [3241] = 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, [3294] = 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, [3347] = 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, [3400] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(153), 1, anon_sym_COLON, ACTIONS(21), 2, sym_identifier, anon_sym_with, ACTIONS(23), 34, 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_def, anon_sym_LBRACE, anon_sym_without, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_in, anon_sym_u2208, sym_set_op_builder, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_u2295, [3447] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(155), 1, sym_identifier, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(159), 1, anon_sym_RPAREN, ACTIONS(161), 1, sym_reserved_self, ACTIONS(163), 1, anon_sym_LBRACE, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, STATE(48), 1, aux_sym__actual_arguments_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(144), 1, sym_term, STATE(145), 1, sym__value_empty_sequence, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(154), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(170), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3531] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(155), 1, sym_identifier, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(161), 1, sym_reserved_self, ACTIONS(163), 1, anon_sym_LBRACE, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(181), 1, anon_sym_RPAREN, STATE(46), 1, aux_sym__actual_arguments_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(144), 1, sym_term, STATE(145), 1, sym__value_empty_sequence, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(154), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(170), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3615] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(183), 1, sym_identifier, ACTIONS(186), 1, anon_sym_LBRACK, ACTIONS(189), 1, anon_sym_RPAREN, ACTIONS(191), 1, sym_reserved_self, ACTIONS(194), 1, anon_sym_LBRACE, ACTIONS(197), 1, sym_quoted_string, ACTIONS(200), 1, anon_sym_LT, ACTIONS(203), 1, anon_sym_POUND_LBRACK, ACTIONS(218), 1, anon_sym_u2205, STATE(48), 1, aux_sym__actual_arguments_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(144), 1, sym_term, STATE(145), 1, sym__value_empty_sequence, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(206), 2, sym_double, sym_rational, ACTIONS(212), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(215), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(154), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(209), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(170), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3699] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(155), 1, sym_identifier, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(161), 1, sym_reserved_self, ACTIONS(163), 1, anon_sym_LBRACE, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(221), 1, anon_sym_RPAREN, STATE(50), 1, aux_sym__actual_arguments_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(144), 1, sym_term, STATE(145), 1, sym__value_empty_sequence, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(154), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(170), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3783] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(155), 1, sym_identifier, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(161), 1, sym_reserved_self, ACTIONS(163), 1, anon_sym_LBRACE, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(223), 1, anon_sym_RPAREN, STATE(48), 1, aux_sym__actual_arguments_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(144), 1, sym_term, STATE(145), 1, sym__value_empty_sequence, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(154), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(170), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [3867] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(229), 1, anon_sym_LPAREN, ACTIONS(225), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(227), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [3912] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(231), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(233), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [3954] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(235), 1, anon_sym_end, ACTIONS(237), 1, anon_sym_import, ACTIONS(239), 1, anon_sym_from, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, STATE(542), 1, sym_from_clause, STATE(83), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(116), 2, sym_definition, aux_sym_module_body_repeat3, STATE(171), 2, sym_import_statement, aux_sym_module_body_repeat1, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [4034] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(265), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(267), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4076] = 21, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(95), 1, sym__value_empty_sequence, STATE(451), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [4154] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4196] = 21, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(95), 1, sym__value_empty_sequence, STATE(163), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [4274] = 21, ACTIONS(3), 1, sym_line_comment, ACTIONS(67), 1, sym_identifier, ACTIONS(69), 1, anon_sym_LBRACK, ACTIONS(73), 1, sym_reserved_self, ACTIONS(75), 1, anon_sym_LBRACE, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(97), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(95), 1, sym__value_empty_sequence, STATE(161), 1, sym_term, STATE(470), 1, sym__sequence_value_constraints, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(94), 2, sym_sequence_of_predicate_values, sym_simple_value, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, STATE(93), 5, sym_identifier_reference, sym_functional_term, sym_function_composition, sym_predicate_value, sym_sequence_builder, [4352] = 22, ACTIONS(3), 1, sym_line_comment, ACTIONS(237), 1, anon_sym_import, ACTIONS(239), 1, anon_sym_from, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, ACTIONS(273), 1, anon_sym_end, STATE(542), 1, sym_from_clause, STATE(53), 2, sym_import_statement, aux_sym_module_body_repeat1, STATE(84), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(117), 2, sym_definition, aux_sym_module_body_repeat3, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [4432] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(225), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(227), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4474] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(275), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(277), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4516] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(279), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(281), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4558] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(283), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(285), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4600] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(287), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(289), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, anon_sym_u2205, [4642] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(293), 1, anon_sym_RBRACK, ACTIONS(295), 1, anon_sym_LBRACE, STATE(68), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4723] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(297), 1, anon_sym_COLON, STATE(76), 1, aux_sym_function_composition_repeat1, STATE(553), 1, sym__function_op_composition, ACTIONS(299), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(21), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(23), 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, [4772] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(301), 1, anon_sym_RBRACK, STATE(68), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4853] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(303), 1, sym_identifier, ACTIONS(306), 1, anon_sym_LBRACK, ACTIONS(309), 1, anon_sym_RBRACK, ACTIONS(311), 1, anon_sym_LBRACE, ACTIONS(314), 1, sym_quoted_string, ACTIONS(317), 1, anon_sym_LT, ACTIONS(320), 1, anon_sym_POUND_LBRACK, ACTIONS(335), 1, anon_sym_u2205, STATE(68), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(323), 2, sym_double, sym_rational, ACTIONS(329), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(332), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(326), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [4934] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(338), 1, anon_sym_RBRACK, STATE(71), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5015] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(340), 1, anon_sym_RBRACK, STATE(65), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5096] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(342), 1, anon_sym_RBRACK, STATE(68), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5177] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(344), 1, anon_sym_RBRACK, STATE(74), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5258] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(346), 1, anon_sym_RBRACK, STATE(67), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5339] = 23, ACTIONS(3), 1, sym_line_comment, ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(179), 1, anon_sym_u2205, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(348), 1, anon_sym_RBRACK, STATE(68), 1, aux_sym_sequence_of_predicate_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(145), 1, sym__value_empty_sequence, STATE(149), 1, sym_simple_value, STATE(154), 1, sym_sequence_of_predicate_values, STATE(172), 1, sym_identifier_reference, STATE(467), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(194), 3, sym_predicate_value, sym_value_constructor, sym_mapping_value, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5420] = 6, ACTIONS(3), 1, sym_line_comment, STATE(77), 1, aux_sym_function_composition_repeat1, STATE(553), 1, sym__function_op_composition, ACTIONS(299), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(352), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(350), 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, [5466] = 6, ACTIONS(3), 1, sym_line_comment, STATE(78), 1, aux_sym_function_composition_repeat1, STATE(553), 1, sym__function_op_composition, ACTIONS(299), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(356), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(354), 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, [5512] = 6, ACTIONS(3), 1, sym_line_comment, STATE(78), 1, aux_sym_function_composition_repeat1, STATE(553), 1, sym__function_op_composition, ACTIONS(299), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(356), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(354), 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, [5558] = 6, ACTIONS(3), 1, sym_line_comment, STATE(78), 1, aux_sym_function_composition_repeat1, STATE(553), 1, sym__function_op_composition, ACTIONS(362), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(360), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(358), 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, [5604] = 21, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(365), 1, anon_sym_LBRACK, ACTIONS(367), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(51), 1, sym_identifier_reference, STATE(52), 1, sym_value, STATE(62), 1, sym__value_empty_sequence, STATE(135), 1, sym_simple_value, STATE(452), 1, sym__sequence_value_constraints, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(60), 3, sym_value_constructor, sym_mapping_value, sym_sequence_of_values, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5679] = 21, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(365), 1, anon_sym_LBRACK, ACTIONS(367), 1, anon_sym_u2205, STATE(5), 1, sym_qualified_identifier, STATE(51), 1, sym_identifier_reference, STATE(62), 1, sym__value_empty_sequence, STATE(135), 1, sym_simple_value, STATE(175), 1, sym_value, STATE(452), 1, sym__sequence_value_constraints, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(60), 3, sym_value_constructor, sym_mapping_value, sym_sequence_of_values, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5754] = 21, ACTIONS(3), 1, sym_line_comment, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, sym_identifier, ACTIONS(295), 1, anon_sym_LBRACE, ACTIONS(365), 1, anon_sym_LBRACK, ACTIONS(367), 1, anon_sym_u2205, STATE(51), 1, sym_identifier_reference, STATE(52), 1, sym_value, STATE(62), 1, sym__value_empty_sequence, STATE(101), 1, sym_qualified_identifier, STATE(152), 1, sym_simple_value, STATE(465), 1, sym__sequence_value_constraints, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(60), 3, sym_value_constructor, sym_mapping_value, sym_sequence_of_values, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [5829] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(371), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(369), 26, 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, anon_sym_u00b7, anon_sym_DOT, [5867] = 18, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, ACTIONS(373), 1, anon_sym_end, STATE(118), 2, sym_definition, aux_sym_module_body_repeat3, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [5934] = 18, ACTIONS(3), 1, sym_line_comment, ACTIONS(235), 1, anon_sym_end, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, STATE(116), 2, sym_definition, aux_sym_module_body_repeat3, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [6001] = 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, [6037] = 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, [6073] = 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, [6109] = 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, [6145] = 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, [6181] = 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, [6217] = 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, [6253] = 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, [6289] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(352), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(350), 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, [6325] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(409), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(407), 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, [6361] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(413), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(411), 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, [6397] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(419), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(415), 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(417), 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, [6434] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(421), 1, sym_identifier, ACTIONS(424), 1, anon_sym_RBRACK, ACTIONS(426), 1, sym_quoted_string, ACTIONS(429), 1, anon_sym_LT, ACTIONS(432), 1, anon_sym_POUND_LBRACK, STATE(97), 1, aux_sym_sequence_of_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(192), 1, sym_simple_value, STATE(213), 1, sym_identifier_reference, ACTIONS(435), 2, sym_double, sym_rational, ACTIONS(441), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(444), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(224), 2, sym_value_constructor, sym_mapping_value, ACTIONS(438), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6496] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, sym_identifier, ACTIONS(447), 1, anon_sym_RBRACK, STATE(101), 1, sym_qualified_identifier, STATE(103), 1, aux_sym_sequence_of_values_repeat1, STATE(192), 1, sym_simple_value, STATE(213), 1, sym_identifier_reference, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(224), 2, sym_value_constructor, sym_mapping_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6558] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, sym_identifier, ACTIONS(449), 1, anon_sym_RBRACK, STATE(100), 1, aux_sym_sequence_of_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(192), 1, sym_simple_value, STATE(213), 1, sym_identifier_reference, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(224), 2, sym_value_constructor, sym_mapping_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6620] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, sym_identifier, ACTIONS(451), 1, anon_sym_RBRACK, STATE(97), 1, aux_sym_sequence_of_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(192), 1, sym_simple_value, STATE(213), 1, sym_identifier_reference, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(224), 2, sym_value_constructor, sym_mapping_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6682] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(23), 22, 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_with, 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_parent, anon_sym_ref, anon_sym_u2205, [6716] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(7), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(9), 22, 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_with, 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_parent, anon_sym_ref, anon_sym_u2205, [6750] = 17, ACTIONS(3), 1, sym_line_comment, ACTIONS(165), 1, sym_quoted_string, ACTIONS(167), 1, anon_sym_LT, ACTIONS(169), 1, anon_sym_POUND_LBRACK, ACTIONS(291), 1, sym_identifier, ACTIONS(453), 1, anon_sym_RBRACK, STATE(97), 1, aux_sym_sequence_of_values_repeat1, STATE(101), 1, sym_qualified_identifier, STATE(192), 1, sym_simple_value, STATE(213), 1, sym_identifier_reference, ACTIONS(171), 2, sym_double, sym_rational, ACTIONS(175), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(177), 2, anon_sym_false, anon_sym_u22a5, STATE(130), 2, sym_boolean_truth, sym_boolean_falsity, STATE(224), 2, sym_value_constructor, sym_mapping_value, ACTIONS(173), 3, sym_decimal, sym_integer, sym_unsigned, STATE(125), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6812] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(419), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(415), 6, anon_sym_LPAREN, anon_sym_SLASH_EQ, anon_sym_u2260, anon_sym_u2264, anon_sym_GT_EQ, anon_sym_u2265, ACTIONS(417), 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, [6847] = 16, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, ACTIONS(455), 1, sym_kw_is_fixed, STATE(5), 1, sym_qualified_identifier, STATE(257), 1, sym_restriction_value, STATE(549), 1, sym_identifier_reference, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(256), 2, sym_simple_value, sym_value_constructor, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, [6906] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(419), 4, anon_sym_EQ, sym_op_less_than, sym_op_greater_than, anon_sym_LT_EQ, ACTIONS(415), 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(417), 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, [6941] = 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, anon_sym_u2205, [6973] = 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, anon_sym_u2205, [7005] = 15, ACTIONS(3), 1, sym_line_comment, ACTIONS(25), 1, sym_identifier, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, STATE(5), 1, sym_qualified_identifier, STATE(255), 1, sym_restriction_value, STATE(549), 1, sym_identifier_reference, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, STATE(256), 2, sym_simple_value, sym_value_constructor, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, [7061] = 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, anon_sym_u2205, [7093] = 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, anon_sym_u2205, [7125] = 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, anon_sym_u2205, [7157] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(477), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(479), 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, anon_sym_u2205, [7189] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(481), 1, anon_sym_COLON, STATE(121), 1, aux_sym_function_composition_repeat1, STATE(564), 1, sym__function_op_composition, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(21), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(23), 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, anon_sym_u2205, [7229] = 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_rdf, ACTIONS(508), 1, anon_sym_structure, ACTIONS(511), 1, anon_sym_class, ACTIONS(514), 1, anon_sym_union, STATE(115), 2, sym_definition, aux_sym_module_body_repeat3, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [7282] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, ACTIONS(373), 1, anon_sym_end, STATE(115), 2, sym_definition, aux_sym_module_body_repeat3, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [7335] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(235), 1, anon_sym_end, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, STATE(115), 2, sym_definition, aux_sym_module_body_repeat3, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [7388] = 14, ACTIONS(3), 1, sym_line_comment, ACTIONS(245), 1, anon_sym_datatype, ACTIONS(247), 1, anon_sym_dimension, ACTIONS(249), 1, anon_sym_entity, ACTIONS(251), 1, anon_sym_enum, ACTIONS(253), 1, anon_sym_event, ACTIONS(255), 1, anon_sym_property, ACTIONS(257), 1, anon_sym_rdf, ACTIONS(259), 1, anon_sym_structure, ACTIONS(261), 1, anon_sym_class, ACTIONS(263), 1, anon_sym_union, ACTIONS(517), 1, anon_sym_end, STATE(115), 2, sym_definition, aux_sym_module_body_repeat3, STATE(310), 10, sym_data_type_def, sym_dimension_def, sym_entity_def, sym_enum_def, sym_event_def, sym_property_def, sym_rdf_def, sym_structure_def, sym_type_class_def, sym_union_def, [7441] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(11), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(13), 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, anon_sym_u2205, [7472] = 6, ACTIONS(3), 1, sym_line_comment, STATE(123), 1, aux_sym_function_composition_repeat1, STATE(564), 1, sym__function_op_composition, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(352), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(350), 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, anon_sym_u2205, [7509] = 6, ACTIONS(3), 1, sym_line_comment, STATE(124), 1, aux_sym_function_composition_repeat1, STATE(564), 1, sym__function_op_composition, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(356), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(354), 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, anon_sym_u2205, [7546] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(519), 1, sym_language_tag, ACTIONS(15), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(17), 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, anon_sym_u2205, [7579] = 6, ACTIONS(3), 1, sym_line_comment, STATE(124), 1, aux_sym_function_composition_repeat1, STATE(564), 1, sym__function_op_composition, ACTIONS(483), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(356), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(354), 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, anon_sym_u2205, [7616] = 6, ACTIONS(3), 1, sym_line_comment, STATE(124), 1, aux_sym_function_composition_repeat1, STATE(564), 1, sym__function_op_composition, ACTIONS(521), 2, anon_sym_u00b7, anon_sym_DOT, ACTIONS(360), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(358), 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, anon_sym_u2205, [7653] = 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, anon_sym_u2205, [7683] = 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(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [7721] = 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, anon_sym_u2205, [7751] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(534), 1, sym_identifier, ACTIONS(536), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, [7781] = 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, anon_sym_u2205, [7811] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(63), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(65), 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, anon_sym_u2205, [7841] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(55), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(57), 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, anon_sym_u2205, [7871] = 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, anon_sym_u2205, [7901] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(59), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(61), 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, anon_sym_u2205, [7931] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(540), 2, anon_sym_and, anon_sym_u2227, ACTIONS(542), 2, anon_sym_or, anon_sym_u2228, ACTIONS(544), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(538), 3, anon_sym_is, anon_sym_end, anon_sym_def, ACTIONS(546), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(548), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(28), 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, [7970] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(225), 1, sym_identifier, STATE(79), 1, sym__type_op_has_type, ACTIONS(550), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(227), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [8003] = 3, ACTIONS(3), 1, sym_line_comment, STATE(23), 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(552), 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, [8032] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(540), 2, anon_sym_and, anon_sym_u2227, ACTIONS(542), 2, anon_sym_or, anon_sym_u2228, ACTIONS(544), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(546), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(548), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, ACTIONS(554), 3, anon_sym_is, anon_sym_end, anon_sym_def, STATE(28), 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, [8071] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(371), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(369), 17, 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, anon_sym_u00b7, anon_sym_DOT, anon_sym_u2205, [8100] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(556), 1, sym_identifier, ACTIONS(558), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, anon_sym_COLON_EQ, anon_sym_u2254, anon_sym_u2192, anon_sym_DASH_GT, [8129] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(540), 2, anon_sym_and, anon_sym_u2227, ACTIONS(542), 2, anon_sym_or, anon_sym_u2228, ACTIONS(544), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(538), 3, anon_sym_end, anon_sym_RPAREN, anon_sym_RBRACE, ACTIONS(546), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(548), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(23), 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, [8168] = 3, ACTIONS(3), 1, sym_line_comment, STATE(23), 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(560), 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, [8197] = 3, ACTIONS(3), 1, sym_line_comment, STATE(28), 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(560), 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, [8226] = 3, ACTIONS(3), 1, sym_line_comment, STATE(28), 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(552), 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, [8255] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(566), 1, anon_sym_LPAREN, STATE(155), 1, sym__actual_arguments, ACTIONS(562), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(564), 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, anon_sym_u2205, [8287] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(413), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(411), 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, anon_sym_u2205, [8315] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(393), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(391), 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, anon_sym_u2205, [8343] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(381), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(379), 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, anon_sym_u2205, [8371] = 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, anon_sym_u2205, [8399] = 5, ACTIONS(3), 1, sym_line_comment, STATE(81), 1, sym__type_op_has_type, ACTIONS(568), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(409), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(407), 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, anon_sym_u2205, [8431] = 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, anon_sym_u2205, [8459] = 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, anon_sym_u2205, [8487] = 5, ACTIONS(3), 1, sym_line_comment, STATE(81), 1, sym__type_op_has_type, ACTIONS(568), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(225), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(227), 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, anon_sym_u2205, [8519] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(79), 1, anon_sym_LT, ACTIONS(297), 1, anon_sym_COLON, ACTIONS(572), 1, anon_sym_as, STATE(183), 1, sym_iri, STATE(191), 1, sym__rename_import, ACTIONS(570), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [8555] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(409), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(407), 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, anon_sym_u2205, [8583] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(419), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(415), 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, anon_sym_u2205, [8610] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(389), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(387), 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, anon_sym_u2205, [8637] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(574), 1, anon_sym_RBRACE, ACTIONS(582), 1, anon_sym_explicitTimezone, ACTIONS(584), 1, anon_sym_pattern, ACTIONS(578), 2, anon_sym_fractionDigits, anon_sym_totalDigits, ACTIONS(576), 3, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, ACTIONS(580), 4, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, STATE(168), 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, [8674] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(415), 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, [8699] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(397), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(395), 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, anon_sym_u2205, [8726] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(405), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(403), 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, anon_sym_u2205, [8753] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, STATE(158), 1, sym__actual_arguments, ACTIONS(586), 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, [8782] = 11, ACTIONS(3), 1, sym_line_comment, ACTIONS(77), 1, sym_quoted_string, ACTIONS(79), 1, anon_sym_LT, ACTIONS(81), 1, anon_sym_POUND_LBRACK, STATE(524), 1, sym_simple_value, ACTIONS(83), 2, sym_double, sym_rational, ACTIONS(87), 2, anon_sym_true, anon_sym_u22a4, ACTIONS(89), 2, anon_sym_false, anon_sym_u22a5, STATE(14), 2, sym_boolean_truth, sym_boolean_falsity, ACTIONS(85), 3, sym_decimal, sym_integer, sym_unsigned, STATE(8), 4, sym_string, sym_iri, sym_binary, sym_boolean, [8825] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, STATE(158), 1, sym__actual_arguments, ACTIONS(590), 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, [8854] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(596), 1, sym_controlled_language_tag, ACTIONS(592), 2, sym_identifier, anon_sym_AT, ACTIONS(594), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [8883] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(598), 1, anon_sym_end, ACTIONS(540), 2, anon_sym_and, anon_sym_u2227, ACTIONS(542), 2, anon_sym_or, anon_sym_u2228, ACTIONS(544), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(546), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(548), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(23), 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, [8920] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(600), 1, anon_sym_RPAREN, ACTIONS(540), 2, anon_sym_and, anon_sym_u2227, ACTIONS(542), 2, anon_sym_or, anon_sym_u2228, ACTIONS(544), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(546), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(548), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(23), 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, [8957] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(481), 1, anon_sym_COLON, ACTIONS(21), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(23), 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, anon_sym_u2205, [8986] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(602), 1, anon_sym_RBRACE, ACTIONS(613), 1, anon_sym_explicitTimezone, ACTIONS(616), 1, anon_sym_pattern, ACTIONS(607), 2, anon_sym_fractionDigits, anon_sym_totalDigits, ACTIONS(604), 3, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, ACTIONS(610), 4, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, STATE(168), 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, [9023] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(619), 1, anon_sym_end, ACTIONS(540), 2, anon_sym_and, anon_sym_u2227, ACTIONS(542), 2, anon_sym_or, anon_sym_u2228, ACTIONS(544), 2, anon_sym_xor, anon_sym_u22bb, ACTIONS(546), 3, anon_sym_implies, anon_sym_EQ_EQ_GT, anon_sym_u21d2, ACTIONS(548), 3, anon_sym_iff, anon_sym_LT_EQ_EQ_GT, anon_sym_u21d4, STATE(23), 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, [9060] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(352), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(350), 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, anon_sym_u2205, [9087] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(623), 1, anon_sym_import, ACTIONS(626), 1, anon_sym_from, STATE(542), 1, sym_from_clause, STATE(171), 2, sym_import_statement, aux_sym_module_body_repeat1, ACTIONS(621), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9119] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(229), 1, anon_sym_LPAREN, ACTIONS(629), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(631), 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, anon_sym_u2205, [9147] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(633), 1, sym_identifier, ACTIONS(635), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [9173] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [9199] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [9225] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [9251] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(649), 1, sym_identifier, ACTIONS(651), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, anon_sym_u2192, anon_sym_DASH_GT, [9277] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(582), 1, anon_sym_explicitTimezone, ACTIONS(584), 1, anon_sym_pattern, ACTIONS(578), 2, anon_sym_fractionDigits, anon_sym_totalDigits, ACTIONS(576), 3, anon_sym_length, anon_sym_maxLength, anon_sym_minLength, ACTIONS(580), 4, anon_sym_maxExclusive, anon_sym_maxInclusive, anon_sym_minExclusive, anon_sym_minInclusive, STATE(157), 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, [9311] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(653), 1, sym_identifier, ACTIONS(655), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [9337] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(657), 1, sym_identifier, ACTIONS(659), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_identity, anon_sym_ref, [9363] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9388] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, ACTIONS(665), 1, anon_sym_EQ, STATE(106), 1, sym__actual_arguments, ACTIONS(667), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(669), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(671), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(673), 2, anon_sym_GT_EQ, anon_sym_u2265, ACTIONS(554), 3, anon_sym_is, anon_sym_end, anon_sym_def, STATE(58), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [9427] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(572), 1, anon_sym_as, STATE(193), 1, sym__rename_import, ACTIONS(675), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9454] = 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, [9477] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(679), 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, [9500] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(681), 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, [9523] = 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, [9546] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(683), 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, [9569] = 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, [9592] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(685), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(687), 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, anon_sym_u2205, [9617] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(689), 1, sym_identifier, ACTIONS(691), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9642] = 5, ACTIONS(3), 1, sym_line_comment, STATE(81), 1, sym__type_op_has_type, ACTIONS(568), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(693), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(695), 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, [9671] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(697), 1, sym_identifier, ACTIONS(699), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9696] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(629), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(631), 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, anon_sym_u2205, [9721] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(701), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(703), 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, anon_sym_u2205, [9746] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(705), 1, sym_identifier, ACTIONS(707), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9771] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(709), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(711), 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, anon_sym_u2205, [9796] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(713), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(715), 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, anon_sym_u2205, [9821] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(572), 1, anon_sym_as, STATE(181), 1, sym__rename_import, ACTIONS(717), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9848] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, ACTIONS(665), 1, anon_sym_EQ, STATE(96), 1, sym__actual_arguments, ACTIONS(554), 2, anon_sym_is, anon_sym_def, ACTIONS(667), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(669), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(671), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(673), 2, anon_sym_GT_EQ, anon_sym_u2265, STATE(58), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [9886] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(719), 1, sym_identifier, ACTIONS(721), 15, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [9910] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(723), 1, sym_identifier, ACTIONS(725), 15, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_parent, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [9934] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(727), 1, anon_sym_is, ACTIONS(731), 1, anon_sym_from, ACTIONS(733), 1, anon_sym_LPAREN, STATE(236), 1, sym_from_definition_clause, STATE(299), 1, sym_type_class_body, ACTIONS(729), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [9966] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(735), 1, sym_identifier, ACTIONS(737), 1, anon_sym_is, STATE(223), 1, sym_annotation_only_body, ACTIONS(739), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [9994] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, STATE(233), 1, sym_rdf_types, STATE(316), 1, sym_annotation_only_body, ACTIONS(743), 2, anon_sym_a, anon_sym_type, ACTIONS(741), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10024] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(745), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10045] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 1, anon_sym_from, ACTIONS(749), 1, anon_sym_of, STATE(243), 1, sym_from_definition_clause, STATE(269), 1, sym_enum_body, ACTIONS(747), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10074] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 1, anon_sym_from, ACTIONS(751), 1, anon_sym_is, STATE(240), 1, sym_from_definition_clause, STATE(268), 1, sym_event_body, ACTIONS(753), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10103] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(755), 1, sym_identifier, ACTIONS(757), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [10126] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, ACTIONS(761), 1, anon_sym_LBRACE, STATE(228), 1, sym_datatype_def_restriction, STATE(271), 1, sym_annotation_only_body, ACTIONS(759), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10155] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(763), 1, sym_identifier, ACTIONS(765), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [10178] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(767), 1, sym_identifier, ACTIONS(769), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [10201] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(229), 1, anon_sym_LPAREN, ACTIONS(693), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(695), 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, [10226] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(727), 1, anon_sym_is, ACTIONS(731), 1, anon_sym_from, STATE(230), 1, sym_from_definition_clause, STATE(302), 1, sym_type_class_body, ACTIONS(771), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10255] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(773), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10276] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 1, anon_sym_from, ACTIONS(775), 1, anon_sym_is, STATE(235), 1, sym_from_definition_clause, STATE(295), 1, sym_structure_body, ACTIONS(777), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10305] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(779), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10326] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 1, anon_sym_from, ACTIONS(781), 1, anon_sym_is, STATE(239), 1, sym_from_definition_clause, STATE(313), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10355] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, ACTIONS(761), 1, anon_sym_LBRACE, STATE(227), 1, sym_datatype_def_restriction, STATE(294), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10384] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 1, anon_sym_from, ACTIONS(789), 1, anon_sym_of, STATE(238), 1, sym_from_definition_clause, STATE(301), 1, sym_union_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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10413] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(731), 1, anon_sym_from, ACTIONS(791), 1, anon_sym_is, STATE(242), 1, sym_from_definition_clause, STATE(265), 1, sym_entity_body, ACTIONS(793), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10442] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(795), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10463] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(797), 1, sym_identifier, ACTIONS(799), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, anon_sym_ref, [10485] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(693), 4, sym_identifier, sym_decimal, sym_integer, sym_unsigned, ACTIONS(695), 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, [10507] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, ACTIONS(665), 1, anon_sym_EQ, STATE(104), 1, sym__actual_arguments, ACTIONS(667), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(669), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(671), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(673), 2, anon_sym_GT_EQ, anon_sym_u2265, STATE(58), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [10541] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, ACTIONS(665), 1, anon_sym_EQ, STATE(96), 1, sym__actual_arguments, ACTIONS(667), 2, anon_sym_SLASH_EQ, anon_sym_u2260, ACTIONS(669), 2, sym_op_less_than, sym_op_greater_than, ACTIONS(671), 2, anon_sym_LT_EQ, anon_sym_u2264, ACTIONS(673), 2, anon_sym_GT_EQ, anon_sym_u2265, STATE(58), 3, sym_op_inequality, sym_op_less_than_or_equal, sym_op_greater_than_or_equal, [10575] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, STATE(273), 1, sym_annotation_only_body, ACTIONS(801), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10598] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, STATE(307), 1, sym_annotation_only_body, ACTIONS(803), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10621] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(805), 1, sym_identifier, ACTIONS(807), 1, anon_sym_end, ACTIONS(809), 1, anon_sym_ref, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(353), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [10656] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(727), 1, anon_sym_is, STATE(266), 1, sym_type_class_body, ACTIONS(811), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10679] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(813), 13, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10698] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(815), 13, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10717] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, STATE(274), 1, sym_annotation_only_body, ACTIONS(817), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10740] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(819), 1, anon_sym_end, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(229), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(354), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [10775] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(775), 1, anon_sym_is, STATE(279), 1, sym_structure_body, ACTIONS(821), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10798] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(727), 1, anon_sym_is, STATE(283), 1, sym_type_class_body, ACTIONS(823), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10821] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(825), 13, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10840] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(789), 1, anon_sym_of, STATE(286), 1, sym_union_body, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10863] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(781), 1, anon_sym_is, STATE(293), 1, sym_dimension_body, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10886] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(751), 1, anon_sym_is, STATE(308), 1, sym_event_body, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10909] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(833), 13, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10928] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(791), 1, anon_sym_is, STATE(304), 1, sym_entity_body, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10951] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(749), 1, anon_sym_of, STATE(306), 1, sym_enum_body, 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10974] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(839), 13, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [10993] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(841), 13, anon_sym_is, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_of, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11012] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(843), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11030] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(845), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11048] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(847), 1, sym_identifier, ACTIONS(849), 1, anon_sym_end, STATE(101), 1, sym_qualified_identifier, STATE(399), 1, sym_identifier_reference, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(263), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(362), 2, sym_type_variant, aux_sym_union_body_repeat1, [11082] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(851), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11100] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(853), 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11118] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(855), 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, [11136] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(857), 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, [11154] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(859), 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, [11172] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(861), 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, [11190] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(863), 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, [11208] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(865), 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, [11226] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(867), 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, [11244] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(869), 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, [11262] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(871), 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, [11280] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(873), 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, [11298] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(875), 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, [11316] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(877), 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, [11334] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(847), 1, sym_identifier, ACTIONS(879), 1, anon_sym_end, STATE(101), 1, sym_qualified_identifier, STATE(399), 1, sym_identifier_reference, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(367), 2, sym_type_variant, aux_sym_union_body_repeat1, [11368] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11385] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11402] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11419] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11436] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11453] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11470] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11487] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11504] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11521] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11538] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11555] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11572] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11589] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(907), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11606] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11623] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11640] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11657] = 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_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11674] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(917), 1, anon_sym_end, ACTIONS(919), 1, anon_sym_def, STATE(334), 1, sym_function_signature, STATE(394), 1, aux_sym_type_class_body_repeat1, STATE(510), 1, sym_method_def, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, [11707] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(921), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11724] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(923), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11741] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(925), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11758] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(927), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11775] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(929), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11792] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(931), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11809] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(933), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11826] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(935), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11843] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(937), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11860] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(939), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11877] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(941), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11894] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(943), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11911] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(945), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11928] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(919), 1, anon_sym_def, ACTIONS(947), 1, anon_sym_end, STATE(334), 1, sym_function_signature, STATE(392), 1, aux_sym_type_class_body_repeat1, STATE(510), 1, sym_method_def, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(282), 2, sym_annotation, aux_sym_module_body_repeat2, [11961] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(949), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11978] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(951), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [11995] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(953), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12012] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(955), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12029] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(957), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12046] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(959), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12063] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(961), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12080] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(963), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12097] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(965), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12114] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(967), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12131] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(969), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12148] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(971), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12165] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(973), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12182] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(975), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12199] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(977), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12216] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(979), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12233] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(981), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12250] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(983), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12267] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(985), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12284] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(987), 11, anon_sym_end, anon_sym_datatype, anon_sym_dimension, anon_sym_entity, anon_sym_enum, anon_sym_event, anon_sym_property, anon_sym_rdf, anon_sym_structure, anon_sym_class, anon_sym_union, [12301] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(989), 1, sym_identifier, ACTIONS(991), 1, anon_sym_end, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(412), 2, sym_value_variant, aux_sym_enum_body_repeat1, [12329] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(993), 1, anon_sym_end, ACTIONS(995), 1, anon_sym_parent, STATE(319), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(338), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12357] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(995), 1, anon_sym_parent, ACTIONS(997), 1, anon_sym_end, STATE(350), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(361), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(414), 2, sym_member_def, sym_property_ref, [12385] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(995), 1, anon_sym_parent, ACTIONS(999), 1, anon_sym_end, STATE(321), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(356), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12413] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(995), 1, anon_sym_parent, ACTIONS(1001), 1, anon_sym_end, STATE(358), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(361), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, STATE(414), 2, sym_member_def, sym_property_ref, [12441] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1003), 1, anon_sym_source, ACTIONS(1005), 1, anon_sym_identity, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(318), 2, sym_source_entity, sym_entity_identity, STATE(324), 2, sym_annotation, aux_sym_module_body_repeat2, [12469] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(989), 1, sym_identifier, ACTIONS(1007), 1, anon_sym_end, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(317), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(439), 2, sym_value_variant, aux_sym_enum_body_repeat1, [12497] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1003), 1, anon_sym_source, ACTIONS(1005), 1, anon_sym_identity, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(320), 2, sym_source_entity, sym_entity_identity, [12525] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(1009), 1, sym_identifier, STATE(433), 1, sym_sequence_ordering, STATE(438), 1, aux_sym_sequence_builder_repeat1, STATE(508), 1, sym_variable, STATE(536), 1, sym_sequence_uniqueness, ACTIONS(1011), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [12552] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(1015), 1, anon_sym_RBRACE, ACTIONS(1017), 1, sym_unsigned, STATE(377), 1, sym_sequence_ordering, STATE(445), 1, sym_sequence_uniqueness, STATE(562), 1, sym__cardinality_inner, ACTIONS(1011), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [12579] = 7, ACTIONS(3), 1, sym_line_comment, STATE(535), 1, sym_sequence_builder_body, STATE(545), 1, sym_quantified_variable_binding, STATE(557), 1, sym_quantified_sentence, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, [12604] = 7, ACTIONS(3), 1, sym_line_comment, STATE(545), 1, sym_quantified_variable_binding, STATE(557), 1, sym_quantified_sentence, STATE(575), 1, sym_sequence_builder_body, ACTIONS(93), 2, anon_sym_forall, anon_sym_u2200, ACTIONS(95), 2, anon_sym_exists, anon_sym_u2203, STATE(473), 2, sym_logical_quantifier_universal, sym_logical_quantifier_existential, [12629] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(1009), 1, sym_identifier, STATE(419), 1, aux_sym_sequence_builder_repeat1, STATE(433), 1, sym_sequence_ordering, STATE(508), 1, sym_variable, STATE(536), 1, sym_sequence_uniqueness, ACTIONS(1011), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [12656] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1003), 1, anon_sym_source, STATE(343), 1, sym_source_entity, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(331), 2, sym_annotation, aux_sym_module_body_repeat2, [12680] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1003), 1, anon_sym_source, STATE(360), 1, sym_source_entity, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, [12704] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1005), 1, anon_sym_identity, STATE(351), 1, sym_entity_identity, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(333), 2, sym_annotation, aux_sym_module_body_repeat2, [12728] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1005), 1, anon_sym_identity, STATE(337), 1, sym_entity_identity, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, [12752] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, STATE(19), 1, sym__function_op_by_definition, STATE(422), 1, sym_function_body, STATE(498), 1, sym_annotation_only_body, ACTIONS(1019), 2, anon_sym_end, anon_sym_def, ACTIONS(1021), 2, anon_sym_COLON_EQ, anon_sym_u2254, [12776] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, STATE(390), 1, sym_sequence_ordering, STATE(500), 1, sym_sequence_uniqueness, STATE(570), 1, sym__cardinality_inner, ACTIONS(1011), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [12800] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, sym_identifier, ACTIONS(481), 1, anon_sym_COLON, ACTIONS(23), 6, anon_sym_is, anon_sym_end, anon_sym_as, anon_sym_with, anon_sym_parent, anon_sym_ref, [12818] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1023), 1, anon_sym_end, STATE(342), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12839] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(997), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12860] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1025), 1, sym_identifier, ACTIONS(1027), 1, anon_sym_RBRACK, STATE(429), 1, sym_qualified_identifier, STATE(349), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [12879] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1029), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12900] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1031), 1, sym_identifier, ACTIONS(1033), 6, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [12915] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1035), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12936] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1037), 1, anon_sym_end, STATE(348), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [12957] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1039), 1, sym_identifier, ACTIONS(1041), 6, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [12972] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1043), 1, sym_identifier, ACTIONS(1045), 6, anon_sym_is, anon_sym_end, anon_sym_RPAREN, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [12987] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1025), 1, sym_identifier, ACTIONS(1047), 1, anon_sym_RBRACK, STATE(429), 1, sym_qualified_identifier, STATE(349), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [13006] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, ACTIONS(1049), 1, anon_sym_end, STATE(126), 2, sym_annotation, aux_sym_module_body_repeat2, STATE(173), 2, sym_annotation_property, sym_constraint, [13027] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1051), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13048] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1053), 1, sym_identifier, ACTIONS(1056), 1, anon_sym_RBRACK, STATE(429), 1, sym_qualified_identifier, STATE(349), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [13067] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1058), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13088] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1060), 1, anon_sym_end, STATE(340), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13109] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1062), 1, sym_identifier, STATE(468), 1, sym__type_op_has_type, ACTIONS(1066), 2, anon_sym_u2192, anon_sym_DASH_GT, ACTIONS(1064), 3, anon_sym_in, anon_sym_u2208, sym_set_op_builder, [13128] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1068), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13149] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(807), 1, anon_sym_end, ACTIONS(809), 1, anon_sym_ref, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13170] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1070), 1, sym_identifier, ACTIONS(1073), 1, anon_sym_end, ACTIONS(1075), 1, anon_sym_ref, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13191] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1001), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13212] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1078), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13233] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1080), 1, anon_sym_end, STATE(355), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13254] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(167), 1, anon_sym_LT, ACTIONS(481), 1, anon_sym_COLON, ACTIONS(570), 1, anon_sym_RBRACK, ACTIONS(1082), 1, sym_identifier, ACTIONS(1084), 1, anon_sym_as, STATE(191), 1, sym__rename_import, STATE(430), 1, sym_iri, [13279] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, ACTIONS(1086), 1, anon_sym_end, STATE(357), 2, sym_member, aux_sym_dimension_body_repeat2, STATE(414), 2, sym_member_def, sym_property_ref, [13300] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1088), 1, sym_identifier, ACTIONS(1092), 1, anon_sym_parent, ACTIONS(1090), 2, anon_sym_end, anon_sym_ref, STATE(361), 2, sym_dimension_parent, aux_sym_dimension_body_repeat1, [13318] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(847), 1, sym_identifier, ACTIONS(879), 1, anon_sym_end, STATE(101), 1, sym_qualified_identifier, STATE(399), 1, sym_identifier_reference, STATE(371), 2, sym_type_variant, aux_sym_union_body_repeat1, [13338] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(53), 1, anon_sym_LBRACE, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(370), 1, sym_type_parameter_restriction, STATE(384), 1, sym_identifier_reference, STATE(444), 1, sym_cardinality_reference_expression, [13360] = 5, ACTIONS(3), 1, sym_line_comment, STATE(433), 1, sym_sequence_ordering, STATE(536), 1, sym_sequence_uniqueness, ACTIONS(1011), 2, anon_sym_ordered, anon_sym_unordered, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [13378] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1097), 1, sym_identifier, ACTIONS(1099), 1, anon_sym_LBRACK, STATE(199), 1, sym_qualified_identifier, STATE(215), 3, sym__import, sym_member_import, sym_module_import, [13396] = 5, ACTIONS(3), 1, sym_line_comment, STATE(368), 1, aux_sym_type_parameter_repeat1, STATE(378), 1, sym_type_op_combiner, ACTIONS(1101), 2, sym_identifier, anon_sym_RPAREN, ACTIONS(1103), 2, anon_sym_PLUS, anon_sym_u2295, [13414] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(847), 1, sym_identifier, ACTIONS(1105), 1, anon_sym_end, STATE(101), 1, sym_qualified_identifier, STATE(399), 1, sym_identifier_reference, STATE(371), 2, sym_type_variant, aux_sym_union_body_repeat1, [13434] = 5, ACTIONS(3), 1, sym_line_comment, STATE(368), 1, aux_sym_type_parameter_repeat1, STATE(378), 1, sym_type_op_combiner, ACTIONS(1107), 2, sym_identifier, anon_sym_RPAREN, ACTIONS(1109), 2, anon_sym_PLUS, anon_sym_u2295, [13452] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 1, anon_sym_AT, ACTIONS(243), 1, anon_sym_assert, STATE(173), 2, sym_annotation_property, sym_constraint, STATE(347), 2, sym_annotation, aux_sym_module_body_repeat2, [13470] = 5, ACTIONS(3), 1, sym_line_comment, STATE(366), 1, aux_sym_type_parameter_repeat1, STATE(378), 1, sym_type_op_combiner, ACTIONS(1103), 2, anon_sym_PLUS, anon_sym_u2295, ACTIONS(1112), 2, sym_identifier, anon_sym_RPAREN, [13488] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1114), 1, sym_identifier, ACTIONS(1117), 1, anon_sym_end, STATE(101), 1, sym_qualified_identifier, STATE(399), 1, sym_identifier_reference, STATE(371), 2, sym_type_variant, aux_sym_union_body_repeat1, [13508] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1097), 1, sym_identifier, ACTIONS(1119), 1, anon_sym_LBRACK, STATE(199), 1, sym_qualified_identifier, STATE(222), 3, sym__import, sym_member_import, sym_module_import, [13526] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1025), 1, sym_identifier, STATE(429), 1, sym_qualified_identifier, STATE(346), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [13542] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, ACTIONS(1121), 1, sym_identifier, STATE(426), 1, sym_annotation_only_body, ACTIONS(1123), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13560] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1125), 1, anon_sym_is, ACTIONS(1127), 1, anon_sym_EQ, ACTIONS(1129), 1, anon_sym_with, STATE(581), 1, sym_constraint_environment, STATE(180), 2, sym_informal_constraint, sym_formal_constraint, [13580] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1025), 1, sym_identifier, STATE(429), 1, sym_qualified_identifier, STATE(339), 4, sym__import, sym_member_import, sym_module_import, aux_sym_import_statement_repeat1, [13596] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, ACTIONS(1131), 1, anon_sym_RBRACE, STATE(454), 1, sym_sequence_uniqueness, STATE(534), 1, sym__cardinality_inner, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [13616] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(53), 1, anon_sym_LBRACE, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(384), 1, sym_identifier_reference, STATE(423), 1, sym_type_parameter_restriction, STATE(444), 1, sym_cardinality_reference_expression, [13638] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(79), 1, anon_sym_LT, ACTIONS(1133), 1, anon_sym_is, STATE(505), 1, sym__module_locations, STATE(507), 1, sym_iri, STATE(554), 1, sym_module_body, [13657] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(919), 1, anon_sym_def, ACTIONS(1135), 1, anon_sym_is, STATE(437), 1, sym_function_signature, STATE(385), 2, sym_function_def, aux_sym_constraint_environment_repeat1, [13674] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1137), 1, sym_identifier, ACTIONS(1140), 1, anon_sym_RBRACK, STATE(5), 1, sym_qualified_identifier, STATE(381), 1, aux_sym_rdf_types_repeat1, STATE(506), 1, sym_identifier_reference, [13693] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1142), 1, sym_identifier, ACTIONS(1144), 1, anon_sym_COLON_COLON, STATE(571), 3, sym_module_path_root_only, sym_module_path_absolute, sym_module_path_relative, [13708] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1146), 1, anon_sym_LPAREN, STATE(11), 1, sym__type_op_has_type, STATE(402), 1, sym__function_type, ACTIONS(1148), 2, anon_sym_u2192, anon_sym_DASH_GT, [13725] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1152), 1, anon_sym_LPAREN, ACTIONS(1150), 4, sym_identifier, anon_sym_RPAREN, anon_sym_PLUS, anon_sym_u2295, [13738] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1154), 1, anon_sym_is, ACTIONS(1156), 1, anon_sym_def, STATE(437), 1, sym_function_signature, STATE(385), 2, sym_function_def, aux_sym_constraint_environment_repeat1, [13755] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1159), 1, sym_identifier, ACTIONS(1163), 1, anon_sym_with, ACTIONS(1161), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [13770] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1167), 1, sym_kw_is_fixed, STATE(260), 1, sym_tz_restriction_value, ACTIONS(1165), 3, anon_sym_required, anon_sym_prohibited, anon_sym_optional, [13785] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, ACTIONS(1169), 1, anon_sym_RBRACK, STATE(5), 1, sym_qualified_identifier, STATE(391), 1, aux_sym_rdf_types_repeat1, STATE(506), 1, sym_identifier_reference, [13804] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1173), 1, anon_sym_LPAREN, ACTIONS(1171), 4, sym_identifier, anon_sym_RPAREN, anon_sym_PLUS, anon_sym_u2295, [13817] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, STATE(485), 1, sym_sequence_uniqueness, STATE(532), 1, sym__cardinality_inner, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [13834] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, ACTIONS(1175), 1, anon_sym_RBRACK, STATE(5), 1, sym_qualified_identifier, STATE(381), 1, aux_sym_rdf_types_repeat1, STATE(506), 1, sym_identifier_reference, [13853] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(919), 1, anon_sym_def, ACTIONS(1177), 1, anon_sym_end, STATE(334), 1, sym_function_signature, STATE(395), 1, aux_sym_type_class_body_repeat1, STATE(510), 1, sym_method_def, [13872] = 4, ACTIONS(3), 1, sym_line_comment, STATE(363), 1, sym__type_op_type_restriction, ACTIONS(1179), 2, sym_identifier, anon_sym_RPAREN, ACTIONS(1181), 2, anon_sym_u2190, anon_sym_LT_DASH, [13887] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(919), 1, anon_sym_def, ACTIONS(1183), 1, anon_sym_end, STATE(334), 1, sym_function_signature, STATE(395), 1, aux_sym_type_class_body_repeat1, STATE(510), 1, sym_method_def, [13906] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(1185), 1, anon_sym_end, ACTIONS(1187), 1, anon_sym_def, STATE(334), 1, sym_function_signature, STATE(395), 1, aux_sym_type_class_body_repeat1, STATE(510), 1, sym_method_def, [13925] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(805), 1, sym_identifier, ACTIONS(809), 1, anon_sym_ref, STATE(406), 1, sym_member, STATE(414), 2, sym_member_def, sym_property_ref, [13942] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1192), 1, anon_sym_RPAREN, STATE(400), 1, aux_sym_type_parameter_restriction_repeat1, STATE(456), 1, sym_type_restriction_argument, ACTIONS(1190), 2, sym_identifier, sym_wildcard, [13959] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1194), 5, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [13970] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, ACTIONS(1196), 1, sym_identifier, ACTIONS(1198), 1, anon_sym_end, ACTIONS(1200), 1, anon_sym_as, STATE(488), 1, sym_annotation_only_body, [13989] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1205), 1, anon_sym_RPAREN, STATE(400), 1, aux_sym_type_parameter_restriction_repeat1, STATE(456), 1, sym_type_restriction_argument, ACTIONS(1202), 2, sym_identifier, sym_wildcard, [14006] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1207), 1, anon_sym_RPAREN, STATE(400), 1, aux_sym_type_parameter_restriction_repeat1, STATE(456), 1, sym_type_restriction_argument, ACTIONS(1190), 2, sym_identifier, sym_wildcard, [14023] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1209), 5, anon_sym_is, anon_sym_end, anon_sym_def, anon_sym_COLON_EQ, anon_sym_u2254, [14034] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1211), 1, sym_identifier, ACTIONS(1213), 1, anon_sym_RPAREN, STATE(425), 1, aux_sym_type_class_def_repeat1, STATE(484), 1, sym_type_parameter, [14050] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, ACTIONS(1215), 1, sym_identifier, ACTIONS(1217), 1, anon_sym_end, STATE(491), 1, sym_annotation_only_body, [14066] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1219), 1, sym_identifier, ACTIONS(1221), 3, anon_sym_in, anon_sym_u2208, sym_set_op_builder, [14078] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1223), 1, sym_identifier, ACTIONS(1225), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [14090] = 4, ACTIONS(3), 1, sym_line_comment, STATE(11), 1, sym__type_op_has_type, STATE(493), 1, sym__function_type, ACTIONS(1148), 2, anon_sym_u2192, anon_sym_DASH_GT, [14104] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1227), 1, sym_identifier, ACTIONS(1229), 1, anon_sym_RPAREN, STATE(418), 1, aux_sym_function_signature_repeat1, STATE(483), 1, sym_function_parameter, [14120] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1231), 1, sym_identifier, ACTIONS(1233), 1, anon_sym_LBRACK, ACTIONS(1235), 1, sym_wildcard, STATE(231), 1, sym__wildcard_or_identifier_or_sequence, [14136] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1237), 1, sym_identifier, ACTIONS(1239), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [14148] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(919), 1, anon_sym_def, STATE(437), 1, sym_function_signature, STATE(380), 2, sym_function_def, aux_sym_constraint_environment_repeat1, [14162] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(989), 1, sym_identifier, ACTIONS(1241), 1, anon_sym_end, STATE(413), 2, sym_value_variant, aux_sym_enum_body_repeat1, [14176] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1243), 1, sym_identifier, ACTIONS(1246), 1, anon_sym_end, STATE(413), 2, sym_value_variant, aux_sym_enum_body_repeat1, [14190] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1248), 1, sym_identifier, ACTIONS(1250), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [14202] = 4, ACTIONS(3), 1, sym_line_comment, STATE(397), 1, aux_sym_type_parameter_restriction_repeat1, STATE(456), 1, sym_type_restriction_argument, ACTIONS(1190), 2, sym_identifier, sym_wildcard, [14216] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, ACTIONS(1252), 1, sym_identifier, ACTIONS(1254), 1, anon_sym_end, STATE(502), 1, sym_annotation_only_body, [14232] = 4, ACTIONS(3), 1, sym_line_comment, STATE(11), 1, sym__type_op_has_type, STATE(398), 1, sym__function_type, ACTIONS(1148), 2, anon_sym_u2192, anon_sym_DASH_GT, [14246] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1256), 1, sym_identifier, ACTIONS(1259), 1, anon_sym_RPAREN, STATE(418), 1, aux_sym_function_signature_repeat1, STATE(483), 1, sym_function_parameter, [14262] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1261), 1, sym_identifier, ACTIONS(1263), 1, sym_set_op_builder, STATE(434), 1, aux_sym_sequence_builder_repeat1, STATE(508), 1, sym_variable, [14278] = 3, ACTIONS(3), 1, sym_line_comment, STATE(259), 1, sym_tz_restriction_value, ACTIONS(1165), 3, anon_sym_required, anon_sym_prohibited, anon_sym_optional, [14290] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1265), 1, sym_identifier, ACTIONS(1267), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [14302] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(737), 1, anon_sym_is, STATE(492), 1, sym_annotation_only_body, ACTIONS(1269), 2, anon_sym_end, anon_sym_def, [14316] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1107), 4, sym_identifier, anon_sym_RPAREN, anon_sym_PLUS, anon_sym_u2295, [14326] = 4, ACTIONS(3), 1, sym_line_comment, STATE(401), 1, aux_sym_type_parameter_restriction_repeat1, STATE(456), 1, sym_type_restriction_argument, ACTIONS(1190), 2, sym_identifier, sym_wildcard, [14340] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1271), 1, sym_identifier, ACTIONS(1274), 1, anon_sym_RPAREN, STATE(425), 1, aux_sym_type_class_def_repeat1, STATE(484), 1, sym_type_parameter, [14356] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1276), 1, sym_identifier, ACTIONS(1278), 3, anon_sym_end, anon_sym_parent, anon_sym_ref, [14368] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1280), 4, sym_identifier, anon_sym_RPAREN, anon_sym_PLUS, anon_sym_u2295, [14378] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1282), 4, sym_identifier, anon_sym_RPAREN, anon_sym_PLUS, anon_sym_u2295, [14388] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(717), 1, anon_sym_RBRACK, ACTIONS(1084), 1, anon_sym_as, ACTIONS(1284), 1, sym_identifier, STATE(181), 1, sym__rename_import, [14404] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(675), 1, anon_sym_RBRACK, ACTIONS(1084), 1, anon_sym_as, ACTIONS(1286), 1, sym_identifier, STATE(193), 1, sym__rename_import, [14420] = 4, ACTIONS(3), 1, sym_line_comment, STATE(6), 1, sym__type_op_has_type, STATE(204), 1, sym__type_expression_to, ACTIONS(1288), 2, anon_sym_u2192, anon_sym_DASH_GT, [14434] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1290), 4, anon_sym_RBRACE, sym_unsigned, anon_sym_unique, anon_sym_nonunique, [14444] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1292), 1, anon_sym_RBRACE, STATE(519), 1, sym_sequence_uniqueness, ACTIONS(1013), 2, anon_sym_unique, anon_sym_nonunique, [14458] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1294), 1, sym_identifier, ACTIONS(1297), 1, sym_set_op_builder, STATE(434), 1, aux_sym_sequence_builder_repeat1, STATE(508), 1, sym_variable, [14474] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, ACTIONS(1299), 1, anon_sym_LBRACK, STATE(5), 1, sym_qualified_identifier, STATE(247), 1, sym_identifier_reference, [14490] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1301), 1, anon_sym_with, ACTIONS(1303), 1, anon_sym_without, STATE(237), 2, sym_from_definition_with, sym_from_definition_without, [14504] = 4, ACTIONS(3), 1, sym_line_comment, STATE(24), 1, sym__function_op_by_definition, STATE(511), 1, sym_function_body, ACTIONS(1305), 2, anon_sym_COLON_EQ, anon_sym_u2254, [14518] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(1261), 1, sym_identifier, ACTIONS(1307), 1, sym_set_op_builder, STATE(434), 1, aux_sym_sequence_builder_repeat1, STATE(508), 1, sym_variable, [14534] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(989), 1, sym_identifier, ACTIONS(991), 1, anon_sym_end, STATE(413), 2, sym_value_variant, aux_sym_enum_body_repeat1, [14548] = 3, ACTIONS(3), 1, sym_line_comment, STATE(55), 1, sym_set_op_membership, ACTIONS(1309), 2, anon_sym_in, anon_sym_u2208, [14559] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1311), 1, sym_identifier, ACTIONS(1313), 1, anon_sym_RBRACK, STATE(453), 1, aux_sym__wildcard_or_identifier_or_sequence_repeat1, [14572] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1311), 1, sym_identifier, ACTIONS(1315), 1, anon_sym_RBRACK, STATE(453), 1, aux_sym__wildcard_or_identifier_or_sequence_repeat1, [14585] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(421), 1, sym_identifier_reference, [14598] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(389), 1, sym_identifier_reference, [14611] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, ACTIONS(1317), 1, anon_sym_RBRACE, STATE(569), 1, sym__cardinality_inner, [14624] = 3, ACTIONS(3), 1, sym_line_comment, STATE(17), 1, sym__type_op_has_type, ACTIONS(1319), 2, anon_sym_u2192, anon_sym_DASH_GT, [14635] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1321), 1, anon_sym_import, ACTIONS(1323), 1, anon_sym_COLON_COLON2, STATE(447), 1, aux_sym_module_path_absolute_repeat1, [14648] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1326), 1, anon_sym_RBRACE, ACTIONS(1328), 1, anon_sym_DOT_DOT, STATE(572), 1, sym_cardinality_range, [14661] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(436), 1, sym_identifier_reference, [14674] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(550), 1, sym_identifier_reference, [14687] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(588), 1, anon_sym_LPAREN, ACTIONS(1330), 1, anon_sym_COMMA, STATE(158), 1, sym__actual_arguments, [14700] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1332), 1, anon_sym_LBRACK, ACTIONS(1334), 1, anon_sym_u2205, STATE(54), 1, sym__value_empty_sequence, [14713] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1336), 1, sym_identifier, ACTIONS(1339), 1, anon_sym_RBRACK, STATE(453), 1, aux_sym__wildcard_or_identifier_or_sequence_repeat1, [14726] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, ACTIONS(1341), 1, anon_sym_RBRACE, STATE(558), 1, sym__cardinality_inner, [14739] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1343), 3, sym_identifier, anon_sym_RPAREN, sym_wildcard, [14748] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1345), 3, sym_identifier, anon_sym_RPAREN, sym_wildcard, [14757] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1347), 1, anon_sym_import, ACTIONS(1349), 1, anon_sym_COLON_COLON2, STATE(476), 1, aux_sym_module_path_absolute_repeat1, [14770] = 3, ACTIONS(3), 1, sym_line_comment, STATE(25), 1, sym__type_op_type_restriction, ACTIONS(1351), 2, anon_sym_u2190, anon_sym_LT_DASH, [14781] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1353), 1, anon_sym_RBRACK, ACTIONS(1355), 1, sym_quoted_string, STATE(462), 1, aux_sym_pattern_restriction_facet_repeat1, [14794] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1357), 1, sym_identifier, STATE(101), 1, sym_qualified_identifier, STATE(386), 1, sym_identifier_reference, [14807] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(79), 1, anon_sym_LT, ACTIONS(1359), 1, sym_quoted_string, STATE(531), 1, sym_iri, [14820] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1361), 1, anon_sym_RBRACK, ACTIONS(1363), 1, sym_quoted_string, STATE(462), 1, aux_sym_pattern_restriction_facet_repeat1, [14833] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1349), 1, anon_sym_COLON_COLON2, ACTIONS(1366), 1, anon_sym_import, STATE(447), 1, aux_sym_module_path_absolute_repeat1, [14846] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1368), 1, anon_sym_RBRACK, ACTIONS(1370), 1, sym_hex_byte, STATE(464), 1, aux_sym_binary_repeat1, [14859] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1332), 1, anon_sym_LBRACK, ACTIONS(1334), 1, anon_sym_u2205, STATE(54), 1, sym__value_empty_sequence, [14872] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1373), 1, sym_identifier, ACTIONS(1375), 1, anon_sym_LBRACK, STATE(241), 1, sym__identifier_or_sequence, [14885] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1377), 1, anon_sym_LBRACK, ACTIONS(1379), 1, anon_sym_u2205, STATE(147), 1, sym__value_empty_sequence, [14898] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(405), 1, sym_identifier_reference, [14911] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1381), 1, anon_sym_RBRACK, ACTIONS(1383), 1, sym_hex_byte, STATE(464), 1, aux_sym_binary_repeat1, [14924] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1385), 1, anon_sym_LBRACK, ACTIONS(1387), 1, anon_sym_u2205, STATE(86), 1, sym__value_empty_sequence, [14937] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1227), 1, sym_identifier, STATE(408), 1, aux_sym_function_signature_repeat1, STATE(483), 1, sym_function_parameter, [14950] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1095), 1, sym_identifier, STATE(5), 1, sym_qualified_identifier, STATE(374), 1, sym_identifier_reference, [14963] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1261), 1, sym_identifier, STATE(440), 1, sym_variable, STATE(551), 1, sym_quantified_variable, [14976] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1383), 1, sym_hex_byte, ACTIONS(1389), 1, anon_sym_RBRACK, STATE(475), 1, aux_sym_binary_repeat1, [14989] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1383), 1, sym_hex_byte, ACTIONS(1391), 1, anon_sym_RBRACK, STATE(464), 1, aux_sym_binary_repeat1, [15002] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1349), 1, anon_sym_COLON_COLON2, ACTIONS(1393), 1, anon_sym_import, STATE(447), 1, aux_sym_module_path_absolute_repeat1, [15015] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1373), 1, sym_identifier, ACTIONS(1375), 1, anon_sym_LBRACK, STATE(410), 1, sym__identifier_or_sequence, [15028] = 3, ACTIONS(3), 1, sym_line_comment, STATE(472), 1, sym__type_op_has_type, ACTIONS(1395), 2, anon_sym_u2192, anon_sym_DASH_GT, [15039] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1349), 1, anon_sym_COLON_COLON2, ACTIONS(1397), 1, anon_sym_import, STATE(463), 1, aux_sym_module_path_absolute_repeat1, [15052] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1211), 1, sym_identifier, STATE(403), 1, aux_sym_type_class_def_repeat1, STATE(484), 1, sym_type_parameter, [15065] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(1383), 1, sym_hex_byte, ACTIONS(1399), 1, anon_sym_RBRACK, STATE(469), 1, aux_sym_binary_repeat1, [15078] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1401), 1, sym_unsigned, ACTIONS(1403), 1, sym_kw_is_fixed, [15088] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1405), 2, sym_identifier, anon_sym_RPAREN, [15096] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1407), 2, sym_identifier, anon_sym_RPAREN, [15104] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, STATE(540), 1, sym__cardinality_inner, [15114] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1409), 2, sym_identifier, anon_sym_LBRACE, [15122] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1411), 1, sym_identifier, ACTIONS(1413), 1, anon_sym_import, [15132] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1415), 1, sym_identifier, ACTIONS(1417), 1, anon_sym_end, [15142] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1419), 2, anon_sym_import, anon_sym_COLON_COLON2, [15150] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1311), 1, sym_identifier, STATE(442), 1, aux_sym__wildcard_or_identifier_or_sequence_repeat1, [15160] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1421), 1, sym_identifier, ACTIONS(1423), 1, anon_sym_end, [15170] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1425), 2, anon_sym_end, anon_sym_def, [15178] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1427), 2, sym_identifier, anon_sym_RPAREN, [15186] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1429), 1, sym_identifier, STATE(270), 1, sym_member_def, [15196] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1431), 2, anon_sym_LBRACK, anon_sym_u2205, [15204] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1433), 1, sym_unsigned, ACTIONS(1435), 1, sym_kw_is_fixed, [15214] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1437), 2, anon_sym_LBRACK, anon_sym_u2205, [15222] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1439), 2, anon_sym_end, anon_sym_def, [15230] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1441), 2, anon_sym_RBRACE, sym_unsigned, [15238] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1017), 1, sym_unsigned, STATE(580), 1, sym__cardinality_inner, [15248] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1443), 2, anon_sym_RBRACK, sym_identifier, [15256] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1445), 1, sym_identifier, ACTIONS(1447), 1, anon_sym_end, [15266] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1449), 2, anon_sym_RBRACK, sym_hex_byte, [15274] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1451), 2, anon_sym_LBRACK, anon_sym_u2205, [15282] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1133), 1, anon_sym_is, STATE(577), 1, sym_module_body, [15292] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1453), 2, anon_sym_RBRACK, sym_identifier, [15300] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1455), 1, anon_sym_version, ACTIONS(1457), 1, anon_sym_is, [15310] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1459), 2, sym_identifier, sym_set_op_builder, [15318] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1461), 1, sym_quoted_string, STATE(459), 1, aux_sym_pattern_restriction_facet_repeat1, [15328] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1463), 2, anon_sym_end, anon_sym_def, [15336] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1465), 2, anon_sym_is, anon_sym_def, [15344] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1467), 1, anon_sym_RBRACE, ACTIONS(1469), 1, sym_unsigned, [15354] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(79), 1, anon_sym_LT, STATE(537), 1, sym_iri, [15364] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1311), 1, sym_identifier, STATE(441), 1, aux_sym__wildcard_or_identifier_or_sequence_repeat1, [15374] = 3, ACTIONS(3), 1, sym_line_comment, ACTIONS(1471), 1, anon_sym_LBRACK, ACTIONS(1473), 1, sym_quoted_string, [15384] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1475), 1, sym_unsigned, [15391] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1477), 1, anon_sym_RBRACE, [15398] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1479), 1, sym_identifier, [15405] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1481), 1, anon_sym_RBRACE, [15412] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1483), 1, sym_identifier, [15419] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1485), 1, ts_builtin_sym_end, [15426] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1487), 1, ts_builtin_sym_end, [15433] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1489), 1, sym_identifier, [15440] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1491), 1, anon_sym_RPAREN, [15447] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1493), 1, ts_builtin_sym_end, [15454] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1495), 1, sym_identifier, [15461] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1497), 1, sym_identifier, [15468] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1499), 1, sym_identifier, [15475] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1501), 1, sym_identifier, [15482] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1503), 1, sym_identifier, [15489] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1505), 1, anon_sym_is, [15496] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1507), 1, anon_sym_RBRACE, [15503] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1509), 1, sym_identifier, [15510] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1511), 1, anon_sym_RBRACE, [15517] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1513), 1, anon_sym_RBRACE, [15524] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1515), 1, anon_sym_RBRACE, [15531] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1517), 1, anon_sym_is, [15538] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1519), 1, sym_identifier, [15545] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1521), 1, sym_identifier, [15552] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1523), 1, anon_sym_RBRACE, [15559] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1525), 1, sym_unsigned, [15566] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1527), 1, anon_sym_import, [15573] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1529), 1, sym_quoted_string, [15580] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1531), 1, ts_builtin_sym_end, [15587] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1533), 1, anon_sym_COMMA, [15594] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1535), 1, ts_builtin_sym_end, [15601] = 2, ACTIONS(1537), 1, aux_sym_iri_token1, ACTIONS(1539), 1, sym_line_comment, [15608] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1541), 1, sym_identifier, [15615] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(229), 1, anon_sym_LPAREN, [15622] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1543), 1, anon_sym_EQ, [15629] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1545), 1, anon_sym_COMMA, [15636] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1547), 1, anon_sym_RPAREN, [15643] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1549), 1, sym_identifier, [15650] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1551), 1, ts_builtin_sym_end, [15657] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1553), 1, anon_sym_GT, [15664] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1555), 1, sym_identifier, [15671] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1557), 1, anon_sym_RBRACE, [15678] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1559), 1, anon_sym_RBRACE, [15685] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1561), 1, sym_identifier, [15692] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1563), 1, anon_sym_EQ, [15699] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1565), 1, anon_sym_EQ, [15706] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1567), 1, anon_sym_RBRACE, [15713] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1569), 1, anon_sym_EQ, [15720] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1571), 1, sym_identifier, [15727] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1573), 1, anon_sym_EQ, [15734] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1575), 1, anon_sym_EQ, [15741] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1577), 1, sym_identifier, [15748] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1579), 1, sym_identifier, [15755] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1581), 1, anon_sym_RBRACE, [15762] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1583), 1, anon_sym_RBRACE, [15769] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1585), 1, anon_sym_import, [15776] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1587), 1, anon_sym_RBRACE, [15783] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1589), 1, sym_identifier, [15790] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1591), 1, anon_sym_GT, [15797] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1593), 1, anon_sym_RBRACE, [15804] = 2, ACTIONS(1539), 1, sym_line_comment, ACTIONS(1595), 1, aux_sym_iri_token1, [15811] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1597), 1, ts_builtin_sym_end, [15818] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1599), 1, anon_sym_COMMA, [15825] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1601), 1, sym_identifier, [15832] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1603), 1, anon_sym_RBRACE, [15839] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1605), 1, anon_sym_is, [15846] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1607), 1, sym_identifier, [15853] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(1609), 1, sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 69, [SMALL_STATE(4)] = 138, [SMALL_STATE(5)] = 206, [SMALL_STATE(6)] = 272, [SMALL_STATE(7)] = 356, [SMALL_STATE(8)] = 421, [SMALL_STATE(9)] = 486, [SMALL_STATE(10)] = 551, [SMALL_STATE(11)] = 616, [SMALL_STATE(12)] = 697, [SMALL_STATE(13)] = 762, [SMALL_STATE(14)] = 827, [SMALL_STATE(15)] = 892, [SMALL_STATE(16)] = 970, [SMALL_STATE(17)] = 1048, [SMALL_STATE(18)] = 1126, [SMALL_STATE(19)] = 1201, [SMALL_STATE(20)] = 1325, [SMALL_STATE(21)] = 1449, [SMALL_STATE(22)] = 1573, [SMALL_STATE(23)] = 1697, [SMALL_STATE(24)] = 1821, [SMALL_STATE(25)] = 1945, [SMALL_STATE(26)] = 2017, [SMALL_STATE(27)] = 2141, [SMALL_STATE(28)] = 2265, [SMALL_STATE(29)] = 2389, [SMALL_STATE(30)] = 2513, [SMALL_STATE(31)] = 2637, [SMALL_STATE(32)] = 2706, [SMALL_STATE(33)] = 2760, [SMALL_STATE(34)] = 2814, [SMALL_STATE(35)] = 2868, [SMALL_STATE(36)] = 2922, [SMALL_STATE(37)] = 2976, [SMALL_STATE(38)] = 3029, [SMALL_STATE(39)] = 3082, [SMALL_STATE(40)] = 3135, [SMALL_STATE(41)] = 3188, [SMALL_STATE(42)] = 3241, [SMALL_STATE(43)] = 3294, [SMALL_STATE(44)] = 3347, [SMALL_STATE(45)] = 3400, [SMALL_STATE(46)] = 3447, [SMALL_STATE(47)] = 3531, [SMALL_STATE(48)] = 3615, [SMALL_STATE(49)] = 3699, [SMALL_STATE(50)] = 3783, [SMALL_STATE(51)] = 3867, [SMALL_STATE(52)] = 3912, [SMALL_STATE(53)] = 3954, [SMALL_STATE(54)] = 4034, [SMALL_STATE(55)] = 4076, [SMALL_STATE(56)] = 4154, [SMALL_STATE(57)] = 4196, [SMALL_STATE(58)] = 4274, [SMALL_STATE(59)] = 4352, [SMALL_STATE(60)] = 4432, [SMALL_STATE(61)] = 4474, [SMALL_STATE(62)] = 4516, [SMALL_STATE(63)] = 4558, [SMALL_STATE(64)] = 4600, [SMALL_STATE(65)] = 4642, [SMALL_STATE(66)] = 4723, [SMALL_STATE(67)] = 4772, [SMALL_STATE(68)] = 4853, [SMALL_STATE(69)] = 4934, [SMALL_STATE(70)] = 5015, [SMALL_STATE(71)] = 5096, [SMALL_STATE(72)] = 5177, [SMALL_STATE(73)] = 5258, [SMALL_STATE(74)] = 5339, [SMALL_STATE(75)] = 5420, [SMALL_STATE(76)] = 5466, [SMALL_STATE(77)] = 5512, [SMALL_STATE(78)] = 5558, [SMALL_STATE(79)] = 5604, [SMALL_STATE(80)] = 5679, [SMALL_STATE(81)] = 5754, [SMALL_STATE(82)] = 5829, [SMALL_STATE(83)] = 5867, [SMALL_STATE(84)] = 5934, [SMALL_STATE(85)] = 6001, [SMALL_STATE(86)] = 6037, [SMALL_STATE(87)] = 6073, [SMALL_STATE(88)] = 6109, [SMALL_STATE(89)] = 6145, [SMALL_STATE(90)] = 6181, [SMALL_STATE(91)] = 6217, [SMALL_STATE(92)] = 6253, [SMALL_STATE(93)] = 6289, [SMALL_STATE(94)] = 6325, [SMALL_STATE(95)] = 6361, [SMALL_STATE(96)] = 6397, [SMALL_STATE(97)] = 6434, [SMALL_STATE(98)] = 6496, [SMALL_STATE(99)] = 6558, [SMALL_STATE(100)] = 6620, [SMALL_STATE(101)] = 6682, [SMALL_STATE(102)] = 6716, [SMALL_STATE(103)] = 6750, [SMALL_STATE(104)] = 6812, [SMALL_STATE(105)] = 6847, [SMALL_STATE(106)] = 6906, [SMALL_STATE(107)] = 6941, [SMALL_STATE(108)] = 6973, [SMALL_STATE(109)] = 7005, [SMALL_STATE(110)] = 7061, [SMALL_STATE(111)] = 7093, [SMALL_STATE(112)] = 7125, [SMALL_STATE(113)] = 7157, [SMALL_STATE(114)] = 7189, [SMALL_STATE(115)] = 7229, [SMALL_STATE(116)] = 7282, [SMALL_STATE(117)] = 7335, [SMALL_STATE(118)] = 7388, [SMALL_STATE(119)] = 7441, [SMALL_STATE(120)] = 7472, [SMALL_STATE(121)] = 7509, [SMALL_STATE(122)] = 7546, [SMALL_STATE(123)] = 7579, [SMALL_STATE(124)] = 7616, [SMALL_STATE(125)] = 7653, [SMALL_STATE(126)] = 7683, [SMALL_STATE(127)] = 7721, [SMALL_STATE(128)] = 7751, [SMALL_STATE(129)] = 7781, [SMALL_STATE(130)] = 7811, [SMALL_STATE(131)] = 7841, [SMALL_STATE(132)] = 7871, [SMALL_STATE(133)] = 7901, [SMALL_STATE(134)] = 7931, [SMALL_STATE(135)] = 7970, [SMALL_STATE(136)] = 8003, [SMALL_STATE(137)] = 8032, [SMALL_STATE(138)] = 8071, [SMALL_STATE(139)] = 8100, [SMALL_STATE(140)] = 8129, [SMALL_STATE(141)] = 8168, [SMALL_STATE(142)] = 8197, [SMALL_STATE(143)] = 8226, [SMALL_STATE(144)] = 8255, [SMALL_STATE(145)] = 8287, [SMALL_STATE(146)] = 8315, [SMALL_STATE(147)] = 8343, [SMALL_STATE(148)] = 8371, [SMALL_STATE(149)] = 8399, [SMALL_STATE(150)] = 8431, [SMALL_STATE(151)] = 8459, [SMALL_STATE(152)] = 8487, [SMALL_STATE(153)] = 8519, [SMALL_STATE(154)] = 8555, [SMALL_STATE(155)] = 8583, [SMALL_STATE(156)] = 8610, [SMALL_STATE(157)] = 8637, [SMALL_STATE(158)] = 8674, [SMALL_STATE(159)] = 8699, [SMALL_STATE(160)] = 8726, [SMALL_STATE(161)] = 8753, [SMALL_STATE(162)] = 8782, [SMALL_STATE(163)] = 8825, [SMALL_STATE(164)] = 8854, [SMALL_STATE(165)] = 8883, [SMALL_STATE(166)] = 8920, [SMALL_STATE(167)] = 8957, [SMALL_STATE(168)] = 8986, [SMALL_STATE(169)] = 9023, [SMALL_STATE(170)] = 9060, [SMALL_STATE(171)] = 9087, [SMALL_STATE(172)] = 9119, [SMALL_STATE(173)] = 9147, [SMALL_STATE(174)] = 9173, [SMALL_STATE(175)] = 9199, [SMALL_STATE(176)] = 9225, [SMALL_STATE(177)] = 9251, [SMALL_STATE(178)] = 9277, [SMALL_STATE(179)] = 9311, [SMALL_STATE(180)] = 9337, [SMALL_STATE(181)] = 9363, [SMALL_STATE(182)] = 9388, [SMALL_STATE(183)] = 9427, [SMALL_STATE(184)] = 9454, [SMALL_STATE(185)] = 9477, [SMALL_STATE(186)] = 9500, [SMALL_STATE(187)] = 9523, [SMALL_STATE(188)] = 9546, [SMALL_STATE(189)] = 9569, [SMALL_STATE(190)] = 9592, [SMALL_STATE(191)] = 9617, [SMALL_STATE(192)] = 9642, [SMALL_STATE(193)] = 9671, [SMALL_STATE(194)] = 9696, [SMALL_STATE(195)] = 9721, [SMALL_STATE(196)] = 9746, [SMALL_STATE(197)] = 9771, [SMALL_STATE(198)] = 9796, [SMALL_STATE(199)] = 9821, [SMALL_STATE(200)] = 9848, [SMALL_STATE(201)] = 9886, [SMALL_STATE(202)] = 9910, [SMALL_STATE(203)] = 9934, [SMALL_STATE(204)] = 9966, [SMALL_STATE(205)] = 9994, [SMALL_STATE(206)] = 10024, [SMALL_STATE(207)] = 10045, [SMALL_STATE(208)] = 10074, [SMALL_STATE(209)] = 10103, [SMALL_STATE(210)] = 10126, [SMALL_STATE(211)] = 10155, [SMALL_STATE(212)] = 10178, [SMALL_STATE(213)] = 10201, [SMALL_STATE(214)] = 10226, [SMALL_STATE(215)] = 10255, [SMALL_STATE(216)] = 10276, [SMALL_STATE(217)] = 10305, [SMALL_STATE(218)] = 10326, [SMALL_STATE(219)] = 10355, [SMALL_STATE(220)] = 10384, [SMALL_STATE(221)] = 10413, [SMALL_STATE(222)] = 10442, [SMALL_STATE(223)] = 10463, [SMALL_STATE(224)] = 10485, [SMALL_STATE(225)] = 10507, [SMALL_STATE(226)] = 10541, [SMALL_STATE(227)] = 10575, [SMALL_STATE(228)] = 10598, [SMALL_STATE(229)] = 10621, [SMALL_STATE(230)] = 10656, [SMALL_STATE(231)] = 10679, [SMALL_STATE(232)] = 10698, [SMALL_STATE(233)] = 10717, [SMALL_STATE(234)] = 10740, [SMALL_STATE(235)] = 10775, [SMALL_STATE(236)] = 10798, [SMALL_STATE(237)] = 10821, [SMALL_STATE(238)] = 10840, [SMALL_STATE(239)] = 10863, [SMALL_STATE(240)] = 10886, [SMALL_STATE(241)] = 10909, [SMALL_STATE(242)] = 10928, [SMALL_STATE(243)] = 10951, [SMALL_STATE(244)] = 10974, [SMALL_STATE(245)] = 10993, [SMALL_STATE(246)] = 11012, [SMALL_STATE(247)] = 11030, [SMALL_STATE(248)] = 11048, [SMALL_STATE(249)] = 11082, [SMALL_STATE(250)] = 11100, [SMALL_STATE(251)] = 11118, [SMALL_STATE(252)] = 11136, [SMALL_STATE(253)] = 11154, [SMALL_STATE(254)] = 11172, [SMALL_STATE(255)] = 11190, [SMALL_STATE(256)] = 11208, [SMALL_STATE(257)] = 11226, [SMALL_STATE(258)] = 11244, [SMALL_STATE(259)] = 11262, [SMALL_STATE(260)] = 11280, [SMALL_STATE(261)] = 11298, [SMALL_STATE(262)] = 11316, [SMALL_STATE(263)] = 11334, [SMALL_STATE(264)] = 11368, [SMALL_STATE(265)] = 11385, [SMALL_STATE(266)] = 11402, [SMALL_STATE(267)] = 11419, [SMALL_STATE(268)] = 11436, [SMALL_STATE(269)] = 11453, [SMALL_STATE(270)] = 11470, [SMALL_STATE(271)] = 11487, [SMALL_STATE(272)] = 11504, [SMALL_STATE(273)] = 11521, [SMALL_STATE(274)] = 11538, [SMALL_STATE(275)] = 11555, [SMALL_STATE(276)] = 11572, [SMALL_STATE(277)] = 11589, [SMALL_STATE(278)] = 11606, [SMALL_STATE(279)] = 11623, [SMALL_STATE(280)] = 11640, [SMALL_STATE(281)] = 11657, [SMALL_STATE(282)] = 11674, [SMALL_STATE(283)] = 11707, [SMALL_STATE(284)] = 11724, [SMALL_STATE(285)] = 11741, [SMALL_STATE(286)] = 11758, [SMALL_STATE(287)] = 11775, [SMALL_STATE(288)] = 11792, [SMALL_STATE(289)] = 11809, [SMALL_STATE(290)] = 11826, [SMALL_STATE(291)] = 11843, [SMALL_STATE(292)] = 11860, [SMALL_STATE(293)] = 11877, [SMALL_STATE(294)] = 11894, [SMALL_STATE(295)] = 11911, [SMALL_STATE(296)] = 11928, [SMALL_STATE(297)] = 11961, [SMALL_STATE(298)] = 11978, [SMALL_STATE(299)] = 11995, [SMALL_STATE(300)] = 12012, [SMALL_STATE(301)] = 12029, [SMALL_STATE(302)] = 12046, [SMALL_STATE(303)] = 12063, [SMALL_STATE(304)] = 12080, [SMALL_STATE(305)] = 12097, [SMALL_STATE(306)] = 12114, [SMALL_STATE(307)] = 12131, [SMALL_STATE(308)] = 12148, [SMALL_STATE(309)] = 12165, [SMALL_STATE(310)] = 12182, [SMALL_STATE(311)] = 12199, [SMALL_STATE(312)] = 12216, [SMALL_STATE(313)] = 12233, [SMALL_STATE(314)] = 12250, [SMALL_STATE(315)] = 12267, [SMALL_STATE(316)] = 12284, [SMALL_STATE(317)] = 12301, [SMALL_STATE(318)] = 12329, [SMALL_STATE(319)] = 12357, [SMALL_STATE(320)] = 12385, [SMALL_STATE(321)] = 12413, [SMALL_STATE(322)] = 12441, [SMALL_STATE(323)] = 12469, [SMALL_STATE(324)] = 12497, [SMALL_STATE(325)] = 12525, [SMALL_STATE(326)] = 12552, [SMALL_STATE(327)] = 12579, [SMALL_STATE(328)] = 12604, [SMALL_STATE(329)] = 12629, [SMALL_STATE(330)] = 12656, [SMALL_STATE(331)] = 12680, [SMALL_STATE(332)] = 12704, [SMALL_STATE(333)] = 12728, [SMALL_STATE(334)] = 12752, [SMALL_STATE(335)] = 12776, [SMALL_STATE(336)] = 12800, [SMALL_STATE(337)] = 12818, [SMALL_STATE(338)] = 12839, [SMALL_STATE(339)] = 12860, [SMALL_STATE(340)] = 12879, [SMALL_STATE(341)] = 12900, [SMALL_STATE(342)] = 12915, [SMALL_STATE(343)] = 12936, [SMALL_STATE(344)] = 12957, [SMALL_STATE(345)] = 12972, [SMALL_STATE(346)] = 12987, [SMALL_STATE(347)] = 13006, [SMALL_STATE(348)] = 13027, [SMALL_STATE(349)] = 13048, [SMALL_STATE(350)] = 13067, [SMALL_STATE(351)] = 13088, [SMALL_STATE(352)] = 13109, [SMALL_STATE(353)] = 13128, [SMALL_STATE(354)] = 13149, [SMALL_STATE(355)] = 13170, [SMALL_STATE(356)] = 13191, [SMALL_STATE(357)] = 13212, [SMALL_STATE(358)] = 13233, [SMALL_STATE(359)] = 13254, [SMALL_STATE(360)] = 13279, [SMALL_STATE(361)] = 13300, [SMALL_STATE(362)] = 13318, [SMALL_STATE(363)] = 13338, [SMALL_STATE(364)] = 13360, [SMALL_STATE(365)] = 13378, [SMALL_STATE(366)] = 13396, [SMALL_STATE(367)] = 13414, [SMALL_STATE(368)] = 13434, [SMALL_STATE(369)] = 13452, [SMALL_STATE(370)] = 13470, [SMALL_STATE(371)] = 13488, [SMALL_STATE(372)] = 13508, [SMALL_STATE(373)] = 13526, [SMALL_STATE(374)] = 13542, [SMALL_STATE(375)] = 13560, [SMALL_STATE(376)] = 13580, [SMALL_STATE(377)] = 13596, [SMALL_STATE(378)] = 13616, [SMALL_STATE(379)] = 13638, [SMALL_STATE(380)] = 13657, [SMALL_STATE(381)] = 13674, [SMALL_STATE(382)] = 13693, [SMALL_STATE(383)] = 13708, [SMALL_STATE(384)] = 13725, [SMALL_STATE(385)] = 13738, [SMALL_STATE(386)] = 13755, [SMALL_STATE(387)] = 13770, [SMALL_STATE(388)] = 13785, [SMALL_STATE(389)] = 13804, [SMALL_STATE(390)] = 13817, [SMALL_STATE(391)] = 13834, [SMALL_STATE(392)] = 13853, [SMALL_STATE(393)] = 13872, [SMALL_STATE(394)] = 13887, [SMALL_STATE(395)] = 13906, [SMALL_STATE(396)] = 13925, [SMALL_STATE(397)] = 13942, [SMALL_STATE(398)] = 13959, [SMALL_STATE(399)] = 13970, [SMALL_STATE(400)] = 13989, [SMALL_STATE(401)] = 14006, [SMALL_STATE(402)] = 14023, [SMALL_STATE(403)] = 14034, [SMALL_STATE(404)] = 14050, [SMALL_STATE(405)] = 14066, [SMALL_STATE(406)] = 14078, [SMALL_STATE(407)] = 14090, [SMALL_STATE(408)] = 14104, [SMALL_STATE(409)] = 14120, [SMALL_STATE(410)] = 14136, [SMALL_STATE(411)] = 14148, [SMALL_STATE(412)] = 14162, [SMALL_STATE(413)] = 14176, [SMALL_STATE(414)] = 14190, [SMALL_STATE(415)] = 14202, [SMALL_STATE(416)] = 14216, [SMALL_STATE(417)] = 14232, [SMALL_STATE(418)] = 14246, [SMALL_STATE(419)] = 14262, [SMALL_STATE(420)] = 14278, [SMALL_STATE(421)] = 14290, [SMALL_STATE(422)] = 14302, [SMALL_STATE(423)] = 14316, [SMALL_STATE(424)] = 14326, [SMALL_STATE(425)] = 14340, [SMALL_STATE(426)] = 14356, [SMALL_STATE(427)] = 14368, [SMALL_STATE(428)] = 14378, [SMALL_STATE(429)] = 14388, [SMALL_STATE(430)] = 14404, [SMALL_STATE(431)] = 14420, [SMALL_STATE(432)] = 14434, [SMALL_STATE(433)] = 14444, [SMALL_STATE(434)] = 14458, [SMALL_STATE(435)] = 14474, [SMALL_STATE(436)] = 14490, [SMALL_STATE(437)] = 14504, [SMALL_STATE(438)] = 14518, [SMALL_STATE(439)] = 14534, [SMALL_STATE(440)] = 14548, [SMALL_STATE(441)] = 14559, [SMALL_STATE(442)] = 14572, [SMALL_STATE(443)] = 14585, [SMALL_STATE(444)] = 14598, [SMALL_STATE(445)] = 14611, [SMALL_STATE(446)] = 14624, [SMALL_STATE(447)] = 14635, [SMALL_STATE(448)] = 14648, [SMALL_STATE(449)] = 14661, [SMALL_STATE(450)] = 14674, [SMALL_STATE(451)] = 14687, [SMALL_STATE(452)] = 14700, [SMALL_STATE(453)] = 14713, [SMALL_STATE(454)] = 14726, [SMALL_STATE(455)] = 14739, [SMALL_STATE(456)] = 14748, [SMALL_STATE(457)] = 14757, [SMALL_STATE(458)] = 14770, [SMALL_STATE(459)] = 14781, [SMALL_STATE(460)] = 14794, [SMALL_STATE(461)] = 14807, [SMALL_STATE(462)] = 14820, [SMALL_STATE(463)] = 14833, [SMALL_STATE(464)] = 14846, [SMALL_STATE(465)] = 14859, [SMALL_STATE(466)] = 14872, [SMALL_STATE(467)] = 14885, [SMALL_STATE(468)] = 14898, [SMALL_STATE(469)] = 14911, [SMALL_STATE(470)] = 14924, [SMALL_STATE(471)] = 14937, [SMALL_STATE(472)] = 14950, [SMALL_STATE(473)] = 14963, [SMALL_STATE(474)] = 14976, [SMALL_STATE(475)] = 14989, [SMALL_STATE(476)] = 15002, [SMALL_STATE(477)] = 15015, [SMALL_STATE(478)] = 15028, [SMALL_STATE(479)] = 15039, [SMALL_STATE(480)] = 15052, [SMALL_STATE(481)] = 15065, [SMALL_STATE(482)] = 15078, [SMALL_STATE(483)] = 15088, [SMALL_STATE(484)] = 15096, [SMALL_STATE(485)] = 15104, [SMALL_STATE(486)] = 15114, [SMALL_STATE(487)] = 15122, [SMALL_STATE(488)] = 15132, [SMALL_STATE(489)] = 15142, [SMALL_STATE(490)] = 15150, [SMALL_STATE(491)] = 15160, [SMALL_STATE(492)] = 15170, [SMALL_STATE(493)] = 15178, [SMALL_STATE(494)] = 15186, [SMALL_STATE(495)] = 15196, [SMALL_STATE(496)] = 15204, [SMALL_STATE(497)] = 15214, [SMALL_STATE(498)] = 15222, [SMALL_STATE(499)] = 15230, [SMALL_STATE(500)] = 15238, [SMALL_STATE(501)] = 15248, [SMALL_STATE(502)] = 15256, [SMALL_STATE(503)] = 15266, [SMALL_STATE(504)] = 15274, [SMALL_STATE(505)] = 15282, [SMALL_STATE(506)] = 15292, [SMALL_STATE(507)] = 15300, [SMALL_STATE(508)] = 15310, [SMALL_STATE(509)] = 15318, [SMALL_STATE(510)] = 15328, [SMALL_STATE(511)] = 15336, [SMALL_STATE(512)] = 15344, [SMALL_STATE(513)] = 15354, [SMALL_STATE(514)] = 15364, [SMALL_STATE(515)] = 15374, [SMALL_STATE(516)] = 15384, [SMALL_STATE(517)] = 15391, [SMALL_STATE(518)] = 15398, [SMALL_STATE(519)] = 15405, [SMALL_STATE(520)] = 15412, [SMALL_STATE(521)] = 15419, [SMALL_STATE(522)] = 15426, [SMALL_STATE(523)] = 15433, [SMALL_STATE(524)] = 15440, [SMALL_STATE(525)] = 15447, [SMALL_STATE(526)] = 15454, [SMALL_STATE(527)] = 15461, [SMALL_STATE(528)] = 15468, [SMALL_STATE(529)] = 15475, [SMALL_STATE(530)] = 15482, [SMALL_STATE(531)] = 15489, [SMALL_STATE(532)] = 15496, [SMALL_STATE(533)] = 15503, [SMALL_STATE(534)] = 15510, [SMALL_STATE(535)] = 15517, [SMALL_STATE(536)] = 15524, [SMALL_STATE(537)] = 15531, [SMALL_STATE(538)] = 15538, [SMALL_STATE(539)] = 15545, [SMALL_STATE(540)] = 15552, [SMALL_STATE(541)] = 15559, [SMALL_STATE(542)] = 15566, [SMALL_STATE(543)] = 15573, [SMALL_STATE(544)] = 15580, [SMALL_STATE(545)] = 15587, [SMALL_STATE(546)] = 15594, [SMALL_STATE(547)] = 15601, [SMALL_STATE(548)] = 15608, [SMALL_STATE(549)] = 15615, [SMALL_STATE(550)] = 15622, [SMALL_STATE(551)] = 15629, [SMALL_STATE(552)] = 15636, [SMALL_STATE(553)] = 15643, [SMALL_STATE(554)] = 15650, [SMALL_STATE(555)] = 15657, [SMALL_STATE(556)] = 15664, [SMALL_STATE(557)] = 15671, [SMALL_STATE(558)] = 15678, [SMALL_STATE(559)] = 15685, [SMALL_STATE(560)] = 15692, [SMALL_STATE(561)] = 15699, [SMALL_STATE(562)] = 15706, [SMALL_STATE(563)] = 15713, [SMALL_STATE(564)] = 15720, [SMALL_STATE(565)] = 15727, [SMALL_STATE(566)] = 15734, [SMALL_STATE(567)] = 15741, [SMALL_STATE(568)] = 15748, [SMALL_STATE(569)] = 15755, [SMALL_STATE(570)] = 15762, [SMALL_STATE(571)] = 15769, [SMALL_STATE(572)] = 15776, [SMALL_STATE(573)] = 15783, [SMALL_STATE(574)] = 15790, [SMALL_STATE(575)] = 15797, [SMALL_STATE(576)] = 15804, [SMALL_STATE(577)] = 15811, [SMALL_STATE(578)] = 15818, [SMALL_STATE(579)] = 15825, [SMALL_STATE(580)] = 15832, [SMALL_STATE(581)] = 15839, [SMALL_STATE(582)] = 15846, [SMALL_STATE(583)] = 15853, }; 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(529), [7] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_identifier, 3, 0, 18), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_identifier, 3, 0, 18), [11] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_iri, 3, 0, 0), [13] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_iri, 3, 0, 0), [15] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [21] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier_reference, 1, 0, 0), [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier_reference, 1, 0, 0), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_truth, 1, 0, 0), [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_truth, 1, 0, 0), [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_simple_value, 1, 0, 0), [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_simple_value, 1, 0, 0), [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_falsity, 1, 0, 0), [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_falsity, 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 = true}}, SHIFT(326), [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 35), [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 35), [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary, 3, 0, 66), [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary, 3, 0, 66), [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1, 0, 0), [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1, 0, 0), [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 3, 0, 88), [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 3, 0, 88), [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_constructor, 4, 0, 97), [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_constructor, 4, 0, 97), [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 4, 0, 107), [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 4, 0, 107), [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 4, 0, 106), [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 4, 0, 106), [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_expression, 5, 0, 117), [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_expression, 5, 0, 117), [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 3, 0, 88), [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 3, 0, 88), [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 3, 0, 65), [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 3, 0, 65), [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 4, 0, 106), [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 4, 0, 106), [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 2, 0, 0), [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 2, 0, 0), [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 4, 0, 107), [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 4, 0, 107), [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 5, 0, 117), [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 5, 0, 117), [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 4, 0, 96), [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 4, 0, 96), [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cardinality_reference_expression, 3, 0, 64), [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_reference_expression, 3, 0, 64), [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(523), [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(114), [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(69), [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), [191] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(120), [194] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(329), [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(122), [200] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(576), [203] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(474), [206] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(125), [209] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(125), [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(129), [215] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(127), [218] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 2, 0, 101), SHIFT_REPEAT(145), [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1, 0, 0), [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1, 0, 0), [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mapping_value, 3, 0, 68), [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mapping_value, 3, 0, 68), [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579), [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583), [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568), [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528), [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 2, 0, 37), [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 2, 0, 37), [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 4, 0, 98), [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 4, 0, 98), [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 3, 0, 62), [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 3, 0, 62), [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 1, 0, 23), [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 1, 0, 23), [283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 3, 0, 69), [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 3, 0, 69), [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_values, 2, 0, 0), [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_values, 2, 0, 0), [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(167), [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553), [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), [303] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(167), [306] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(69), [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(364), [314] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(122), [317] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(576), [320] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(474), [323] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(125), [326] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(125), [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(129), [332] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(127), [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 2, 0, 63), SHIFT_REPEAT(145), [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_term, 1, 0, 0), [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_term, 1, 0, 0), [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_composition, 2, 0, 38), [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_composition, 2, 0, 38), [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 70), [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 70), [362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 70), SHIFT_REPEAT(553), [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 6), [371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 6), [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522), [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 69), [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 69), [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 2, 0, 37), [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 2, 0, 37), [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 62), [385] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 3, 0, 62), [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__actual_arguments, 2, 0, 0), [389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__actual_arguments, 2, 0, 0), [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 2, 0, 0), [393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 2, 0, 0), [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__actual_arguments, 3, 0, 100), [397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__actual_arguments, 3, 0, 100), [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 4, 0, 98), [401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 4, 0, 98), [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_builder, 5, 0, 111), [405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_builder, 5, 0, 111), [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate_value, 1, 0, 0), [409] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_predicate_value, 1, 0, 0), [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_of_predicate_values, 1, 0, 23), [413] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_of_predicate_values, 1, 0, 23), [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_functional_term, 2, 0, 42), [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_atomic_sentence, 2, 0, 41), [419] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_functional_term, 2, 0, 42), [421] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(167), [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), [426] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(122), [429] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(576), [432] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(474), [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(125), [438] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(125), [441] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(129), [444] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 2, 0, 63), SHIFT_REPEAT(127), [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), [457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_negation, 1, 0, 0), [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_negation, 1, 0, 0), [461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_disjunction, 1, 0, 0), [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_disjunction, 1, 0, 0), [465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_conjunction, 1, 0, 0), [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_conjunction, 1, 0, 0), [469] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_biconditional, 1, 0, 0), [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_biconditional, 1, 0, 0), [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_implication, 1, 0, 0), [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_implication, 1, 0, 0), [477] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_op_exclusive_disjunction, 1, 0, 0), [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_op_exclusive_disjunction, 1, 0, 0), [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556), [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564), [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(548), [490] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(518), [493] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(583), [496] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(568), [499] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(573), [502] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(494), [505] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(528), [508] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(530), [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(538), [514] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat3, 2, 0, 0), SHIFT_REPEAT(539), [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521), [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), [521] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_composition_repeat1, 2, 0, 70), SHIFT_REPEAT(564), [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(450), [531] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat2, 2, 0, 0), SHIFT_REPEAT(579), [534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_simple_type, 1, 0, 0), [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_simple_type, 1, 0, 0), [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantified_sentence, 3, 0, 73), [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_boolean_sentence, 3, 0, 72), [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_body, 2, 0, 40), [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mapping_type, 5, 0, 116), [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mapping_type, 5, 0, 116), [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_boolean_sentence, 2, 0, 43), [562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__actual_arguments_repeat1, 1, 0, 75), [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__actual_arguments_repeat1, 1, 0, 75), [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 1, 0, 4), [572] = {.entry = {.count = 1, .reusable = false}}, SHIFT(582), [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(560), [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561), [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563), [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565), [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inequation, 3, 0, 76), [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_equation, 3, 0, 74), [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_informal_constraint, 2, 0, 24), [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_informal_constraint, 2, 0, 24), [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), [604] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(560), [607] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(561), [610] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(563), [613] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(565), [616] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_datatype_def_restriction_repeat1, 2, 0, 0), SHIFT_REPEAT(566), [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2, 0, 0), [623] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2, 0, 0), SHIFT_REPEAT(372), [626] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2, 0, 0), SHIFT_REPEAT(382), [629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 1, 0, 34), [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_predicate_values_repeat1, 1, 0, 34), [633] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation, 1, 0, 0), [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation, 1, 0, 0), [637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_formal_constraint, 3, 0, 40), [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_constraint, 3, 0, 40), [641] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_property, 4, 0, 22), [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_property, 4, 0, 22), [645] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_formal_constraint, 4, 0, 78), [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_constraint, 4, 0, 78), [649] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_reference, 1, 0, 0), [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_reference, 1, 0, 0), [653] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_informal_constraint, 3, 0, 45), [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_informal_constraint, 3, 0, 45), [657] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constraint, 3, 0, 1), [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 3, 0, 1), [661] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_import, 2, 0, 9), [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_import, 2, 0, 9), [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 2, 0, 10), [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_sentence, 1, 0, 0), [679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_simple_sentence, 1, 0, 0), [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_sentence, 3, 0, 0), [683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_sentence, 1, 0, 0), [685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_op_membership, 1, 0, 0), [687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_op_membership, 1, 0, 0), [689] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 2, 0, 9), [691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 2, 0, 9), [693] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sequence_of_values_repeat1, 1, 0, 34), [695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_of_values_repeat1, 1, 0, 34), [697] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 3, 0, 19), [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_import, 3, 0, 19), [701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_op_inequality, 1, 0, 0), [703] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_inequality, 1, 0, 0), [705] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__rename_import, 2, 0, 17), [707] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__rename_import, 2, 0, 17), [709] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_op_less_than_or_equal, 1, 0, 0), [711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_less_than_or_equal, 1, 0, 0), [713] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_op_greater_than_or_equal, 1, 0, 0), [715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_greater_than_or_equal, 1, 0, 0), [717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_import, 1, 0, 4), [719] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__identifier_or_sequence, 1, 0, 83), [721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_or_sequence, 1, 0, 83), [723] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__identifier_or_sequence, 3, 0, 86), [725] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_or_sequence, 3, 0, 86), [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 2, 0, 6), [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), [735] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_def, 2, 0, 14), [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_def, 2, 0, 14), [741] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_def, 2, 0, 6), [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 5, 0, 0), [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_def, 2, 0, 6), [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), [753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_def, 2, 0, 6), [755] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_expression_to, 3, 0, 55), [757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression_to, 3, 0, 55), [759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 5, 0, 47), [761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), [763] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_expression_to, 2, 0, 28), [765] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression_to, 2, 0, 28), [767] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_only_body, 3, 0, 0), [769] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_only_body, 3, 0, 0), [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 5, 0, 60), [773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, 0, 0), [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), [777] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_def, 2, 0, 6), [779] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 4, 0, 0), [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), [783] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_def, 2, 0, 6), [785] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 4, 0, 25), [787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_def, 2, 0, 6), [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), [793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_def, 2, 0, 6), [795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 0), [797] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_def, 3, 0, 27), [799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_def, 3, 0, 27), [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 5, 0, 49), [803] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 6, 0, 80), [805] = {.entry = {.count = 1, .reusable = false}}, SHIFT(431), [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 6, 0, 93), [813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_definition_with, 2, 0, 85), [815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__wildcard_or_identifier_or_sequence, 1, 0, 84), [817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_def, 3, 0, 15), [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), [821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_def, 3, 0, 13), [823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 3, 0, 13), [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_definition_clause, 3, 0, 52), [827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_def, 3, 0, 13), [829] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_def, 3, 0, 13), [831] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_def, 3, 0, 13), [833] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_definition_without, 2, 0, 86), [835] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_def, 3, 0, 13), [837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_def, 3, 0, 13), [839] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__wildcard_or_identifier_or_sequence, 3, 0, 86), [841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__wildcard_or_identifier_or_sequence, 1, 0, 83), [843] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_types, 4, 0, 89), [845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_types, 2, 0, 29), [847] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), [851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_datatype_def_restriction, 3, 0, 0), [853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_types, 3, 0, 0), [855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_length_restriction_facet, 4, 0, 119), [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_digit_restriction_facet, 4, 0, 119), [859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_length_restriction_facet, 3, 0, 112), [861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_digit_restriction_facet, 3, 0, 112), [863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_restriction_facet, 4, 0, 119), [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_restriction_value, 1, 0, 0), [867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_restriction_facet, 3, 0, 112), [869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tz_restriction_value, 1, 0, 0), [871] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tz_restriction_facet, 4, 0, 120), [873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tz_restriction_facet, 3, 0, 113), [875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_restriction_facet, 3, 0, 113), [877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_restriction_facet, 5, 0, 123), [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), [881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 5, 0, 82), [883] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_def, 3, 0, 1), [885] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 7, 0, 109), [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 3, 0, 51), [889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_def, 3, 0, 1), [891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_def, 3, 0, 1), [893] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property_def, 2, 0, 7), [895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 6, 0, 79), [897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 6, 0, 82), [899] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 6, 0, 81), [901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_def, 4, 0, 30), [903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_body, 2, 0, 0), [905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 4, 0, 51), [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 4, 0, 82), [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_body, 3, 0, 0), [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_def, 4, 0, 26), [913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 2, 0, 0), [915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 3, 0, 0), [917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), [921] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 4, 0, 26), [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_body, 2, 0, 0), [925] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 3, 0, 58), [927] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_def, 4, 0, 26), [929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 4, 0, 51), [931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 4, 0, 82), [933] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 4, 0, 0), [935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 4, 0, 51), [937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 3, 0, 51), [939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 4, 0, 82), [941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_def, 4, 0, 26), [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 5, 0, 48), [945] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_def, 3, 0, 1), [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), [949] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_body, 4, 0, 0), [951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_body, 4, 0, 91), [953] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 3, 0, 1), [955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_body, 3, 0, 0), [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_def, 3, 0, 1), [959] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_class_def, 6, 0, 94), [961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_body, 4, 0, 0), [963] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_def, 4, 0, 26), [965] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 2, 0, 0), [967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_def, 4, 0, 26), [969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_data_type_def, 7, 0, 103), [971] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_def, 4, 0, 26), [973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 3, 0, 51), [975] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 1, 0, 0), [977] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 3, 0, 0), [979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_body, 5, 0, 51), [981] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_def, 3, 0, 1), [983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_body, 5, 0, 82), [985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_event_body, 5, 0, 82), [987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rdf_def, 3, 0, 1), [989] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), [991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), [995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520), [997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), [1001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), [1003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), [1007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), [1009] = {.entry = {.count = 1, .reusable = false}}, SHIFT(352), [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), [1013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), [1015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448), [1019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 1, 0, 31), [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), [1027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), [1029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), [1031] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_type, 3, 0, 55), [1033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_type, 3, 0, 55), [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_reference, 1, 0, 0), [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_reference, 1, 0, 0), [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_type, 2, 0, 28), [1045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_type, 2, 0, 28), [1047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), [1049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), [1053] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(359), [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat1, 2, 0, 0), [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), [1060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), [1062] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1, 0, 4), [1064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1, 0, 4), [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), [1070] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dimension_body_repeat2, 2, 0, 0), SHIFT_REPEAT(431), [1073] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat2, 2, 0, 0), [1075] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat2, 2, 0, 0), SHIFT_REPEAT(443), [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), [1082] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 1, 0, 4), [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(582), [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_dimension_body_repeat1, 2, 0, 0), [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat1, 2, 0, 0), [1092] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dimension_body_repeat1, 2, 0, 0), SHIFT_REPEAT(520), [1095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [1097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), [1099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), [1101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 4, 0, 4), [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486), [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), [1107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameter_repeat1, 2, 0, 0), [1109] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameter_repeat1, 2, 0, 0), SHIFT_REPEAT(486), [1112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 3, 0, 4), [1114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_body_repeat1, 2, 0, 0), SHIFT_REPEAT(336), [1117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_body_repeat1, 2, 0, 0), [1119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), [1121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dimension_parent, 4, 0, 114), [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_parent, 4, 0, 114), [1125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), [1127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), [1129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), [1131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), [1133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), [1135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_environment, 2, 0, 0), [1137] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_rdf_types_repeat1, 2, 0, 90), SHIFT_REPEAT(45), [1140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_rdf_types_repeat1, 2, 0, 90), [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479), [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [1150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_restriction, 1, 0, 92), [1152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), [1154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constraint_environment_repeat1, 2, 0, 0), [1156] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraint_environment_repeat1, 2, 0, 0), SHIFT_REPEAT(559), [1159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_source_entity, 2, 0, 50), [1161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_entity, 2, 0, 50), [1163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), [1165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), [1169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), [1171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_restriction, 2, 0, 108), [1173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), [1175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), [1177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, 0, 4), [1181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), [1183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), [1185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_body_repeat1, 2, 0, 59), [1187] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_class_body_repeat1, 2, 0, 59), SHIFT_REPEAT(559), [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), [1192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), [1194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_signature, 6, 0, 118), [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 1, 0, 4), [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 1, 0, 4), [1200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533), [1202] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameter_restriction_repeat1, 2, 0, 101), SHIFT_REPEAT(455), [1205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameter_restriction_repeat1, 2, 0, 101), [1207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), [1209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_signature, 3, 0, 77), [1211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), [1213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), [1215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 3, 0, 95), [1217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 3, 0, 95), [1219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 3, 0, 99), [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, 0, 99), [1223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_entity_identity, 2, 0, 51), [1225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entity_identity, 2, 0, 51), [1227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), [1229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), [1231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), [1233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), [1235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), [1237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_source_entity, 4, 0, 104), [1239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_entity, 4, 0, 104), [1241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), [1243] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enum_body_repeat1, 2, 0, 0), SHIFT_REPEAT(416), [1246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_body_repeat1, 2, 0, 0), [1248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 1, 0, 0), [1250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 1, 0, 0), [1252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_variant, 1, 0, 4), [1254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_variant, 1, 0, 4), [1256] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_signature_repeat1, 2, 0, 61), SHIFT_REPEAT(407), [1259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_signature_repeat1, 2, 0, 61), [1261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), [1263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), [1265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_property_ref, 2, 0, 57), [1267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property_ref, 2, 0, 57), [1269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 2, 0, 46), [1271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 2, 0, 61), SHIFT_REPEAT(393), [1274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 2, 0, 61), [1276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dimension_parent, 5, 0, 121), [1278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dimension_parent, 5, 0, 121), [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_restriction, 4, 0, 122), [1282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_restriction, 5, 0, 124), [1284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_import, 1, 0, 4), [1286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_import, 2, 0, 10), [1288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), [1290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_ordering, 1, 0, 0), [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), [1294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_builder_repeat1, 2, 0, 71), SHIFT_REPEAT(352), [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_builder_repeat1, 2, 0, 71), [1299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), [1301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), [1303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), [1305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [1307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), [1309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), [1311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), [1313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), [1315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), [1317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), [1319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), [1321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_path_absolute_repeat1, 2, 0, 21), [1323] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_path_absolute_repeat1, 2, 0, 21), SHIFT_REPEAT(567), [1326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__cardinality_inner, 1, 0, 54), [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512), [1330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantified_variable, 3, 0, 102), [1332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), [1334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), [1336] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__wildcard_or_identifier_or_sequence_repeat1, 2, 0, 115), SHIFT_REPEAT(501), [1339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__wildcard_or_identifier_or_sequence_repeat1, 2, 0, 115), [1341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), [1343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_restriction_argument, 1, 0, 0), [1345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameter_restriction_repeat1, 1, 0, 75), [1347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_absolute, 2, 0, 11), [1349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), [1351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), [1353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), [1355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), [1357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), [1359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), [1361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pattern_restriction_facet_repeat1, 2, 0, 0), [1363] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_pattern_restriction_facet_repeat1, 2, 0, 0), SHIFT_REPEAT(462), [1366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_relative, 2, 0, 12), [1368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_binary_repeat1, 2, 0, 67), [1370] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_binary_repeat1, 2, 0, 67), SHIFT_REPEAT(503), [1373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), [1375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(490), [1377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), [1379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), [1381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [1383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), [1385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), [1387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), [1389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), [1391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), [1393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_absolute, 3, 0, 20), [1395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), [1397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_relative, 1, 0, 5), [1399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [1401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), [1403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516), [1405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_signature_repeat1, 1, 0, 33), [1407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_def_repeat1, 1, 0, 33), [1409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_op_combiner, 1, 0, 0), [1411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(457), [1413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_path_root_only, 1, 0, 0), [1415] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 2, 0, 53), [1417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 2, 0, 53), [1419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_path_absolute_repeat1, 2, 0, 11), [1421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variant, 4, 0, 110), [1423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variant, 4, 0, 110), [1425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 3, 0, 46), [1427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter, 2, 0, 14), [1429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), [1431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sequence_value_constraints, 3, 0, 64), [1433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), [1435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541), [1437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sequence_value_constraints, 3, 0, 65), [1439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_def, 2, 0, 31), [1441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_uniqueness, 1, 0, 0), [1443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__wildcard_or_identifier_or_sequence_repeat1, 1, 0, 83), [1445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_variant, 2, 0, 53), [1447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_variant, 2, 0, 53), [1449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_binary_repeat1, 1, 0, 36), [1451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sequence_value_constraints, 4, 0, 96), [1453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_rdf_types_repeat1, 1, 0, 56), [1455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), [1457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_locations, 1, 0, 2), [1459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_builder_repeat1, 1, 0, 39), [1461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_class_body_repeat1, 1, 0, 32), [1465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_def, 2, 0, 46), [1467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_range, 1, 0, 0), [1469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), [1471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), [1473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), [1475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), [1477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cardinality_range, 2, 0, 105), [1479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), [1481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), [1483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), [1485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 5, 0, 0), [1487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 4, 0, 0), [1489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [1491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), [1493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 2, 0, 0), [1495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_quantifier_universal, 1, 0, 0), [1497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_quantifier_existential, 1, 0, 0), [1499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), [1501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), [1503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), [1505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_locations, 3, 0, 8), [1507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [1509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), [1511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [1513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), [1515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), [1517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_locations, 4, 0, 16), [1519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), [1521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), [1523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), [1525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), [1527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), [1529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), [1531] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [1533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [1535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 3, 0, 0), [1537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(574), [1539] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), [1541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), [1543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), [1545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantified_variable_binding, 2, 0, 44), [1547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), [1549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), [1551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, 0, 1), [1553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), [1555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), [1557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_builder_body, 1, 0, 0), [1559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [1561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), [1563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), [1565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), [1567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), [1569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), [1571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), [1573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), [1575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), [1577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), [1579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), [1581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [1583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_clause, 2, 0, 0), [1587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__cardinality_inner, 2, 0, 87), [1589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), [1591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [1593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), [1595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(555), [1597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, 0, 3), [1599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [1601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), [1603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), [1605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), [1607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), }; #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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/tree_sitter/000077500000000000000000000000001501542066300247775ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/tree_sitter/alloc.h000066400000000000000000000017311501542066300262440ustar00rootroot00000000000000#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 size); extern void *(*ts_current_calloc)(size_t count, size_t size); extern void *(*ts_current_realloc)(void *ptr, size_t size); extern void (*ts_current_free)(void *ptr); #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_ tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/tree_sitter/array.h000066400000000000000000000242641501542066300262760ustar00rootroot00000000000000#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_ tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/src/tree_sitter/parser.h000066400000000000000000000155771501542066300264630ustar00rootroot00000000000000#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 *); void (*log)(const TSLexer *, const char *, ...); }; 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_ tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/000077500000000000000000000000001501542066300226365ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/000077500000000000000000000000001501542066300241515ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_escaped_strings.sdm000066400000000000000000000044471501542066300322760ustar00rootroot00000000000000============================ Escapes in annotation strings ============================ module corpus_test_annotation 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)))))))) annotation_multiple_as_list.sdm000066400000000000000000000012631501542066300324040ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================ Annotation, Multiple as list ============================ module corpus_test_annotation is @dc:seeAlso = {ordered nonunique} [ ] end --- (module (identifier) (module_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (sequence_of_values (sequence_ordering) (sequence_uniqueness) (simple_value (iri)) (simple_value (iri)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_multiple_as_set.sdm000066400000000000000000000012571501542066300323060ustar00rootroot00000000000000=========================== Annotation, Multiple as set =========================== module corpus_test_annotation is @dc:seeAlso = {unordered unique} [ ] end --- (module (identifier) (module_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (sequence_of_values (sequence_ordering) (sequence_uniqueness) (simple_value (iri)) (simple_value (iri)))))))) annotation_multiple_decimal.sdm000066400000000000000000000011241501542066300323400ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================= Annotation, Multiple Decimals ============================= module corpus_test_annotation 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_multiple_double.sdm000066400000000000000000000011321501542066300322720ustar00rootroot00000000000000============================ Annotation, Multiple Doubles ============================ module corpus_test_annotation 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)))))))) annotation_multiple_integer.sdm000066400000000000000000000011131501542066300323750ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================= Annotation, Multiple Integers ============================= module corpus_test_annotation 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_multiple_iri.sdm000066400000000000000000000012171501542066300316070ustar00rootroot00000000000000========================= Annotation, Multiple IRIs ========================= module corpus_test_annotation 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)))))))) annotation_multiple_language_string.sdm000066400000000000000000000014301501542066300341130ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================================ Annotation, Multiple Language-Tagged Strings ============================================ module corpus_test_annotation 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))))))))) annotation_multiple_ordered.sdm000066400000000000000000000012071501542066300323700ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================ Annotation, Multiple ordered ============================ module corpus_test_annotation is @dc:seeAlso = {ordered} [ ] end --- (module (identifier) (module_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (sequence_of_values (sequence_ordering) (simple_value (iri)) (simple_value (iri)))))))) annotation_multiple_separate.sdm000066400000000000000000000021241501542066300325470ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================= Annotation, Multiple Separate ============================= module corpus_test_annotation 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_multiple_string.sdm000066400000000000000000000013311501542066300323270ustar00rootroot00000000000000============================ Annotation, Multiple Strings ============================ module corpus_test_annotation 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))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_multiple_unique.sdm000066400000000000000000000012051501542066300323270ustar00rootroot00000000000000=========================== Annotation, Multiple unique =========================== module corpus_test_annotation is @dc:seeAlso = {unique} [ ] end --- (module (identifier) (module_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (sequence_of_values (sequence_uniqueness) (simple_value (iri)) (simple_value (iri)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_binary.sdm000066400000000000000000000030221501542066300317320ustar00rootroot00000000000000========================= Annotation, Single Binary ========================= module corpus_test_annotation 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_boolean.sdm000066400000000000000000000007501501542066300320720ustar00rootroot00000000000000========================== Annotation, Single Boolean ========================== module corpus_test_annotation 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)))))))) annotation_single_constructor.sdm000066400000000000000000000012501501542066300327550ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================== Annotation, Single Constructor ============================== module corpus_test_annotation 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_decimal.sdm000066400000000000000000000006671501542066300320600ustar00rootroot00000000000000========================== Annotation, Single Decimal ========================== module corpus_test_annotation 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_double.sdm000066400000000000000000000006771501542066300317350ustar00rootroot00000000000000========================= Annotation, Single Double ========================= module corpus_test_annotation 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_integer.sdm000066400000000000000000000007031501542066300321060ustar00rootroot00000000000000========================== Annotation, Single Integer ========================== module corpus_test_annotation 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_iri.sdm000066400000000000000000000007001501542066300312310ustar00rootroot00000000000000====================== Annotation, Single IRI ====================== module corpus_test_annotation 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))))))) annotation_single_language_string.sdm000066400000000000000000000010711501542066300335420ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus========================================= Annotation, Single Language-Tagged String ========================================= module corpus_test_annotation 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_mapping.sdm000066400000000000000000000016061501542066300321070ustar00rootroot00000000000000========================== Annotation, Single Mapping ========================== module corpus_test_annotation 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))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_rational.sdm000066400000000000000000000007031501542066300322620ustar00rootroot00000000000000=========================== Annotation, Single Rational =========================== module corpus_test_annotation 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/annotation_single_string.sdm000066400000000000000000000007441501542066300317640ustar00rootroot00000000000000========================= Annotation, Single String ========================= module corpus_test_annotation 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/cardinality_exactly_one.sdm000066400000000000000000000017521501542066300315600ustar00rootroot00000000000000================================== Structure, Cardinality exactly one ================================== module corpus_test_cardinality is structure Things is thing_1 -> integer thing_2 -> {1} integer thing_3 -> {1..1} 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) (cardinality_expression (unsigned)) (type_reference (builtin_simple_type)))) (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range (unsigned))) (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/cardinality_one_to_many.sdm000066400000000000000000000010761501542066300315540ustar00rootroot00000000000000================================== Structure, Cardinality one to many ================================== module corpus_test_cardinality is structure Things is thing -> {1..} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range)) (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/cardinality_two_to_eight.sdm000066400000000000000000000011371501542066300317360ustar00rootroot00000000000000=================================== Structure, Cardinality two to eight =================================== module corpus_test_cardinality is structure Things is thing -> {2..8} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range (unsigned))) (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/cardinality_zero_to_many.sdm000066400000000000000000000011011501542066300317370ustar00rootroot00000000000000=================================== Structure, Cardinality zero to many =================================== module corpus_test_cardinality is structure Things is thing -> {0..} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range)) (type_reference (builtin_simple_type))))))))) cardinality_zero_to_many_as_list.sdm000066400000000000000000000012651501542066300334110ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=========================================== Structure, Cardinality zero to many as-list =========================================== module corpus_test_cardinality is structure Things is thing -> {ordered nonunique 0..} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (sequence_ordering) (sequence_uniqueness) (unsigned) (cardinality_range)) (type_reference (builtin_simple_type))))))))) cardinality_zero_to_many_as_set.sdm000066400000000000000000000012611501542066300332250ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus========================================== Structure, Cardinality zero to many as-set ========================================== module corpus_test_cardinality is structure Things is thing -> {unordered unique 0..} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (sequence_ordering) (sequence_uniqueness) (unsigned) (cardinality_range)) (type_reference (builtin_simple_type))))))))) cardinality_zero_to_many_nonunique.sdm000066400000000000000000000012171501542066300337710ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================================= Structure, Cardinality zero to many nonunique ============================================= module corpus_test_cardinality is structure Things is thing -> {nonunique 0..} 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 (builtin_simple_type))))))))) cardinality_zero_to_many_ordered.sdm000066400000000000000000000012051501542066300333710ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=========================================== Structure, Cardinality zero to many ordered =========================================== module corpus_test_cardinality is structure Things is thing -> {ordered 0..} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (sequence_ordering) (unsigned) (cardinality_range)) (type_reference (builtin_simple_type))))))))) cardinality_zero_to_many_unique.sdm000066400000000000000000000012031501542066300332510ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus========================================== Structure, Cardinality zero to many unique ========================================== module corpus_test_cardinality is structure Things is thing -> {unique 0..} 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 (builtin_simple_type))))))))) cardinality_zero_to_many_unordered.sdm000066400000000000000000000012151501542066300337350ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================================= Structure, Cardinality zero to many unordered ============================================= module corpus_test_cardinality is structure Things is thing -> {unordered 0..} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (sequence_ordering) (unsigned) (cardinality_range)) (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/cardinality_zero_to_one.sdm000066400000000000000000000011341501542066300315620ustar00rootroot00000000000000================================== Structure, Cardinality zero to one ================================== module corpus_test_cardinality is structure Things is thing -> {0..1} integer end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range (unsigned))) (type_reference (builtin_simple_type))))))))) constraint_formal_atomic_sentence.sdm000066400000000000000000000020311501542066300335370ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================== Constraint, formal atomic sentence ================================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is is_empty(self) 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_sentence (simple_sentence (atomic_sentence (term (identifier_reference (identifier))) (term (reserved_self)))))))))))))))) constraint_formal_binary_biconditional.sdm000066400000000000000000000125171501542066300345730ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus======================================= Constraint, formal binary biconditional ======================================= module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner = "hi" iff inner_sym = "bye" end end inner_alt -> string is assert not_empty is inner = "hi" <==> inner_sym = "bye" end end inner_sym -> string is assert not_empty is inner = "hi" ⇔ inner_sym = "bye" 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_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_biconditional) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_biconditional) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_biconditional) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))))))))))))))))) constraint_formal_binary_conjunction.sdm000066400000000000000000000072231501542066300343040ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus===================================== Constraint, formal binary conjunction ===================================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner = "hi" and inner_sym = "bye" end end inner_sym -> string is assert not_empty is inner = "hi" ∧ inner_sym = "bye" 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_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_conjunction) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_conjunction) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))))))))))))))))) constraint_formal_binary_disjunction.sdm000066400000000000000000000072221501542066300343030ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus===================================== Constraint, formal binary disjunction ===================================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner = "hi" or inner_sym = "bye" end end inner_sym -> string is assert not_empty is inner = "hi" ∨ inner_sym = "bye" 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_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_disjunction) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_disjunction) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))))))))))))))))) constraint_formal_binary_exclusive_disjunction.sdm000066400000000000000000000073051501542066300363740ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=============================================== Constraint, formal binary exclusive-disjunction =============================================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner = "hi" xor inner_sym = "bye" end end inner_sym -> string is assert not_empty is inner = "hi" ⊻ inner_sym = "bye" 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_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_exclusive_disjunction) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_exclusive_disjunction) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))))))))))))))))) constraint_formal_binary_implication.sdm000066400000000000000000000125061501542066300342630ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus===================================== Constraint, formal binary implication ===================================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner = "hi" implies inner_sym = "bye" end end inner_alt -> string is assert not_empty is inner = "hi" ==> inner_sym = "bye" end end inner_sym -> string is assert not_empty is inner = "hi" ⇒ inner_sym = "bye" 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_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_implication) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_implication) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (binary_boolean_sentence (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))) (logical_op_implication) (constraint_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string)))))))))))))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/constraint_formal_equation.sdm000066400000000000000000000022161501542066300323100ustar00rootroot00000000000000=========================== Constraint, formal equation =========================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner = "hello" 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_sentence (simple_sentence (equation (term (identifier_reference (identifier))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) constraint_formal_function_composition.sdm000066400000000000000000000020101501542066300346440ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus======================================= Constraint, formal function composition ======================================= module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is self.is_empty() 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_sentence (simple_sentence (atomic_sentence (term (function_composition (reserved_self) (identifier))))))))))))))))) constraint_formal_greater_than.sdm000066400000000000000000000023121501542066300330440ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=============================== Constraint, formal greater than =============================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner > "hello" 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_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_greater_than) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) constraint_formal_greater_than_or_equal.sdm000066400000000000000000000042221501542066300347350ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus======================================== Constraint, formal greater than or equal ======================================== module Example is structure Outer is inner -> string is assert not_empty is inner >= "hello" end end inner_sym -> string is assert not_empty is inner ≥ "hello" 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_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_greater_than_or_equal) (term (predicate_value (simple_value (string (quoted_string)))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_greater_than_or_equal) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) constraint_formal_inequation.sdm000066400000000000000000000041331501542066300325600ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================= Constraint, formal inequation ============================= module Example is structure Outer is inner -> string is assert not_empty is inner /= "hello" end end inner_sym -> string is assert not_empty is inner ≠ "hello" 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_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_inequality) (term (predicate_value (simple_value (string (quoted_string)))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_inequality) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) constraint_formal_less_than.sdm000066400000000000000000000022571501542066300323710ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================ Constraint, formal less than ============================ module Example is structure Outer is inner -> string is assert not_empty is inner < "hello" 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_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_less_than) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) constraint_formal_less_than_or_equal.sdm000066400000000000000000000042221501542066300342520ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus===================================== Constraint, formal less than or equal ===================================== module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is inner <= "hello" end end inner_sym -> string is assert not_empty is inner ≤ "hello" 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_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_less_than_or_equal) (term (predicate_value (simple_value (string (quoted_string)))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (simple_sentence (inequation (term (identifier_reference (identifier))) (op_less_than_or_equal) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) constraint_formal_quantified_existential.sdm000066400000000000000000000073641501542066300351570ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus========================================= Constraint, formal quantified existential ========================================= module corpus_test_constraint is structure Outer is inner -> {0..} string is assert not_empty is exists x in inner, not is_empty(x) end end inner_sym -> {0..} string is assert not_empty is ∃ x ∈ inner, ¬ is_empty(x) end end end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range)) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (quantified_sentence (quantified_variable_binding (logical_quantifier_existential) (quantified_variable (variable (identifier)) (set_op_membership) (term (identifier_reference (identifier))))) (constraint_sentence (boolean_sentence (unary_boolean_sentence (logical_op_negation) (constraint_sentence (simple_sentence (atomic_sentence (term (identifier_reference (identifier))) (term (identifier_reference (identifier))))))))))))))))) (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range)) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (quantified_sentence (quantified_variable_binding (logical_quantifier_existential) (quantified_variable (variable (identifier)) (set_op_membership) (term (identifier_reference (identifier))))) (constraint_sentence (boolean_sentence (unary_boolean_sentence (logical_op_negation) (constraint_sentence (simple_sentence (atomic_sentence (term (identifier_reference (identifier))) (term (identifier_reference (identifier)))))))))))))))))))))) constraint_formal_quantified_universal.sdm000066400000000000000000000073521501542066300346330ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus======================================= Constraint, formal quantified universal ======================================= module corpus_test_constraint is structure Outer is inner -> {0..} string is assert not_empty is forall x in inner, not is_empty(x) end end inner_sym -> {0..} string is assert not_empty is ∀ x ∈ inner, ¬ is_empty(x) end end end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range)) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (quantified_sentence (quantified_variable_binding (logical_quantifier_universal) (quantified_variable (variable (identifier)) (set_op_membership) (term (identifier_reference (identifier))))) (constraint_sentence (boolean_sentence (unary_boolean_sentence (logical_op_negation) (constraint_sentence (simple_sentence (atomic_sentence (term (identifier_reference (identifier))) (term (identifier_reference (identifier))))))))))))))))) (member (member_def (identifier) (cardinality_expression (unsigned) (cardinality_range)) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (quantified_sentence (quantified_variable_binding (logical_quantifier_universal) (quantified_variable (variable (identifier)) (set_op_membership) (term (identifier_reference (identifier))))) (constraint_sentence (boolean_sentence (unary_boolean_sentence (logical_op_negation) (constraint_sentence (simple_sentence (atomic_sentence (term (identifier_reference (identifier))) (term (identifier_reference (identifier)))))))))))))))))))))) constraint_formal_unary_negation.sdm000066400000000000000000000042261501542066300334310ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================= Constraint, formal unary negation ================================= module corpus_test_constraint is structure Outer is inner -> string is assert not_empty is not self.is_empty() end end inner_sym -> string is assert not_empty is ¬ self.is_empty() 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_sentence (boolean_sentence (unary_boolean_sentence (logical_op_negation) (constraint_sentence (simple_sentence (atomic_sentence (term (function_composition (reserved_self) (identifier))))))))))))))) (member (member_def (identifier) (type_reference (builtin_simple_type)) (annotation_only_body (annotation (constraint (identifier) (formal_constraint (constraint_sentence (boolean_sentence (unary_boolean_sentence (logical_op_negation) (constraint_sentence (simple_sentence (atomic_sentence (term (function_composition (reserved_self) (identifier)))))))))))))))))))) constraint_formal_with_environment.sdm000066400000000000000000000036611501542066300340100ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=================================== Constraint, formal with environment =================================== module corpus_test_constraint 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 (term (predicate_value (simple_value (string (quoted_string)))))))) (constraint_sentence (simple_sentence (atomic_sentence (term (function_composition (reserved_self) (identifier) (identifier))) (term (identifier_reference (identifier))))))))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/constraint_informal.sdm000066400000000000000000000005331501542066300307320ustar00rootroot00000000000000=========================== Constraint, informal string =========================== module corpus_test_constraint is assert no_definitions = "This module has no definitions" end --- (module (identifier) (module_body (annotation (constraint (identifier) (informal_constraint (quoted_string)))))) constraint_informal_language.sdm000066400000000000000000000006551501542066300325230ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus========================================= Constraint, informal string with language ========================================= module corpus_test_constraint 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)))))) constraint_informal_language_controlled.sdm000066400000000000000000000007231501542066300347440ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus==================================================== Constraint, informal string with controlled language ==================================================== module corpus_test_constraint 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)))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/datatype_empty.sdm000066400000000000000000000004321501542066300277060ustar00rootroot00000000000000================ Data Type, Empty ================ module corpus_test_datatype is datatype nameString <- string end --- (module name: (identifier) body: (module_body (definition (data_type_def name: (identifier) base: (builtin_simple_type))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/datatype_from_string.sdm000066400000000000000000000004731501542066300311060ustar00rootroot00000000000000=========================== Data Type, From Simple Type =========================== module corpus_test_datatype is datatype nameString <- string end --- (module name: (identifier) body: (module_body (definition (data_type_def name: (identifier) base: (builtin_simple_type))))) datatype_with_fixed_restriction.sdm000066400000000000000000000007461501542066300332600ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================= Data Type, With Fixed Restriction ================================= module corpus_test_datatype 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))))))) datatype_with_pattern_restriction.sdm000066400000000000000000000011031501542066300336220ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus==================================== Data Type, With Pattern Restrictions ==================================== module corpus_test_datatype 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/datatype_with_restrictions.sdm000066400000000000000000000007541501542066300323420ustar00rootroot00000000000000============================ Data Type, With Restrictions ============================ module corpus_test_datatype 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/dimension_empty.sdm000066400000000000000000000003541501542066300300630ustar00rootroot00000000000000================ Dimension, Empty ================ module corpus_test_dimension is dimension Campaigns end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/dimension_from_multiple.sdm000066400000000000000000000015121501542066300316000ustar00rootroot00000000000000==================================== Dimension, With From clause multiple ==================================== module corpus_test_dimension is dimension Things from Others with [ name address ] is identity id -> ThingId end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (dimension_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/dimension_from_single.sdm000066400000000000000000000014271501542066300312330ustar00rootroot00000000000000================================== Dimension, With From clause single ================================== module corpus_test_dimension is dimension Things from Others with name is identity id -> ThingId end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (dimension_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/dimension_from_wildcard.sdm000066400000000000000000000014321501542066300315370ustar00rootroot00000000000000==================================== Dimension, With From clause wildcard ==================================== module corpus_test_dimension is dimension Things from Others with _ is identity id -> ThingId end end --- (module name: (identifier) body: (module_body (definition (dimension_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (dimension_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/dimension_with_identity.sdm000066400000000000000000000011061501542066300316050ustar00rootroot00000000000000======================== Dimension, With Identity ======================== module corpus_test_dimension 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))))))))))) dimension_with_identity_and_members.sdm000066400000000000000000000016761501542066300340760ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus==================================== Dimension, With Identity and Members ==================================== module corpus_test_dimension 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))))))))) dimension_with_identity_and_parents.sdm000066400000000000000000000014161501542066300341100ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus==================================== Dimension, With Identity and Parents ==================================== module corpus_test_dimension 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) parent: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/dimension_with_source.sdm000066400000000000000000000007771501542066300312710ustar00rootroot00000000000000====================== Dimension, With Source ====================== module corpus_test_dimension 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))))))))) dimension_with_source_and_members.sdm000066400000000000000000000015111501542066300335310ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================== Dimension, With Source and Members ================================== module corpus_test_dimension 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))))))))) dimension_with_source_and_parents.sdm000066400000000000000000000011541501542066300335560ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================== Dimension, With Source and Parents ================================== module corpus_test_dimension 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) parent: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/empty_file.sdm000066400000000000000000000000601501542066300270070ustar00rootroot00000000000000========== Empty file ========== --- (ERROR) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_empty.sdm000066400000000000000000000003311501542066300274050ustar00rootroot00000000000000============= Entity, Empty ============= module corpus_test_entity is entity Campaign end --- (module name: (identifier) body: (module_body (definition (entity_def name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_from_multiple.sdm000066400000000000000000000014641501542066300311350ustar00rootroot00000000000000================================= Entity, With From clause multiple ================================= module corpus_test_entity is entity Thing from Others with [ name address ] is identity id -> ThingId end end --- (module name: (identifier) body: (module_body (definition (entity_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (entity_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_from_single.sdm000066400000000000000000000014021501542066300305530ustar00rootroot00000000000000=============================== Entity, With From clause single =============================== module corpus_test_entity is entity Things from Others with name is identity id -> ThingId end end --- (module name: (identifier) body: (module_body (definition (entity_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (entity_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_from_wildcard.sdm000066400000000000000000000014051501542066300310660ustar00rootroot00000000000000================================= Entity, With From clause wildcard ================================= module corpus_test_entity is entity Things from Others with _ is identity id -> ThingId end end --- (module name: (identifier) body: (module_body (definition (entity_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (entity_body identity: (entity_identity identity: (member (member_def name: (identifier) target: (type_reference (identifier_reference (identifier))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_with_constraints.sdm000066400000000000000000000043441501542066300316610ustar00rootroot00000000000000======================== Entity, With Constraints ======================== module corpus_test_entity 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))) (term (predicate_value (simple_value (string (quoted_string))))))))))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_with_diff_members.sdm000066400000000000000000000023401501542066300317260ustar00rootroot00000000000000============================== Entity, With Different Members ============================== module corpus_test_entity 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)))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_with_members.sdm000066400000000000000000000023361501542066300307430ustar00rootroot00000000000000==================== Entity, With Members ==================== module corpus_test_entity 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))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/entity_with_unknowns.sdm000066400000000000000000000013111501542066300311630ustar00rootroot00000000000000================================= Entity, With Unknown Member Types ================================= module corpus_test_entity 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))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/enum_empty.sdm000066400000000000000000000003171501542066300270410ustar00rootroot00000000000000============ Enum, Empty ============ module corpus_test_enum is enum NameKind end --- (module name: (identifier) body: (module_body (definition (enum_def name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/enum_from_multiple.sdm000066400000000000000000000011411501542066300305550ustar00rootroot00000000000000=============================== Enum, With From clause multiple =============================== module corpus_test_enum is enum NameKind from Names with [ Internal Unknown ] of External end end --- (module name: (identifier) body: (module_body (definition (enum_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (enum_body (value_variant name: (identifier))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/enum_from_single.sdm000066400000000000000000000010561501542066300302100ustar00rootroot00000000000000============================= Enum, With From clause single ============================= module corpus_test_enum is enum NameKind from Names with Internal of External end end --- (module name: (identifier) body: (module_body (definition (enum_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (enum_body (value_variant name: (identifier))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/enum_from_wildcard.sdm000066400000000000000000000010551501542066300305170ustar00rootroot00000000000000=============================== Enum, With From clause wildcard =============================== module corpus_test_enum is enum NameKind from Names with _ of External end end --- (module name: (identifier) body: (module_body (definition (enum_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (enum_body (value_variant name: (identifier))))))) enum_pattern_numbered_variants.sdm000066400000000000000000000030601501542066300330670ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=================== Enum, With Variants =================== module corpus_test_enum is import [ owl rdf ] enum NameKind of @owl:equivalentClass = unsigned Internal is @rdf:value = 1 end External is @rdf:value = 2 end end end --- (module (identifier) (module_body (import_statement (module_import (identifier)) (module_import (identifier))) (definition (enum_def (identifier) (enum_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (identifier_reference (identifier))))) (value_variant (identifier) (annotation_only_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (integer))))))) (value_variant (identifier) (annotation_only_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (integer)))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/enum_variants.sdm000066400000000000000000000006241501542066300275330ustar00rootroot00000000000000=================== Enum, With Variants =================== module corpus_test_enum 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/event_empty.sdm000066400000000000000000000003261501542066300272160ustar00rootroot00000000000000============ Event, Empty ============ module corpus_test_event is event NameChanged end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/event_from_multiple.sdm000066400000000000000000000012401501542066300307320ustar00rootroot00000000000000================================ Event, With From clause multiple ================================ module corpus_test_event is event NameChanged from Others with [ name address ] is source Campaign end end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (event_body identity: (source_entity entity: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/event_from_single.sdm000066400000000000000000000011551501542066300303650ustar00rootroot00000000000000============================== Event, With From clause single ============================== module corpus_test_event is event NameChanged from Others with name is source Campaign end end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (event_body identity: (source_entity entity: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/event_from_wildcard.sdm000066400000000000000000000011611501542066300306720ustar00rootroot00000000000000================================ Event, With From clause wildcard ================================ module corpus_test_event is event NameChanged from Others with _ is source Campaign end end --- (module name: (identifier) body: (module_body (definition (event_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (event_body identity: (source_entity entity: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/event_with_members.sdm000066400000000000000000000013571501542066300305520ustar00rootroot00000000000000=================== Event, With Members =================== module corpus_test_event 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))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/event_with_source.sdm000066400000000000000000000006121501542066300304110ustar00rootroot00000000000000================== Event, With Source ================== module corpus_test_event 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)))))))) event_with_source_and_members.sdm000066400000000000000000000007521501542066300326730ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================== Event, With Source and Members ============================== module corpus_test_event is event NameChanged is source Campaign with [ name title status ] end end --- (module (identifier) (module_body (definition (event_def (identifier) (event_body (source_entity (identifier_reference (identifier)) (identifier) (identifier) (identifier))))))) from_definition_multiple_names.sdm000066400000000000000000000010341501542066300330460ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus==================================== From Definition, with multiple names ==================================== module corpus_test_from_definition is structure Example from Source with [ name description ] end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))))))) from_definition_single_name.sdm000066400000000000000000000007421501542066300323160ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================= From Definition, with single name ================================= module corpus_test_from_definition is structure Example from Source with name end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/from_definition_wildcard.sdm000066400000000000000000000007261501542066300317070ustar00rootroot00000000000000============================== From Definition, with wildcard ============================== module corpus_test_from_definition is structure Example from Source with _ end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))))))) from_definition_without_multiple_names.sdm000066400000000000000000000010531501542066300346320ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus======================================= From Definition, without multiple names ======================================= module corpus_test_from_definition is structure Example from Source without [ name description ] end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_without member: (identifier) member: (identifier))))))) from_definition_without_single_name.sdm000066400000000000000000000007611501542066300341020ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus==================================== From Definition, without single name ==================================== module corpus_test_from_definition is structure Example from Source without name end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_without member: (identifier))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_member_from.sdm000066400000000000000000000014701501542066300305440ustar00rootroot00000000000000========================= Import single member from ========================= module corpus_test_import 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)))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_member_only.sdm000066400000000000000000000005161501542066300305620ustar00rootroot00000000000000========================= Import single member only ========================= module corpus_test_import is import xsd:base end --- (module name: (identifier) body: (module_body (import_statement (member_import name: (qualified_identifier module: (identifier) member: (identifier)))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_member_rename.sdm000066400000000000000000000005611501542066300310500ustar00rootroot00000000000000======================== Import and rename member ======================== module corpus_test_import 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))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_module_from.sdm000066400000000000000000000012331501542066300305570ustar00rootroot00000000000000========================= Import single module from ========================= module corpus_test_import 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))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_module_only.sdm000066400000000000000000000004011501542066300305710ustar00rootroot00000000000000========================= Import single module only ========================= module corpus_test_import is import xsd end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_module_rename.sdm000066400000000000000000000004451501542066300310670ustar00rootroot00000000000000======================== Import and rename module ======================== module corpus_test_import is import xsd as schema end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier) rename: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_module_version.sdm000066400000000000000000000004761501542066300313110ustar00rootroot00000000000000======================= Import versioned module ======================= module corpus_test_import is import customer end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier) version_uri: (iri))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_multiple_from.sdm000066400000000000000000000014441501542066300311310ustar00rootroot00000000000000============================ Import multiple members from ============================ module corpus_test_import 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))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_multiple_members.sdm000066400000000000000000000007161501542066300316210ustar00rootroot00000000000000======================= Import multiple members ======================= module corpus_test_import 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)))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_multiple_mixed.sdm000066400000000000000000000010661501542066300312740ustar00rootroot00000000000000===================== Import multiple mixed ===================== module corpus_test_import 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))))) import_multiple_module_version.sdm000066400000000000000000000010141501542066300331320ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================ Import multiple versioned module ================================ module corpus_test_import 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))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/import_multiple_modules.sdm000066400000000000000000000004661501542066300316410ustar00rootroot00000000000000======================= Import multiple modules ======================= module corpus_test_import is import [ xsd skos ] end --- (module name: (identifier) body: (module_body (import_statement (module_import name: (identifier)) (module_import name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/module_annotations.sdm000066400000000000000000000021121501542066300305540ustar00rootroot00000000000000======================= Module,with annotations ======================= module corpus_test_module is @xml:base = @dc:version = 2 @skos:prefLang = [ "aa"@en "bb" ] end --- (module (identifier) (module_body (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (iri))))) (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (integer))))) (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (sequence_of_values (simple_value (string (quoted_string) (language_tag))) (simple_value (string (quoted_string))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/module_empty.sdm000066400000000000000000000001711501542066300273600ustar00rootroot00000000000000============ Empty module ============ module Campaign is end --- (module name: (identifier) body: (module_body)) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/module_empty_with_base.sdm000066400000000000000000000003121501542066300314020ustar00rootroot00000000000000======================= Module, empty with base ======================= module Campaign is end --- (module name: (identifier) base: (iri) body: (module_body)) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/module_empty_with_comments.sdm000066400000000000000000000006301501542066300323200ustar00rootroot00000000000000=========================== 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)) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/module_empty_with_version.sdm000066400000000000000000000004711501542066300321630ustar00rootroot00000000000000========================== 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)) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/module_with_underscore.sdm000066400000000000000000000002651501542066300314320ustar00rootroot00000000000000=============================== Module, with underscore in name =============================== module Rental_Cars is end --- (module name: (identifier) body: (module_body)) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/property_def_empty.sdm000066400000000000000000000005601501542066300305770ustar00rootroot00000000000000========================== Property Definition, Empty ========================== module corpus_test_property is property accountId -> unknown end --- (module (identifier) (module_body (definition (property_def (member_def (identifier) (type_reference (unknown_type))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/property_def_some.sdm000066400000000000000000000020051501542066300304000ustar00rootroot00000000000000=================== Property Definition =================== module corpus_test_property 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)))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/property_def_used.sdm000066400000000000000000000007141501542066300304020ustar00rootroot00000000000000============================= Property Referenced as Member ============================= module corpus_test_property is structure Account is ref accountId end end --- (module (identifier) (module_body (definition (structure_def (identifier) (structure_body (member (property_ref (identifier_reference (identifier))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/rdf_definitions.sdm000066400000000000000000000110201501542066300300160ustar00rootroot00000000000000====================== RDF Custom Definitions ====================== module corpus_test_rdf 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))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/structure_empty.sdm000066400000000000000000000003531501542066300301350ustar00rootroot00000000000000================ Structure, Empty ================ module corpus_test_structure is structure Duration end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/structure_from_multiple.sdm000066400000000000000000000013411501542066300316530ustar00rootroot00000000000000==================================== Structure, With From clause multiple ==================================== module corpus_test_structure is structure Things from Others with [ name address ] is description -> string end end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (structure_body (member (member_def name: (identifier) target: (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/structure_from_single.sdm000066400000000000000000000012561501542066300313060ustar00rootroot00000000000000================================== Structure, With From clause single ================================== module corpus_test_structure is structure Things from Others with name is description -> string end end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (structure_body (member (member_def name: (identifier) target: (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/structure_from_wildcard.sdm000066400000000000000000000012611501542066300316120ustar00rootroot00000000000000==================================== Structure, With From clause wildcard ==================================== module corpus_test_structure is structure Things from Others with _ is description -> string end end --- (module name: (identifier) body: (module_body (definition (structure_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (structure_body (member (member_def name: (identifier) target: (type_reference (builtin_simple_type))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/structure_mapping_type.sdm000066400000000000000000000015041501542066300314720ustar00rootroot00000000000000========================== Structure, Map Type Member ========================== module corpus_test_structure 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))))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/structure_simple_types.sdm000066400000000000000000000025441501542066300315200ustar00rootroot00000000000000============================== Structure, Simple Type Members ============================== module corpus_test_structure 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))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/type_class_empty.sdm000066400000000000000000000003241501542066300302410ustar00rootroot00000000000000================= Type Class, Empty ================= module corpus_test_typeclass is class Any end --- (module (identifier) (module_body (definition (type_class_def (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/type_class_from_multiple.sdm000066400000000000000000000010701501542066300317600ustar00rootroot00000000000000===================================== Type Class, With From clause multiple ===================================== module corpus_test_typeclass is class Things from Others with [ name address ] is end end --- (module name: (identifier) body: (module_body (definition (type_class_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (type_class_body))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/type_class_from_single.sdm000066400000000000000000000010051501542066300314040ustar00rootroot00000000000000=================================== Type Class, With From clause single =================================== module corpus_test_typeclass is class Things from Others with name is end end --- (module name: (identifier) body: (module_body (definition (type_class_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (type_class_body))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/type_class_from_wildcard.sdm000066400000000000000000000010101501542066300317100ustar00rootroot00000000000000===================================== Type Class, With From clause wildcard ===================================== module corpus_test_typeclass is class Things from Others with _ is end end --- (module name: (identifier) body: (module_body (definition (type_class_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (type_class_body))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/type_class_methods.sdm000066400000000000000000000045561501542066300305610ustar00rootroot00000000000000======================== Type Class, with Methods ======================== module corpus_test_typeclass 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_parameter (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 (term (functional_term (term (identifier_reference (identifier))) (term (identifier_reference (identifier)))))))))))) type_class_multiple_restrictions.sdm000066400000000000000000000015351501542066300334740ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus===================================== Type Class, With Sequence Restriction ===================================== module corpus_test_typeclass is class Option (Integer <- PartialEq + Eq + PartialOrd + Ord) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_parameter (identifier) (type_parameter_restriction (identifier_reference (identifier))) (type_op_combiner) (type_parameter_restriction (identifier_reference (identifier))) (type_op_combiner) (type_parameter_restriction (identifier_reference (identifier))) (type_op_combiner) (type_parameter_restriction (identifier_reference (identifier)))))))) type_class_nested_sequence_restrictions.sdm000066400000000000000000000015451501542066300350140ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus============================================= Type Class, With Nested Sequence Restrictions ============================================= module corpus_test_typeclass is class Option (A <- {ordered} Eq(B) B <- {unique} Any) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_parameter (identifier) (type_parameter_restriction (cardinality_reference_expression (sequence_ordering)) (identifier_reference (identifier)) (type_restriction_argument (identifier)))) (type_parameter (identifier) (type_parameter_restriction (cardinality_reference_expression (sequence_uniqueness)) (identifier_reference (identifier)))))))) type_class_restriction_and_argument.sdm000066400000000000000000000010251501542066300341140ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=============================================== Type Class, With Restriction and Named Argument =============================================== module corpus_test_typeclass is class Any (T <- None(T)) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_parameter (identifier) (type_parameter_restriction (identifier_reference (identifier)) (type_restriction_argument (identifier)))))))) type_class_sequence_restriction.sdm000066400000000000000000000010161501542066300332600ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus===================================== Type Class, With Sequence Restriction ===================================== module corpus_test_typeclass is class Option (T <- {ordered} Any) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_parameter (identifier) (type_parameter_restriction (cardinality_reference_expression (sequence_ordering)) (identifier_reference (identifier)))))))) type_class_single_parameter.sdm000066400000000000000000000004751501542066300323540ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus================================= Type Class, With Single Parameter ================================= module corpus_test_typeclass is class Option (T) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_parameter (identifier)))))) type_class_single_restriction.sdm000066400000000000000000000006551501542066300327410ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus=================================== Type Class, With Single Restriction =================================== module corpus_test_typeclass is class Option (T <- Any) end --- (module (identifier) (module_body (definition (type_class_def (identifier) (type_parameter (identifier) (type_parameter_restriction (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/type_constructor_fix9.sdm000066400000000000000000000020441501542066300312430ustar00rootroot00000000000000==================================== Regression Test #9: Type Constructor ==================================== module type_constructor_fix9 is import dc @dc:description = "Regression test for bug #9"@en @dc:date = xsd:date("2024-06-27") end --- (module (identifier) (module_body (import_statement (module_import (identifier))) (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (simple_value (string (quoted_string) (language_tag)))))) (annotation (annotation_property (identifier_reference (qualified_identifier (identifier) (identifier))) (value (value_constructor (identifier_reference (qualified_identifier (identifier) (identifier))) (simple_value (string (quoted_string))))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/union_empty.sdm000066400000000000000000000003271501542066300272260ustar00rootroot00000000000000============ Union, Empty ============ module corpus_test_union is union VehicleClass end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/union_from_multiple.sdm000066400000000000000000000012141501542066300307420ustar00rootroot00000000000000================================ Union, With From clause multiple ================================ module corpus_test_union is union NameKind from Names with [ Internal Unknown ] of External end end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier) member: (identifier))) body: (union_body (type_variant name: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/union_from_single.sdm000066400000000000000000000011311501542066300303660ustar00rootroot00000000000000============================== Union, With From clause single ============================== module corpus_test_union is union NameKind from Names with Internal of External end end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with member: (identifier))) body: (union_body (type_variant name: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/union_from_wildcard.sdm000066400000000000000000000011301501542066300306750ustar00rootroot00000000000000================================ Union, With From clause wildcard ================================ module corpus_test_union is union NameKind from Names with _ of External end end --- (module name: (identifier) body: (module_body (definition (union_def name: (identifier) from: (from_definition_clause from: (identifier_reference (identifier)) (from_definition_with wildcard: (wildcard))) body: (union_body (type_variant name: (identifier_reference (identifier)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/union_rename_variant.sdm000066400000000000000000000010401501542066300310540ustar00rootroot00000000000000=========================== Union, With Renamed Variant =========================== module corpus_test_union 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))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/corpus/union_variants.sdm000066400000000000000000000007361501542066300277230ustar00rootroot00000000000000==================== Union, With Variants ==================== module corpus_test_union 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)))))))) tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/000077500000000000000000000000001501542066300246055ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/constraints.sdm000066400000000000000000000100001501542066300276500ustar00rootroot00000000000000module 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 ; ^ punctuation.separator self.tags.contains(tag) ; <- variable.builtin ; ^ operator ; ^ function.call ; ^ operator ; ^ function.call ; ^ punctuation.bracket ; ^ punctuation.bracket end ; <- keyword end ; <- keyword end ; <- keyword end ; <- keyword tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/datatypes.sdm000066400000000000000000000056411501542066300273160ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/dimensions.sdm000066400000000000000000000023701501542066300274640ustar00rootroot00000000000000module 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 from One with name is ; <- keyword ; ^ type.definition ; ^ keyword ; ^ type ; ^ keyword ; ^ variable ; ^ keyword identity source -> SourceEntity ; <- keyword ; ^ variable.field ; ^ operator ; ^ type n name -> Name ; <- variable.field ; ^ operator ; ^ type ref Property ; <- keyword ; ^ variable.field end ; <- keyword end ; <- keyword tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/imports.sdm000066400000000000000000000021371501542066300270120ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/properties.sdm000066400000000000000000000020671501542066300275130ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/sdml_sequence_ordered.sdm000066400000000000000000000131651501542066300316530ustar00rootroot00000000000000module sdml_sequence_ordered is ; <- keyword ; ^ module.definition ; ^ keyword import skos ; <- keyword ; ^ module class Ordered (S <- {ordered} T) is ; <- keyword ; ^ type.definition ; ^ punctuation.bracket ; ^ type.definition ; ^ operator ; ^ punctuation.bracket ; ^ keyword ; ^ punctuation.bracket ; ^ type ; ^ 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} T 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/simple.sdm000066400000000000000000000071711501542066300266110ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/highlight/type_classes.sdm000066400000000000000000000046651501542066300300230ustar00rootroot00000000000000module type_classes is class Empty ; <- keyword ; ^ type.definition class OneSimpleParameter (A) ; <- keyword ; ^ type.definition ; ^ punctuation.bracket ; ^ type.definition ; ^ punctuation.bracket class SimpleTypeRestriction (A <- Any) ; <- keyword ; ^ type.definition ; ^ punctuation.bracket ; ^ type.definition ; ^ operator ; ^ type ; ^ punctuation.bracket class SequenceTypeRestriction (A <- {ordered} Any) ; <- keyword ; ^ type.definition ; ^ punctuation.bracket ; ^ type.definition ; ^ operator ; ^ punctuation.bracket ; ^ keyword ; ^ punctuation.bracket ; ^ type ; ^ punctuation.bracket class NestedSequences ( ; <- keyword ; ^ type.definition ; ^ punctuation.bracket A <- {ordered} Eq(B) ; ^ type.definition ; ^ operator ; ^ punctuation.bracket ; ^ keyword ; ^ punctuation.bracket ; ^ type ; ^ punctuation.bracket ; ^ type.definition ; ^ punctuation.bracket B <- {unique} Any ; ^ type.definition ; ^ operator ; ^ punctuation.bracket ; ^ keyword ; ^ punctuation.bracket ; ^ type ) ; <- punctuation.bracket class TypeCombinators (Integer <- PartialEq + Eq + PartialOrd + Ord) ; <- keyword ; ^ type.definition ; ^ punctuation.bracket ; ^ type.definition ; ^ operator ; ^ type ; ^ operator ; ^ type ; ^ operator ; ^ type ; ^ operator ; ^ type end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/000077500000000000000000000000001501542066300235745ustar00rootroot00000000000000tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/constraints.sdm000066400000000000000000000035031501542066300266510ustar00rootroot00000000000000module constraints is @skos:prefLabel = "Example" assert just_testing with def has_pref_label(anns -> {0..} Annotation) -> boolean := ∃ a ∈ anns, name(a) = skos:prefLabel ∧ ¬empty(value(a)) def foo := "foo" is self.tags.contains(foo) end 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/datatypes.sdm000066400000000000000000000027331501542066300263040ustar00rootroot00000000000000module datatypes is import skos datatype shortName <- string { ; ^ definition.datatype ; ^ reference.datatype minLength = fixed 2 ; <- reference.facet maxLength = 20 ; <- reference.facet } is @skos:prefLabel = "short name" ;^ reference.type @skos:definition = "A short descriptive name" ;^ reference.type end datatype eventOcurred <- dateTime { ; ^ definition.datatype ; ^ reference.datatype explicitTimezone = fixed required ; <- reference.facet } datatype thing <- string { ; ^ definition.datatype ; ^ reference.datatype pattern = "" ; <- reference.facet } datatype uuid <- string { ; ^ definition.datatype ; ^ reference.datatype pattern = [ ; <- reference.facet "^(?:[[: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 ;^ reference.type @dc:description = "The string form of a UUID, conforming to one of 5 standard patterns."@en ;^ reference.type end end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/dimensions.sdm000066400000000000000000000011061501542066300264470ustar00rootroot00000000000000module dimensions is import [ sales stores ] dimension Location from Named with name is ; ^ definition.dimension ; ^ reference.type ; ^ reference.field source sales:Sale with [ store city ] ; ^ reference.entity ; ^ reference.field ; ^ reference.field parent region -> Region ; ^ definition.field ; ^ reference.dimension state -> stores:State country -> stores:Country end event Foo end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/imports.sdm000066400000000000000000000011651501542066300260010ustar00rootroot00000000000000module imports is from :: import xsd:base ; ^ reference.module ; ^ reference.type from xsd import facets:minLength ; ^ reference.module ; ^ reference.module ; ^ reference.type from ::xsd import facets:minLength ; ^ reference.module ; ^ reference.module ; ^ reference.type from ::reporting::common import [ ; ^ reference.module ; ^ reference.module datatypes ; ^ reference.module enums:DayOfWeek ; ^ reference.module ; ^ reference.type ] end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/properties.sdm000066400000000000000000000006541501542066300265020ustar00rootroot00000000000000module properties is import [ account skos ] property accountId -> {1} account:AccountId is ; ^ definition.field ; ^ reference.type @skos:prefLabel = "account identifier" ;^ reference.type @skos:definition = "an account Identifier."@en ;^ reference.type end structure Account is ref accountId ; ^ reference.field name -> string end end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/sdml_sequence_ordered.sdm000066400000000000000000000010161501542066300306320ustar00rootroot00000000000000module sdml_sequence_ordered is import skos class Ordered ( ; ^ definition.class S <- {ordered 0..} ; ^ definition.class Any ; ^ reference.class ) is def drop (self -> S count -> unsigned) -> S is ; ^ definition.method ; ^ definition.variable ; ^ definition.variable ; ^ reference.type @skos:definition = "Drop ~count~ items from the beginning of the sequence and return the rest."@en end end end tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/test/tags/simple.sdm000066400000000000000000000104461501542066300255770ustar00rootroot00000000000000module 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 tree-sitter-sdml-83d68b835a99fe424da3cf613670523be36be1f7/tree-sitter.json000066400000000000000000000016661501542066300250320ustar00rootroot00000000000000{ "grammars": [ { "name": "sdml", "camelcase": "Sdml", "scope": "source.sdml", "path": ".", "file-types": [ "sdml", "sdm" ], "highlights": [ "queries/highlights.scm" ], "injections": [ "queries/injections.scm" ], "locals": [ "queries/locals.scm" ], "tags": [ "queries/tags.scm" ], "injection-regex": "^sdml$" } ], "metadata": { "version": "0.4.10", "license": "Apache-2.0", "description": "Tree-Sitter grammar for Simple Domain Modeling Language", "authors": [ { "name": "Simon Johnston", "email": "johnstonskj@gmail.com" } ], "links": { "repository": "https://github.com/johnstonskj/tree-sitter-smdl" } }, "bindings": { "c": true, "go": true, "node": true, "python": true, "rust": true, "swift": true } }