sdml_core/
syntax.rs

1/*!
2Contains only string constants for the tree-sitter node types and field names.
3 */
4
5pub const NAME_SDML: &str = "sdml";
6
7// ------------------------------------------------------------------------------------------------
8// Grammar Node kinds
9// ------------------------------------------------------------------------------------------------
10
11pub const NODE_KIND_ACTUAL_ARGUMENTS: &str = "actual_arguments";
12pub const NODE_KIND_ANNOTATION: &str = "annotation";
13pub const NODE_KIND_ANNOTATION_PROPERTY: &str = "annotation_property";
14pub const NODE_KIND_ANNOTATION_ONLY_BODY: &str = "annotation_only_body";
15pub const NODE_KIND_ATOMIC_SENTENCE: &str = "atomic_sentence";
16
17pub const NODE_KIND_BICONDITIONAL: &str = "biconditional";
18pub const NODE_KIND_BINARY: &str = "binary";
19pub const NODE_KIND_BINARY_BOOLEAN_SENTENCE: &str = "binary_boolean_sentence";
20pub const NODE_KIND_BOOLEAN: &str = "boolean";
21pub const NODE_KIND_BOOLEAN_SENTENCE: &str = "boolean_sentence";
22pub const NODE_KIND_BUILTIN_SIMPLE_TYPE: &str = "builtin_simple_type";
23
24pub const NODE_KIND_CARDINALITY_EXPRESSION: &str = "cardinality_expression";
25pub const NODE_KIND_CONJUNCTION: &str = "conjunction";
26pub const NODE_KIND_CONSTANT_DEF: &str = "constant_def";
27pub const NODE_KIND_CONSTRAINT: &str = "constraint";
28pub const NODE_KIND_CONSTRAINT_ENVIRONMENT: &str = "constraint_environment";
29pub const NODE_KIND_CONSTRAINT_ENVIRONMENT_END: &str = "constraint_environment_end";
30pub const NODE_KIND_CONSTRAINT_SENTENCE: &str = "constraint_sentence";
31pub const NODE_KIND_CONTROLLED_LANGUAGE_TAG: &str = "controlled_language_tag";
32
33pub const NODE_KIND_DATA_TYPE_DEF: &str = "data_type_def";
34pub const NODE_KIND_DECIMAL: &str = "decimal";
35pub const NODE_KIND_DEFINITION: &str = "definition";
36pub const NODE_KIND_DISJUNCTION: &str = "disjunction";
37pub const NODE_KIND_DOUBLE: &str = "double";
38
39pub const NODE_KIND_ENTITY_BODY: &str = "entity_body";
40pub const NODE_KIND_ENTITY_DEF: &str = "entity_def";
41pub const NODE_KIND_ENTITY_IDENTITY: &str = "entity_identity";
42pub const NODE_KIND_ENUM_BODY: &str = "enum_body";
43pub const NODE_KIND_ENUM_DEF: &str = "enum_def";
44pub const NODE_KIND_ENVIRONMENT_DEF: &str = "environment_def";
45pub const NODE_KIND_EQUATION: &str = "equation";
46pub const NODE_KIND_EVENT_DEF: &str = "event_def";
47pub const NODE_KIND_EXCLUSIVE_DISJUNCTION: &str = "exclusive_disjunction";
48pub const NODE_KIND_EXISTENTIAL: &str = "existential";
49
50pub const NODE_KIND_FEATURE_REFERENCE: &str = "feature_reference";
51pub const NODE_KIND_FORMAL_CONSTRAINT: &str = "formal_constraint";
52pub const NODE_KIND_FUNCTION_CARDINALITY_EXPRESSION: &str = "function_cardinality_expression";
53pub const NODE_KIND_FUNCTION_COMPOSITION: &str = "function_composition";
54pub const NODE_KIND_FUNCTION_DEF: &str = "function_def";
55pub const NODE_KIND_FUNCTION_PARAMETER: &str = "function_parameter";
56pub const NODE_KIND_FUNCTION_SIGNATURE: &str = "function_signature";
57pub const NODE_KIND_FUNCTION_TYPE_REFERENCE: &str = "function_type_reference";
58pub const NODE_KIND_FUNCTIONAL_TERM: &str = "functional_term";
59
60pub const NODE_KIND_GREATER_THAN: &str = "greater_than";
61pub const NODE_KIND_GREATER_THAN_OR_EQUAL: &str = "greater_than_or_equal";
62
63pub const NODE_KIND_IDENTIFIER: &str = "identifier";
64pub const NODE_KIND_IDENTIFIER_REFERENCE: &str = "identifier_reference";
65pub const NODE_KIND_IDENTITY_MEMBER: &str = "identity_member";
66pub const NODE_KIND_IDENTITY_ROLE: &str = "identity_role";
67pub const NODE_KIND_IMPLICATION: &str = "implication";
68pub const NODE_KIND_IMPORT_STATEMENT: &str = "import_statement";
69pub const NODE_KIND_INEQUATION: &str = "inequation";
70pub const NODE_KIND_INFORMAL_CONSTRAINT: &str = "informal_constraint";
71pub const NODE_KIND_INTEGER: &str = "integer";
72pub const NODE_KIND_IRI: &str = "iri";
73
74pub const NODE_KIND_LANGUAGE_TAG: &str = "language_tag";
75pub const NODE_KIND_LESS_THAN: &str = "less_than";
76pub const NODE_KIND_LESS_THAN_OR_EQUAL: &str = "less_than_or_equal";
77pub const NODE_KIND_LINE_COMMENT: &str = "line_comment";
78
79pub const NODE_KIND_MAPPING_TYPE: &str = "mapping_type";
80pub const NODE_KIND_MAPPING_VALUE: &str = "mapping_value";
81pub const NODE_KIND_MAPPING_VARIABLE: &str = "mapping_variable";
82pub const NODE_KIND_MEMBER: &str = "member";
83pub const NODE_KIND_MEMBER_DEF: &str = "member_def";
84pub const NODE_KIND_MEMBER_IMPORT: &str = "member_import";
85//pub const NODE_KIND_MEMBER_INVERSE_NAME: &str = "member_inverse_name";
86//pub const NODE_KIND_MEMBER_ROLE: &str = "member_role";
87pub const NODE_KIND_METHOD_DEF: &str = "method_def";
88pub const NODE_KIND_MODULE: &str = "module";
89pub const NODE_KIND_MODULE_BODY: &str = "module_body";
90pub const NODE_KIND_MODULE_IMPORT: &str = "module_import";
91
92pub const NODE_KIND_NAMED_VARIABLE_SET: &str = "named_variable_set";
93pub const NODE_KIND_NEGATION: &str = "negation";
94pub const NODE_KIND_NOT_EQUAL: &str = "not_equal";
95
96pub const NODE_KIND_OPAQUE: &str = "opaque";
97pub const NODE_KIND_OPTIONAL: &str = "optional";
98
99pub const NODE_KIND_PREDICATE_VALUE: &str = "predicate_value";
100//pub const NODE_KIND_PROPERTY_BODY: &str = "property_body";
101pub const NODE_KIND_PROPERTY_DEF: &str = "property_def";
102//pub const NODE_KIND_PROPERTY_MEMBER: &str = "property_member";
103pub const NODE_KIND_PROPERTY_REF: &str = "property_ref";
104
105pub const NODE_KIND_QUALIFIED_IDENTIFIER: &str = "qualified_identifier";
106pub const NODE_KIND_QUANTIFIED_SENTENCE: &str = "quantified_sentence";
107pub const NODE_KIND_QUANTIFIED_VARIABLE: &str = "quantified_variable";
108pub const NODE_KIND_QUANTIFIED_VARIABLE_BINDING: &str = "quantified_variable_binding";
109pub const NODE_KIND_QUOTED_STRING: &str = "quoted_string";
110
111pub const NODE_KIND_RDF_DEF: &str = "rdf_def";
112pub const NODE_KIND_RDF_TYPES: &str = "rdf_types";
113pub const NODE_KIND_RESERVED_SELF: &str = "reserved_self";
114pub const NODE_KIND_ROLE_BY_REFERENCE: &str = "role_by_reference";
115pub const NODE_KIND_ROLE_BY_VALUE: &str = "role_by_value";
116
117pub const NODE_KIND_SEQUENCE_BUILDER: &str = "sequence_builder";
118pub const NODE_KIND_SEQUENCE_BUILDER_BODY: &str = "sequence_builder_body";
119pub const NODE_KIND_SEQUENCE_ITERATOR: &str = "sequence_iterator";
120pub const NODE_KIND_SEQUENCE_OF_PREDICATE_VALUES: &str = "sequence_of_predicate_values";
121pub const NODE_KIND_SEQUENCE_OF_VALUES: &str = "sequence_of_values";
122pub const NODE_KIND_SIMPLE_SENTENCE: &str = "simple_sentence";
123pub const NODE_KIND_SIMPLE_VALUE: &str = "simple_value";
124pub const NODE_KIND_SPAN: &str = "span";
125pub const NODE_KIND_STRING: &str = "string";
126pub const NODE_KIND_STRUCTURE_BODY: &str = "structure_body";
127pub const NODE_KIND_STRUCTURE_DEF: &str = "structure_def";
128pub const NODE_KIND_STRUCTURE_MEMBER: &str = "structure_member";
129
130pub const NODE_KIND_TERM: &str = "term";
131pub const NODE_KIND_TYPE_CLASS_ARGUMENTS: &str = "type_class_arguments";
132pub const NODE_KIND_TYPE_CLASS_DEF: &str = "type_class_def";
133pub const NODE_KIND_TYPE_CLASS_REFERENCE: &str = "type_class_reference";
134pub const NODE_KIND_TYPE_ITERATOR: &str = "type_iterator";
135pub const NODE_KIND_TYPE_REFERENCE: &str = "type_reference";
136pub const NODE_KIND_TYPE_VARIABLE: &str = "type_variable";
137pub const NODE_KIND_TYPE_VARIANT: &str = "type_variant";
138
139pub const NODE_KIND_UNARY_BOOLEAN_SENTENCE: &str = "unary_boolean_sentence";
140pub const NODE_KIND_UNION_BODY: &str = "union_body";
141pub const NODE_KIND_UNION_DEF: &str = "union_def";
142pub const NODE_KIND_UNIVERSAL: &str = "universal";
143pub const NODE_KIND_UNKNOWN_TYPE: &str = "unknown_type";
144pub const NODE_KIND_UNSIGNED: &str = "unsigned";
145
146pub const NODE_KIND_VALUE_CONSTRUCTOR: &str = "value_constructor";
147pub const NODE_KIND_VALUE_VARIANT: &str = "value_variant";
148pub const NODE_KIND_VALUE: &str = "value";
149
150pub const NODE_KIND_WILDCARD: &str = "wildcard";
151
152// ------------------------------------------------------------------------------------------------
153// Grammar Node field names
154// ------------------------------------------------------------------------------------------------
155
156pub const FIELD_NAME_ARGUMENT: &str = "argument";
157pub const FIELD_NAME_ARGUMENTS: &str = "arguments";
158
159pub const FIELD_NAME_BASE: &str = "base";
160pub const FIELD_NAME_BINARY: &str = "binary";
161pub const FIELD_NAME_BINDING: &str = "binding";
162pub const FIELD_NAME_BODY: &str = "body";
163pub const FIELD_NAME_BYTE: &str = "byte";
164
165pub const FIELD_NAME_CARDINALITY: &str = "cardinality";
166
167pub const FIELD_NAME_DOMAIN: &str = "domain";
168
169pub const FIELD_NAME_ELEMENT: &str = "element";
170
171//pub const FIELD_NAME_FEATURE: &str = "feature";
172pub const FIELD_NAME_FUNCTION: &str = "function";
173
174pub const FIELD_NAME_IDENTITY: &str = "identity";
175//pub const FIELD_NAME_INVERSE_NAME: &str = "inverse_name";
176
177pub const FIELD_NAME_LANGUAGE: &str = "language";
178pub const FIELD_NAME_LHS: &str = "lhs";
179
180pub const FIELD_NAME_MEMBER: &str = "member";
181pub const FIELD_NAME_METHOD: &str = "method";
182pub const FIELD_NAME_MAX: &str = "max";
183pub const FIELD_NAME_MIN: &str = "min";
184pub const FIELD_NAME_MODULE: &str = NODE_KIND_MODULE;
185
186pub const FIELD_NAME_NAME: &str = "name";
187
188pub const FIELD_NAME_OPERATOR: &str = "operator";
189pub const FIELD_NAME_ORDERING: &str = "ordering";
190
191pub const FIELD_NAME_PARAMETER: &str = "parameter";
192pub const FIELD_NAME_PARAMETERS: &str = "parameters";
193pub const FIELD_NAME_PREDICATE: &str = "predicate";
194pub const FIELD_NAME_PROPERTY: &str = "property";
195
196pub const FIELD_NAME_QUANTIFIER: &str = "quantifier";
197
198pub const FIELD_NAME_RANGE: &str = "range";
199pub const FIELD_NAME_RELATION: &str = "relation";
200pub const FIELD_NAME_RENAME: &str = "rename";
201pub const FIELD_NAME_RHS: &str = "rhs";
202
203pub const FIELD_NAME_SIGNATURE: &str = "signature";
204pub const FIELD_NAME_SOURCE: &str = "source";
205pub const FIELD_NAME_SUBJECT: &str = "subject";
206
207pub const FIELD_NAME_TARGET: &str = "target";
208pub const FIELD_NAME_TYPE: &str = "type";
209pub const FIELD_NAME_TYPES: &str = "types";
210
211pub const FIELD_NAME_UNARY: &str = "unary";
212pub const FIELD_NAME_UNIQUENESS: &str = "uniqueness";
213
214pub const FIELD_NAME_VALUE: &str = "value";
215pub const FIELD_NAME_VARIABLE: &str = "variable";
216pub const FIELD_NAME_VERSION_INFO: &str = "version_info";
217pub const FIELD_NAME_VERSION_URI: &str = "version_uri";
218
219pub const FIELD_NAME_WILDCARD: &str = "wildcard";
220
221// ------------------------------------------------------------------------------------------------
222// Keywords, Operators, and Relations
223// ------------------------------------------------------------------------------------------------
224
225pub const KW_ASSIGNMENT_BY_DEFINITION: &str = ":=";
226pub const KW_ASSIGNMENT_BY_DEFINITION_SYMBOL: &str = "≔";
227
228pub const KW_BOOLEAN_FALSITY: &str = "false";
229pub const KW_BOOLEAN_FALSITY_SYMBOL: &str = "⊥";
230pub const KW_BOOLEAN_TRUTH: &str = "true";
231pub const KW_BOOLEAN_TRUTH_SYMBOL: &str = "⊤";
232
233pub const KW_CARDINALITY_RANGE: &str = "..";
234
235pub const KW_DEF: &str = "def";
236
237pub const KW_EMPTY_SET: &str = "∅";
238
239pub const KW_FEATURES: &str = "features";
240
241pub const KW_HAS_TYPE: &str = "->";
242pub const KW_HAS_TYPE_SYMBOL: &str = "→";
243
244pub const KW_OPERATION_NEGATION: &str = "not";
245pub const KW_OPERATION_NEGATION_SYMBOL: &str = "¬";
246pub const KW_OPERATION_CONJUNCTION: &str = "and";
247pub const KW_OPERATION_CONJUNCTION_SYMBOL: &str = "∧";
248pub const KW_OPERATION_DISJUNCTION: &str = "or";
249pub const KW_OPERATION_DISJUNCTION_SYMBOL: &str = "∨";
250pub const KW_OPERATION_EXCLUSIVE_DISJUNCTION: &str = "xor";
251pub const KW_OPERATION_EXCLUSIVE_DISJUNCTION_SYMBOL: &str = "⊻";
252pub const KW_OPERATION_IMPLICATION: &str = "implies";
253pub const KW_OPERATION_IMPLICATION_ALT: &str = "==>";
254pub const KW_OPERATION_IMPLICATION_SYMBOL: &str = "⇒";
255pub const KW_OPERATION_BICONDITIONAL: &str = "iff";
256pub const KW_OPERATION_BICONDITIONAL_ALT: &str = "<==>";
257pub const KW_OPERATION_BICONDITIONAL_SYMBOL: &str = "⇔";
258pub const KW_OPERATION_MEMBERSHIP: &str = "in";
259pub const KW_OPERATION_MEMBERSHIP_SYMBOL: &str = "∈";
260
261pub const KW_OPAQUE: &str = NODE_KIND_OPAQUE;
262pub const KW_OPTIONAL: &str = NODE_KIND_OPTIONAL;
263
264pub const KW_ORDERING_ORDERED: &str = "ordered";
265pub const KW_ORDERING_UNORDERED: &str = "unordered";
266
267pub const KW_QUANTIFIED_SENTENCE_SEPARATOR: &str = ",";
268
269pub const KW_QUANTIFIER_EXISTS: &str = "exists";
270pub const KW_QUANTIFIER_EXISTS_SYMBOL: &str = "∃";
271pub const KW_QUANTIFIER_FORALL: &str = "forall";
272pub const KW_QUANTIFIER_FORALL_SYMBOL: &str = "∀";
273
274pub const KW_RELATION_NOT_EQUAL: &str = "/=";
275pub const KW_RELATION_NOT_EQUAL_SYMBOL: &str = "≠";
276pub const KW_RELATION_LESS_THAN: &str = "<";
277pub const KW_RELATION_GREATER_THAN: &str = ">";
278pub const KW_RELATION_LESS_THAN_OR_EQUAL: &str = "<=";
279pub const KW_RELATION_LESS_THAN_OR_EQUAL_SYMBOL: &str = "≤";
280pub const KW_RELATION_GREATER_THAN_OR_EQUAL: &str = ">=";
281pub const KW_RELATION_GREATER_THAN_OR_EQUAL_SYMBOL: &str = "≥";
282
283pub const KW_REF: &str = "ref";
284
285pub const KW_SIMPLE_TYPE_BINARY: &str = NODE_KIND_BINARY;
286pub const KW_SIMPLE_TYPE_BOOLEAN: &str = NODE_KIND_BOOLEAN;
287pub const KW_SIMPLE_TYPE_DECIMAL: &str = NODE_KIND_DECIMAL;
288pub const KW_SIMPLE_TYPE_DOUBLE: &str = NODE_KIND_DOUBLE;
289pub const KW_SIMPLE_TYPE_INTEGER: &str = NODE_KIND_INTEGER;
290pub const KW_SIMPLE_TYPE_IRI: &str = NODE_KIND_IRI;
291pub const KW_SIMPLE_TYPE_STRING: &str = NODE_KIND_STRING;
292pub const KW_SIMPLE_TYPE_UNSIGNED: &str = NODE_KIND_UNSIGNED;
293
294pub const KW_TYPE_RESTRICTION: &str = "<-";
295pub const KW_TYPE_RESTRICTION_SYMBOL: &str = "←";
296
297pub const KW_TYPE_UNKNOWN: &str = "unknown";
298
299pub const KW_UNIQUENESS_UNIQUE: &str = "unique";
300pub const KW_UNIQUENESS_NONUNIQUE: &str = "nonunique";
301
302pub const KW_WILDCARD: &str = "_";
303
304// ------------------------------------------------------------------------------------------------
305// Punctuation
306// ------------------------------------------------------------------------------------------------
307
308pub const PC_BINARY_END: &str = "]";
309pub const PC_BINARY_START: &str = "#[";
310
311pub const PC_CARDINALITY_END: &str = "}";
312pub const PC_CARDINALITY_START: &str = "{";
313
314pub const PC_CONSTRAINT_EXRESSION_GROUP_END: &str = ")";
315pub const PC_CONSTRAINT_EXRESSION_GROUP_START: &str = "(";
316
317pub const PC_FUNCTION_COMPOSITION_SEPARATOR: &str = ".";
318
319pub const PC_FUNCTION_PARARGS_END: &str = ")";
320pub const PC_FUNCTION_PARARGS_START: &str = "(";
321
322pub const PC_IRI_END: &str = ">";
323pub const PC_IRI_START: &str = "<";
324
325pub const PC_LINE_COMMENT_START: &str = ";";
326
327pub const PC_MAPPING_TYPE_VALUE_END: &str = ")";
328pub const PC_MAPPING_TYPE_VALUE_START: &str = "(";
329
330pub const PC_METHOD_PARARGS_END: &str = ")";
331pub const PC_METHOD_PARARGS_START: &str = "(";
332
333pub const PC_QUALIFIED_IDENTIFIER_SEPARATOR: &str = ":";
334
335pub const PC_SEQUENCE_END: &str = "]";
336pub const PC_SEQUENCE_START: &str = "[";
337
338pub const PC_SEQUENCE_BUILDER_END: &str = "}";
339pub const PC_SEQUENCE_BUILDER_SEPARATOR: &str = "|";
340pub const PC_SEQUENCE_BUILDER_START: &str = "{";
341
342pub const PC_STRING_END: &str = "\"";
343pub const PC_STRING_START: &str = PC_STRING_END;
344
345pub const PC_TYPE_CLASS_PARARGS_COMBINE: &str = "+";
346pub const PC_TYPE_CLASS_PARARGS_END: &str = ")";
347pub const PC_TYPE_CLASS_PARARGS_START: &str = "(";