diff --git a/tests/tree_sitter_integration.rs b/tests/tree_sitter_integration.rs new file mode 100644 index 0000000..460284f --- /dev/null +++ b/tests/tree_sitter_integration.rs @@ -0,0 +1,444 @@ +//! Tree-sitter Grammar Integration Tests +//! +//! These tests validate that: +//! 1. The tree-sitter grammar builds correctly +//! 2. All queries (highlights, injections, etc.) are valid +//! 3. Example files parse without errors +//! 4. The Zed extension builds successfully +//! +//! These are acceptance tests that catch integration issues between +//! the Storybook language and its tree-sitter representation. + +use std::{ + path::{ + Path, + PathBuf, + }, + process::Command, +}; + +fn tree_sitter_dir() -> PathBuf { + let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + path.push("tree-sitter-storybook"); + path +} + +fn zed_extension_dir() -> PathBuf { + let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + path.push("zed-storybook"); + path +} + +fn examples_dir() -> PathBuf { + let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + path.push("examples"); + path +} + +// ============================================================================ +// Tree-sitter Grammar Build Tests +// ============================================================================ + +#[test] +fn test_tree_sitter_grammar_generates() { + let output = Command::new("npx") + .arg("tree-sitter") + .arg("generate") + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter generate. Is tree-sitter-cli installed?"); + + if !output.status.success() { + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!( + output.status.success(), + "tree-sitter generate failed. Grammar may have syntax errors." + ); + + // Verify generated files exist + let parser_c = tree_sitter_dir().join("src").join("parser.c"); + assert!( + parser_c.exists(), + "parser.c not generated at {:?}", + parser_c + ); +} + +#[test] +fn test_tree_sitter_grammar_builds() { + let output = Command::new("npx") + .arg("tree-sitter") + .arg("generate") + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter generate"); + + if !output.status.success() { + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!( + output.status.success(), + "tree-sitter generate failed. Grammar may not compile." + ); +} + +// ============================================================================ +// Query Validation Tests +// ============================================================================ + +#[test] +fn test_highlights_query_valid() { + let output = Command::new("npx") + .arg("tree-sitter") + .arg("test") + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter test"); + + if !output.status.success() { + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!( + output.status.success(), + "tree-sitter test failed. Queries (highlights.scm, etc.) may have errors." + ); +} + +#[test] +fn test_queries_reference_valid_nodes() { + // This test verifies that all node types referenced in queries + // actually exist in the grammar. This catches issues like: + // - Using "any" instead of (any_type) + // - Referencing removed or renamed nodes + // - Typos in node names + + let highlights_scm = tree_sitter_dir().join("queries").join("highlights.scm"); + + assert!( + highlights_scm.exists(), + "highlights.scm not found at {:?}", + highlights_scm + ); + + let content = std::fs::read_to_string(&highlights_scm).expect("Failed to read highlights.scm"); + + // Check for common mistakes + let problematic_patterns = vec![ + ( + "\"any\"", + "Should use (any_type) instead of \"any\" string literal", + ), + ( + "\"Number\"", + "Number is not a keyword, should use a type node", + ), + ( + "\"Decimal\"", + "Decimal is not a keyword, should use a type node", + ), + ("\"Text\"", "Text is not a keyword, should use a type node"), + ( + "\"Boolean\"", + "Boolean is not a keyword, should use a type node", + ), + ]; + + for (pattern, msg) in problematic_patterns { + if content.contains(pattern) { + // Check if it's in a comment + let lines: Vec<&str> = content.lines().collect(); + for line in lines { + if line.contains(pattern) && !line.trim_start().starts_with(';') { + panic!( + "highlights.scm contains problematic pattern '{}': {}", + pattern, msg + ); + } + } + } + } +} + +// ============================================================================ +// Example File Parsing Tests +// ============================================================================ + +#[test] +fn test_baker_family_example_parses() { + let baker_family = examples_dir().join("baker-family"); + assert!(baker_family.exists(), "baker-family example not found"); + + // Find all .sb files + let sb_files = find_sb_files(&baker_family); + assert!( + !sb_files.is_empty(), + "No .sb files found in baker-family example" + ); + + for file in &sb_files { + let output = Command::new("npx") + .arg("tree-sitter") + .arg("parse") + .arg(file) + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter parse"); + + if !output.status.success() { + eprintln!("Failed to parse: {:?}", file); + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!( + output.status.success(), + "Failed to parse {:?} with tree-sitter", + file + ); + + // Check for ERROR nodes in the parse tree + let stdout = String::from_utf8_lossy(&output.stdout); + if stdout.contains("ERROR") { + eprintln!("Parse tree for {:?}:", file); + eprintln!("{}", stdout); + panic!("Parse tree contains ERROR nodes for {:?}", file); + } + } +} + +#[test] +fn test_all_examples_parse() { + let sb_files = find_sb_files(&examples_dir()); + assert!(!sb_files.is_empty(), "No .sb files found in examples/"); + + let mut failures = Vec::new(); + + for file in &sb_files { + let output = Command::new("npx") + .arg("tree-sitter") + .arg("parse") + .arg(file) + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter parse"); + + if !output.status.success() { + failures.push((file.clone(), "Parse command failed".to_string())); + continue; + } + + // Check for ERROR nodes + let stdout = String::from_utf8_lossy(&output.stdout); + if stdout.contains("ERROR") { + failures.push((file.clone(), "Parse tree contains ERROR nodes".to_string())); + } + } + + if !failures.is_empty() { + eprintln!("Failed to parse {} files:", failures.len()); + for (file, reason) in &failures { + eprintln!(" - {:?}: {}", file, reason); + } + panic!("{} files failed to parse with tree-sitter", failures.len()); + } +} + +// ============================================================================ +// Specific Language Feature Tests +// ============================================================================ + +#[test] +fn test_type_system_keywords_parse() { + let test_file = tree_sitter_dir() + .join("test") + .join("corpus") + .join("type_system.txt"); + + if !test_file.exists() { + panic!( + "Type system test corpus not found at {:?}. Please create it.", + test_file + ); + } + + let output = Command::new("npx") + .arg("tree-sitter") + .arg("test") + .arg("--filter") + .arg("type_system") + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter test"); + + if !output.status.success() { + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!(output.status.success(), "Type system test corpus failed"); +} + +#[test] +fn test_any_type_highlights_correctly() { + // Create a minimal test file with any_type usage + let test_content = r#" +concept_comparison SkillLevel { + Novice: { skill: any }, + Expert: { skill: Tier is Expert } +} +"#; + + let temp_dir = std::env::temp_dir(); + let test_file = temp_dir.join("test_any_type.sb"); + std::fs::write(&test_file, test_content).expect("Failed to write test file"); + + let output = Command::new("npx") + .arg("tree-sitter") + .arg("parse") + .arg(&test_file) + .current_dir(tree_sitter_dir()) + .output() + .expect("Failed to run tree-sitter parse"); + + std::fs::remove_file(&test_file).ok(); // Clean up + + if !output.status.success() { + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!(output.status.success(), "Failed to parse any_type usage"); + + let stdout = String::from_utf8_lossy(&output.stdout); + assert!( + stdout.contains("any_type"), + "Parse tree should contain any_type node" + ); + assert!( + !stdout.contains("ERROR"), + "Parse tree should not contain ERROR nodes" + ); +} + +// ============================================================================ +// Zed Extension Build Tests +// ============================================================================ + +#[test] +#[ignore] // Only run with --ignored flag as this is slow +fn test_zed_extension_builds() { + let build_script = zed_extension_dir().join("build-extension.sh"); + + if !build_script.exists() { + panic!("build-extension.sh not found at {:?}", build_script); + } + + let output = Command::new("bash") + .arg(&build_script) + .current_dir(zed_extension_dir()) + .output() + .expect("Failed to run build-extension.sh"); + + if !output.status.success() { + eprintln!("STDOUT: {}", String::from_utf8_lossy(&output.stdout)); + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!(output.status.success(), "build-extension.sh failed"); + + // Verify the extension.wasm was created + let wasm = zed_extension_dir().join("extension.wasm"); + assert!(wasm.exists(), "extension.wasm not created at {:?}", wasm); +} + +#[test] +fn test_extension_toml_has_valid_revision() { + let extension_toml = zed_extension_dir().join("extension.toml"); + let content = std::fs::read_to_string(&extension_toml).expect("Failed to read extension.toml"); + + // Check that rev is set to a valid commit SHA + let rev_line = content + .lines() + .find(|line| line.starts_with("rev = ")) + .expect("No 'rev' field found in extension.toml"); + + let rev = rev_line + .split('"') + .nth(1) + .expect("Could not parse rev value"); + + assert_eq!( + rev.len(), + 40, + "Revision should be a 40-character git SHA, got: {}", + rev + ); + + // Verify the commit exists + let output = Command::new("git") + .arg("cat-file") + .arg("-t") + .arg(rev) + .current_dir(env!("CARGO_MANIFEST_DIR")) + .output() + .expect("Failed to run git cat-file"); + + if !output.status.success() { + eprintln!("STDERR: {}", String::from_utf8_lossy(&output.stderr)); + } + + assert!( + output.status.success(), + "Revision {} does not exist in git history", + rev + ); + + let obj_type = String::from_utf8_lossy(&output.stdout); + assert_eq!( + obj_type.trim(), + "commit", + "Revision {} is not a commit", + rev + ); +} + +// ============================================================================ +// Helper Functions +// ============================================================================ + +fn find_sb_files(dir: &Path) -> Vec { + let mut sb_files = Vec::new(); + + if !dir.exists() { + return sb_files; + } + + visit_dirs(dir, &mut |path| { + if path.extension().and_then(|s| s.to_str()) == Some("sb") { + sb_files.push(path.to_path_buf()); + } + }); + + sb_files +} + +fn visit_dirs(dir: &Path, cb: &mut dyn FnMut(&Path)) { + if dir.is_dir() { + for entry in std::fs::read_dir(dir).unwrap() { + let entry = entry.unwrap(); + let path = entry.path(); + if path.is_dir() { + visit_dirs(&path, cb); + } else { + cb(&path); + } + } + } +} diff --git a/tree-sitter-storybook/grammar.js b/tree-sitter-storybook/grammar.js index a248ea5..b51f505 100644 --- a/tree-sitter-storybook/grammar.js +++ b/tree-sitter-storybook/grammar.js @@ -21,7 +21,8 @@ module.exports = grammar({ conflicts: $ => [ [$.path_segments], - [$.sub_concept_enum_body, $.sub_concept_record_body] + [$.sub_concept_enum_body, $.sub_concept_record_body], + [$.uses_behaviors] ], word: $ => $.identifier, @@ -37,15 +38,15 @@ module.exports = grammar({ // Declarations declaration: $ => choice( $.use_declaration, - $.character, - $.template, - $.life_arc, - $.schedule, - $.behavior, - $.institution, - $.relationship, - $.location, - $.species, + $.character_declaration, + $.template_declaration, + $.life_arc_declaration, + $.schedule_declaration, + $.behavior_declaration, + $.institution_declaration, + $.relationship_declaration, + $.location_declaration, + $.species_declaration, $.enum_declaration, $.concept_declaration, $.sub_concept, @@ -68,28 +69,59 @@ module.exports = grammar({ path_segments: $ => sep1($.identifier, token('::')), // Character declaration - character: $ => seq( + character_declaration: $ => seq( 'character', field('name', $.identifier), optional(seq(':', field('species', $.identifier))), optional(field('template', $.template_clause)), - field('body', $.block) + field('body', $.character_body) + ), + + character_body: $ => seq( + '{', + repeat($.field), + '}' ), template_clause: $ => seq('from', commaSep1($.identifier)), // Template declaration - template: $ => seq( + template_declaration: $ => seq( 'template', field('name', $.identifier), optional(seq(':', field('species', $.identifier))), optional('strict'), + field('body', $.template_body) + ), + + template_body: $ => seq( '{', - repeat($.include), - repeat($.field), + repeat(choice( + $.include, + $.uses_behaviors, + $.uses_schedule, + $.field + )), '}' ), + uses_behaviors: $ => seq( + 'uses', + 'behaviors', + ':', + commaSep1($.identifier) + ), + + uses_schedule: $ => seq( + 'uses', + choice('schedule', 'schedules'), + ':', + choice( + $.identifier, + seq('[', commaSep1($.identifier), ']') + ) + ), + include: $ => seq('include', $.identifier), // Fields (key: value pairs) @@ -177,18 +209,36 @@ module.exports = grammar({ )))), // Life arc declaration - life_arc: $ => seq( + life_arc_declaration: $ => seq( 'life_arc', field('name', $.identifier), + optional(field('requires', $.requires_clause)), '{', repeat($.field), - repeat($.arc_state), + repeat($.state_block), '}' ), - arc_state: $ => seq( + requires_clause: $ => seq( + 'requires', + '{', + commaSep1($.required_field), + '}' + ), + + required_field: $ => seq( + field('name', $.identifier), + ':', + field('type', $.identifier) + ), + + state_block: $ => seq( 'state', field('name', $.identifier), + field('body', $.state_body) + ), + + state_body: $ => seq( '{', optional($.on_enter), repeat($.field), @@ -206,28 +256,76 @@ module.exports = grammar({ ), // Schedule declaration - schedule: $ => seq( + schedule_declaration: $ => seq( 'schedule', field('name', $.identifier), + optional(seq('extends', field('extends', $.identifier))), + field('body', $.schedule_body) + ), + + schedule_body: $ => seq( '{', - repeat($.field), - repeat($.schedule_block), + repeat(choice( + $.field, + $.schedule_block, + $.override_block, + $.recurrence_block + )), '}' ), + // Named block: block name { time range, action, fields } schedule_block: $ => seq( + 'block', + field('name', $.identifier), + '{', + field('time_range', $.time_range), + repeat($.block_field), + '}' + ), + + // Override block: override name { time range, action, fields } + override_block: $ => seq( + 'override', + field('name', $.identifier), + '{', + field('time_range', $.time_range), + repeat($.block_field), + '}' + ), + + // Recurrence: recurrence Name on DayOfWeek { blocks } + recurrence_block: $ => seq( + 'recurrence', + field('name', $.identifier), + 'on', + field('day', $.identifier), + '{', + repeat1($.schedule_block), + '}' + ), + + time_range: $ => seq( field('start', $.time), '->', field('end', $.time), + optional(',') + ), + + block_field: $ => seq( + field('name', $.identifier), ':', - field('activity', $.identifier), - $.block + field('value', choice($.identifier, $.string, $.integer, $.float)) ), // Behavior tree declaration - behavior: $ => seq( + behavior_declaration: $ => seq( 'behavior', field('name', $.identifier), + field('body', $.behavior_body) + ), + + behavior_body: $ => seq( '{', repeat($.field), field('root', $.behavior_node), @@ -239,6 +337,7 @@ module.exports = grammar({ $.sequence_node, $.condition_node, $.if_decorator_node, + $.repeat_node, $.decorator_node, $.action_node, $.subtree_node @@ -281,7 +380,20 @@ module.exports = grammar({ '}' ), - // Decorator node: repeat/retry/timeout/etc { child } + // Repeat node: repeat { child } or repeat(N) { child } or repeat(min..max) { child } + repeat_node: $ => seq( + 'repeat', + optional(field('params', choice( + seq('(', $.integer, ')'), + seq('(', $.integer, '..', $.integer, ')'), + seq('(', $.duration, ')') + ))), + '{', + field('child', $.behavior_node), + '}' + ), + + // Decorator node: retry/timeout/etc { child } decorator_node: $ => seq( field('decorator', $.decorator_keyword), optional(field('params', $.decorator_params)), @@ -291,7 +403,6 @@ module.exports = grammar({ ), decorator_keyword: $ => choice( - 'repeat', 'invert', 'retry', 'timeout', @@ -330,16 +441,20 @@ module.exports = grammar({ subtree_node: $ => seq('include', $.path), // Institution declaration - institution: $ => seq( + institution_declaration: $ => seq( 'institution', field('name', $.identifier), - $.block + field('body', $.block) ), // Relationship declaration - relationship: $ => seq( + relationship_declaration: $ => seq( 'relationship', field('name', $.identifier), + field('body', $.relationship_body) + ), + + relationship_body: $ => seq( '{', repeat1($.participant), repeat($.field), @@ -354,22 +469,42 @@ module.exports = grammar({ ), // Location declaration - location: $ => seq( + location_declaration: $ => seq( 'location', field('name', $.identifier), - $.block + field('body', $.block) ), // Species declaration - species: $ => seq( + species_declaration: $ => seq( 'species', field('name', $.identifier), + field('body', $.species_body) + ), + + species_body: $ => seq( '{', repeat($.include), - repeat($.field), + repeat($.species_field), '}' ), + species_field: $ => choice( + // Field with range: name: min..max + seq( + field('name', $.identifier), + ':', + field('value', $.range) + ), + // Field with single value: name: value + seq( + field('name', $.identifier), + ':', + field('value', choice($.integer, $.float, $.boolean, $.string)) + ), + $.prose_block + ), + // Enum declaration enum_declaration: $ => seq( 'enum', @@ -382,8 +517,7 @@ module.exports = grammar({ // Concept declaration - base type with no structure concept_declaration: $ => seq( 'concept', - field('name', $.identifier), - ';' + field('name', $.identifier) ), // Sub-concept declaration - enum or record subtype with dot notation @@ -403,13 +537,13 @@ module.exports = grammar({ // Enum form: Variant1, Variant2, Variant3 sub_concept_enum_body: $ => commaSep1($.identifier), - // Record form: field_name: Type, field_name: any + // Record form: field_name: value, field_name: value sub_concept_record_body: $ => commaSep1($.sub_concept_field), sub_concept_field: $ => seq( field('name', $.identifier), ':', - field('type', choice($.identifier, $.any_type)) + field('value', choice($.integer, $.float, $.string, $.boolean)) ), any_type: $ => 'any', @@ -432,25 +566,26 @@ module.exports = grammar({ '}' ), - // A condition on a sub_concept field + // Field condition: field_name: any OR field_name: Type is Value [or Type is Value]* field_condition: $ => seq( - field('sub_concept', $.dotted_path), + field('name', $.identifier), ':', - field('condition', $.condition_expr) + field('condition', choice( + $.any_type, + $.is_condition + )) ), - // Condition: either 'any' or 'Type is Value or Type is Value2' - condition_expr: $ => choice( - $.any_type, - $.is_condition - ), - - // Pattern: DottedPath is Ident [or DottedPath is Ident]* + // Is condition: Type is Value [or Type is Value]* is_condition: $ => seq( - $.dotted_path, + $.is_value, + repeat(seq('or', $.is_value)) + ), + + is_value: $ => seq( + field('field', $.identifier), 'is', - $.identifier, - repeat(seq('or', $.dotted_path, 'is', $.identifier)) + field('value', $.identifier) ), // Expressions (for conditions in life arcs) diff --git a/tree-sitter-storybook/queries/highlights.scm b/tree-sitter-storybook/queries/highlights.scm index c75c7ac..cc23da7 100644 --- a/tree-sitter-storybook/queries/highlights.scm +++ b/tree-sitter-storybook/queries/highlights.scm @@ -69,30 +69,30 @@ (string) @string ; Identifiers in different contexts -(character name: (identifier) @type.character) -(template name: (identifier) @type.template) -(life_arc name: (identifier) @type.life_arc) -(schedule name: (identifier) @type.schedule) -(behavior name: (identifier) @type.behavior) -(institution name: (identifier) @type.institution) -(relationship name: (identifier) @type.relationship) -(location name: (identifier) @type.location) -(species name: (identifier) @type.species) +(character_declaration name: (identifier) @type.character) +(template_declaration name: (identifier) @type.template) +(life_arc_declaration name: (identifier) @type.life_arc) +(schedule_declaration name: (identifier) @type.schedule) +(behavior_declaration name: (identifier) @type.behavior) +(institution_declaration name: (identifier) @type.institution) +(relationship_declaration name: (identifier) @type.relationship) +(location_declaration name: (identifier) @type.location) +(species_declaration name: (identifier) @type.species) (enum_declaration name: (identifier) @type.enum) -(arc_state name: (identifier) @type.state) +(state_block name: (identifier) @type.state) (concept_declaration name: (identifier) @type.concept) (sub_concept parent: (identifier) @type.concept) (sub_concept name: (identifier) @type.sub_concept) (concept_comparison name: (identifier) @type.concept_comparison) (variant_pattern name: (identifier) @type.variant) -(template species: (identifier) @type.builtin) +(template_declaration species: (identifier) @type.builtin) ; Field names (field name: (dotted_path) @property) (sub_concept_field name: (identifier) @property) ; Species reference -(character species: (identifier) @type.builtin) +(character_declaration species: (identifier) @type.builtin) ; Paths and identifiers (path) @namespace @@ -148,7 +148,7 @@ (transition target: (identifier) @type.state) ; Schedule blocks -(schedule_block activity: (identifier) @function.activity) +(schedule_block name: (identifier) @function.schedule_block) ; Override operations (override "@" @keyword.override) diff --git a/tree-sitter-storybook/queries/indents.scm b/tree-sitter-storybook/queries/indents.scm index de54a3d..17002fe 100644 --- a/tree-sitter-storybook/queries/indents.scm +++ b/tree-sitter-storybook/queries/indents.scm @@ -24,17 +24,17 @@ ; Block structures that should indent their contents [ (block) - (character) - (template) - (life_arc) - (arc_state) - (schedule) + (character_declaration) + (template_declaration) + (life_arc_declaration) + (state_block) + (schedule_declaration) (schedule_block) - (behavior) - (institution) - (relationship) - (location) - (species) + (behavior_declaration) + (institution_declaration) + (relationship_declaration) + (location_declaration) + (species_declaration) (enum_declaration) (selector_node) (sequence_node) @@ -46,4 +46,3 @@ ; Dedent after semicolon at top level (use_declaration ";" @indent.end) -(concept_declaration ";" @indent.end) diff --git a/tree-sitter-storybook/queries/outline.scm b/tree-sitter-storybook/queries/outline.scm index 72b48cc..79bccbe 100644 --- a/tree-sitter-storybook/queries/outline.scm +++ b/tree-sitter-storybook/queries/outline.scm @@ -2,52 +2,52 @@ ; Defines what symbols appear in the document outline ; Characters -(character +(character_declaration name: (identifier) @name ) @symbol.character ; Templates -(template +(template_declaration name: (identifier) @name ) @symbol.template ; Life arcs -(life_arc +(life_arc_declaration name: (identifier) @name ) @symbol.life_arc ; Life arc states -(arc_state +(state_block name: (identifier) @name ) @symbol.state ; Schedules -(schedule +(schedule_declaration name: (identifier) @name ) @symbol.schedule ; Behaviors -(behavior +(behavior_declaration name: (identifier) @name ) @symbol.behavior ; Institutions -(institution +(institution_declaration name: (identifier) @name ) @symbol.institution ; Relationships -(relationship +(relationship_declaration name: (identifier) @name ) @symbol.relationship ; Locations -(location +(location_declaration name: (identifier) @name ) @symbol.location ; Species -(species +(species_declaration name: (identifier) @name ) @symbol.species diff --git a/tree-sitter-storybook/src/grammar.json b/tree-sitter-storybook/src/grammar.json index 7d1c8b6..e308dbd 100644 --- a/tree-sitter-storybook/src/grammar.json +++ b/tree-sitter-storybook/src/grammar.json @@ -54,39 +54,39 @@ }, { "type": "SYMBOL", - "name": "character" + "name": "character_declaration" }, { "type": "SYMBOL", - "name": "template" + "name": "template_declaration" }, { "type": "SYMBOL", - "name": "life_arc" + "name": "life_arc_declaration" }, { "type": "SYMBOL", - "name": "schedule" + "name": "schedule_declaration" }, { "type": "SYMBOL", - "name": "behavior" + "name": "behavior_declaration" }, { "type": "SYMBOL", - "name": "institution" + "name": "institution_declaration" }, { "type": "SYMBOL", - "name": "relationship" + "name": "relationship_declaration" }, { "type": "SYMBOL", - "name": "location" + "name": "location_declaration" }, { "type": "SYMBOL", - "name": "species" + "name": "species_declaration" }, { "type": "SYMBOL", @@ -235,7 +235,7 @@ } ] }, - "character": { + "character_declaration": { "type": "SEQ", "members": [ { @@ -296,11 +296,31 @@ "name": "body", "content": { "type": "SYMBOL", - "name": "block" + "name": "character_body" } } ] }, + "character_body": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "field" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, "template_clause": { "type": "SEQ", "members": [ @@ -347,7 +367,7 @@ } ] }, - "template": { + "template_declaration": { "type": "SEQ", "members": [ { @@ -399,6 +419,19 @@ } ] }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "template_body" + } + } + ] + }, + "template_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -406,15 +439,25 @@ { "type": "REPEAT", "content": { - "type": "SYMBOL", - "name": "include" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "field" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "include" + }, + { + "type": "SYMBOL", + "name": "uses_behaviors" + }, + { + "type": "SYMBOL", + "name": "uses_schedule" + }, + { + "type": "SYMBOL", + "name": "field" + } + ] } }, { @@ -423,6 +466,145 @@ } ] }, + "uses_behaviors": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "uses" + }, + { + "type": "STRING", + "value": "behaviors" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + "uses_schedule": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "uses" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "schedule" + }, + { + "type": "STRING", + "value": "schedules" + } + ] + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + } + ] + }, "include": { "type": "SEQ", "members": [ @@ -845,7 +1027,7 @@ } } }, - "life_arc": { + "life_arc_declaration": { "type": "SEQ", "members": [ { @@ -860,6 +1042,22 @@ "name": "identifier" } }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "requires", + "content": { + "type": "SYMBOL", + "name": "requires_clause" + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "{" @@ -875,7 +1073,7 @@ "type": "REPEAT", "content": { "type": "SYMBOL", - "name": "arc_state" + "name": "state_block" } }, { @@ -884,7 +1082,86 @@ } ] }, - "arc_state": { + "requires_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "requires" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "required_field" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "required_field" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "required_field": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + }, + "state_block": { "type": "SEQ", "members": [ { @@ -899,6 +1176,19 @@ "name": "identifier" } }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "state_body" + } + } + ] + }, + "state_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -981,7 +1271,7 @@ } ] }, - "schedule": { + "schedule_declaration": { "type": "SEQ", "members": [ { @@ -996,19 +1286,191 @@ "name": "identifier" } }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "extends" + }, + { + "type": "FIELD", + "name": "extends", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "schedule_body" + } + } + ] + }, + "schedule_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "field" + }, + { + "type": "SYMBOL", + "name": "schedule_block" + }, + { + "type": "SYMBOL", + "name": "override_block" + }, + { + "type": "SYMBOL", + "name": "recurrence_block" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "schedule_block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "block" + }, + { + "type": "FIELD", + "name": "name", "content": { "type": "SYMBOL", - "name": "field" + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "FIELD", + "name": "time_range", + "content": { + "type": "SYMBOL", + "name": "time_range" } }, { "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "block_field" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "override_block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "override" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "FIELD", + "name": "time_range", + "content": { + "type": "SYMBOL", + "name": "time_range" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "block_field" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "recurrence_block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "recurrence" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "on" + }, + { + "type": "FIELD", + "name": "day", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "schedule_block" @@ -1020,7 +1482,7 @@ } ] }, - "schedule_block": { + "time_range": { "type": "SEQ", "members": [ { @@ -1044,24 +1506,62 @@ } }, { - "type": "STRING", - "value": ":" - }, + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "block_field": { + "type": "SEQ", + "members": [ { "type": "FIELD", - "name": "activity", + "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { - "type": "SYMBOL", - "name": "block" + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "SYMBOL", + "name": "float" + } + ] + } } ] }, - "behavior": { + "behavior_declaration": { "type": "SEQ", "members": [ { @@ -1076,6 +1576,19 @@ "name": "identifier" } }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "behavior_body" + } + } + ] + }, + "behavior_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -1120,6 +1633,10 @@ "type": "SYMBOL", "name": "if_decorator_node" }, + { + "type": "SYMBOL", + "name": "repeat_node" + }, { "type": "SYMBOL", "name": "decorator_node" @@ -1289,6 +1806,107 @@ } ] }, + "repeat_node": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "repeat" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "params", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "STRING", + "value": ".." + }, + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "duration" + }, + { + "type": "STRING", + "value": ")" + } + ] + } + ] + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "FIELD", + "name": "child", + "content": { + "type": "SYMBOL", + "name": "behavior_node" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, "decorator_node": { "type": "SEQ", "members": [ @@ -1337,10 +1955,6 @@ "decorator_keyword": { "type": "CHOICE", "members": [ - { - "type": "STRING", - "value": "repeat" - }, { "type": "STRING", "value": "invert" @@ -1520,7 +2134,7 @@ } ] }, - "institution": { + "institution_declaration": { "type": "SEQ", "members": [ { @@ -1536,12 +2150,16 @@ } }, { - "type": "SYMBOL", - "name": "block" + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "block" + } } ] }, - "relationship": { + "relationship_declaration": { "type": "SEQ", "members": [ { @@ -1556,6 +2174,19 @@ "name": "identifier" } }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "relationship_body" + } + } + ] + }, + "relationship_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -1619,7 +2250,7 @@ } ] }, - "location": { + "location_declaration": { "type": "SEQ", "members": [ { @@ -1635,12 +2266,16 @@ } }, { - "type": "SYMBOL", - "name": "block" + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "block" + } } ] }, - "species": { + "species_declaration": { "type": "SEQ", "members": [ { @@ -1655,6 +2290,19 @@ "name": "identifier" } }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "species_body" + } + } + ] + }, + "species_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -1670,7 +2318,7 @@ "type": "REPEAT", "content": { "type": "SYMBOL", - "name": "field" + "name": "species_field" } }, { @@ -1679,6 +2327,82 @@ } ] }, + "species_field": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "range" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "SYMBOL", + "name": "float" + }, + { + "type": "SYMBOL", + "name": "boolean" + }, + { + "type": "SYMBOL", + "name": "string" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "prose_block" + } + ] + }, "enum_declaration": { "type": "SEQ", "members": [ @@ -1755,10 +2479,6 @@ "type": "SYMBOL", "name": "identifier" } - }, - { - "type": "STRING", - "value": ";" } ] }, @@ -1907,17 +2627,25 @@ }, { "type": "FIELD", - "name": "type", + "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "identifier" + "name": "integer" }, { "type": "SYMBOL", - "name": "any_type" + "name": "float" + }, + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "SYMBOL", + "name": "boolean" } ] } @@ -2057,10 +2785,10 @@ "members": [ { "type": "FIELD", - "name": "sub_concept", + "name": "name", "content": { "type": "SYMBOL", - "name": "dotted_path" + "name": "identifier" } }, { @@ -2071,39 +2799,27 @@ "type": "FIELD", "name": "condition", "content": { - "type": "SYMBOL", - "name": "condition_expr" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "any_type" + }, + { + "type": "SYMBOL", + "name": "is_condition" + } + ] } } ] }, - "condition_expr": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "any_type" - }, - { - "type": "SYMBOL", - "name": "is_condition" - } - ] - }, "is_condition": { "type": "SEQ", "members": [ { "type": "SYMBOL", - "name": "dotted_path" - }, - { - "type": "STRING", - "value": "is" - }, - { - "type": "SYMBOL", - "name": "identifier" + "name": "is_value" }, { "type": "REPEAT", @@ -2116,21 +2832,38 @@ }, { "type": "SYMBOL", - "name": "dotted_path" - }, - { - "type": "STRING", - "value": "is" - }, - { - "type": "SYMBOL", - "name": "identifier" + "name": "is_value" } ] } } ] }, + "is_value": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "field", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "is" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + }, "expression": { "type": "CHOICE", "members": [ @@ -2345,6 +3078,9 @@ [ "sub_concept_enum_body", "sub_concept_record_body" + ], + [ + "uses_behaviors" ] ], "precedences": [], diff --git a/tree-sitter-storybook/src/node-types.json b/tree-sitter-storybook/src/node-types.json index eb1dc35..58359d5 100644 --- a/tree-sitter-storybook/src/node-types.json +++ b/tree-sitter-storybook/src/node-types.json @@ -53,53 +53,9 @@ } }, { - "type": "arc_state", + "type": "behavior_body", "named": true, "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "field", - "named": true - }, - { - "type": "on_enter", - "named": true - }, - { - "type": "transition", - "named": true - } - ] - } - }, - { - "type": "behavior", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, "root": { "multiple": false, "required": true, @@ -122,6 +78,32 @@ ] } }, + { + "type": "behavior_declaration", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "behavior_body", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, { "type": "behavior_node", "named": true, @@ -146,6 +128,10 @@ "type": "if_decorator_node", "named": true }, + { + "type": "repeat_node", + "named": true + }, { "type": "selector_node", "named": true @@ -176,13 +162,66 @@ ] } }, + { + "type": "block_field", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "float", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "integer", + "named": true + }, + { + "type": "string", + "named": true + } + ] + } + } + }, { "type": "boolean", "named": true, "fields": {} }, { - "type": "character", + "type": "character_body", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "field", + "named": true + } + ] + } + }, + { + "type": "character_declaration", "named": true, "fields": { "body": { @@ -190,7 +229,7 @@ "required": true, "types": [ { - "type": "block", + "type": "character_body", "named": true } ] @@ -311,25 +350,6 @@ } } }, - { - "type": "condition_expr", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "any_type", - "named": true - }, - { - "type": "is_condition", - "named": true - } - ] - } - }, { "type": "condition_node", "named": true, @@ -355,11 +375,11 @@ "required": true, "types": [ { - "type": "behavior", + "type": "behavior_declaration", "named": true }, { - "type": "character", + "type": "character_declaration", "named": true }, { @@ -375,27 +395,27 @@ "named": true }, { - "type": "institution", + "type": "institution_declaration", "named": true }, { - "type": "life_arc", + "type": "life_arc_declaration", "named": true }, { - "type": "location", + "type": "location_declaration", "named": true }, { - "type": "relationship", + "type": "relationship_declaration", "named": true }, { - "type": "schedule", + "type": "schedule_declaration", "named": true }, { - "type": "species", + "type": "species_declaration", "named": true }, { @@ -403,7 +423,7 @@ "named": true }, { - "type": "template", + "type": "template_declaration", "named": true }, { @@ -613,17 +633,21 @@ "required": true, "types": [ { - "type": "condition_expr", + "type": "any_type", + "named": true + }, + { + "type": "is_condition", "named": true } ] }, - "sub_concept": { + "name": { "multiple": false, "required": true, "types": [ { - "type": "dotted_path", + "type": "identifier", "named": true } ] @@ -672,9 +696,19 @@ } }, { - "type": "institution", + "type": "institution_declaration", "named": true, "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -685,16 +719,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "block", - "named": true - } - ] } }, { @@ -706,18 +730,40 @@ "required": true, "types": [ { - "type": "dotted_path", - "named": true - }, - { - "type": "identifier", + "type": "is_value", "named": true } ] } }, { - "type": "life_arc", + "type": "is_value", + "named": true, + "fields": { + "field": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "life_arc_declaration", "named": true, "fields": { "name": { @@ -729,6 +775,16 @@ "named": true } ] + }, + "requires": { + "multiple": false, + "required": false, + "types": [ + { + "type": "requires_clause", + "named": true + } + ] } }, "children": { @@ -736,11 +792,11 @@ "required": false, "types": [ { - "type": "arc_state", + "type": "field", "named": true }, { - "type": "field", + "type": "state_block", "named": true } ] @@ -762,9 +818,19 @@ } }, { - "type": "location", + "type": "location_declaration", "named": true, "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -775,16 +841,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "block", - "named": true - } - ] } }, { @@ -866,6 +922,42 @@ ] } }, + { + "type": "override_block", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "time_range": { + "multiple": false, + "required": true, + "types": [ + { + "type": "time_range", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "block_field", + "named": true + } + ] + } + }, { "type": "override_op", "named": true, @@ -1035,9 +1127,19 @@ } }, { - "type": "relationship", + "type": "recurrence_block", "named": true, "fields": { + "day": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -1049,6 +1151,21 @@ ] } }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "schedule_block", + "named": true + } + ] + } + }, + { + "type": "relationship_body", + "named": true, + "fields": {}, "children": { "multiple": true, "required": true, @@ -1065,7 +1182,75 @@ } }, { - "type": "schedule", + "type": "relationship_declaration", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "relationship_body", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "repeat_node", + "named": true, + "fields": { + "child": { + "multiple": false, + "required": true, + "types": [ + { + "type": "behavior_node", + "named": true + } + ] + }, + "params": { + "multiple": true, + "required": false, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "..", + "named": false + }, + { + "type": "duration", + "named": true + }, + { + "type": "integer", + "named": true + } + ] + } + } + }, + { + "type": "required_field", "named": true, "fields": { "name": { @@ -1077,8 +1262,74 @@ "named": true } ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "requires_clause", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "required_field", + "named": true + } + ] + } + }, + { + "type": "schedule_block", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "time_range": { + "multiple": false, + "required": true, + "types": [ + { + "type": "time_range", + "named": true + } + ] } }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "block_field", + "named": true + } + ] + } + }, + { + "type": "schedule_body", + "named": true, + "fields": {}, "children": { "multiple": true, "required": false, @@ -1087,6 +1338,14 @@ "type": "field", "named": true }, + { + "type": "override_block", + "named": true + }, + { + "type": "recurrence_block", + "named": true + }, { "type": "schedule_block", "named": true @@ -1095,10 +1354,30 @@ } }, { - "type": "schedule_block", + "type": "schedule_declaration", "named": true, "fields": { - "activity": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "schedule_body", + "named": true + } + ] + }, + "extends": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "name": { "multiple": false, "required": true, "types": [ @@ -1107,37 +1386,7 @@ "named": true } ] - }, - "end": { - "multiple": false, - "required": true, - "types": [ - { - "type": "time", - "named": true - } - ] - }, - "start": { - "multiple": false, - "required": true, - "types": [ - { - "type": "time", - "named": true - } - ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "block", - "named": true - } - ] } }, { @@ -1208,9 +1457,38 @@ } }, { - "type": "species", + "type": "species_body", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "include", + "named": true + }, + { + "type": "species_field", + "named": true + } + ] + } + }, + { + "type": "species_declaration", "named": true, "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "species_body", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -1221,7 +1499,90 @@ } ] } + } + }, + { + "type": "species_field", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "boolean", + "named": true + }, + { + "type": "float", + "named": true + }, + { + "type": "integer", + "named": true + }, + { + "type": "range", + "named": true + }, + { + "type": "string", + "named": true + } + ] + } }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "prose_block", + "named": true + } + ] + } + }, + { + "type": "state_block", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "state_body", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "state_body", + "named": true, + "fields": {}, "children": { "multiple": true, "required": false, @@ -1231,7 +1592,11 @@ "named": true }, { - "type": "include", + "type": "on_enter", + "named": true + }, + { + "type": "transition", "named": true } ] @@ -1306,16 +1671,24 @@ } ] }, - "type": { + "value": { "multiple": false, "required": true, "types": [ { - "type": "any_type", + "type": "boolean", "named": true }, { - "type": "identifier", + "type": "float", + "named": true + }, + { + "type": "integer", + "named": true + }, + { + "type": "string", "named": true } ] @@ -1353,9 +1726,61 @@ } }, { - "type": "template", + "type": "template_body", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "field", + "named": true + }, + { + "type": "include", + "named": true + }, + { + "type": "uses_behaviors", + "named": true + }, + { + "type": "uses_schedule", + "named": true + } + ] + } + }, + { + "type": "template_clause", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "template_declaration", "named": true, "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "template_body", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -1376,35 +1801,32 @@ } ] } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "field", - "named": true - }, - { - "type": "include", - "named": true - } - ] } }, { - "type": "template_clause", + "type": "time_range", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] + "fields": { + "end": { + "multiple": false, + "required": true, + "types": [ + { + "type": "time", + "named": true + } + ] + }, + "start": { + "multiple": false, + "required": true, + "types": [ + { + "type": "time", + "named": true + } + ] + } } }, { @@ -1452,6 +1874,36 @@ ] } }, + { + "type": "uses_behaviors", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "uses_schedule", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, { "type": "value", "named": true, @@ -1625,6 +2077,14 @@ "type": "behavior", "named": false }, + { + "type": "behaviors", + "named": false + }, + { + "type": "block", + "named": false + }, { "type": "block_comment", "named": true @@ -1661,6 +2121,10 @@ "type": "enum", "named": false }, + { + "type": "extends", + "named": false + }, { "type": "fail_always", "named": false @@ -1733,6 +2197,10 @@ "type": "other", "named": false }, + { + "type": "override", + "named": false + }, { "type": "prose_content", "named": true @@ -1741,6 +2209,10 @@ "type": "prose_marker", "named": true }, + { + "type": "recurrence", + "named": false + }, { "type": "relationship", "named": false @@ -1753,6 +2225,10 @@ "type": "repeat", "named": false }, + { + "type": "requires", + "named": false + }, { "type": "retry", "named": false @@ -1761,6 +2237,10 @@ "type": "schedule", "named": false }, + { + "type": "schedules", + "named": false + }, { "type": "self", "named": false @@ -1813,6 +2293,10 @@ "type": "use", "named": false }, + { + "type": "uses", + "named": false + }, { "type": "when", "named": false diff --git a/tree-sitter-storybook/src/parser.c b/tree-sitter-storybook/src/parser.c index 103d61d..9f0ddcd 100644 --- a/tree-sitter-storybook/src/parser.c +++ b/tree-sitter-storybook/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 366 +#define STATE_COUNT 454 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 153 +#define SYMBOL_COUNT 183 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 74 +#define TOKEN_COUNT 82 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 22 +#define FIELD_COUNT 25 #define MAX_ALIAS_SEQUENCE_LENGTH 9 -#define PRODUCTION_ID_COUNT 24 +#define PRODUCTION_ID_COUNT 33 enum { sym_identifier = 1, @@ -32,143 +32,173 @@ enum { anon_sym_from = 13, anon_sym_template = 14, anon_sym_strict = 15, - anon_sym_include = 16, - anon_sym_DOT = 17, - sym_integer = 18, - sym_float = 19, - sym_string = 20, - anon_sym_true = 21, - anon_sym_false = 22, - anon_sym_DOT_DOT = 23, - sym_time = 24, - sym_duration = 25, - anon_sym_LBRACK = 26, - anon_sym_RBRACK = 27, - anon_sym_AT = 28, - anon_sym_remove = 29, - anon_sym_append = 30, - aux_sym_prose_block_token1 = 31, - sym_prose_marker = 32, - sym_prose_content = 33, - anon_sym_life_arc = 34, - anon_sym_state = 35, - anon_sym_on = 36, - anon_sym_enter = 37, - anon_sym_DASH_GT = 38, - anon_sym_schedule = 39, - anon_sym_behavior = 40, - anon_sym_choose = 41, - anon_sym_then = 42, - anon_sym_if = 43, - anon_sym_when = 44, - anon_sym_LPAREN = 45, - anon_sym_RPAREN = 46, - anon_sym_repeat = 47, - anon_sym_invert = 48, - anon_sym_retry = 49, - anon_sym_timeout = 50, - anon_sym_cooldown = 51, - anon_sym_succeed_always = 52, - anon_sym_fail_always = 53, - anon_sym_institution = 54, - anon_sym_relationship = 55, - anon_sym_as = 56, - anon_sym_location = 57, - anon_sym_species = 58, - anon_sym_enum = 59, - anon_sym_concept = 60, - anon_sym_sub_concept = 61, - sym_any_type = 62, - anon_sym_concept_comparison = 63, - anon_sym_is = 64, - anon_sym_or = 65, - anon_sym_and = 66, - anon_sym_not = 67, - anon_sym_GT = 68, - anon_sym_GT_EQ = 69, - anon_sym_LT = 70, - anon_sym_LT_EQ = 71, - anon_sym_self = 72, - anon_sym_other = 73, - sym_source_file = 74, - sym_declaration = 75, - sym_use_declaration = 76, - sym_path = 77, - sym_path_segments = 78, - sym_character = 79, - sym_template_clause = 80, - sym_template = 81, - sym_include = 82, - sym_field = 83, - sym_dotted_path = 84, - sym_value = 85, - sym_boolean = 86, - sym_range = 87, - sym_list = 88, - sym_object = 89, - sym_block = 90, - sym_override = 91, - sym_override_op = 92, - sym_prose_block = 93, - sym_life_arc = 94, - sym_arc_state = 95, - sym_on_enter = 96, - sym_transition = 97, - sym_schedule = 98, - sym_schedule_block = 99, - sym_behavior = 100, - sym_behavior_node = 101, - sym_selector_node = 102, - sym_sequence_node = 103, - sym_condition_node = 104, - sym_if_decorator_node = 105, - sym_decorator_node = 106, - sym_decorator_keyword = 107, - sym_decorator_params = 108, - sym_action_node = 109, - sym_action_param = 110, - sym_subtree_node = 111, - sym_institution = 112, - sym_relationship = 113, - sym_participant = 114, - sym_location = 115, - sym_species = 116, - sym_enum_declaration = 117, - sym_concept_declaration = 118, - sym_sub_concept = 119, - sym_sub_concept_enum_body = 120, - sym_sub_concept_record_body = 121, - sym_sub_concept_field = 122, - sym_concept_comparison = 123, - sym_variant_pattern = 124, - sym_field_condition = 125, - sym_condition_expr = 126, - sym_is_condition = 127, - sym_expression = 128, - sym_or_expression = 129, - sym_and_expression = 130, - sym_not_expression = 131, - sym_comparison = 132, - sym_field_access = 133, - sym_primary_expression = 134, - aux_sym_source_file_repeat1 = 135, - aux_sym_use_declaration_repeat1 = 136, - aux_sym_path_segments_repeat1 = 137, - aux_sym_template_repeat1 = 138, - aux_sym_template_repeat2 = 139, - aux_sym_dotted_path_repeat1 = 140, - aux_sym_list_repeat1 = 141, - aux_sym_override_repeat1 = 142, - aux_sym_life_arc_repeat1 = 143, - aux_sym_arc_state_repeat1 = 144, - aux_sym_schedule_repeat1 = 145, - aux_sym_selector_node_repeat1 = 146, - aux_sym_action_node_repeat1 = 147, - aux_sym_relationship_repeat1 = 148, - aux_sym_sub_concept_record_body_repeat1 = 149, - aux_sym_concept_comparison_repeat1 = 150, - aux_sym_variant_pattern_repeat1 = 151, - aux_sym_is_condition_repeat1 = 152, + anon_sym_uses = 16, + anon_sym_behaviors = 17, + anon_sym_schedule = 18, + anon_sym_schedules = 19, + anon_sym_LBRACK = 20, + anon_sym_RBRACK = 21, + anon_sym_include = 22, + anon_sym_DOT = 23, + sym_integer = 24, + sym_float = 25, + sym_string = 26, + anon_sym_true = 27, + anon_sym_false = 28, + anon_sym_DOT_DOT = 29, + sym_time = 30, + sym_duration = 31, + anon_sym_AT = 32, + anon_sym_remove = 33, + anon_sym_append = 34, + aux_sym_prose_block_token1 = 35, + sym_prose_marker = 36, + sym_prose_content = 37, + anon_sym_life_arc = 38, + anon_sym_requires = 39, + anon_sym_state = 40, + anon_sym_on = 41, + anon_sym_enter = 42, + anon_sym_DASH_GT = 43, + anon_sym_extends = 44, + anon_sym_block = 45, + anon_sym_override = 46, + anon_sym_recurrence = 47, + anon_sym_behavior = 48, + anon_sym_choose = 49, + anon_sym_then = 50, + anon_sym_if = 51, + anon_sym_when = 52, + anon_sym_LPAREN = 53, + anon_sym_RPAREN = 54, + anon_sym_repeat = 55, + anon_sym_invert = 56, + anon_sym_retry = 57, + anon_sym_timeout = 58, + anon_sym_cooldown = 59, + anon_sym_succeed_always = 60, + anon_sym_fail_always = 61, + anon_sym_institution = 62, + anon_sym_relationship = 63, + anon_sym_as = 64, + anon_sym_location = 65, + anon_sym_species = 66, + anon_sym_enum = 67, + anon_sym_concept = 68, + anon_sym_sub_concept = 69, + sym_any_type = 70, + anon_sym_concept_comparison = 71, + anon_sym_or = 72, + anon_sym_is = 73, + anon_sym_and = 74, + anon_sym_not = 75, + anon_sym_GT = 76, + anon_sym_GT_EQ = 77, + anon_sym_LT = 78, + anon_sym_LT_EQ = 79, + anon_sym_self = 80, + anon_sym_other = 81, + sym_source_file = 82, + sym_declaration = 83, + sym_use_declaration = 84, + sym_path = 85, + sym_path_segments = 86, + sym_character_declaration = 87, + sym_character_body = 88, + sym_template_clause = 89, + sym_template_declaration = 90, + sym_template_body = 91, + sym_uses_behaviors = 92, + sym_uses_schedule = 93, + sym_include = 94, + sym_field = 95, + sym_dotted_path = 96, + sym_value = 97, + sym_boolean = 98, + sym_range = 99, + sym_list = 100, + sym_object = 101, + sym_block = 102, + sym_override = 103, + sym_override_op = 104, + sym_prose_block = 105, + sym_life_arc_declaration = 106, + sym_requires_clause = 107, + sym_required_field = 108, + sym_state_block = 109, + sym_state_body = 110, + sym_on_enter = 111, + sym_transition = 112, + sym_schedule_declaration = 113, + sym_schedule_body = 114, + sym_schedule_block = 115, + sym_override_block = 116, + sym_recurrence_block = 117, + sym_time_range = 118, + sym_block_field = 119, + sym_behavior_declaration = 120, + sym_behavior_body = 121, + sym_behavior_node = 122, + sym_selector_node = 123, + sym_sequence_node = 124, + sym_condition_node = 125, + sym_if_decorator_node = 126, + sym_repeat_node = 127, + sym_decorator_node = 128, + sym_decorator_keyword = 129, + sym_decorator_params = 130, + sym_action_node = 131, + sym_action_param = 132, + sym_subtree_node = 133, + sym_institution_declaration = 134, + sym_relationship_declaration = 135, + sym_relationship_body = 136, + sym_participant = 137, + sym_location_declaration = 138, + sym_species_declaration = 139, + sym_species_body = 140, + sym_species_field = 141, + sym_enum_declaration = 142, + sym_concept_declaration = 143, + sym_sub_concept = 144, + sym_sub_concept_enum_body = 145, + sym_sub_concept_record_body = 146, + sym_sub_concept_field = 147, + sym_concept_comparison = 148, + sym_variant_pattern = 149, + sym_field_condition = 150, + sym_is_condition = 151, + sym_is_value = 152, + sym_expression = 153, + sym_or_expression = 154, + sym_and_expression = 155, + sym_not_expression = 156, + sym_comparison = 157, + sym_field_access = 158, + sym_primary_expression = 159, + aux_sym_source_file_repeat1 = 160, + aux_sym_use_declaration_repeat1 = 161, + aux_sym_path_segments_repeat1 = 162, + aux_sym_character_body_repeat1 = 163, + aux_sym_template_body_repeat1 = 164, + aux_sym_dotted_path_repeat1 = 165, + aux_sym_list_repeat1 = 166, + aux_sym_override_repeat1 = 167, + aux_sym_life_arc_declaration_repeat1 = 168, + aux_sym_requires_clause_repeat1 = 169, + aux_sym_state_body_repeat1 = 170, + aux_sym_schedule_body_repeat1 = 171, + aux_sym_schedule_block_repeat1 = 172, + aux_sym_recurrence_block_repeat1 = 173, + aux_sym_selector_node_repeat1 = 174, + aux_sym_action_node_repeat1 = 175, + aux_sym_relationship_body_repeat1 = 176, + aux_sym_species_body_repeat1 = 177, + aux_sym_species_body_repeat2 = 178, + aux_sym_sub_concept_record_body_repeat1 = 179, + aux_sym_concept_comparison_repeat1 = 180, + aux_sym_variant_pattern_repeat1 = 181, + aux_sym_is_condition_repeat1 = 182, }; static const char * const ts_symbol_names[] = { @@ -188,6 +218,12 @@ static const char * const ts_symbol_names[] = { [anon_sym_from] = "from", [anon_sym_template] = "template", [anon_sym_strict] = "strict", + [anon_sym_uses] = "uses", + [anon_sym_behaviors] = "behaviors", + [anon_sym_schedule] = "schedule", + [anon_sym_schedules] = "schedules", + [anon_sym_LBRACK] = "[", + [anon_sym_RBRACK] = "]", [anon_sym_include] = "include", [anon_sym_DOT] = ".", [sym_integer] = "integer", @@ -198,8 +234,6 @@ static const char * const ts_symbol_names[] = { [anon_sym_DOT_DOT] = "..", [sym_time] = "time", [sym_duration] = "duration", - [anon_sym_LBRACK] = "[", - [anon_sym_RBRACK] = "]", [anon_sym_AT] = "@", [anon_sym_remove] = "remove", [anon_sym_append] = "append", @@ -207,11 +241,15 @@ static const char * const ts_symbol_names[] = { [sym_prose_marker] = "prose_marker", [sym_prose_content] = "prose_content", [anon_sym_life_arc] = "life_arc", + [anon_sym_requires] = "requires", [anon_sym_state] = "state", [anon_sym_on] = "on", [anon_sym_enter] = "enter", [anon_sym_DASH_GT] = "->", - [anon_sym_schedule] = "schedule", + [anon_sym_extends] = "extends", + [anon_sym_block] = "block", + [anon_sym_override] = "override", + [anon_sym_recurrence] = "recurrence", [anon_sym_behavior] = "behavior", [anon_sym_choose] = "choose", [anon_sym_then] = "then", @@ -236,8 +274,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_sub_concept] = "sub_concept", [sym_any_type] = "any_type", [anon_sym_concept_comparison] = "concept_comparison", - [anon_sym_is] = "is", [anon_sym_or] = "or", + [anon_sym_is] = "is", [anon_sym_and] = "and", [anon_sym_not] = "not", [anon_sym_GT] = ">", @@ -251,9 +289,13 @@ static const char * const ts_symbol_names[] = { [sym_use_declaration] = "use_declaration", [sym_path] = "path", [sym_path_segments] = "path_segments", - [sym_character] = "character", + [sym_character_declaration] = "character_declaration", + [sym_character_body] = "character_body", [sym_template_clause] = "template_clause", - [sym_template] = "template", + [sym_template_declaration] = "template_declaration", + [sym_template_body] = "template_body", + [sym_uses_behaviors] = "uses_behaviors", + [sym_uses_schedule] = "uses_schedule", [sym_include] = "include", [sym_field] = "field", [sym_dotted_path] = "dotted_path", @@ -266,29 +308,42 @@ static const char * const ts_symbol_names[] = { [sym_override] = "override", [sym_override_op] = "override_op", [sym_prose_block] = "prose_block", - [sym_life_arc] = "life_arc", - [sym_arc_state] = "arc_state", + [sym_life_arc_declaration] = "life_arc_declaration", + [sym_requires_clause] = "requires_clause", + [sym_required_field] = "required_field", + [sym_state_block] = "state_block", + [sym_state_body] = "state_body", [sym_on_enter] = "on_enter", [sym_transition] = "transition", - [sym_schedule] = "schedule", + [sym_schedule_declaration] = "schedule_declaration", + [sym_schedule_body] = "schedule_body", [sym_schedule_block] = "schedule_block", - [sym_behavior] = "behavior", + [sym_override_block] = "override_block", + [sym_recurrence_block] = "recurrence_block", + [sym_time_range] = "time_range", + [sym_block_field] = "block_field", + [sym_behavior_declaration] = "behavior_declaration", + [sym_behavior_body] = "behavior_body", [sym_behavior_node] = "behavior_node", [sym_selector_node] = "selector_node", [sym_sequence_node] = "sequence_node", [sym_condition_node] = "condition_node", [sym_if_decorator_node] = "if_decorator_node", + [sym_repeat_node] = "repeat_node", [sym_decorator_node] = "decorator_node", [sym_decorator_keyword] = "decorator_keyword", [sym_decorator_params] = "decorator_params", [sym_action_node] = "action_node", [sym_action_param] = "action_param", [sym_subtree_node] = "subtree_node", - [sym_institution] = "institution", - [sym_relationship] = "relationship", + [sym_institution_declaration] = "institution_declaration", + [sym_relationship_declaration] = "relationship_declaration", + [sym_relationship_body] = "relationship_body", [sym_participant] = "participant", - [sym_location] = "location", - [sym_species] = "species", + [sym_location_declaration] = "location_declaration", + [sym_species_declaration] = "species_declaration", + [sym_species_body] = "species_body", + [sym_species_field] = "species_field", [sym_enum_declaration] = "enum_declaration", [sym_concept_declaration] = "concept_declaration", [sym_sub_concept] = "sub_concept", @@ -298,8 +353,8 @@ static const char * const ts_symbol_names[] = { [sym_concept_comparison] = "concept_comparison", [sym_variant_pattern] = "variant_pattern", [sym_field_condition] = "field_condition", - [sym_condition_expr] = "condition_expr", [sym_is_condition] = "is_condition", + [sym_is_value] = "is_value", [sym_expression] = "expression", [sym_or_expression] = "or_expression", [sym_and_expression] = "and_expression", @@ -310,17 +365,22 @@ static const char * const ts_symbol_names[] = { [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_use_declaration_repeat1] = "use_declaration_repeat1", [aux_sym_path_segments_repeat1] = "path_segments_repeat1", - [aux_sym_template_repeat1] = "template_repeat1", - [aux_sym_template_repeat2] = "template_repeat2", + [aux_sym_character_body_repeat1] = "character_body_repeat1", + [aux_sym_template_body_repeat1] = "template_body_repeat1", [aux_sym_dotted_path_repeat1] = "dotted_path_repeat1", [aux_sym_list_repeat1] = "list_repeat1", [aux_sym_override_repeat1] = "override_repeat1", - [aux_sym_life_arc_repeat1] = "life_arc_repeat1", - [aux_sym_arc_state_repeat1] = "arc_state_repeat1", - [aux_sym_schedule_repeat1] = "schedule_repeat1", + [aux_sym_life_arc_declaration_repeat1] = "life_arc_declaration_repeat1", + [aux_sym_requires_clause_repeat1] = "requires_clause_repeat1", + [aux_sym_state_body_repeat1] = "state_body_repeat1", + [aux_sym_schedule_body_repeat1] = "schedule_body_repeat1", + [aux_sym_schedule_block_repeat1] = "schedule_block_repeat1", + [aux_sym_recurrence_block_repeat1] = "recurrence_block_repeat1", [aux_sym_selector_node_repeat1] = "selector_node_repeat1", [aux_sym_action_node_repeat1] = "action_node_repeat1", - [aux_sym_relationship_repeat1] = "relationship_repeat1", + [aux_sym_relationship_body_repeat1] = "relationship_body_repeat1", + [aux_sym_species_body_repeat1] = "species_body_repeat1", + [aux_sym_species_body_repeat2] = "species_body_repeat2", [aux_sym_sub_concept_record_body_repeat1] = "sub_concept_record_body_repeat1", [aux_sym_concept_comparison_repeat1] = "concept_comparison_repeat1", [aux_sym_variant_pattern_repeat1] = "variant_pattern_repeat1", @@ -344,6 +404,12 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_from] = anon_sym_from, [anon_sym_template] = anon_sym_template, [anon_sym_strict] = anon_sym_strict, + [anon_sym_uses] = anon_sym_uses, + [anon_sym_behaviors] = anon_sym_behaviors, + [anon_sym_schedule] = anon_sym_schedule, + [anon_sym_schedules] = anon_sym_schedules, + [anon_sym_LBRACK] = anon_sym_LBRACK, + [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_include] = anon_sym_include, [anon_sym_DOT] = anon_sym_DOT, [sym_integer] = sym_integer, @@ -354,8 +420,6 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [sym_time] = sym_time, [sym_duration] = sym_duration, - [anon_sym_LBRACK] = anon_sym_LBRACK, - [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_AT] = anon_sym_AT, [anon_sym_remove] = anon_sym_remove, [anon_sym_append] = anon_sym_append, @@ -363,11 +427,15 @@ static const TSSymbol ts_symbol_map[] = { [sym_prose_marker] = sym_prose_marker, [sym_prose_content] = sym_prose_content, [anon_sym_life_arc] = anon_sym_life_arc, + [anon_sym_requires] = anon_sym_requires, [anon_sym_state] = anon_sym_state, [anon_sym_on] = anon_sym_on, [anon_sym_enter] = anon_sym_enter, [anon_sym_DASH_GT] = anon_sym_DASH_GT, - [anon_sym_schedule] = anon_sym_schedule, + [anon_sym_extends] = anon_sym_extends, + [anon_sym_block] = anon_sym_block, + [anon_sym_override] = anon_sym_override, + [anon_sym_recurrence] = anon_sym_recurrence, [anon_sym_behavior] = anon_sym_behavior, [anon_sym_choose] = anon_sym_choose, [anon_sym_then] = anon_sym_then, @@ -392,8 +460,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_sub_concept] = anon_sym_sub_concept, [sym_any_type] = sym_any_type, [anon_sym_concept_comparison] = anon_sym_concept_comparison, - [anon_sym_is] = anon_sym_is, [anon_sym_or] = anon_sym_or, + [anon_sym_is] = anon_sym_is, [anon_sym_and] = anon_sym_and, [anon_sym_not] = anon_sym_not, [anon_sym_GT] = anon_sym_GT, @@ -407,9 +475,13 @@ static const TSSymbol ts_symbol_map[] = { [sym_use_declaration] = sym_use_declaration, [sym_path] = sym_path, [sym_path_segments] = sym_path_segments, - [sym_character] = sym_character, + [sym_character_declaration] = sym_character_declaration, + [sym_character_body] = sym_character_body, [sym_template_clause] = sym_template_clause, - [sym_template] = sym_template, + [sym_template_declaration] = sym_template_declaration, + [sym_template_body] = sym_template_body, + [sym_uses_behaviors] = sym_uses_behaviors, + [sym_uses_schedule] = sym_uses_schedule, [sym_include] = sym_include, [sym_field] = sym_field, [sym_dotted_path] = sym_dotted_path, @@ -422,29 +494,42 @@ static const TSSymbol ts_symbol_map[] = { [sym_override] = sym_override, [sym_override_op] = sym_override_op, [sym_prose_block] = sym_prose_block, - [sym_life_arc] = sym_life_arc, - [sym_arc_state] = sym_arc_state, + [sym_life_arc_declaration] = sym_life_arc_declaration, + [sym_requires_clause] = sym_requires_clause, + [sym_required_field] = sym_required_field, + [sym_state_block] = sym_state_block, + [sym_state_body] = sym_state_body, [sym_on_enter] = sym_on_enter, [sym_transition] = sym_transition, - [sym_schedule] = sym_schedule, + [sym_schedule_declaration] = sym_schedule_declaration, + [sym_schedule_body] = sym_schedule_body, [sym_schedule_block] = sym_schedule_block, - [sym_behavior] = sym_behavior, + [sym_override_block] = sym_override_block, + [sym_recurrence_block] = sym_recurrence_block, + [sym_time_range] = sym_time_range, + [sym_block_field] = sym_block_field, + [sym_behavior_declaration] = sym_behavior_declaration, + [sym_behavior_body] = sym_behavior_body, [sym_behavior_node] = sym_behavior_node, [sym_selector_node] = sym_selector_node, [sym_sequence_node] = sym_sequence_node, [sym_condition_node] = sym_condition_node, [sym_if_decorator_node] = sym_if_decorator_node, + [sym_repeat_node] = sym_repeat_node, [sym_decorator_node] = sym_decorator_node, [sym_decorator_keyword] = sym_decorator_keyword, [sym_decorator_params] = sym_decorator_params, [sym_action_node] = sym_action_node, [sym_action_param] = sym_action_param, [sym_subtree_node] = sym_subtree_node, - [sym_institution] = sym_institution, - [sym_relationship] = sym_relationship, + [sym_institution_declaration] = sym_institution_declaration, + [sym_relationship_declaration] = sym_relationship_declaration, + [sym_relationship_body] = sym_relationship_body, [sym_participant] = sym_participant, - [sym_location] = sym_location, - [sym_species] = sym_species, + [sym_location_declaration] = sym_location_declaration, + [sym_species_declaration] = sym_species_declaration, + [sym_species_body] = sym_species_body, + [sym_species_field] = sym_species_field, [sym_enum_declaration] = sym_enum_declaration, [sym_concept_declaration] = sym_concept_declaration, [sym_sub_concept] = sym_sub_concept, @@ -454,8 +539,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_concept_comparison] = sym_concept_comparison, [sym_variant_pattern] = sym_variant_pattern, [sym_field_condition] = sym_field_condition, - [sym_condition_expr] = sym_condition_expr, [sym_is_condition] = sym_is_condition, + [sym_is_value] = sym_is_value, [sym_expression] = sym_expression, [sym_or_expression] = sym_or_expression, [sym_and_expression] = sym_and_expression, @@ -466,17 +551,22 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_use_declaration_repeat1] = aux_sym_use_declaration_repeat1, [aux_sym_path_segments_repeat1] = aux_sym_path_segments_repeat1, - [aux_sym_template_repeat1] = aux_sym_template_repeat1, - [aux_sym_template_repeat2] = aux_sym_template_repeat2, + [aux_sym_character_body_repeat1] = aux_sym_character_body_repeat1, + [aux_sym_template_body_repeat1] = aux_sym_template_body_repeat1, [aux_sym_dotted_path_repeat1] = aux_sym_dotted_path_repeat1, [aux_sym_list_repeat1] = aux_sym_list_repeat1, [aux_sym_override_repeat1] = aux_sym_override_repeat1, - [aux_sym_life_arc_repeat1] = aux_sym_life_arc_repeat1, - [aux_sym_arc_state_repeat1] = aux_sym_arc_state_repeat1, - [aux_sym_schedule_repeat1] = aux_sym_schedule_repeat1, + [aux_sym_life_arc_declaration_repeat1] = aux_sym_life_arc_declaration_repeat1, + [aux_sym_requires_clause_repeat1] = aux_sym_requires_clause_repeat1, + [aux_sym_state_body_repeat1] = aux_sym_state_body_repeat1, + [aux_sym_schedule_body_repeat1] = aux_sym_schedule_body_repeat1, + [aux_sym_schedule_block_repeat1] = aux_sym_schedule_block_repeat1, + [aux_sym_recurrence_block_repeat1] = aux_sym_recurrence_block_repeat1, [aux_sym_selector_node_repeat1] = aux_sym_selector_node_repeat1, [aux_sym_action_node_repeat1] = aux_sym_action_node_repeat1, - [aux_sym_relationship_repeat1] = aux_sym_relationship_repeat1, + [aux_sym_relationship_body_repeat1] = aux_sym_relationship_body_repeat1, + [aux_sym_species_body_repeat1] = aux_sym_species_body_repeat1, + [aux_sym_species_body_repeat2] = aux_sym_species_body_repeat2, [aux_sym_sub_concept_record_body_repeat1] = aux_sym_sub_concept_record_body_repeat1, [aux_sym_concept_comparison_repeat1] = aux_sym_concept_comparison_repeat1, [aux_sym_variant_pattern_repeat1] = aux_sym_variant_pattern_repeat1, @@ -548,6 +638,30 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_uses] = { + .visible = true, + .named = false, + }, + [anon_sym_behaviors] = { + .visible = true, + .named = false, + }, + [anon_sym_schedule] = { + .visible = true, + .named = false, + }, + [anon_sym_schedules] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK] = { + .visible = true, + .named = false, + }, [anon_sym_include] = { .visible = true, .named = false, @@ -588,14 +702,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_LBRACK] = { - .visible = true, - .named = false, - }, - [anon_sym_RBRACK] = { - .visible = true, - .named = false, - }, [anon_sym_AT] = { .visible = true, .named = false, @@ -624,6 +730,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_requires] = { + .visible = true, + .named = false, + }, [anon_sym_state] = { .visible = true, .named = false, @@ -640,7 +750,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_schedule] = { + [anon_sym_extends] = { + .visible = true, + .named = false, + }, + [anon_sym_block] = { + .visible = true, + .named = false, + }, + [anon_sym_override] = { + .visible = true, + .named = false, + }, + [anon_sym_recurrence] = { .visible = true, .named = false, }, @@ -740,11 +862,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_is] = { + [anon_sym_or] = { .visible = true, .named = false, }, - [anon_sym_or] = { + [anon_sym_is] = { .visible = true, .named = false, }, @@ -800,7 +922,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_character] = { + [sym_character_declaration] = { + .visible = true, + .named = true, + }, + [sym_character_body] = { .visible = true, .named = true, }, @@ -808,7 +934,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_template] = { + [sym_template_declaration] = { + .visible = true, + .named = true, + }, + [sym_template_body] = { + .visible = true, + .named = true, + }, + [sym_uses_behaviors] = { + .visible = true, + .named = true, + }, + [sym_uses_schedule] = { .visible = true, .named = true, }, @@ -860,11 +998,23 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_life_arc] = { + [sym_life_arc_declaration] = { .visible = true, .named = true, }, - [sym_arc_state] = { + [sym_requires_clause] = { + .visible = true, + .named = true, + }, + [sym_required_field] = { + .visible = true, + .named = true, + }, + [sym_state_block] = { + .visible = true, + .named = true, + }, + [sym_state_body] = { .visible = true, .named = true, }, @@ -876,7 +1026,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_schedule] = { + [sym_schedule_declaration] = { + .visible = true, + .named = true, + }, + [sym_schedule_body] = { .visible = true, .named = true, }, @@ -884,7 +1038,27 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_behavior] = { + [sym_override_block] = { + .visible = true, + .named = true, + }, + [sym_recurrence_block] = { + .visible = true, + .named = true, + }, + [sym_time_range] = { + .visible = true, + .named = true, + }, + [sym_block_field] = { + .visible = true, + .named = true, + }, + [sym_behavior_declaration] = { + .visible = true, + .named = true, + }, + [sym_behavior_body] = { .visible = true, .named = true, }, @@ -908,6 +1082,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_repeat_node] = { + .visible = true, + .named = true, + }, [sym_decorator_node] = { .visible = true, .named = true, @@ -932,11 +1110,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_institution] = { + [sym_institution_declaration] = { .visible = true, .named = true, }, - [sym_relationship] = { + [sym_relationship_declaration] = { + .visible = true, + .named = true, + }, + [sym_relationship_body] = { .visible = true, .named = true, }, @@ -944,11 +1126,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_location] = { + [sym_location_declaration] = { .visible = true, .named = true, }, - [sym_species] = { + [sym_species_declaration] = { + .visible = true, + .named = true, + }, + [sym_species_body] = { + .visible = true, + .named = true, + }, + [sym_species_field] = { .visible = true, .named = true, }, @@ -988,11 +1178,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_condition_expr] = { + [sym_is_condition] = { .visible = true, .named = true, }, - [sym_is_condition] = { + [sym_is_value] = { .visible = true, .named = true, }, @@ -1036,11 +1226,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_template_repeat1] = { + [aux_sym_character_body_repeat1] = { .visible = false, .named = false, }, - [aux_sym_template_repeat2] = { + [aux_sym_template_body_repeat1] = { .visible = false, .named = false, }, @@ -1056,15 +1246,27 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_life_arc_repeat1] = { + [aux_sym_life_arc_declaration_repeat1] = { .visible = false, .named = false, }, - [aux_sym_arc_state_repeat1] = { + [aux_sym_requires_clause_repeat1] = { .visible = false, .named = false, }, - [aux_sym_schedule_repeat1] = { + [aux_sym_state_body_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_schedule_body_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_schedule_block_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_recurrence_block_repeat1] = { .visible = false, .named = false, }, @@ -1076,7 +1278,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_relationship_repeat1] = { + [aux_sym_relationship_body_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_species_body_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_species_body_repeat2] = { .visible = false, .named = false, }, @@ -1099,158 +1309,204 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum { - field_activity = 1, - field_body = 2, - field_child = 3, - field_condition = 4, - field_content = 5, + field_body = 1, + field_child = 2, + field_condition = 3, + field_content = 4, + field_day = 5, field_decorator = 6, field_end = 7, - field_label = 8, - field_marker = 9, - field_name = 10, - field_operator = 11, - field_params = 12, - field_parent = 13, - field_root = 14, - field_species = 15, - field_start = 16, - field_sub_concept = 17, - field_tag = 18, - field_target = 19, - field_template = 20, - field_type = 21, - field_value = 22, + field_extends = 8, + field_field = 9, + field_label = 10, + field_marker = 11, + field_name = 12, + field_operator = 13, + field_params = 14, + field_parent = 15, + field_requires = 16, + field_root = 17, + field_species = 18, + field_start = 19, + field_tag = 20, + field_target = 21, + field_template = 22, + field_time_range = 23, + field_type = 24, + field_value = 25, }; static const char * const ts_field_names[] = { [0] = NULL, - [field_activity] = "activity", [field_body] = "body", [field_child] = "child", [field_condition] = "condition", [field_content] = "content", + [field_day] = "day", [field_decorator] = "decorator", [field_end] = "end", + [field_extends] = "extends", + [field_field] = "field", [field_label] = "label", [field_marker] = "marker", [field_name] = "name", [field_operator] = "operator", [field_params] = "params", [field_parent] = "parent", + [field_requires] = "requires", [field_root] = "root", [field_species] = "species", [field_start] = "start", - [field_sub_concept] = "sub_concept", [field_tag] = "tag", [field_target] = "target", [field_template] = "template", + [field_time_range] = "time_range", [field_type] = "type", [field_value] = "value", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { - [1] = {.index = 0, .length = 2}, - [2] = {.index = 2, .length = 1}, + [1] = {.index = 0, .length = 1}, + [2] = {.index = 1, .length = 2}, [3] = {.index = 3, .length = 3}, - [4] = {.index = 6, .length = 3}, - [5] = {.index = 9, .length = 2}, - [6] = {.index = 11, .length = 2}, - [7] = {.index = 13, .length = 4}, - [8] = {.index = 17, .length = 2}, - [9] = {.index = 19, .length = 2}, - [10] = {.index = 21, .length = 4}, - [11] = {.index = 25, .length = 1}, - [12] = {.index = 26, .length = 2}, - [13] = {.index = 28, .length = 3}, - [14] = {.index = 31, .length = 4}, - [15] = {.index = 35, .length = 1}, - [16] = {.index = 36, .length = 1}, - [17] = {.index = 37, .length = 3}, - [18] = {.index = 40, .length = 2}, - [19] = {.index = 42, .length = 1}, - [20] = {.index = 43, .length = 3}, - [21] = {.index = 46, .length = 2}, - [22] = {.index = 48, .length = 2}, - [23] = {.index = 50, .length = 2}, + [4] = {.index = 6, .length = 2}, + [5] = {.index = 8, .length = 3}, + [6] = {.index = 11, .length = 3}, + [7] = {.index = 14, .length = 2}, + [8] = {.index = 16, .length = 1}, + [9] = {.index = 17, .length = 2}, + [10] = {.index = 19, .length = 4}, + [11] = {.index = 23, .length = 3}, + [12] = {.index = 26, .length = 1}, + [13] = {.index = 27, .length = 4}, + [14] = {.index = 31, .length = 2}, + [15] = {.index = 33, .length = 1}, + [16] = {.index = 34, .length = 1}, + [17] = {.index = 35, .length = 2}, + [18] = {.index = 37, .length = 3}, + [19] = {.index = 40, .length = 4}, + [20] = {.index = 44, .length = 2}, + [21] = {.index = 46, .length = 1}, + [22] = {.index = 47, .length = 1}, + [23] = {.index = 48, .length = 3}, + [24] = {.index = 51, .length = 1}, + [25] = {.index = 52, .length = 2}, + [26] = {.index = 54, .length = 2}, + [27] = {.index = 56, .length = 2}, + [28] = {.index = 58, .length = 2}, + [29] = {.index = 60, .length = 2}, + [30] = {.index = 62, .length = 4}, + [31] = {.index = 66, .length = 2}, + [32] = {.index = 68, .length = 6}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = - {field_body, 2}, {field_name, 1}, - [2] = + [1] = + {field_body, 2}, {field_name, 1}, [3] = {field_body, 3}, {field_name, 1}, {field_template, 2}, [6] = + {field_body, 3}, + {field_name, 1}, + [8] = {field_body, 4}, {field_name, 1}, {field_species, 3}, - [9] = - {field_name, 1}, - {field_root, 3}, [11] = + {field_body, 4}, + {field_extends, 3}, + {field_name, 1}, + [14] = + {field_name, 1}, + {field_requires, 2}, + [16] = + {field_root, 1}, + [17] = {field_name, 0}, {field_value, 2}, - [13] = + [19] = {field_body, 5}, {field_name, 1}, {field_species, 3}, {field_template, 4}, - [17] = + [23] = + {field_body, 5}, {field_name, 1}, {field_species, 3}, - [19] = - {field_name, 1}, - {field_root, 4}, - [21] = + [26] = + {field_root, 2}, + [27] = {field_content, 2}, {field_end, 3}, {field_marker, 0}, {field_tag, 1}, - [25] = + [31] = + {field_name, 0}, + {field_type, 2}, + [33] = {field_condition, 2}, - [26] = + [34] = + {field_child, 2}, + [35] = {field_child, 2}, {field_decorator, 0}, - [28] = + [37] = {field_body, 5}, {field_name, 3}, {field_parent, 1}, - [31] = + [40] = {field_content, 3}, {field_end, 4}, {field_marker, 0}, {field_tag, 1}, - [35] = + [44] = + {field_name, 1}, + {field_time_range, 3}, + [46] = {field_label, 1}, - [36] = + [47] = {field_operator, 1}, - [37] = + [48] = {field_child, 3}, {field_decorator, 0}, {field_params, 1}, - [40] = + [51] = {field_name, 0}, - {field_type, 2}, - [42] = - {field_name, 0}, - [43] = - {field_activity, 4}, + [52] = {field_end, 2}, {field_start, 0}, - [46] = + [54] = {field_condition, 2}, - {field_sub_concept, 0}, - [48] = + {field_name, 0}, + [56] = + {field_day, 3}, + {field_name, 1}, + [58] = {field_condition, 1}, {field_target, 3}, - [50] = + [60] = {field_child, 5}, {field_condition, 2}, + [62] = + {field_child, 5}, + {field_params, 1}, + {field_params, 2}, + {field_params, 3}, + [66] = + {field_field, 0}, + {field_value, 2}, + [68] = + {field_child, 7}, + {field_params, 1}, + {field_params, 2}, + {field_params, 3}, + {field_params, 4}, + {field_params, 5}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -1314,7 +1570,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [49] = 49, [50] = 50, [51] = 51, - [52] = 52, + [52] = 51, [53] = 53, [54] = 54, [55] = 55, @@ -1434,9 +1690,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [169] = 169, [170] = 170, [171] = 171, - [172] = 172, + [172] = 167, [173] = 173, - [174] = 174, + [174] = 171, [175] = 175, [176] = 176, [177] = 177, @@ -1460,8 +1716,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [195] = 195, [196] = 196, [197] = 197, - [198] = 198, - [199] = 199, + [198] = 3, + [199] = 4, [200] = 200, [201] = 201, [202] = 202, @@ -1471,7 +1727,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [206] = 206, [207] = 207, [208] = 208, - [209] = 5, + [209] = 209, [210] = 210, [211] = 211, [212] = 212, @@ -1494,7 +1750,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [229] = 229, [230] = 230, [231] = 231, - [232] = 6, + [232] = 5, [233] = 233, [234] = 234, [235] = 235, @@ -1503,7 +1759,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [238] = 238, [239] = 239, [240] = 240, - [241] = 241, + [241] = 6, [242] = 242, [243] = 243, [244] = 244, @@ -1628,6 +1884,94 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [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] = 429, + [430] = 430, + [431] = 431, + [432] = 432, + [433] = 433, + [434] = 434, + [435] = 435, + [436] = 436, + [437] = 437, + [438] = 438, + [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] = 440, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -1637,44 +1981,44 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 0: if (eof) ADVANCE(25); if (lookahead == '"') ADVANCE(2); - if (lookahead == '(') ADVANCE(80); - if (lookahead == ')') ADVANCE(81); + if (lookahead == '(') ADVANCE(76); + if (lookahead == ')') ADVANCE(77); if (lookahead == '*') ADVANCE(37); if (lookahead == ',') ADVANCE(35); if (lookahead == '-') ADVANCE(9); - if (lookahead == '.') ADVANCE(41); + if (lookahead == '.') ADVANCE(43); if (lookahead == '/') ADVANCE(4); if (lookahead == ':') ADVANCE(39); if (lookahead == ';') ADVANCE(38); - if (lookahead == '<') ADVANCE(84); - if (lookahead == '>') ADVANCE(82); - if (lookahead == '@') ADVANCE(60); - if (lookahead == '[') ADVANCE(58); - if (lookahead == ']') ADVANCE(59); + if (lookahead == '<') ADVANCE(80); + if (lookahead == '>') ADVANCE(78); + if (lookahead == '@') ADVANCE(56); + if (lookahead == '[') ADVANCE(40); + if (lookahead == ']') ADVANCE(41); if (lookahead == '{') ADVANCE(34); if (lookahead == '}') ADVANCE(36); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(86); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(82); END_STATE(); case 1: if (lookahead == '"') ADVANCE(2); - if (lookahead == '(') ADVANCE(80); - if (lookahead == ')') ADVANCE(81); + if (lookahead == '(') ADVANCE(76); + if (lookahead == ')') ADVANCE(77); if (lookahead == ',') ADVANCE(35); if (lookahead == '-') ADVANCE(9); - if (lookahead == '.') ADVANCE(40); + if (lookahead == '.') ADVANCE(42); if (lookahead == '/') ADVANCE(4); if (lookahead == ':') ADVANCE(39); if (lookahead == ';') ADVANCE(38); - if (lookahead == '<') ADVANCE(84); - if (lookahead == '>') ADVANCE(82); - if (lookahead == ']') ADVANCE(59); + if (lookahead == '<') ADVANCE(80); + if (lookahead == '>') ADVANCE(78); + if (lookahead == ']') ADVANCE(41); if (lookahead == '{') ADVANCE(34); if (lookahead == '}') ADVANCE(36); if (lookahead == '\t' || @@ -1684,29 +2028,29 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(86); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(82); END_STATE(); case 2: - if (lookahead == '"') ADVANCE(53); + if (lookahead == '"') ADVANCE(51); if (lookahead == '\\') ADVANCE(23); if (lookahead != 0) ADVANCE(2); END_STATE(); case 3: - if (lookahead == ')') ADVANCE(81); + if (lookahead == ')') ADVANCE(77); if (lookahead == ',') ADVANCE(35); if (lookahead == '-') ADVANCE(10); if (lookahead == '.') ADVANCE(15); if (lookahead == '/') ADVANCE(4); - if (lookahead == ']') ADVANCE(59); + if (lookahead == ']') ADVANCE(41); if (lookahead == '}') ADVANCE(36); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(3) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(86); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(82); END_STATE(); case 4: if (lookahead == '*') ADVANCE(6); @@ -1722,39 +2066,39 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(6); END_STATE(); case 7: - if (lookahead == '*') ADVANCE(75); + if (lookahead == '*') ADVANCE(71); if (lookahead == '-') ADVANCE(6); - if (lookahead != 0) ADVANCE(76); + if (lookahead != 0) ADVANCE(72); END_STATE(); case 8: - if (lookahead == '*') ADVANCE(75); + if (lookahead == '*') ADVANCE(71); if (lookahead == '-') ADVANCE(7); - if (lookahead != 0) ADVANCE(76); + if (lookahead != 0) ADVANCE(72); END_STATE(); case 9: if (lookahead == '-') ADVANCE(11); - if (lookahead == '>') ADVANCE(79); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); + if (lookahead == '>') ADVANCE(75); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); END_STATE(); case 10: if (lookahead == '-') ADVANCE(11); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(51); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); END_STATE(); case 11: - if (lookahead == '-') ADVANCE(73); + if (lookahead == '-') ADVANCE(69); END_STATE(); case 12: if (lookahead == '-') ADVANCE(13); - if (lookahead == '/') ADVANCE(74); + if (lookahead == '/') ADVANCE(70); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') ADVANCE(77); - if (lookahead != 0) ADVANCE(78); + lookahead == ' ') ADVANCE(73); + if (lookahead != 0) ADVANCE(74); END_STATE(); case 13: if (lookahead == '-') ADVANCE(24); - if (lookahead != 0) ADVANCE(78); + if (lookahead != 0) ADVANCE(74); END_STATE(); case 14: if (lookahead == '-') ADVANCE(20); @@ -1763,29 +2107,29 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(14) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(51); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); END_STATE(); case 15: - if (lookahead == '.') ADVANCE(54); + if (lookahead == '.') ADVANCE(52); END_STATE(); case 16: if (lookahead == 'd' || lookahead == 'h' || lookahead == 'm' || - lookahead == 's') ADVANCE(57); + lookahead == 's') ADVANCE(55); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(16); END_STATE(); case 17: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(52); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(50); END_STATE(); case 18: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(56); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(54); END_STATE(); case 19: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(53); END_STATE(); case 20: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(51); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); END_STATE(); case 21: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(18); @@ -1799,7 +2143,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 24: if (lookahead != 0 && - lookahead != '-') ADVANCE(78); + lookahead != '-') ADVANCE(74); END_STATE(); case 25: ACCEPT_TOKEN(ts_builtin_sym_end); @@ -1832,14 +2176,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 31: ACCEPT_TOKEN(sym_block_comment); - if (lookahead == '-') ADVANCE(71); + if (lookahead == '-') ADVANCE(67); if (lookahead != 0 && - lookahead != '\n') ADVANCE(69); + lookahead != '\n') ADVANCE(65); END_STATE(); case 32: ACCEPT_TOKEN(sym_block_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(72); + lookahead != '\n') ADVANCE(68); END_STATE(); case 33: ACCEPT_TOKEN(anon_sym_COLON_COLON); @@ -1864,36 +2208,27 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ':') ADVANCE(33); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_DOT); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(54); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 42: - ACCEPT_TOKEN(sym_integer); - if (lookahead == '.') ADVANCE(17); - if (lookahead == ':') ADVANCE(21); - if (lookahead == 'd' || - lookahead == 'h' || - lookahead == 'm' || - lookahead == 's') ADVANCE(57); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); + ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 43: - ACCEPT_TOKEN(sym_integer); - if (lookahead == '.') ADVANCE(17); - if (lookahead == ':') ADVANCE(21); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(52); END_STATE(); case 44: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(17); + if (lookahead == ':') ADVANCE(21); if (lookahead == 'd' || lookahead == 'h' || lookahead == 'm' || - lookahead == 's') ADVANCE(57); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); + lookahead == 's') ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); END_STATE(); case 45: ACCEPT_TOKEN(sym_integer); @@ -1901,228 +2236,209 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'd' || lookahead == 'h' || lookahead == 'm' || - lookahead == 's') ADVANCE(57); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); + lookahead == 's') ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(44); END_STATE(); case 46: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(17); + if (lookahead == 'd' || + lookahead == 'h' || + lookahead == 'm' || + lookahead == 's') ADVANCE(55); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46); END_STATE(); case 47: ACCEPT_TOKEN(sym_integer); if (lookahead == '.') ADVANCE(17); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(43); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); END_STATE(); case 48: ACCEPT_TOKEN(sym_integer); - if (lookahead == ':') ADVANCE(21); if (lookahead == 'd' || lookahead == 'h' || lookahead == 'm' || - lookahead == 's') ADVANCE(57); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(50); + lookahead == 's') ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48); END_STATE(); case 49: ACCEPT_TOKEN(sym_integer); - if (lookahead == 'd' || - lookahead == 'h' || - lookahead == 'm' || - lookahead == 's') ADVANCE(57); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); END_STATE(); case 50: - ACCEPT_TOKEN(sym_integer); - if (lookahead == 'd' || - lookahead == 'h' || - lookahead == 'm' || - lookahead == 's') ADVANCE(57); + ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(50); END_STATE(); case 51: - ACCEPT_TOKEN(sym_integer); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(51); - END_STATE(); - case 52: - ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(52); - END_STATE(); - case 53: ACCEPT_TOKEN(sym_string); END_STATE(); - case 54: + case 52: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); - case 55: + case 53: ACCEPT_TOKEN(sym_time); END_STATE(); - case 56: + case 54: ACCEPT_TOKEN(sym_time); if (lookahead == ':') ADVANCE(22); END_STATE(); - case 57: + case 55: ACCEPT_TOKEN(sym_duration); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(16); END_STATE(); + case 56: + ACCEPT_TOKEN(anon_sym_AT); + END_STATE(); + case 57: + ACCEPT_TOKEN(aux_sym_prose_block_token1); + if (lookahead == '\n') ADVANCE(6); + if (lookahead == '*') ADVANCE(57); + if (lookahead == '/') ADVANCE(32); + if (lookahead != 0) ADVANCE(58); + END_STATE(); case 58: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(aux_sym_prose_block_token1); + if (lookahead == '\n') ADVANCE(6); + if (lookahead == '*') ADVANCE(57); + if (lookahead != 0) ADVANCE(58); END_STATE(); case 59: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(aux_sym_prose_block_token1); + if (lookahead == '\n') ADVANCE(59); + if (lookahead == '-') ADVANCE(67); + if (lookahead == '/') ADVANCE(64); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(59); + if (lookahead != 0) ADVANCE(65); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_AT); + ACCEPT_TOKEN(aux_sym_prose_block_token1); + if (lookahead == '\n') ADVANCE(72); + if (lookahead == '*') ADVANCE(62); + if (lookahead == '-') ADVANCE(58); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 61: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(6); - if (lookahead == '*') ADVANCE(61); - if (lookahead == '/') ADVANCE(32); - if (lookahead != 0) ADVANCE(62); + if (lookahead == '\n') ADVANCE(72); + if (lookahead == '*') ADVANCE(62); + if (lookahead == '-') ADVANCE(60); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 62: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(6); - if (lookahead == '*') ADVANCE(61); - if (lookahead != 0) ADVANCE(62); + if (lookahead == '\n') ADVANCE(72); + if (lookahead == '*') ADVANCE(62); + if (lookahead == '-') ADVANCE(61); + if (lookahead == '/') ADVANCE(31); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 63: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(63); - if (lookahead == '-') ADVANCE(71); - if (lookahead == '/') ADVANCE(68); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') ADVANCE(63); - if (lookahead != 0) ADVANCE(69); + if (lookahead == '\n') ADVANCE(72); + if (lookahead == '*') ADVANCE(62); + if (lookahead == '-') ADVANCE(61); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 64: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(76); - if (lookahead == '*') ADVANCE(66); - if (lookahead == '-') ADVANCE(62); - if (lookahead != 0) ADVANCE(67); + if (lookahead == '*') ADVANCE(63); + if (lookahead == '-') ADVANCE(67); + if (lookahead == '/') ADVANCE(28); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(65); END_STATE(); case 65: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(76); - if (lookahead == '*') ADVANCE(66); - if (lookahead == '-') ADVANCE(64); - if (lookahead != 0) ADVANCE(67); + if (lookahead == '-') ADVANCE(67); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(65); END_STATE(); case 66: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(76); - if (lookahead == '*') ADVANCE(66); - if (lookahead == '-') ADVANCE(65); - if (lookahead == '/') ADVANCE(31); - if (lookahead != 0) ADVANCE(67); + if (lookahead == '-') ADVANCE(68); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(65); END_STATE(); case 67: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '\n') ADVANCE(76); - if (lookahead == '*') ADVANCE(66); - if (lookahead == '-') ADVANCE(65); - if (lookahead != 0) ADVANCE(67); + if (lookahead == '-') ADVANCE(66); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(65); END_STATE(); case 68: ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '*') ADVANCE(67); - if (lookahead == '-') ADVANCE(71); - if (lookahead == '/') ADVANCE(28); if (lookahead != 0 && - lookahead != '\n') ADVANCE(69); + lookahead != '\n') ADVANCE(68); END_STATE(); case 69: - ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '-') ADVANCE(71); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(69); - END_STATE(); - case 70: - ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '-') ADVANCE(72); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(69); - END_STATE(); - case 71: - ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead == '-') ADVANCE(70); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(69); - END_STATE(); - case 72: - ACCEPT_TOKEN(aux_sym_prose_block_token1); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(72); - END_STATE(); - case 73: ACCEPT_TOKEN(sym_prose_marker); END_STATE(); - case 74: + case 70: ACCEPT_TOKEN(sym_prose_content); - if (lookahead == '*') ADVANCE(76); + if (lookahead == '*') ADVANCE(72); if (lookahead == '-') ADVANCE(13); if (lookahead == '/') ADVANCE(28); - if (lookahead != 0) ADVANCE(78); + if (lookahead != 0) ADVANCE(74); END_STATE(); - case 75: + case 71: ACCEPT_TOKEN(sym_prose_content); - if (lookahead == '*') ADVANCE(75); + if (lookahead == '*') ADVANCE(71); if (lookahead == '-') ADVANCE(8); if (lookahead == '/') ADVANCE(30); - if (lookahead != 0) ADVANCE(76); + if (lookahead != 0) ADVANCE(72); END_STATE(); - case 76: + case 72: ACCEPT_TOKEN(sym_prose_content); - if (lookahead == '*') ADVANCE(75); + if (lookahead == '*') ADVANCE(71); if (lookahead == '-') ADVANCE(8); - if (lookahead != 0) ADVANCE(76); + if (lookahead != 0) ADVANCE(72); END_STATE(); - case 77: + case 73: ACCEPT_TOKEN(sym_prose_content); if (lookahead == '-') ADVANCE(13); - if (lookahead == '/') ADVANCE(74); + if (lookahead == '/') ADVANCE(70); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') ADVANCE(77); - if (lookahead != 0) ADVANCE(78); + lookahead == ' ') ADVANCE(73); + if (lookahead != 0) ADVANCE(74); END_STATE(); - case 78: + case 74: ACCEPT_TOKEN(sym_prose_content); if (lookahead == '-') ADVANCE(13); - if (lookahead != 0) ADVANCE(78); + if (lookahead != 0) ADVANCE(74); END_STATE(); - case 79: + case 75: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); - case 80: + case 76: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 81: + case 77: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 82: + case 78: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(83); + if (lookahead == '=') ADVANCE(79); END_STATE(); - case 83: + case 79: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 84: + case 80: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(85); + if (lookahead == '=') ADVANCE(81); END_STATE(); - case 85: + case 81: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); - case 86: + case 82: ACCEPT_TOKEN(sym_identifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(86); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(82); END_STATE(); default: return false; @@ -2160,692 +2476,802 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { END_STATE(); case 2: if (lookahead == 'e') ADVANCE(18); + if (lookahead == 'l') ADVANCE(19); END_STATE(); case 3: - if (lookahead == 'h') ADVANCE(19); - if (lookahead == 'o') ADVANCE(20); + if (lookahead == 'h') ADVANCE(20); + if (lookahead == 'o') ADVANCE(21); END_STATE(); case 4: - if (lookahead == 'n') ADVANCE(21); + if (lookahead == 'n') ADVANCE(22); + if (lookahead == 'x') ADVANCE(23); END_STATE(); case 5: - if (lookahead == 'a') ADVANCE(22); - if (lookahead == 'r') ADVANCE(23); + if (lookahead == 'a') ADVANCE(24); + if (lookahead == 'r') ADVANCE(25); END_STATE(); case 6: - if (lookahead == 'f') ADVANCE(24); - if (lookahead == 'n') ADVANCE(25); - if (lookahead == 's') ADVANCE(26); + if (lookahead == 'f') ADVANCE(26); + if (lookahead == 'n') ADVANCE(27); + if (lookahead == 's') ADVANCE(28); END_STATE(); case 7: - if (lookahead == 'i') ADVANCE(27); - if (lookahead == 'o') ADVANCE(28); + if (lookahead == 'i') ADVANCE(29); + if (lookahead == 'o') ADVANCE(30); END_STATE(); case 8: - if (lookahead == 'o') ADVANCE(29); + if (lookahead == 'o') ADVANCE(31); END_STATE(); case 9: - if (lookahead == 'n') ADVANCE(30); - if (lookahead == 'r') ADVANCE(31); - if (lookahead == 't') ADVANCE(32); + if (lookahead == 'n') ADVANCE(32); + if (lookahead == 'r') ADVANCE(33); + if (lookahead == 't') ADVANCE(34); + if (lookahead == 'v') ADVANCE(35); END_STATE(); case 10: - if (lookahead == 'e') ADVANCE(33); + if (lookahead == 'e') ADVANCE(36); END_STATE(); case 11: - if (lookahead == 'c') ADVANCE(34); - if (lookahead == 'e') ADVANCE(35); - if (lookahead == 'p') ADVANCE(36); - if (lookahead == 't') ADVANCE(37); - if (lookahead == 'u') ADVANCE(38); + if (lookahead == 'c') ADVANCE(37); + if (lookahead == 'e') ADVANCE(38); + if (lookahead == 'p') ADVANCE(39); + if (lookahead == 't') ADVANCE(40); + if (lookahead == 'u') ADVANCE(41); END_STATE(); case 12: - if (lookahead == 'e') ADVANCE(39); - if (lookahead == 'h') ADVANCE(40); - if (lookahead == 'i') ADVANCE(41); - if (lookahead == 'r') ADVANCE(42); + if (lookahead == 'e') ADVANCE(42); + if (lookahead == 'h') ADVANCE(43); + if (lookahead == 'i') ADVANCE(44); + if (lookahead == 'r') ADVANCE(45); END_STATE(); case 13: - if (lookahead == 's') ADVANCE(43); + if (lookahead == 's') ADVANCE(46); END_STATE(); case 14: - if (lookahead == 'h') ADVANCE(44); + if (lookahead == 'h') ADVANCE(47); END_STATE(); case 15: - if (lookahead == 'd') ADVANCE(45); - if (lookahead == 'y') ADVANCE(46); + if (lookahead == 'd') ADVANCE(48); + if (lookahead == 'y') ADVANCE(49); END_STATE(); case 16: - if (lookahead == 'p') ADVANCE(47); + if (lookahead == 'p') ADVANCE(50); END_STATE(); case 17: ACCEPT_TOKEN(anon_sym_as); END_STATE(); case 18: - if (lookahead == 'h') ADVANCE(48); + if (lookahead == 'h') ADVANCE(51); END_STATE(); case 19: - if (lookahead == 'a') ADVANCE(49); - if (lookahead == 'o') ADVANCE(50); - END_STATE(); - case 20: - if (lookahead == 'n') ADVANCE(51); if (lookahead == 'o') ADVANCE(52); END_STATE(); + case 20: + if (lookahead == 'a') ADVANCE(53); + if (lookahead == 'o') ADVANCE(54); + END_STATE(); case 21: - if (lookahead == 't') ADVANCE(53); - if (lookahead == 'u') ADVANCE(54); + if (lookahead == 'n') ADVANCE(55); + if (lookahead == 'o') ADVANCE(56); END_STATE(); case 22: - if (lookahead == 'i') ADVANCE(55); - if (lookahead == 'l') ADVANCE(56); + if (lookahead == 't') ADVANCE(57); + if (lookahead == 'u') ADVANCE(58); END_STATE(); case 23: - if (lookahead == 'o') ADVANCE(57); + if (lookahead == 't') ADVANCE(59); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'i') ADVANCE(60); + if (lookahead == 'l') ADVANCE(61); END_STATE(); case 25: - if (lookahead == 'c') ADVANCE(58); - if (lookahead == 's') ADVANCE(59); - if (lookahead == 'v') ADVANCE(60); + if (lookahead == 'o') ADVANCE(62); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_is); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 27: - if (lookahead == 'f') ADVANCE(61); + if (lookahead == 'c') ADVANCE(63); + if (lookahead == 's') ADVANCE(64); + if (lookahead == 'v') ADVANCE(65); END_STATE(); case 28: - if (lookahead == 'c') ADVANCE(62); + ACCEPT_TOKEN(anon_sym_is); END_STATE(); case 29: - if (lookahead == 't') ADVANCE(63); + if (lookahead == 'f') ADVANCE(66); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_on); + if (lookahead == 'c') ADVANCE(67); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_or); + if (lookahead == 't') ADVANCE(68); END_STATE(); case 32: - if (lookahead == 'h') ADVANCE(64); + ACCEPT_TOKEN(anon_sym_on); END_STATE(); case 33: - if (lookahead == 'l') ADVANCE(65); - if (lookahead == 'm') ADVANCE(66); - if (lookahead == 'p') ADVANCE(67); - if (lookahead == 't') ADVANCE(68); + ACCEPT_TOKEN(anon_sym_or); END_STATE(); case 34: if (lookahead == 'h') ADVANCE(69); END_STATE(); case 35: - if (lookahead == 'l') ADVANCE(70); + if (lookahead == 'e') ADVANCE(70); END_STATE(); case 36: - if (lookahead == 'e') ADVANCE(71); + if (lookahead == 'c') ADVANCE(71); + if (lookahead == 'l') ADVANCE(72); + if (lookahead == 'm') ADVANCE(73); + if (lookahead == 'p') ADVANCE(74); + if (lookahead == 'q') ADVANCE(75); + if (lookahead == 't') ADVANCE(76); END_STATE(); case 37: - if (lookahead == 'a') ADVANCE(72); - if (lookahead == 'r') ADVANCE(73); + if (lookahead == 'h') ADVANCE(77); END_STATE(); case 38: - if (lookahead == 'b') ADVANCE(74); - if (lookahead == 'c') ADVANCE(75); + if (lookahead == 'l') ADVANCE(78); END_STATE(); case 39: - if (lookahead == 'm') ADVANCE(76); + if (lookahead == 'e') ADVANCE(79); END_STATE(); case 40: - if (lookahead == 'e') ADVANCE(77); + if (lookahead == 'a') ADVANCE(80); + if (lookahead == 'r') ADVANCE(81); END_STATE(); case 41: - if (lookahead == 'm') ADVANCE(78); + if (lookahead == 'b') ADVANCE(82); + if (lookahead == 'c') ADVANCE(83); END_STATE(); case 42: - if (lookahead == 'u') ADVANCE(79); + if (lookahead == 'm') ADVANCE(84); END_STATE(); case 43: - if (lookahead == 'e') ADVANCE(80); + if (lookahead == 'e') ADVANCE(85); END_STATE(); case 44: - if (lookahead == 'e') ADVANCE(81); + if (lookahead == 'm') ADVANCE(86); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_and); + if (lookahead == 'u') ADVANCE(87); END_STATE(); case 46: - ACCEPT_TOKEN(sym_any_type); - END_STATE(); - case 47: - if (lookahead == 'e') ADVANCE(82); - END_STATE(); - case 48: - if (lookahead == 'a') ADVANCE(83); - END_STATE(); - case 49: - if (lookahead == 'r') ADVANCE(84); - END_STATE(); - case 50: - if (lookahead == 'o') ADVANCE(85); - END_STATE(); - case 51: - if (lookahead == 'c') ADVANCE(86); - END_STATE(); - case 52: - if (lookahead == 'l') ADVANCE(87); - END_STATE(); - case 53: if (lookahead == 'e') ADVANCE(88); END_STATE(); + case 47: + if (lookahead == 'e') ADVANCE(89); + END_STATE(); + case 48: + ACCEPT_TOKEN(anon_sym_and); + END_STATE(); + case 49: + ACCEPT_TOKEN(sym_any_type); + END_STATE(); + case 50: + if (lookahead == 'e') ADVANCE(90); + END_STATE(); + case 51: + if (lookahead == 'a') ADVANCE(91); + END_STATE(); + case 52: + if (lookahead == 'c') ADVANCE(92); + END_STATE(); + case 53: + if (lookahead == 'r') ADVANCE(93); + END_STATE(); case 54: - if (lookahead == 'm') ADVANCE(89); + if (lookahead == 'o') ADVANCE(94); END_STATE(); case 55: - if (lookahead == 'l') ADVANCE(90); + if (lookahead == 'c') ADVANCE(95); END_STATE(); case 56: - if (lookahead == 's') ADVANCE(91); + if (lookahead == 'l') ADVANCE(96); END_STATE(); case 57: - if (lookahead == 'm') ADVANCE(92); + if (lookahead == 'e') ADVANCE(97); END_STATE(); case 58: - if (lookahead == 'l') ADVANCE(93); + if (lookahead == 'm') ADVANCE(98); END_STATE(); case 59: - if (lookahead == 't') ADVANCE(94); + if (lookahead == 'e') ADVANCE(99); END_STATE(); case 60: - if (lookahead == 'e') ADVANCE(95); + if (lookahead == 'l') ADVANCE(100); END_STATE(); case 61: - if (lookahead == 'e') ADVANCE(96); + if (lookahead == 's') ADVANCE(101); END_STATE(); case 62: - if (lookahead == 'a') ADVANCE(97); + if (lookahead == 'm') ADVANCE(102); END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_not); + if (lookahead == 'l') ADVANCE(103); END_STATE(); case 64: - if (lookahead == 'e') ADVANCE(98); + if (lookahead == 't') ADVANCE(104); END_STATE(); case 65: - if (lookahead == 'a') ADVANCE(99); + if (lookahead == 'e') ADVANCE(105); END_STATE(); case 66: - if (lookahead == 'o') ADVANCE(100); + if (lookahead == 'e') ADVANCE(106); END_STATE(); case 67: - if (lookahead == 'e') ADVANCE(101); + if (lookahead == 'a') ADVANCE(107); END_STATE(); case 68: - if (lookahead == 'r') ADVANCE(102); + ACCEPT_TOKEN(anon_sym_not); END_STATE(); case 69: - if (lookahead == 'e') ADVANCE(103); + if (lookahead == 'e') ADVANCE(108); END_STATE(); case 70: - if (lookahead == 'f') ADVANCE(104); + if (lookahead == 'r') ADVANCE(109); END_STATE(); case 71: - if (lookahead == 'c') ADVANCE(105); + if (lookahead == 'u') ADVANCE(110); END_STATE(); case 72: - if (lookahead == 't') ADVANCE(106); + if (lookahead == 'a') ADVANCE(111); END_STATE(); case 73: - if (lookahead == 'i') ADVANCE(107); + if (lookahead == 'o') ADVANCE(112); END_STATE(); case 74: - if (lookahead == '_') ADVANCE(108); - END_STATE(); - case 75: - if (lookahead == 'c') ADVANCE(109); - END_STATE(); - case 76: - if (lookahead == 'p') ADVANCE(110); - END_STATE(); - case 77: - if (lookahead == 'n') ADVANCE(111); - END_STATE(); - case 78: - if (lookahead == 'e') ADVANCE(112); - END_STATE(); - case 79: if (lookahead == 'e') ADVANCE(113); END_STATE(); + case 75: + if (lookahead == 'u') ADVANCE(114); + END_STATE(); + case 76: + if (lookahead == 'r') ADVANCE(115); + END_STATE(); + case 77: + if (lookahead == 'e') ADVANCE(116); + END_STATE(); + case 78: + if (lookahead == 'f') ADVANCE(117); + END_STATE(); + case 79: + if (lookahead == 'c') ADVANCE(118); + END_STATE(); case 80: - ACCEPT_TOKEN(anon_sym_use); + if (lookahead == 't') ADVANCE(119); END_STATE(); case 81: - if (lookahead == 'n') ADVANCE(114); + if (lookahead == 'i') ADVANCE(120); END_STATE(); case 82: - if (lookahead == 'n') ADVANCE(115); + if (lookahead == '_') ADVANCE(121); END_STATE(); case 83: - if (lookahead == 'v') ADVANCE(116); + if (lookahead == 'c') ADVANCE(122); END_STATE(); case 84: - if (lookahead == 'a') ADVANCE(117); + if (lookahead == 'p') ADVANCE(123); END_STATE(); case 85: - if (lookahead == 's') ADVANCE(118); + if (lookahead == 'n') ADVANCE(124); END_STATE(); case 86: - if (lookahead == 'e') ADVANCE(119); + if (lookahead == 'e') ADVANCE(125); END_STATE(); case 87: - if (lookahead == 'd') ADVANCE(120); + if (lookahead == 'e') ADVANCE(126); END_STATE(); case 88: - if (lookahead == 'r') ADVANCE(121); + ACCEPT_TOKEN(anon_sym_use); + if (lookahead == 's') ADVANCE(127); END_STATE(); case 89: - ACCEPT_TOKEN(anon_sym_enum); + if (lookahead == 'n') ADVANCE(128); END_STATE(); case 90: - if (lookahead == '_') ADVANCE(122); + if (lookahead == 'n') ADVANCE(129); END_STATE(); case 91: - if (lookahead == 'e') ADVANCE(123); + if (lookahead == 'v') ADVANCE(130); END_STATE(); case 92: - ACCEPT_TOKEN(anon_sym_from); + if (lookahead == 'k') ADVANCE(131); END_STATE(); case 93: - if (lookahead == 'u') ADVANCE(124); - END_STATE(); - case 94: - if (lookahead == 'i') ADVANCE(125); - END_STATE(); - case 95: - if (lookahead == 'r') ADVANCE(126); - END_STATE(); - case 96: - if (lookahead == '_') ADVANCE(127); - END_STATE(); - case 97: - if (lookahead == 't') ADVANCE(128); - END_STATE(); - case 98: - if (lookahead == 'r') ADVANCE(129); - END_STATE(); - case 99: - if (lookahead == 't') ADVANCE(130); - END_STATE(); - case 100: - if (lookahead == 'v') ADVANCE(131); - END_STATE(); - case 101: if (lookahead == 'a') ADVANCE(132); END_STATE(); - case 102: - if (lookahead == 'y') ADVANCE(133); + case 94: + if (lookahead == 's') ADVANCE(133); END_STATE(); - case 103: - if (lookahead == 'd') ADVANCE(134); + case 95: + if (lookahead == 'e') ADVANCE(134); END_STATE(); - case 104: - ACCEPT_TOKEN(anon_sym_self); + case 96: + if (lookahead == 'd') ADVANCE(135); END_STATE(); - case 105: - if (lookahead == 'i') ADVANCE(135); + case 97: + if (lookahead == 'r') ADVANCE(136); END_STATE(); - case 106: - if (lookahead == 'e') ADVANCE(136); + case 98: + ACCEPT_TOKEN(anon_sym_enum); END_STATE(); - case 107: - if (lookahead == 'c') ADVANCE(137); + case 99: + if (lookahead == 'n') ADVANCE(137); END_STATE(); - case 108: - if (lookahead == 'c') ADVANCE(138); + case 100: + if (lookahead == '_') ADVANCE(138); END_STATE(); - case 109: + case 101: if (lookahead == 'e') ADVANCE(139); END_STATE(); + case 102: + ACCEPT_TOKEN(anon_sym_from); + END_STATE(); + case 103: + if (lookahead == 'u') ADVANCE(140); + END_STATE(); + case 104: + if (lookahead == 'i') ADVANCE(141); + END_STATE(); + case 105: + if (lookahead == 'r') ADVANCE(142); + END_STATE(); + case 106: + if (lookahead == '_') ADVANCE(143); + END_STATE(); + case 107: + if (lookahead == 't') ADVANCE(144); + END_STATE(); + case 108: + if (lookahead == 'r') ADVANCE(145); + END_STATE(); + case 109: + if (lookahead == 'r') ADVANCE(146); + END_STATE(); case 110: - if (lookahead == 'l') ADVANCE(140); + if (lookahead == 'r') ADVANCE(147); END_STATE(); case 111: - ACCEPT_TOKEN(anon_sym_then); + if (lookahead == 't') ADVANCE(148); END_STATE(); case 112: - if (lookahead == 'o') ADVANCE(141); + if (lookahead == 'v') ADVANCE(149); END_STATE(); case 113: - ACCEPT_TOKEN(anon_sym_true); + if (lookahead == 'a') ADVANCE(150); END_STATE(); case 114: - ACCEPT_TOKEN(anon_sym_when); + if (lookahead == 'i') ADVANCE(151); END_STATE(); case 115: - if (lookahead == 'd') ADVANCE(142); + if (lookahead == 'y') ADVANCE(152); END_STATE(); case 116: - if (lookahead == 'i') ADVANCE(143); + if (lookahead == 'd') ADVANCE(153); END_STATE(); case 117: - if (lookahead == 'c') ADVANCE(144); + ACCEPT_TOKEN(anon_sym_self); END_STATE(); case 118: - if (lookahead == 'e') ADVANCE(145); - END_STATE(); - case 119: - if (lookahead == 'p') ADVANCE(146); - END_STATE(); - case 120: - if (lookahead == 'o') ADVANCE(147); - END_STATE(); - case 121: - ACCEPT_TOKEN(anon_sym_enter); - END_STATE(); - case 122: - if (lookahead == 'a') ADVANCE(148); - END_STATE(); - case 123: - ACCEPT_TOKEN(anon_sym_false); - END_STATE(); - case 124: - if (lookahead == 'd') ADVANCE(149); - END_STATE(); - case 125: - if (lookahead == 't') ADVANCE(150); - END_STATE(); - case 126: - if (lookahead == 't') ADVANCE(151); - END_STATE(); - case 127: - if (lookahead == 'a') ADVANCE(152); - END_STATE(); - case 128: - if (lookahead == 'i') ADVANCE(153); - END_STATE(); - case 129: - ACCEPT_TOKEN(anon_sym_other); - END_STATE(); - case 130: if (lookahead == 'i') ADVANCE(154); END_STATE(); - case 131: + case 119: if (lookahead == 'e') ADVANCE(155); END_STATE(); - case 132: - if (lookahead == 't') ADVANCE(156); + case 120: + if (lookahead == 'c') ADVANCE(156); END_STATE(); - case 133: - ACCEPT_TOKEN(anon_sym_retry); + case 121: + if (lookahead == 'c') ADVANCE(157); END_STATE(); - case 134: - if (lookahead == 'u') ADVANCE(157); - END_STATE(); - case 135: + case 122: if (lookahead == 'e') ADVANCE(158); END_STATE(); - case 136: - ACCEPT_TOKEN(anon_sym_state); + case 123: + if (lookahead == 'l') ADVANCE(159); END_STATE(); - case 137: - if (lookahead == 't') ADVANCE(159); + case 124: + ACCEPT_TOKEN(anon_sym_then); END_STATE(); - case 138: + case 125: if (lookahead == 'o') ADVANCE(160); END_STATE(); + case 126: + ACCEPT_TOKEN(anon_sym_true); + END_STATE(); + case 127: + ACCEPT_TOKEN(anon_sym_uses); + END_STATE(); + case 128: + ACCEPT_TOKEN(anon_sym_when); + END_STATE(); + case 129: + if (lookahead == 'd') ADVANCE(161); + END_STATE(); + case 130: + if (lookahead == 'i') ADVANCE(162); + END_STATE(); + case 131: + ACCEPT_TOKEN(anon_sym_block); + END_STATE(); + case 132: + if (lookahead == 'c') ADVANCE(163); + END_STATE(); + case 133: + if (lookahead == 'e') ADVANCE(164); + END_STATE(); + case 134: + if (lookahead == 'p') ADVANCE(165); + END_STATE(); + case 135: + if (lookahead == 'o') ADVANCE(166); + END_STATE(); + case 136: + ACCEPT_TOKEN(anon_sym_enter); + END_STATE(); + case 137: + if (lookahead == 'd') ADVANCE(167); + END_STATE(); + case 138: + if (lookahead == 'a') ADVANCE(168); + END_STATE(); case 139: - if (lookahead == 'e') ADVANCE(161); + ACCEPT_TOKEN(anon_sym_false); END_STATE(); case 140: - if (lookahead == 'a') ADVANCE(162); + if (lookahead == 'd') ADVANCE(169); END_STATE(); case 141: - if (lookahead == 'u') ADVANCE(163); + if (lookahead == 't') ADVANCE(170); END_STATE(); case 142: - ACCEPT_TOKEN(anon_sym_append); + if (lookahead == 't') ADVANCE(171); END_STATE(); case 143: - if (lookahead == 'o') ADVANCE(164); + if (lookahead == 'a') ADVANCE(172); END_STATE(); case 144: - if (lookahead == 't') ADVANCE(165); + if (lookahead == 'i') ADVANCE(173); END_STATE(); case 145: - ACCEPT_TOKEN(anon_sym_choose); + ACCEPT_TOKEN(anon_sym_other); END_STATE(); case 146: - if (lookahead == 't') ADVANCE(166); + if (lookahead == 'i') ADVANCE(174); END_STATE(); case 147: - if (lookahead == 'w') ADVANCE(167); + if (lookahead == 'r') ADVANCE(175); END_STATE(); case 148: - if (lookahead == 'l') ADVANCE(168); + if (lookahead == 'i') ADVANCE(176); END_STATE(); case 149: - if (lookahead == 'e') ADVANCE(169); + if (lookahead == 'e') ADVANCE(177); END_STATE(); case 150: - if (lookahead == 'u') ADVANCE(170); - END_STATE(); - case 151: - ACCEPT_TOKEN(anon_sym_invert); - END_STATE(); - case 152: - if (lookahead == 'r') ADVANCE(171); - END_STATE(); - case 153: - if (lookahead == 'o') ADVANCE(172); - END_STATE(); - case 154: - if (lookahead == 'o') ADVANCE(173); - END_STATE(); - case 155: - ACCEPT_TOKEN(anon_sym_remove); - END_STATE(); - case 156: - ACCEPT_TOKEN(anon_sym_repeat); - END_STATE(); - case 157: - if (lookahead == 'l') ADVANCE(174); - END_STATE(); - case 158: - if (lookahead == 's') ADVANCE(175); - END_STATE(); - case 159: - ACCEPT_TOKEN(anon_sym_strict); - END_STATE(); - case 160: - if (lookahead == 'n') ADVANCE(176); - END_STATE(); - case 161: - if (lookahead == 'd') ADVANCE(177); - END_STATE(); - case 162: if (lookahead == 't') ADVANCE(178); END_STATE(); - case 163: - if (lookahead == 't') ADVANCE(179); + case 151: + if (lookahead == 'r') ADVANCE(179); END_STATE(); - case 164: - if (lookahead == 'r') ADVANCE(180); + case 152: + ACCEPT_TOKEN(anon_sym_retry); END_STATE(); - case 165: + case 153: + if (lookahead == 'u') ADVANCE(180); + END_STATE(); + case 154: if (lookahead == 'e') ADVANCE(181); END_STATE(); + case 155: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); + case 156: + if (lookahead == 't') ADVANCE(182); + END_STATE(); + case 157: + if (lookahead == 'o') ADVANCE(183); + END_STATE(); + case 158: + if (lookahead == 'e') ADVANCE(184); + END_STATE(); + case 159: + if (lookahead == 'a') ADVANCE(185); + END_STATE(); + case 160: + if (lookahead == 'u') ADVANCE(186); + END_STATE(); + case 161: + ACCEPT_TOKEN(anon_sym_append); + END_STATE(); + case 162: + if (lookahead == 'o') ADVANCE(187); + END_STATE(); + case 163: + if (lookahead == 't') ADVANCE(188); + END_STATE(); + case 164: + ACCEPT_TOKEN(anon_sym_choose); + END_STATE(); + case 165: + if (lookahead == 't') ADVANCE(189); + END_STATE(); case 166: - ACCEPT_TOKEN(anon_sym_concept); - if (lookahead == '_') ADVANCE(182); + if (lookahead == 'w') ADVANCE(190); END_STATE(); case 167: - if (lookahead == 'n') ADVANCE(183); + if (lookahead == 's') ADVANCE(191); END_STATE(); case 168: - if (lookahead == 'w') ADVANCE(184); + if (lookahead == 'l') ADVANCE(192); END_STATE(); case 169: - ACCEPT_TOKEN(anon_sym_include); + if (lookahead == 'e') ADVANCE(193); END_STATE(); case 170: - if (lookahead == 't') ADVANCE(185); + if (lookahead == 'u') ADVANCE(194); END_STATE(); case 171: - if (lookahead == 'c') ADVANCE(186); + ACCEPT_TOKEN(anon_sym_invert); END_STATE(); case 172: - if (lookahead == 'n') ADVANCE(187); + if (lookahead == 'r') ADVANCE(195); END_STATE(); case 173: - if (lookahead == 'n') ADVANCE(188); + if (lookahead == 'o') ADVANCE(196); END_STATE(); case 174: - if (lookahead == 'e') ADVANCE(189); + if (lookahead == 'd') ADVANCE(197); END_STATE(); case 175: - ACCEPT_TOKEN(anon_sym_species); - END_STATE(); - case 176: - if (lookahead == 'c') ADVANCE(190); - END_STATE(); - case 177: - if (lookahead == '_') ADVANCE(191); - END_STATE(); - case 178: - if (lookahead == 'e') ADVANCE(192); - END_STATE(); - case 179: - ACCEPT_TOKEN(anon_sym_timeout); - END_STATE(); - case 180: - ACCEPT_TOKEN(anon_sym_behavior); - END_STATE(); - case 181: - if (lookahead == 'r') ADVANCE(193); - END_STATE(); - case 182: - if (lookahead == 'c') ADVANCE(194); - END_STATE(); - case 183: - ACCEPT_TOKEN(anon_sym_cooldown); - END_STATE(); - case 184: - if (lookahead == 'a') ADVANCE(195); - END_STATE(); - case 185: - if (lookahead == 'i') ADVANCE(196); - END_STATE(); - case 186: - ACCEPT_TOKEN(anon_sym_life_arc); - END_STATE(); - case 187: - ACCEPT_TOKEN(anon_sym_location); - END_STATE(); - case 188: - if (lookahead == 's') ADVANCE(197); - END_STATE(); - case 189: - ACCEPT_TOKEN(anon_sym_schedule); - END_STATE(); - case 190: if (lookahead == 'e') ADVANCE(198); END_STATE(); + case 176: + if (lookahead == 'o') ADVANCE(199); + END_STATE(); + case 177: + ACCEPT_TOKEN(anon_sym_remove); + END_STATE(); + case 178: + ACCEPT_TOKEN(anon_sym_repeat); + END_STATE(); + case 179: + if (lookahead == 'e') ADVANCE(200); + END_STATE(); + case 180: + if (lookahead == 'l') ADVANCE(201); + END_STATE(); + case 181: + if (lookahead == 's') ADVANCE(202); + END_STATE(); + case 182: + ACCEPT_TOKEN(anon_sym_strict); + END_STATE(); + case 183: + if (lookahead == 'n') ADVANCE(203); + END_STATE(); + case 184: + if (lookahead == 'd') ADVANCE(204); + END_STATE(); + case 185: + if (lookahead == 't') ADVANCE(205); + END_STATE(); + case 186: + if (lookahead == 't') ADVANCE(206); + END_STATE(); + case 187: + if (lookahead == 'r') ADVANCE(207); + END_STATE(); + case 188: + if (lookahead == 'e') ADVANCE(208); + END_STATE(); + case 189: + ACCEPT_TOKEN(anon_sym_concept); + if (lookahead == '_') ADVANCE(209); + END_STATE(); + case 190: + if (lookahead == 'n') ADVANCE(210); + END_STATE(); case 191: - if (lookahead == 'a') ADVANCE(199); + ACCEPT_TOKEN(anon_sym_extends); END_STATE(); case 192: - ACCEPT_TOKEN(anon_sym_template); - END_STATE(); - case 193: - ACCEPT_TOKEN(anon_sym_character); - END_STATE(); - case 194: - if (lookahead == 'o') ADVANCE(200); - END_STATE(); - case 195: - if (lookahead == 'y') ADVANCE(201); - END_STATE(); - case 196: - if (lookahead == 'o') ADVANCE(202); - END_STATE(); - case 197: - if (lookahead == 'h') ADVANCE(203); - END_STATE(); - case 198: - if (lookahead == 'p') ADVANCE(204); - END_STATE(); - case 199: - if (lookahead == 'l') ADVANCE(205); - END_STATE(); - case 200: - if (lookahead == 'm') ADVANCE(206); - END_STATE(); - case 201: - if (lookahead == 's') ADVANCE(207); - END_STATE(); - case 202: - if (lookahead == 'n') ADVANCE(208); - END_STATE(); - case 203: - if (lookahead == 'i') ADVANCE(209); - END_STATE(); - case 204: - if (lookahead == 't') ADVANCE(210); - END_STATE(); - case 205: if (lookahead == 'w') ADVANCE(211); END_STATE(); - case 206: - if (lookahead == 'p') ADVANCE(212); + case 193: + ACCEPT_TOKEN(anon_sym_include); END_STATE(); - case 207: - ACCEPT_TOKEN(anon_sym_fail_always); + case 194: + if (lookahead == 't') ADVANCE(212); END_STATE(); - case 208: - ACCEPT_TOKEN(anon_sym_institution); + case 195: + if (lookahead == 'c') ADVANCE(213); END_STATE(); - case 209: - if (lookahead == 'p') ADVANCE(213); + case 196: + if (lookahead == 'n') ADVANCE(214); END_STATE(); - case 210: - ACCEPT_TOKEN(anon_sym_sub_concept); + case 197: + if (lookahead == 'e') ADVANCE(215); END_STATE(); - case 211: - if (lookahead == 'a') ADVANCE(214); + case 198: + if (lookahead == 'n') ADVANCE(216); END_STATE(); - case 212: - if (lookahead == 'a') ADVANCE(215); + case 199: + if (lookahead == 'n') ADVANCE(217); END_STATE(); - case 213: - ACCEPT_TOKEN(anon_sym_relationship); - END_STATE(); - case 214: - if (lookahead == 'y') ADVANCE(216); - END_STATE(); - case 215: - if (lookahead == 'r') ADVANCE(217); - END_STATE(); - case 216: + case 200: if (lookahead == 's') ADVANCE(218); END_STATE(); + case 201: + if (lookahead == 'e') ADVANCE(219); + END_STATE(); + case 202: + ACCEPT_TOKEN(anon_sym_species); + END_STATE(); + case 203: + if (lookahead == 'c') ADVANCE(220); + END_STATE(); + case 204: + if (lookahead == '_') ADVANCE(221); + END_STATE(); + case 205: + if (lookahead == 'e') ADVANCE(222); + END_STATE(); + case 206: + ACCEPT_TOKEN(anon_sym_timeout); + END_STATE(); + case 207: + ACCEPT_TOKEN(anon_sym_behavior); + if (lookahead == 's') ADVANCE(223); + END_STATE(); + case 208: + if (lookahead == 'r') ADVANCE(224); + END_STATE(); + case 209: + if (lookahead == 'c') ADVANCE(225); + END_STATE(); + case 210: + ACCEPT_TOKEN(anon_sym_cooldown); + END_STATE(); + case 211: + if (lookahead == 'a') ADVANCE(226); + END_STATE(); + case 212: + if (lookahead == 'i') ADVANCE(227); + END_STATE(); + case 213: + ACCEPT_TOKEN(anon_sym_life_arc); + END_STATE(); + case 214: + ACCEPT_TOKEN(anon_sym_location); + END_STATE(); + case 215: + ACCEPT_TOKEN(anon_sym_override); + END_STATE(); + case 216: + if (lookahead == 'c') ADVANCE(228); + END_STATE(); case 217: - if (lookahead == 'i') ADVANCE(219); + if (lookahead == 's') ADVANCE(229); END_STATE(); case 218: - ACCEPT_TOKEN(anon_sym_succeed_always); + ACCEPT_TOKEN(anon_sym_requires); END_STATE(); case 219: - if (lookahead == 's') ADVANCE(220); + ACCEPT_TOKEN(anon_sym_schedule); + if (lookahead == 's') ADVANCE(230); END_STATE(); case 220: - if (lookahead == 'o') ADVANCE(221); + if (lookahead == 'e') ADVANCE(231); END_STATE(); case 221: - if (lookahead == 'n') ADVANCE(222); + if (lookahead == 'a') ADVANCE(232); END_STATE(); case 222: + ACCEPT_TOKEN(anon_sym_template); + END_STATE(); + case 223: + ACCEPT_TOKEN(anon_sym_behaviors); + END_STATE(); + case 224: + ACCEPT_TOKEN(anon_sym_character); + END_STATE(); + case 225: + if (lookahead == 'o') ADVANCE(233); + END_STATE(); + case 226: + if (lookahead == 'y') ADVANCE(234); + END_STATE(); + case 227: + if (lookahead == 'o') ADVANCE(235); + END_STATE(); + case 228: + if (lookahead == 'e') ADVANCE(236); + END_STATE(); + case 229: + if (lookahead == 'h') ADVANCE(237); + END_STATE(); + case 230: + ACCEPT_TOKEN(anon_sym_schedules); + END_STATE(); + case 231: + if (lookahead == 'p') ADVANCE(238); + END_STATE(); + case 232: + if (lookahead == 'l') ADVANCE(239); + END_STATE(); + case 233: + if (lookahead == 'm') ADVANCE(240); + END_STATE(); + case 234: + if (lookahead == 's') ADVANCE(241); + END_STATE(); + case 235: + if (lookahead == 'n') ADVANCE(242); + END_STATE(); + case 236: + ACCEPT_TOKEN(anon_sym_recurrence); + END_STATE(); + case 237: + if (lookahead == 'i') ADVANCE(243); + END_STATE(); + case 238: + if (lookahead == 't') ADVANCE(244); + END_STATE(); + case 239: + if (lookahead == 'w') ADVANCE(245); + END_STATE(); + case 240: + if (lookahead == 'p') ADVANCE(246); + END_STATE(); + case 241: + ACCEPT_TOKEN(anon_sym_fail_always); + END_STATE(); + case 242: + ACCEPT_TOKEN(anon_sym_institution); + END_STATE(); + case 243: + if (lookahead == 'p') ADVANCE(247); + END_STATE(); + case 244: + ACCEPT_TOKEN(anon_sym_sub_concept); + END_STATE(); + case 245: + if (lookahead == 'a') ADVANCE(248); + END_STATE(); + case 246: + if (lookahead == 'a') ADVANCE(249); + END_STATE(); + case 247: + ACCEPT_TOKEN(anon_sym_relationship); + END_STATE(); + case 248: + if (lookahead == 'y') ADVANCE(250); + END_STATE(); + case 249: + if (lookahead == 'r') ADVANCE(251); + END_STATE(); + case 250: + if (lookahead == 's') ADVANCE(252); + END_STATE(); + case 251: + if (lookahead == 'i') ADVANCE(253); + END_STATE(); + case 252: + ACCEPT_TOKEN(anon_sym_succeed_always); + END_STATE(); + case 253: + if (lookahead == 's') ADVANCE(254); + END_STATE(); + case 254: + if (lookahead == 'o') ADVANCE(255); + END_STATE(); + case 255: + if (lookahead == 'n') ADVANCE(256); + END_STATE(); + case 256: ACCEPT_TOKEN(anon_sym_concept_comparison); END_STATE(); default: @@ -2856,9 +3282,9 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 0}, - [2] = {.lex_state = 0}, + [2] = {.lex_state = 1}, [3] = {.lex_state = 0}, - [4] = {.lex_state = 1}, + [4] = {.lex_state = 0}, [5] = {.lex_state = 1}, [6] = {.lex_state = 1}, [7] = {.lex_state = 1}, @@ -2868,14 +3294,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [11] = {.lex_state = 0}, [12] = {.lex_state = 0}, [13] = {.lex_state = 0}, - [14] = {.lex_state = 0}, - [15] = {.lex_state = 0}, + [14] = {.lex_state = 3}, + [15] = {.lex_state = 3}, [16] = {.lex_state = 0}, [17] = {.lex_state = 0}, [18] = {.lex_state = 0}, - [19] = {.lex_state = 3}, + [19] = {.lex_state = 0}, [20] = {.lex_state = 0}, - [21] = {.lex_state = 3}, + [21] = {.lex_state = 0}, [22] = {.lex_state = 0}, [23] = {.lex_state = 0}, [24] = {.lex_state = 0}, @@ -2906,18 +3332,18 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [49] = {.lex_state = 0}, [50] = {.lex_state = 0}, [51] = {.lex_state = 0}, - [52] = {.lex_state = 1}, - [53] = {.lex_state = 1}, - [54] = {.lex_state = 1}, - [55] = {.lex_state = 1}, + [52] = {.lex_state = 0}, + [53] = {.lex_state = 0}, + [54] = {.lex_state = 0}, + [55] = {.lex_state = 0}, [56] = {.lex_state = 1}, [57] = {.lex_state = 1}, [58] = {.lex_state = 1}, [59] = {.lex_state = 1}, - [60] = {.lex_state = 0}, - [61] = {.lex_state = 0}, - [62] = {.lex_state = 0}, - [63] = {.lex_state = 0}, + [60] = {.lex_state = 1}, + [61] = {.lex_state = 1}, + [62] = {.lex_state = 1}, + [63] = {.lex_state = 1}, [64] = {.lex_state = 0}, [65] = {.lex_state = 0}, [66] = {.lex_state = 0}, @@ -2984,56 +3410,56 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, - [130] = {.lex_state = 1}, + [130] = {.lex_state = 0}, [131] = {.lex_state = 0}, [132] = {.lex_state = 0}, - [133] = {.lex_state = 1}, + [133] = {.lex_state = 0}, [134] = {.lex_state = 0}, - [135] = {.lex_state = 1}, - [136] = {.lex_state = 1}, + [135] = {.lex_state = 0}, + [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 1}, - [139] = {.lex_state = 0}, - [140] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 1}, + [140] = {.lex_state = 1}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 1}, - [144] = {.lex_state = 0}, - [145] = {.lex_state = 1}, - [146] = {.lex_state = 1}, - [147] = {.lex_state = 1}, + [144] = {.lex_state = 1}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 0}, [148] = {.lex_state = 1}, - [149] = {.lex_state = 1}, - [150] = {.lex_state = 0}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 1}, [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, - [153] = {.lex_state = 0}, + [153] = {.lex_state = 1}, [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, [156] = {.lex_state = 0}, - [157] = {.lex_state = 0}, + [157] = {.lex_state = 1}, [158] = {.lex_state = 0}, - [159] = {.lex_state = 0}, + [159] = {.lex_state = 1}, [160] = {.lex_state = 0}, - [161] = {.lex_state = 0}, - [162] = {.lex_state = 0}, - [163] = {.lex_state = 1}, + [161] = {.lex_state = 1}, + [162] = {.lex_state = 1}, + [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, - [165] = {.lex_state = 0}, + [165] = {.lex_state = 1}, [166] = {.lex_state = 0}, [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, [170] = {.lex_state = 0}, - [171] = {.lex_state = 1}, - [172] = {.lex_state = 1}, + [171] = {.lex_state = 0}, + [172] = {.lex_state = 0}, [173] = {.lex_state = 0}, [174] = {.lex_state = 0}, [175] = {.lex_state = 0}, - [176] = {.lex_state = 0}, + [176] = {.lex_state = 1}, [177] = {.lex_state = 0}, [178] = {.lex_state = 0}, - [179] = {.lex_state = 1}, + [179] = {.lex_state = 0}, [180] = {.lex_state = 0}, [181] = {.lex_state = 0}, [182] = {.lex_state = 0}, @@ -3045,7 +3471,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, [190] = {.lex_state = 0}, - [191] = {.lex_state = 0}, + [191] = {.lex_state = 1}, [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, [194] = {.lex_state = 0}, @@ -3065,7 +3491,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, [210] = {.lex_state = 0}, - [211] = {.lex_state = 1}, + [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, [214] = {.lex_state = 0}, @@ -3073,18 +3499,18 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [216] = {.lex_state = 0}, [217] = {.lex_state = 0}, [218] = {.lex_state = 0}, - [219] = {.lex_state = 0}, - [220] = {.lex_state = 0}, + [219] = {.lex_state = 3}, + [220] = {.lex_state = 3}, [221] = {.lex_state = 0}, [222] = {.lex_state = 0}, [223] = {.lex_state = 0}, [224] = {.lex_state = 0}, [225] = {.lex_state = 0}, [226] = {.lex_state = 0}, - [227] = {.lex_state = 0}, + [227] = {.lex_state = 1}, [228] = {.lex_state = 0}, [229] = {.lex_state = 0}, - [230] = {.lex_state = 0}, + [230] = {.lex_state = 1}, [231] = {.lex_state = 0}, [232] = {.lex_state = 0}, [233] = {.lex_state = 0}, @@ -3092,8 +3518,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [235] = {.lex_state = 0}, [236] = {.lex_state = 0}, [237] = {.lex_state = 0}, - [238] = {.lex_state = 0}, - [239] = {.lex_state = 3}, + [238] = {.lex_state = 1}, + [239] = {.lex_state = 0}, [240] = {.lex_state = 0}, [241] = {.lex_state = 0}, [242] = {.lex_state = 0}, @@ -3103,16 +3529,16 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [246] = {.lex_state = 0}, [247] = {.lex_state = 0}, [248] = {.lex_state = 0}, - [249] = {.lex_state = 63}, + [249] = {.lex_state = 0}, [250] = {.lex_state = 0}, [251] = {.lex_state = 0}, [252] = {.lex_state = 0}, [253] = {.lex_state = 0}, [254] = {.lex_state = 0}, [255] = {.lex_state = 0}, - [256] = {.lex_state = 3}, + [256] = {.lex_state = 0}, [257] = {.lex_state = 0}, - [258] = {.lex_state = 0}, + [258] = {.lex_state = 1}, [259] = {.lex_state = 0}, [260] = {.lex_state = 0}, [261] = {.lex_state = 0}, @@ -3145,9 +3571,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [288] = {.lex_state = 0}, [289] = {.lex_state = 0}, [290] = {.lex_state = 0}, - [291] = {.lex_state = 0}, + [291] = {.lex_state = 1}, [292] = {.lex_state = 0}, - [293] = {.lex_state = 0}, + [293] = {.lex_state = 3}, [294] = {.lex_state = 0}, [295] = {.lex_state = 0}, [296] = {.lex_state = 0}, @@ -3161,8 +3587,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [304] = {.lex_state = 0}, [305] = {.lex_state = 0}, [306] = {.lex_state = 0}, - [307] = {.lex_state = 1}, - [308] = {.lex_state = 14}, + [307] = {.lex_state = 0}, + [308] = {.lex_state = 0}, [309] = {.lex_state = 0}, [310] = {.lex_state = 0}, [311] = {.lex_state = 0}, @@ -3175,22 +3601,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [318] = {.lex_state = 0}, [319] = {.lex_state = 0}, [320] = {.lex_state = 0}, - [321] = {.lex_state = 0}, + [321] = {.lex_state = 3}, [322] = {.lex_state = 0}, [323] = {.lex_state = 0}, [324] = {.lex_state = 0}, [325] = {.lex_state = 0}, [326] = {.lex_state = 0}, [327] = {.lex_state = 0}, - [328] = {.lex_state = 0}, + [328] = {.lex_state = 3}, [329] = {.lex_state = 0}, [330] = {.lex_state = 0}, [331] = {.lex_state = 0}, - [332] = {.lex_state = 14}, + [332] = {.lex_state = 0}, [333] = {.lex_state = 0}, [334] = {.lex_state = 0}, [335] = {.lex_state = 0}, - [336] = {.lex_state = 0}, + [336] = {.lex_state = 3}, [337] = {.lex_state = 0}, [338] = {.lex_state = 0}, [339] = {.lex_state = 0}, @@ -3206,8 +3632,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [349] = {.lex_state = 0}, [350] = {.lex_state = 0}, [351] = {.lex_state = 0}, - [352] = {.lex_state = 12}, - [353] = {.lex_state = 0}, + [352] = {.lex_state = 59}, + [353] = {.lex_state = 12}, [354] = {.lex_state = 0}, [355] = {.lex_state = 0}, [356] = {.lex_state = 0}, @@ -3220,6 +3646,94 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [363] = {.lex_state = 0}, [364] = {.lex_state = 0}, [365] = {.lex_state = 0}, + [366] = {.lex_state = 0}, + [367] = {.lex_state = 0}, + [368] = {.lex_state = 0}, + [369] = {.lex_state = 0}, + [370] = {.lex_state = 0}, + [371] = {.lex_state = 0}, + [372] = {.lex_state = 0}, + [373] = {.lex_state = 0}, + [374] = {.lex_state = 0}, + [375] = {.lex_state = 0}, + [376] = {.lex_state = 0}, + [377] = {.lex_state = 0}, + [378] = {.lex_state = 0}, + [379] = {.lex_state = 0}, + [380] = {.lex_state = 0}, + [381] = {.lex_state = 0}, + [382] = {.lex_state = 0}, + [383] = {.lex_state = 0}, + [384] = {.lex_state = 0}, + [385] = {.lex_state = 0}, + [386] = {.lex_state = 0}, + [387] = {.lex_state = 0}, + [388] = {.lex_state = 14}, + [389] = {.lex_state = 0}, + [390] = {.lex_state = 0}, + [391] = {.lex_state = 0}, + [392] = {.lex_state = 0}, + [393] = {.lex_state = 0}, + [394] = {.lex_state = 14}, + [395] = {.lex_state = 0}, + [396] = {.lex_state = 0}, + [397] = {.lex_state = 0}, + [398] = {.lex_state = 0}, + [399] = {.lex_state = 0}, + [400] = {.lex_state = 0}, + [401] = {.lex_state = 0}, + [402] = {.lex_state = 0}, + [403] = {.lex_state = 0}, + [404] = {.lex_state = 0}, + [405] = {.lex_state = 0}, + [406] = {.lex_state = 0}, + [407] = {.lex_state = 0}, + [408] = {.lex_state = 0}, + [409] = {.lex_state = 0}, + [410] = {.lex_state = 0}, + [411] = {.lex_state = 0}, + [412] = {.lex_state = 0}, + [413] = {.lex_state = 0}, + [414] = {.lex_state = 0}, + [415] = {.lex_state = 0}, + [416] = {.lex_state = 0}, + [417] = {.lex_state = 0}, + [418] = {.lex_state = 0}, + [419] = {.lex_state = 0}, + [420] = {.lex_state = 0}, + [421] = {.lex_state = 14}, + [422] = {.lex_state = 0}, + [423] = {.lex_state = 0}, + [424] = {.lex_state = 0}, + [425] = {.lex_state = 1}, + [426] = {.lex_state = 0}, + [427] = {.lex_state = 0}, + [428] = {.lex_state = 0}, + [429] = {.lex_state = 0}, + [430] = {.lex_state = 0}, + [431] = {.lex_state = 0}, + [432] = {.lex_state = 0}, + [433] = {.lex_state = 0}, + [434] = {.lex_state = 0}, + [435] = {.lex_state = 0}, + [436] = {.lex_state = 0}, + [437] = {.lex_state = 0}, + [438] = {.lex_state = 0}, + [439] = {.lex_state = 0}, + [440] = {.lex_state = 0}, + [441] = {.lex_state = 0}, + [442] = {.lex_state = 0}, + [443] = {.lex_state = 0}, + [444] = {.lex_state = 0}, + [445] = {.lex_state = 0}, + [446] = {.lex_state = 0}, + [447] = {.lex_state = 0}, + [448] = {.lex_state = 0}, + [449] = {.lex_state = 0}, + [450] = {.lex_state = 0}, + [451] = {.lex_state = 0}, + [452] = {.lex_state = 0}, + [453] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3240,6 +3754,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_from] = ACTIONS(1), [anon_sym_template] = ACTIONS(1), [anon_sym_strict] = ACTIONS(1), + [anon_sym_uses] = ACTIONS(1), + [anon_sym_behaviors] = ACTIONS(1), + [anon_sym_schedule] = ACTIONS(1), + [anon_sym_schedules] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_include] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [sym_integer] = ACTIONS(1), @@ -3250,18 +3770,20 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DOT_DOT] = ACTIONS(1), [sym_time] = ACTIONS(1), [sym_duration] = ACTIONS(1), - [anon_sym_LBRACK] = ACTIONS(1), - [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_AT] = ACTIONS(1), [anon_sym_remove] = ACTIONS(1), [anon_sym_append] = ACTIONS(1), [sym_prose_marker] = ACTIONS(1), [anon_sym_life_arc] = ACTIONS(1), + [anon_sym_requires] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), [anon_sym_on] = ACTIONS(1), [anon_sym_enter] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), - [anon_sym_schedule] = ACTIONS(1), + [anon_sym_extends] = ACTIONS(1), + [anon_sym_block] = ACTIONS(1), + [anon_sym_override] = ACTIONS(1), + [anon_sym_recurrence] = ACTIONS(1), [anon_sym_behavior] = ACTIONS(1), [anon_sym_choose] = ACTIONS(1), [anon_sym_then] = ACTIONS(1), @@ -3286,8 +3808,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_sub_concept] = ACTIONS(1), [sym_any_type] = ACTIONS(1), [anon_sym_concept_comparison] = ACTIONS(1), - [anon_sym_is] = ACTIONS(1), [anon_sym_or] = ACTIONS(1), + [anon_sym_is] = ACTIONS(1), [anon_sym_and] = ACTIONS(1), [anon_sym_not] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), @@ -3298,22 +3820,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_other] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(335), + [sym_source_file] = STATE(358), [sym_declaration] = STATE(10), - [sym_use_declaration] = STATE(94), - [sym_character] = STATE(94), - [sym_template] = STATE(94), - [sym_life_arc] = STATE(94), - [sym_schedule] = STATE(94), - [sym_behavior] = STATE(94), - [sym_institution] = STATE(94), - [sym_relationship] = STATE(94), - [sym_location] = STATE(94), - [sym_species] = STATE(94), - [sym_enum_declaration] = STATE(94), - [sym_concept_declaration] = STATE(94), - [sym_sub_concept] = STATE(94), - [sym_concept_comparison] = STATE(94), + [sym_use_declaration] = STATE(74), + [sym_character_declaration] = STATE(74), + [sym_template_declaration] = STATE(74), + [sym_life_arc_declaration] = STATE(74), + [sym_schedule_declaration] = STATE(74), + [sym_behavior_declaration] = STATE(74), + [sym_institution_declaration] = STATE(74), + [sym_relationship_declaration] = STATE(74), + [sym_location_declaration] = STATE(74), + [sym_species_declaration] = STATE(74), + [sym_enum_declaration] = STATE(74), + [sym_concept_declaration] = STATE(74), + [sym_sub_concept] = STATE(74), + [sym_concept_comparison] = STATE(74), [aux_sym_source_file_repeat1] = STATE(10), [ts_builtin_sym_end] = ACTIONS(5), [sym_line_comment] = ACTIONS(3), @@ -3321,8 +3843,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_use] = ACTIONS(7), [anon_sym_character] = ACTIONS(9), [anon_sym_template] = ACTIONS(11), - [anon_sym_life_arc] = ACTIONS(13), - [anon_sym_schedule] = ACTIONS(15), + [anon_sym_schedule] = ACTIONS(13), + [anon_sym_life_arc] = ACTIONS(15), [anon_sym_behavior] = ACTIONS(17), [anon_sym_institution] = ACTIONS(19), [anon_sym_relationship] = ACTIONS(21), @@ -3336,121 +3858,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }; static const uint16_t ts_small_parse_table[] = { - [0] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(35), 7, - ts_builtin_sym_end, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(37), 31, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_life_arc, - anon_sym_state, - anon_sym_on, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_concept, - anon_sym_sub_concept, - anon_sym_concept_comparison, - sym_identifier, - [47] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(39), 7, - ts_builtin_sym_end, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(41), 31, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_life_arc, - anon_sym_state, - anon_sym_on, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_concept, - anon_sym_sub_concept, - anon_sym_concept_comparison, - sym_identifier, - [94] = 5, - ACTIONS(45), 1, + [0] = 5, + ACTIONS(37), 1, anon_sym_COLON_COLON, - STATE(4), 1, + STATE(2), 1, aux_sym_path_segments_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(48), 12, + ACTIONS(40), 11, anon_sym_LBRACE, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_SEMI, - anon_sym_DOT, - sym_time, anon_sym_RBRACK, + anon_sym_DOT, sym_prose_marker, anon_sym_DASH_GT, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(43), 23, + ACTIONS(35), 27, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -3463,38 +3900,133 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, anon_sym_as, - anon_sym_is, anon_sym_or, + anon_sym_is, anon_sym_and, anon_sym_GT, anon_sym_LT, sym_identifier, - [144] = 5, + [53] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(42), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(44), 34, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_life_arc, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_behavior, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_concept, + anon_sym_sub_concept, + anon_sym_concept_comparison, + sym_identifier, + [102] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(46), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(48), 34, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_life_arc, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_behavior, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_concept, + anon_sym_sub_concept, + anon_sym_concept_comparison, + sym_identifier, + [151] = 5, ACTIONS(52), 1, anon_sym_COLON_COLON, - STATE(4), 1, + STATE(2), 1, aux_sym_path_segments_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(54), 11, + ACTIONS(54), 10, anon_sym_LBRACE, anon_sym_COMMA, anon_sym_RBRACE, - anon_sym_DOT, - sym_time, anon_sym_RBRACK, + anon_sym_DOT, sym_prose_marker, anon_sym_DASH_GT, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(50), 23, + ACTIONS(50), 27, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -3507,13 +4039,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, anon_sym_as, - anon_sym_is, anon_sym_or, + anon_sym_is, anon_sym_and, anon_sym_GT, anon_sym_LT, sym_identifier, - [193] = 5, + [203] = 5, ACTIONS(52), 1, anon_sym_COLON_COLON, STATE(5), 1, @@ -3521,24 +4053,27 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(58), 11, + ACTIONS(58), 10, anon_sym_LBRACE, anon_sym_COMMA, anon_sym_RBRACE, - anon_sym_DOT, - sym_time, anon_sym_RBRACK, + anon_sym_DOT, sym_prose_marker, anon_sym_DASH_GT, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(56), 23, + ACTIONS(56), 27, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -3551,36 +4086,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, anon_sym_as, - anon_sym_is, anon_sym_or, + anon_sym_is, anon_sym_and, anon_sym_GT, anon_sym_LT, sym_identifier, - [242] = 3, + [255] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(48), 13, + ACTIONS(40), 12, anon_sym_COLON_COLON, anon_sym_LBRACE, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_SEMI, - anon_sym_DOT, - sym_time, anon_sym_RBRACK, + anon_sym_DOT, sym_prose_marker, anon_sym_DASH_GT, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(43), 23, + ACTIONS(35), 27, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -3593,34 +4131,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, anon_sym_as, - anon_sym_is, anon_sym_or, + anon_sym_is, anon_sym_and, anon_sym_GT, anon_sym_LT, sym_identifier, - [287] = 3, + [303] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(62), 11, + ACTIONS(62), 10, anon_sym_LBRACE, anon_sym_COMMA, anon_sym_RBRACE, - anon_sym_DOT, - sym_time, anon_sym_RBRACK, + anon_sym_DOT, sym_prose_marker, anon_sym_DASH_GT, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(60), 23, + ACTIONS(60), 27, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -3633,33 +4174,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, anon_sym_as, - anon_sym_is, anon_sym_or, + anon_sym_is, anon_sym_and, anon_sym_GT, anon_sym_LT, sym_identifier, - [330] = 3, + [349] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(66), 10, + ACTIONS(66), 9, anon_sym_COMMA, anon_sym_RBRACE, - anon_sym_DOT, - sym_time, anon_sym_RBRACK, + anon_sym_DOT, sym_prose_marker, anon_sym_DASH_GT, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(64), 22, + ACTIONS(64), 26, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -3671,13 +4215,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, - anon_sym_is, anon_sym_or, + anon_sym_is, anon_sym_and, anon_sym_GT, anon_sym_LT, sym_identifier, - [371] = 18, + [393] = 18, ACTIONS(7), 1, anon_sym_use, ACTIONS(9), 1, @@ -3685,9 +4229,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(11), 1, anon_sym_template, ACTIONS(13), 1, - anon_sym_life_arc, - ACTIONS(15), 1, anon_sym_schedule, + ACTIONS(15), 1, + anon_sym_life_arc, ACTIONS(17), 1, anon_sym_behavior, ACTIONS(19), 1, @@ -3714,22 +4258,22 @@ static const uint16_t ts_small_parse_table[] = { STATE(11), 2, sym_declaration, aux_sym_source_file_repeat1, - STATE(94), 14, + STATE(74), 14, sym_use_declaration, - sym_character, - sym_template, - sym_life_arc, - sym_schedule, - sym_behavior, - sym_institution, - sym_relationship, - sym_location, - sym_species, + sym_character_declaration, + sym_template_declaration, + sym_life_arc_declaration, + sym_schedule_declaration, + sym_behavior_declaration, + sym_institution_declaration, + sym_relationship_declaration, + sym_location_declaration, + sym_species_declaration, sym_enum_declaration, sym_concept_declaration, sym_sub_concept, sym_concept_comparison, - [441] = 18, + [463] = 18, ACTIONS(70), 1, ts_builtin_sym_end, ACTIONS(72), 1, @@ -3739,9 +4283,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(78), 1, anon_sym_template, ACTIONS(81), 1, - anon_sym_life_arc, - ACTIONS(84), 1, anon_sym_schedule, + ACTIONS(84), 1, + anon_sym_life_arc, ACTIONS(87), 1, anon_sym_behavior, ACTIONS(90), 1, @@ -3766,22 +4310,22 @@ static const uint16_t ts_small_parse_table[] = { STATE(11), 2, sym_declaration, aux_sym_source_file_repeat1, - STATE(94), 14, + STATE(74), 14, sym_use_declaration, - sym_character, - sym_template, - sym_life_arc, - sym_schedule, - sym_behavior, - sym_institution, - sym_relationship, - sym_location, - sym_species, + sym_character_declaration, + sym_template_declaration, + sym_life_arc_declaration, + sym_schedule_declaration, + sym_behavior_declaration, + sym_institution_declaration, + sym_relationship_declaration, + sym_location_declaration, + sym_species_declaration, sym_enum_declaration, sym_concept_declaration, sym_sub_concept, sym_concept_comparison, - [511] = 15, + [533] = 16, ACTIONS(114), 1, sym_identifier, ACTIONS(116), 1, @@ -3796,37 +4340,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(126), 1, anon_sym_when, - STATE(50), 1, + ACTIONS(128), 1, + anon_sym_repeat, + STATE(45), 1, sym_prose_block, - STATE(217), 1, + STATE(269), 1, sym_decorator_keyword, - STATE(284), 1, - sym_dotted_path, - STATE(309), 1, + STATE(393), 1, sym_behavior_node, + STATE(440), 1, + sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, STATE(13), 2, sym_field, - aux_sym_template_repeat2, - ACTIONS(128), 7, - anon_sym_repeat, + aux_sym_character_body_repeat1, + ACTIONS(130), 6, anon_sym_invert, anon_sym_retry, anon_sym_timeout, anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, - STATE(106), 7, + STATE(114), 8, sym_selector_node, sym_sequence_node, sym_condition_node, sym_if_decorator_node, + sym_repeat_node, sym_decorator_node, sym_action_node, sym_subtree_node, - [571] = 15, + [596] = 16, ACTIONS(114), 1, sym_identifier, ACTIONS(116), 1, @@ -3841,272 +4387,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(126), 1, anon_sym_when, - STATE(50), 1, + ACTIONS(128), 1, + anon_sym_repeat, + STATE(45), 1, sym_prose_block, - STATE(217), 1, + STATE(269), 1, sym_decorator_keyword, - STATE(284), 1, - sym_dotted_path, - STATE(363), 1, + STATE(381), 1, sym_behavior_node, + STATE(440), 1, + sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - STATE(46), 2, + STATE(55), 2, sym_field, - aux_sym_template_repeat2, - ACTIONS(128), 7, - anon_sym_repeat, + aux_sym_character_body_repeat1, + ACTIONS(130), 6, anon_sym_invert, anon_sym_retry, anon_sym_timeout, anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, - STATE(106), 7, + STATE(114), 8, sym_selector_node, sym_sequence_node, sym_condition_node, sym_if_decorator_node, + sym_repeat_node, sym_decorator_node, sym_action_node, sym_subtree_node, - [631] = 17, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(130), 1, - sym_identifier, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, + [659] = 4, ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(146), 1, - anon_sym_RPAREN, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(218), 1, - sym_action_param, - STATE(235), 1, - sym_value, - STATE(343), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [693] = 17, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(130), 1, - sym_identifier, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(148), 1, - anon_sym_RPAREN, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(235), 1, - sym_value, - STATE(262), 1, - sym_action_param, - STATE(343), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [755] = 17, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(130), 1, - sym_identifier, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(150), 1, - anon_sym_RPAREN, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(235), 1, - sym_value, - STATE(262), 1, - sym_action_param, - STATE(343), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [817] = 12, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - ACTIONS(154), 1, - anon_sym_RBRACE, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(24), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [868] = 16, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(130), 1, - sym_identifier, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(235), 1, - sym_value, - STATE(262), 1, - sym_action_param, - STATE(343), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [927] = 4, - ACTIONS(160), 1, anon_sym_DOT_DOT, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(158), 6, + ACTIONS(134), 5, anon_sym_COMMA, anon_sym_RBRACE, - sym_time, anon_sym_RBRACK, sym_prose_marker, anon_sym_RPAREN, - ACTIONS(156), 17, + ACTIONS(132), 21, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -4119,64 +4453,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [962] = 12, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - ACTIONS(162), 1, - anon_sym_RBRACE, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(24), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1013] = 4, - ACTIONS(164), 1, + [697] = 4, + ACTIONS(138), 1, anon_sym_DOT_DOT, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(158), 6, + ACTIONS(134), 5, anon_sym_COMMA, anon_sym_RBRACE, - sym_time, anon_sym_RBRACK, sym_prose_marker, anon_sym_RPAREN, - ACTIONS(156), 17, + ACTIONS(132), 21, + anon_sym_uses, anon_sym_include, anon_sym_remove, anon_sym_append, anon_sym_state, anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -4189,30 +4487,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [1048] = 12, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - ACTIONS(166), 1, - anon_sym_RBRACE, - STATE(217), 1, - sym_decorator_keyword, + [735] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - STATE(24), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, + ACTIONS(142), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(140), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, anon_sym_repeat, anon_sym_invert, anon_sym_retry, @@ -4220,38 +4518,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1099] = 12, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, sym_identifier, - ACTIONS(168), 1, - anon_sym_RBRACE, - STATE(217), 1, - sym_decorator_keyword, + [770] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - STATE(24), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, + ACTIONS(134), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(132), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, anon_sym_repeat, anon_sym_invert, anon_sym_retry, @@ -4259,894 +4550,333 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1150] = 12, - ACTIONS(170), 1, sym_identifier, - ACTIONS(173), 1, + [805] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(146), 5, + anon_sym_COMMA, anon_sym_RBRACE, - ACTIONS(175), 1, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(144), 21, + anon_sym_uses, anon_sym_include, - ACTIONS(178), 1, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, - ACTIONS(181), 1, anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [840] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(150), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(148), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [875] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(154), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(152), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [910] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(158), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(156), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [945] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(162), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(160), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [980] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(166), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(164), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [1015] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(170), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(168), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [1050] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(174), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(172), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [1085] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(178), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RBRACK, + sym_prose_marker, + anon_sym_RPAREN, + ACTIONS(176), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [1120] = 17, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(180), 1, + sym_identifier, + ACTIONS(182), 1, + anon_sym_LBRACE, ACTIONS(184), 1, - anon_sym_if, - ACTIONS(187), 1, - anon_sym_when, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(24), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(190), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1201] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(195), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(193), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1233] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(20), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1281] = 15, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, anon_sym_LBRACK, - ACTIONS(144), 1, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, anon_sym_AT, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(199), 1, - anon_sym_RBRACK, + ACTIONS(196), 1, + anon_sym_RPAREN, STATE(8), 1, sym_path_segments, - STATE(34), 1, + STATE(18), 1, sym_block, - STATE(241), 1, - sym_value, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [1337] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(203), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(201), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1369] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(22), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1417] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(207), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(205), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1449] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(211), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(209), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1481] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(23), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1529] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(17), 2, - sym_behavior_node, - aux_sym_selector_node_repeat1, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [1577] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(215), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(213), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1609] = 15, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(217), 1, - anon_sym_RBRACK, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(233), 1, - sym_value, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [1665] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(221), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(219), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1697] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(158), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(156), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1729] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(225), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(223), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1761] = 15, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(227), 1, - anon_sym_RBRACK, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(241), 1, - sym_value, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [1817] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(231), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(229), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1849] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(235), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(233), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1881] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(239), 6, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_time, - anon_sym_RBRACK, - sym_prose_marker, - anon_sym_RPAREN, - ACTIONS(237), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [1913] = 14, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(197), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(51), 1, - sym_value, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [1966] = 14, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(197), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(241), 1, - sym_value, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(138), 3, - sym_string, - sym_time, - sym_duration, - STATE(37), 7, - sym_path, - sym_boolean, - sym_range, - sym_list, - sym_object, - sym_override, - sym_prose_block, - [2019] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, STATE(334), 1, - sym_behavior_node, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [2066] = 8, - ACTIONS(241), 1, - sym_identifier, - ACTIONS(248), 1, - sym_prose_marker, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, + sym_value, + STATE(339), 1, + sym_action_param, + STATE(443), 1, sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(244), 2, - anon_sym_RBRACE, - sym_time, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - ACTIONS(246), 14, - anon_sym_include, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - [2107] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, - STATE(342), 1, - sym_behavior_node, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [2154] = 11, - ACTIONS(116), 1, - anon_sym_include, - ACTIONS(120), 1, - anon_sym_choose, - ACTIONS(122), 1, - anon_sym_then, - ACTIONS(124), 1, - anon_sym_if, - ACTIONS(126), 1, - anon_sym_when, - ACTIONS(152), 1, - sym_identifier, - STATE(217), 1, - sym_decorator_keyword, - STATE(303), 1, - sym_behavior_node, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(128), 7, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - STATE(106), 7, - sym_selector_node, - sym_sequence_node, - sym_condition_node, - sym_if_decorator_node, - sym_decorator_node, - sym_action_node, - sym_subtree_node, - [2201] = 14, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(134), 1, - sym_integer, - ACTIONS(136), 1, - sym_float, - ACTIONS(142), 1, - anon_sym_LBRACK, - ACTIONS(144), 1, - anon_sym_AT, - ACTIONS(197), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(34), 1, - sym_block, - STATE(263), 1, - sym_value, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, + ACTIONS(192), 2, anon_sym_true, anon_sym_false, - ACTIONS(138), 3, + ACTIONS(190), 3, sym_string, sym_time, sym_duration, - STATE(37), 7, + STATE(17), 7, sym_path, sym_boolean, sym_range, @@ -5154,347 +4884,593 @@ static const uint16_t ts_small_parse_table[] = { sym_object, sym_override, sym_prose_block, - [2254] = 3, + [1182] = 13, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + ACTIONS(200), 1, + anon_sym_RBRACE, + STATE(269), 1, + sym_decorator_keyword, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(253), 3, - anon_sym_RBRACE, - sym_time, - sym_prose_marker, - ACTIONS(251), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, + STATE(29), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, anon_sym_invert, anon_sym_retry, anon_sym_timeout, anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1236] = 13, + ACTIONS(202), 1, sym_identifier, - [2283] = 3, + ACTIONS(205), 1, + anon_sym_RBRACE, + ACTIONS(207), 1, + anon_sym_include, + ACTIONS(210), 1, + anon_sym_choose, + ACTIONS(213), 1, + anon_sym_then, + ACTIONS(216), 1, + anon_sym_if, + ACTIONS(219), 1, + anon_sym_when, + ACTIONS(222), 1, + anon_sym_repeat, + STATE(269), 1, + sym_decorator_keyword, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(257), 3, - anon_sym_RBRACE, - sym_time, - sym_prose_marker, - ACTIONS(255), 17, - anon_sym_include, - anon_sym_remove, - anon_sym_append, - anon_sym_state, - anon_sym_on, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, + STATE(29), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(225), 6, anon_sym_invert, anon_sym_retry, anon_sym_timeout, anon_sym_cooldown, anon_sym_succeed_always, anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1290] = 13, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, sym_identifier, - [2312] = 11, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(263), 1, - anon_sym_enter, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(149), 1, - sym_expression, + ACTIONS(228), 1, + anon_sym_RBRACE, + STATE(269), 1, + sym_decorator_keyword, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2357] = 10, - ACTIONS(197), 1, + STATE(29), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1344] = 17, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(180), 1, sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(147), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2399] = 10, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(146), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2441] = 10, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(138), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2483] = 10, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(133), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2525] = 10, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(136), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2567] = 10, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(135), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2609] = 10, - ACTIONS(197), 1, - sym_identifier, - ACTIONS(265), 1, - anon_sym_not, - STATE(8), 1, - sym_path_segments, - STATE(149), 1, - sym_expression, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(140), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(261), 2, - sym_float, - sym_string, - STATE(143), 2, - sym_path, - sym_boolean, - ACTIONS(259), 3, - sym_integer, - anon_sym_self, - anon_sym_other, - STATE(145), 6, - sym_or_expression, - sym_and_expression, - sym_not_expression, - sym_comparison, - sym_field_access, - sym_primary_expression, - [2651] = 3, - ACTIONS(269), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(267), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [2675] = 4, - ACTIONS(273), 1, + ACTIONS(182), 1, anon_sym_LBRACE, - ACTIONS(275), 1, - anon_sym_RBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(230), 1, + anon_sym_RPAREN, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(334), 1, + sym_value, + STATE(339), 1, + sym_action_param, + STATE(443), 1, + sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(271), 13, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [1406] = 13, + ACTIONS(116), 1, anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + ACTIONS(232), 1, + anon_sym_RBRACE, + STATE(269), 1, + sym_decorator_keyword, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(29), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1460] = 13, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + ACTIONS(234), 1, + anon_sym_RBRACE, + STATE(269), 1, + sym_decorator_keyword, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(29), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1514] = 17, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(180), 1, + sym_identifier, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(236), 1, + anon_sym_RPAREN, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(242), 1, + sym_action_param, + STATE(334), 1, + sym_value, + STATE(443), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [1576] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(32), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1627] = 16, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(180), 1, + sym_identifier, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(334), 1, + sym_value, + STATE(339), 1, + sym_action_param, + STATE(443), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [1686] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(30), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1737] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(28), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1788] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(33), 2, + sym_behavior_node, + aux_sym_selector_node_repeat1, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1839] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + STATE(405), 1, + sym_behavior_node, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1889] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + STATE(407), 1, + sym_behavior_node, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [1939] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(240), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(238), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, anon_sym_choose, anon_sym_then, anon_sym_if, @@ -5507,15 +5483,765 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [2701] = 4, - ACTIONS(279), 1, + [1971] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + STATE(383), 1, + sym_behavior_node, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [2021] = 15, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(244), 1, + anon_sym_RBRACK, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(270), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2077] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(248), 2, anon_sym_RBRACE, - ACTIONS(281), 1, + sym_prose_marker, + ACTIONS(246), 21, + anon_sym_uses, + anon_sym_include, + anon_sym_remove, + anon_sym_append, + anon_sym_state, + anon_sym_on, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [2109] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + STATE(442), 1, + sym_behavior_node, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [2159] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + STATE(441), 1, + sym_behavior_node, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [2209] = 12, + ACTIONS(116), 1, + anon_sym_include, + ACTIONS(120), 1, + anon_sym_choose, + ACTIONS(122), 1, + anon_sym_then, + ACTIONS(124), 1, + anon_sym_if, + ACTIONS(126), 1, + anon_sym_when, + ACTIONS(128), 1, + anon_sym_repeat, + ACTIONS(198), 1, + sym_identifier, + STATE(269), 1, + sym_decorator_keyword, + STATE(364), 1, + sym_behavior_node, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(130), 6, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + STATE(114), 8, + sym_selector_node, + sym_sequence_node, + sym_condition_node, + sym_if_decorator_node, + sym_repeat_node, + sym_decorator_node, + sym_action_node, + sym_subtree_node, + [2259] = 15, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(250), 1, + anon_sym_RBRACK, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(314), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2315] = 15, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(252), 1, + anon_sym_RBRACK, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(314), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2371] = 14, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(254), 1, + anon_sym_LBRACE, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(42), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2424] = 14, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(42), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2477] = 14, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(314), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2530] = 14, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(184), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, + sym_integer, + ACTIONS(188), 1, + sym_float, + ACTIONS(194), 1, + anon_sym_AT, + ACTIONS(242), 1, + sym_identifier, + STATE(8), 1, + sym_path_segments, + STATE(18), 1, + sym_block, + STATE(341), 1, + sym_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(190), 3, + sym_string, + sym_time, + sym_duration, + STATE(17), 7, + sym_path, + sym_boolean, + sym_range, + sym_list, + sym_object, + sym_override, + sym_prose_block, + [2583] = 8, + ACTIONS(256), 1, + sym_identifier, + ACTIONS(259), 1, + anon_sym_RBRACE, + ACTIONS(263), 1, + sym_prose_marker, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + ACTIONS(261), 14, + anon_sym_include, + anon_sym_state, + anon_sym_on, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + [2623] = 11, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(270), 1, + anon_sym_enter, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(159), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2668] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(153), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2710] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(159), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2752] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(150), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2794] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(161), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2836] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(162), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2878] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(143), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2920] = 10, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_not, + STATE(8), 1, + sym_path_segments, + STATE(144), 1, + sym_expression, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(192), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(268), 2, + sym_float, + sym_string, + STATE(139), 2, + sym_path, + sym_boolean, + ACTIONS(266), 3, + sym_integer, + anon_sym_self, + anon_sym_other, + STATE(140), 6, + sym_or_expression, + sym_and_expression, + sym_not_expression, + sym_comparison, + sym_field_access, + sym_primary_expression, + [2962] = 4, + ACTIONS(276), 1, + anon_sym_RBRACE, + ACTIONS(278), 1, anon_sym_LPAREN, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(277), 13, + ACTIONS(274), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -5529,19 +6255,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [2727] = 3, - ACTIONS(285), 1, + [2988] = 3, + ACTIONS(282), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(283), 14, + ACTIONS(280), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5550,19 +6276,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2751] = 3, - ACTIONS(289), 1, + [3012] = 3, + ACTIONS(286), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(287), 14, + ACTIONS(284), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5571,19 +6297,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2775] = 3, - ACTIONS(293), 1, + [3036] = 3, + ACTIONS(290), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(291), 14, + ACTIONS(288), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5592,19 +6318,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2799] = 3, - ACTIONS(297), 1, + [3060] = 3, + ACTIONS(294), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(295), 14, + ACTIONS(292), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5613,19 +6339,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2823] = 3, - ACTIONS(301), 1, + [3084] = 3, + ACTIONS(298), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(299), 14, + ACTIONS(296), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5634,19 +6360,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2847] = 3, - ACTIONS(305), 1, + [3108] = 3, + ACTIONS(302), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(303), 14, + ACTIONS(300), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5655,19 +6381,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2871] = 3, - ACTIONS(309), 1, + [3132] = 3, + ACTIONS(306), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(307), 14, + ACTIONS(304), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5676,19 +6402,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2895] = 3, - ACTIONS(313), 1, + [3156] = 3, + ACTIONS(310), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(311), 14, + ACTIONS(308), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5697,19 +6423,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2919] = 3, - ACTIONS(317), 1, + [3180] = 3, + ACTIONS(314), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(315), 14, + ACTIONS(312), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5718,19 +6444,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2943] = 3, - ACTIONS(321), 1, + [3204] = 3, + ACTIONS(318), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(319), 14, + ACTIONS(316), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5739,19 +6465,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2967] = 3, - ACTIONS(325), 1, + [3228] = 3, + ACTIONS(322), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(323), 14, + ACTIONS(320), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5760,19 +6486,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [2991] = 3, - ACTIONS(329), 1, + [3252] = 3, + ACTIONS(326), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(327), 14, + ACTIONS(324), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5781,19 +6507,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3015] = 3, - ACTIONS(333), 1, + [3276] = 3, + ACTIONS(330), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(331), 14, + ACTIONS(328), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5802,19 +6528,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3039] = 3, - ACTIONS(337), 1, + [3300] = 3, + ACTIONS(334), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(335), 14, + ACTIONS(332), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5823,19 +6549,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3063] = 3, - ACTIONS(341), 1, + [3324] = 3, + ACTIONS(338), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(339), 14, + ACTIONS(336), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5844,19 +6570,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3087] = 3, - ACTIONS(345), 1, + [3348] = 3, + ACTIONS(342), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(343), 14, + ACTIONS(340), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5865,19 +6591,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3111] = 3, - ACTIONS(349), 1, + [3372] = 3, + ACTIONS(346), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(347), 14, + ACTIONS(344), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5886,19 +6612,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3135] = 3, - ACTIONS(353), 1, + [3396] = 3, + ACTIONS(350), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(351), 14, + ACTIONS(348), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5907,19 +6633,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3159] = 3, - ACTIONS(357), 1, + [3420] = 3, + ACTIONS(354), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(355), 14, + ACTIONS(352), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5928,19 +6654,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3183] = 3, - ACTIONS(361), 1, + [3444] = 3, + ACTIONS(358), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(359), 14, + ACTIONS(356), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5949,19 +6675,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3207] = 3, - ACTIONS(365), 1, + [3468] = 3, + ACTIONS(362), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(363), 14, + ACTIONS(360), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5970,19 +6696,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3231] = 3, - ACTIONS(369), 1, + [3492] = 3, + ACTIONS(366), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(367), 14, + ACTIONS(364), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -5991,19 +6717,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3255] = 3, - ACTIONS(373), 1, + [3516] = 3, + ACTIONS(370), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(371), 14, + ACTIONS(368), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6012,19 +6738,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3279] = 3, - ACTIONS(377), 1, + [3540] = 3, + ACTIONS(374), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(375), 14, + ACTIONS(372), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6033,19 +6759,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3303] = 3, - ACTIONS(381), 1, + [3564] = 3, + ACTIONS(378), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(379), 14, + ACTIONS(376), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6054,19 +6780,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3327] = 3, - ACTIONS(385), 1, + [3588] = 3, + ACTIONS(382), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(383), 14, + ACTIONS(380), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6075,19 +6801,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3351] = 3, - ACTIONS(389), 1, + [3612] = 3, + ACTIONS(386), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(387), 14, + ACTIONS(384), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6096,19 +6822,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3375] = 3, - ACTIONS(393), 1, + [3636] = 3, + ACTIONS(390), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(391), 14, + ACTIONS(388), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6117,19 +6843,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3399] = 3, - ACTIONS(397), 1, + [3660] = 3, + ACTIONS(394), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(395), 14, + ACTIONS(392), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6138,19 +6864,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3423] = 3, - ACTIONS(401), 1, + [3684] = 3, + ACTIONS(398), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(399), 14, + ACTIONS(396), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6159,19 +6885,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3447] = 3, - ACTIONS(405), 1, + [3708] = 3, + ACTIONS(402), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(403), 14, + ACTIONS(400), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6180,19 +6906,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3471] = 3, - ACTIONS(409), 1, + [3732] = 3, + ACTIONS(406), 1, anon_sym_concept, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(407), 14, + ACTIONS(404), 14, ts_builtin_sym_end, anon_sym_use, anon_sym_character, anon_sym_template, - anon_sym_life_arc, anon_sym_schedule, + anon_sym_life_arc, anon_sym_behavior, anon_sym_institution, anon_sym_relationship, @@ -6201,241 +6927,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_enum, anon_sym_sub_concept, anon_sym_concept_comparison, - [3495] = 3, - ACTIONS(413), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(411), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3519] = 3, - ACTIONS(417), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(415), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3543] = 3, - ACTIONS(421), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(419), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3567] = 3, - ACTIONS(425), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(423), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3591] = 3, - ACTIONS(429), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(427), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3615] = 3, - ACTIONS(433), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(431), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3639] = 3, - ACTIONS(437), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(435), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3663] = 3, - ACTIONS(441), 1, - anon_sym_concept, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(439), 14, - ts_builtin_sym_end, - anon_sym_use, - anon_sym_character, - anon_sym_template, - anon_sym_life_arc, - anon_sym_schedule, - anon_sym_behavior, - anon_sym_institution, - anon_sym_relationship, - anon_sym_location, - anon_sym_species, - anon_sym_enum, - anon_sym_sub_concept, - anon_sym_concept_comparison, - [3687] = 3, - ACTIONS(275), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(271), 13, - anon_sym_include, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [3710] = 3, - ACTIONS(445), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(443), 13, - anon_sym_include, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, - [3733] = 3, - ACTIONS(449), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(447), 13, - anon_sym_include, - anon_sym_choose, - anon_sym_then, - anon_sym_if, - anon_sym_when, - anon_sym_repeat, - anon_sym_invert, - anon_sym_retry, - anon_sym_timeout, - anon_sym_cooldown, - anon_sym_succeed_always, - anon_sym_fail_always, - sym_identifier, [3756] = 3, - ACTIONS(453), 1, + ACTIONS(410), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(408), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3780] = 3, + ACTIONS(414), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(412), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3804] = 4, + ACTIONS(418), 1, + anon_sym_LBRACE, + ACTIONS(420), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(451), 13, + ACTIONS(416), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6449,13 +6991,307 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3779] = 3, - ACTIONS(457), 1, + [3830] = 3, + ACTIONS(424), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(422), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3854] = 3, + ACTIONS(428), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(426), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3878] = 3, + ACTIONS(432), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(430), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3902] = 3, + ACTIONS(436), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(434), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3926] = 3, + ACTIONS(440), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(438), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3950] = 3, + ACTIONS(444), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(442), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3974] = 3, + ACTIONS(448), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(446), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [3998] = 3, + ACTIONS(452), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(450), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4022] = 3, + ACTIONS(456), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(454), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4046] = 3, + ACTIONS(460), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(458), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4070] = 3, + ACTIONS(464), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(462), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4094] = 3, + ACTIONS(468), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(466), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4118] = 3, + ACTIONS(472), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(470), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4142] = 3, + ACTIONS(476), 1, + anon_sym_concept, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(474), 14, + ts_builtin_sym_end, + anon_sym_use, + anon_sym_character, + anon_sym_template, + anon_sym_schedule, + anon_sym_life_arc, + anon_sym_behavior, + anon_sym_institution, + anon_sym_relationship, + anon_sym_location, + anon_sym_species, + anon_sym_enum, + anon_sym_sub_concept, + anon_sym_concept_comparison, + [4166] = 3, + ACTIONS(480), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(455), 13, + ACTIONS(478), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6469,13 +7305,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3802] = 3, - ACTIONS(461), 1, + [4189] = 3, + ACTIONS(484), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(459), 13, + ACTIONS(482), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6489,13 +7325,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3825] = 3, - ACTIONS(465), 1, + [4212] = 3, + ACTIONS(488), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(463), 13, + ACTIONS(486), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6509,13 +7345,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3848] = 3, - ACTIONS(469), 1, + [4235] = 3, + ACTIONS(492), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(467), 13, + ACTIONS(490), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6529,13 +7365,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3871] = 3, - ACTIONS(473), 1, + [4258] = 3, + ACTIONS(496), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(471), 13, + ACTIONS(494), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6549,13 +7385,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3894] = 3, - ACTIONS(477), 1, + [4281] = 3, + ACTIONS(420), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(475), 13, + ACTIONS(416), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6569,13 +7405,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3917] = 3, - ACTIONS(481), 1, + [4304] = 3, + ACTIONS(500), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(479), 13, + ACTIONS(498), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6589,13 +7425,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3940] = 3, - ACTIONS(485), 1, + [4327] = 3, + ACTIONS(504), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(483), 13, + ACTIONS(502), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6609,13 +7445,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3963] = 3, - ACTIONS(489), 1, + [4350] = 3, + ACTIONS(508), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(487), 13, + ACTIONS(506), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6629,13 +7465,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [3986] = 3, - ACTIONS(493), 1, + [4373] = 3, + ACTIONS(512), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(491), 13, + ACTIONS(510), 13, anon_sym_include, anon_sym_choose, anon_sym_then, @@ -6649,665 +7485,714 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_succeed_always, anon_sym_fail_always, sym_identifier, - [4009] = 10, + [4396] = 3, + ACTIONS(516), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(514), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4419] = 3, + ACTIONS(520), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(518), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4442] = 3, + ACTIONS(524), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(522), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4465] = 3, + ACTIONS(528), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(526), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4488] = 3, + ACTIONS(532), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(530), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4511] = 3, + ACTIONS(536), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(534), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4534] = 3, + ACTIONS(540), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(538), 13, + anon_sym_include, + anon_sym_choose, + anon_sym_then, + anon_sym_if, + anon_sym_when, + anon_sym_repeat, + anon_sym_invert, + anon_sym_retry, + anon_sym_timeout, + anon_sym_cooldown, + anon_sym_succeed_always, + anon_sym_fail_always, + sym_identifier, + [4557] = 10, + ACTIONS(542), 1, + sym_identifier, + ACTIONS(545), 1, + anon_sym_RBRACE, + ACTIONS(547), 1, + sym_prose_marker, + ACTIONS(550), 1, + anon_sym_block, + ACTIONS(553), 1, + anon_sym_override, + ACTIONS(556), 1, + anon_sym_recurrence, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(131), 5, + sym_field, + sym_schedule_block, + sym_override_block, + sym_recurrence_block, + aux_sym_schedule_body_repeat1, + [4593] = 10, ACTIONS(118), 1, sym_prose_marker, - ACTIONS(495), 1, + ACTIONS(559), 1, sym_identifier, - ACTIONS(497), 1, + ACTIONS(561), 1, + anon_sym_RBRACE, + ACTIONS(563), 1, + anon_sym_block, + ACTIONS(565), 1, + anon_sym_override, + ACTIONS(567), 1, + anon_sym_recurrence, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(131), 5, + sym_field, + sym_schedule_block, + sym_override_block, + sym_recurrence_block, + aux_sym_schedule_body_repeat1, + [4629] = 10, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(563), 1, + anon_sym_block, + ACTIONS(565), 1, + anon_sym_override, + ACTIONS(567), 1, + anon_sym_recurrence, + ACTIONS(569), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(132), 5, + sym_field, + sym_schedule_block, + sym_override_block, + sym_recurrence_block, + aux_sym_schedule_body_repeat1, + [4665] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(571), 1, + anon_sym_RBRACE, + ACTIONS(573), 1, + anon_sym_uses, + ACTIONS(575), 1, + anon_sym_include, + STATE(45), 1, + sym_prose_block, + STATE(453), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(136), 5, + sym_uses_behaviors, + sym_uses_schedule, + sym_include, + sym_field, + aux_sym_template_body_repeat1, + [4698] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(573), 1, + anon_sym_uses, + ACTIONS(575), 1, + anon_sym_include, + ACTIONS(577), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(453), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(134), 5, + sym_uses_behaviors, + sym_uses_schedule, + sym_include, + sym_field, + aux_sym_template_body_repeat1, + [4731] = 9, + ACTIONS(579), 1, + sym_identifier, + ACTIONS(582), 1, + anon_sym_RBRACE, + ACTIONS(584), 1, + anon_sym_uses, + ACTIONS(587), 1, + anon_sym_include, + ACTIONS(590), 1, + sym_prose_marker, + STATE(45), 1, + sym_prose_block, + STATE(453), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(136), 5, + sym_uses_behaviors, + sym_uses_schedule, + sym_include, + sym_field, + aux_sym_template_body_repeat1, + [4764] = 10, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(593), 1, + sym_identifier, + ACTIONS(595), 1, anon_sym_RBRACE, STATE(8), 1, sym_path_segments, - STATE(50), 1, + STATE(45), 1, sym_prose_block, - STATE(219), 1, + STATE(266), 1, sym_path, - STATE(284), 1, + STATE(440), 1, sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - STATE(151), 2, + STATE(164), 2, + sym_field, + aux_sym_character_body_repeat1, + STATE(173), 2, sym_participant, - aux_sym_relationship_repeat1, + aux_sym_relationship_body_repeat1, + [4798] = 10, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(597), 1, + anon_sym_RBRACE, + ACTIONS(599), 1, + anon_sym_on, + STATE(45), 1, + sym_prose_block, + STATE(146), 1, + sym_on_enter, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(147), 2, + sym_field, + aux_sym_character_body_repeat1, + STATE(210), 2, + sym_transition, + aux_sym_state_body_repeat1, + [4832] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(603), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(601), 8, + anon_sym_DOT, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + anon_sym_is, + anon_sym_and, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [4851] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(607), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(605), 8, + anon_sym_DOT, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + anon_sym_is, + anon_sym_and, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [4870] = 10, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(609), 1, + anon_sym_RBRACE, + ACTIONS(611), 1, + anon_sym_remove, + ACTIONS(613), 1, + anon_sym_append, + STATE(45), 1, + sym_prose_block, + STATE(187), 1, + sym_field, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(145), 2, + sym_override_op, + aux_sym_override_repeat1, + [4903] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(615), 1, + anon_sym_RBRACE, + ACTIONS(617), 1, + anon_sym_on, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + STATE(221), 2, + sym_transition, + aux_sym_state_body_repeat1, + [4934] = 5, + ACTIONS(619), 1, + anon_sym_DOT, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(625), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(623), 3, + anon_sym_is, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(621), 4, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + anon_sym_and, + [4957] = 4, + ACTIONS(619), 1, + anon_sym_DOT, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(629), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(627), 7, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + anon_sym_is, + anon_sym_and, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [4978] = 10, + ACTIONS(631), 1, + sym_identifier, + ACTIONS(634), 1, + anon_sym_RBRACE, + ACTIONS(636), 1, + anon_sym_remove, + ACTIONS(639), 1, + anon_sym_append, + ACTIONS(642), 1, + sym_prose_marker, + STATE(45), 1, + sym_prose_block, + STATE(187), 1, + sym_field, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(145), 2, + sym_override_op, + aux_sym_override_repeat1, + [5011] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(617), 1, + anon_sym_on, + ACTIONS(645), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(142), 2, + sym_field, + aux_sym_character_body_repeat1, + STATE(214), 2, + sym_transition, + aux_sym_state_body_repeat1, + [5042] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(617), 1, + anon_sym_on, + ACTIONS(645), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + STATE(214), 2, + sym_transition, + aux_sym_state_body_repeat1, + [5073] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(649), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(647), 8, + anon_sym_DOT, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + anon_sym_is, + anon_sym_and, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [5092] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(651), 1, + anon_sym_RBRACE, + ACTIONS(653), 1, + anon_sym_state, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + STATE(212), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [5123] = 5, + ACTIONS(619), 1, + anon_sym_DOT, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(625), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(623), 3, + anon_sym_is, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(655), 4, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + anon_sym_and, + [5146] = 9, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(559), 1, + sym_identifier, + ACTIONS(653), 1, + anon_sym_state, + ACTIONS(657), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, STATE(155), 2, sym_field, - aux_sym_template_repeat2, - [4043] = 10, + aux_sym_character_body_repeat1, + STATE(206), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [5177] = 9, ACTIONS(118), 1, sym_prose_marker, - ACTIONS(499), 1, + ACTIONS(559), 1, sym_identifier, - ACTIONS(501), 1, + ACTIONS(653), 1, + anon_sym_state, + ACTIONS(659), 1, anon_sym_RBRACE, - ACTIONS(503), 1, - anon_sym_on, - STATE(50), 1, + STATE(45), 1, sym_prose_block, - STATE(129), 1, - sym_on_enter, - STATE(284), 1, + STATE(440), 1, sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - STATE(125), 2, + STATE(149), 2, sym_field, - aux_sym_template_repeat2, - STATE(181), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [4077] = 9, + aux_sym_character_body_repeat1, + STATE(213), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [5208] = 6, + ACTIONS(619), 1, + anon_sym_DOT, + ACTIONS(663), 1, + anon_sym_and, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(625), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(623), 3, + anon_sym_is, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(661), 3, + anon_sym_DASH_GT, + anon_sym_RPAREN, + anon_sym_or, + [5233] = 10, ACTIONS(118), 1, sym_prose_marker, - ACTIONS(499), 1, + ACTIONS(559), 1, sym_identifier, - ACTIONS(505), 1, + ACTIONS(611), 1, + anon_sym_remove, + ACTIONS(613), 1, + anon_sym_append, + ACTIONS(665), 1, anon_sym_RBRACE, - ACTIONS(507), 1, - anon_sym_state, - STATE(50), 1, + STATE(45), 1, sym_prose_block, - STATE(284), 1, + STATE(187), 1, + sym_field, + STATE(440), 1, sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, STATE(141), 2, - sym_field, - aux_sym_template_repeat2, - STATE(174), 2, - sym_arc_state, - aux_sym_life_arc_repeat1, - [4108] = 10, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(509), 1, - anon_sym_RBRACE, - ACTIONS(511), 1, - anon_sym_remove, - ACTIONS(513), 1, - anon_sym_append, - STATE(50), 1, - sym_prose_block, - STATE(168), 1, - sym_field, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(123), 2, sym_override_op, aux_sym_override_repeat1, - [4141] = 9, + [5266] = 9, ACTIONS(118), 1, sym_prose_marker, - ACTIONS(499), 1, + ACTIONS(559), 1, sym_identifier, - ACTIONS(515), 1, - anon_sym_RBRACE, - ACTIONS(517), 1, - anon_sym_include, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(126), 2, - sym_include, - aux_sym_template_repeat1, - STATE(160), 2, - sym_field, - aux_sym_template_repeat2, - [4172] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(519), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(132), 2, - sym_include, - aux_sym_template_repeat1, - STATE(159), 2, - sym_field, - aux_sym_template_repeat2, - [4203] = 10, - ACTIONS(521), 1, - sym_identifier, - ACTIONS(524), 1, - anon_sym_RBRACE, - ACTIONS(526), 1, - anon_sym_remove, - ACTIONS(529), 1, - anon_sym_append, - ACTIONS(532), 1, - sym_prose_marker, - STATE(50), 1, - sym_prose_block, - STATE(168), 1, - sym_field, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(123), 2, - sym_override_op, - aux_sym_override_repeat1, - [4236] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(535), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(161), 2, - sym_field, - aux_sym_template_repeat2, - STATE(162), 2, - sym_include, - aux_sym_template_repeat1, - [4267] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(537), 1, - anon_sym_RBRACE, - ACTIONS(539), 1, - anon_sym_on, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - STATE(178), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [4298] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(541), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(153), 2, - sym_field, - aux_sym_template_repeat2, - STATE(162), 2, - sym_include, - aux_sym_template_repeat1, - [4329] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(539), 1, - anon_sym_on, - ACTIONS(543), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - STATE(187), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [4360] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(545), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(131), 2, - sym_include, - aux_sym_template_repeat1, - STATE(157), 2, - sym_field, - aux_sym_template_repeat2, - [4391] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(537), 1, - anon_sym_RBRACE, - ACTIONS(539), 1, - anon_sym_on, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(127), 2, - sym_field, - aux_sym_template_repeat2, - STATE(178), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [4422] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(549), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(547), 8, - anon_sym_DOT, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_is, - anon_sym_or, - anon_sym_and, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [4441] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(551), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(158), 2, - sym_field, - aux_sym_template_repeat2, - STATE(162), 2, - sym_include, - aux_sym_template_repeat1, - [4472] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(545), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(157), 2, - sym_field, - aux_sym_template_repeat2, - STATE(162), 2, - sym_include, - aux_sym_template_repeat1, - [4503] = 5, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(559), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(557), 3, - anon_sym_is, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(555), 4, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_or, - anon_sym_and, - [4526] = 10, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(511), 1, - anon_sym_remove, - ACTIONS(513), 1, - anon_sym_append, - ACTIONS(561), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(168), 1, - sym_field, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(120), 2, - sym_override_op, - aux_sym_override_repeat1, - [4559] = 5, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(559), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(557), 3, - anon_sym_is, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(563), 4, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_or, - anon_sym_and, - [4582] = 6, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(567), 1, - anon_sym_and, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(559), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(557), 3, - anon_sym_is, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(565), 3, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_or, - [4607] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(569), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(144), 2, - sym_include, - aux_sym_template_repeat1, - STATE(152), 2, - sym_field, - aux_sym_template_repeat2, - [4638] = 4, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(573), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(571), 7, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_is, - anon_sym_or, - anon_sym_and, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [4659] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(577), 1, - anon_sym_RBRACE, - ACTIONS(579), 1, - sym_time, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - STATE(185), 2, - sym_schedule_block, - aux_sym_schedule_repeat1, - [4690] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(579), 1, - sym_time, - ACTIONS(581), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(139), 2, - sym_field, - aux_sym_template_repeat2, - STATE(175), 2, - sym_schedule_block, - aux_sym_schedule_repeat1, - [4721] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(507), 1, + ACTIONS(653), 1, anon_sym_state, - ACTIONS(583), 1, + ACTIONS(667), 1, anon_sym_RBRACE, - STATE(50), 1, + STATE(45), 1, sym_prose_block, - STATE(284), 1, + STATE(440), 1, sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - STATE(46), 2, + STATE(55), 2, sym_field, - aux_sym_template_repeat2, - STATE(191), 2, - sym_arc_state, - aux_sym_life_arc_repeat1, - [4752] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(517), 1, + aux_sym_character_body_repeat1, + STATE(209), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [5297] = 5, + ACTIONS(673), 1, + anon_sym_COMMA, + STATE(156), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(669), 3, + anon_sym_uses, anon_sym_include, - ACTIONS(585), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(124), 2, - sym_include, - aux_sym_template_repeat1, - STATE(156), 2, - sym_field, - aux_sym_template_repeat2, - [4783] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(589), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(587), 8, - anon_sym_DOT, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_is, - anon_sym_or, - anon_sym_and, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [4802] = 9, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(499), 1, sym_identifier, - ACTIONS(517), 1, - anon_sym_include, - ACTIONS(585), 1, + ACTIONS(671), 4, + anon_sym_LBRACE, anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(156), 2, - sym_field, - aux_sym_template_repeat2, - STATE(162), 2, - sym_include, - aux_sym_template_repeat1, - [4833] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(593), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(591), 8, - anon_sym_DOT, - anon_sym_DASH_GT, - anon_sym_RPAREN, - anon_sym_is, - anon_sym_or, - anon_sym_and, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [4852] = 7, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(567), 1, - anon_sym_and, - ACTIONS(595), 1, - anon_sym_RPAREN, - ACTIONS(597), 1, - anon_sym_or, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(559), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(557), 3, - anon_sym_is, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [4878] = 7, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(567), 1, - anon_sym_and, - ACTIONS(597), 1, - anon_sym_or, - ACTIONS(599), 1, - anon_sym_RPAREN, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(559), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(557), 3, - anon_sym_is, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [4904] = 7, + anon_sym_RBRACK, + sym_prose_marker, + [5319] = 7, ACTIONS(52), 1, anon_sym_COLON_COLON, - ACTIONS(601), 1, + ACTIONS(676), 1, anon_sym_COLON, - ACTIONS(603), 1, + ACTIONS(678), 1, anon_sym_DOT, STATE(5), 1, aux_sym_path_segments_repeat1, - STATE(179), 1, + STATE(230), 1, aux_sym_dotted_path_repeat1, ACTIONS(3), 2, sym_line_comment, @@ -7317,2225 +8202,3052 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RPAREN, anon_sym_as, - [4930] = 7, - ACTIONS(553), 1, - anon_sym_DOT, - ACTIONS(567), 1, - anon_sym_and, - ACTIONS(597), 1, - anon_sym_or, - ACTIONS(605), 1, - anon_sym_DASH_GT, + [5345] = 8, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(575), 1, + anon_sym_include, + ACTIONS(680), 1, + sym_identifier, + ACTIONS(682), 1, + anon_sym_RBRACE, + STATE(261), 1, + sym_prose_block, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(559), 2, + STATE(160), 2, + sym_include, + aux_sym_species_body_repeat1, + STATE(178), 2, + sym_species_field, + aux_sym_species_body_repeat2, + [5373] = 7, + ACTIONS(619), 1, + anon_sym_DOT, + ACTIONS(663), 1, + anon_sym_and, + ACTIONS(684), 1, + anon_sym_DASH_GT, + ACTIONS(686), 1, + anon_sym_or, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(625), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(557), 3, + ACTIONS(623), 3, anon_sym_is, anon_sym_GT_EQ, anon_sym_LT_EQ, - [4956] = 7, + [5399] = 8, ACTIONS(118), 1, sym_prose_marker, ACTIONS(575), 1, - sym_identifier, - ACTIONS(607), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(154), 2, - sym_field, - aux_sym_template_repeat2, - [4980] = 6, - ACTIONS(609), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(219), 1, - sym_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(612), 2, - anon_sym_RBRACE, - sym_prose_marker, - STATE(151), 2, - sym_participant, - aux_sym_relationship_repeat1, - [5002] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(585), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5026] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(614), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5050] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(616), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5074] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(618), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5098] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(535), 1, - anon_sym_RBRACE, - ACTIONS(575), 1, - sym_identifier, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5122] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(551), 1, - anon_sym_RBRACE, - ACTIONS(575), 1, - sym_identifier, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5146] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(620), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5170] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(545), 1, - anon_sym_RBRACE, - ACTIONS(575), 1, - sym_identifier, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5194] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(541), 1, - anon_sym_RBRACE, - ACTIONS(575), 1, - sym_identifier, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5218] = 7, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(622), 1, - anon_sym_RBRACE, - STATE(50), 1, - sym_prose_block, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(46), 2, - sym_field, - aux_sym_template_repeat2, - [5242] = 5, - ACTIONS(624), 1, - sym_identifier, - ACTIONS(628), 1, anon_sym_include, + ACTIONS(680), 1, + sym_identifier, + ACTIONS(688), 1, + anon_sym_RBRACE, + STATE(261), 1, + sym_prose_block, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(626), 2, - anon_sym_RBRACE, - sym_prose_marker, - STATE(162), 2, + STATE(181), 2, sym_include, - aux_sym_template_repeat1, - [5261] = 6, - ACTIONS(279), 1, - anon_sym_RBRACE, - ACTIONS(281), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, + aux_sym_species_body_repeat1, + STATE(182), 2, + sym_species_field, + aux_sym_species_body_repeat2, + [5427] = 7, + ACTIONS(619), 1, anon_sym_DOT, - ACTIONS(631), 1, - anon_sym_COLON, - STATE(179), 1, - aux_sym_dotted_path_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5281] = 6, - ACTIONS(118), 1, - sym_prose_marker, - ACTIONS(575), 1, - sym_identifier, - STATE(50), 1, - sym_prose_block, - STATE(166), 1, - sym_field, - STATE(284), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5301] = 5, - ACTIONS(633), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(219), 1, - sym_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(117), 2, - sym_participant, - aux_sym_relationship_repeat1, - [5319] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(637), 2, - anon_sym_RBRACE, - sym_prose_marker, - ACTIONS(635), 3, - anon_sym_remove, - anon_sym_append, - sym_identifier, - [5333] = 6, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(639), 1, - anon_sym_COLON, - ACTIONS(641), 1, - anon_sym_from, - STATE(84), 1, - sym_block, - STATE(272), 1, - sym_template_clause, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5353] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(645), 2, - anon_sym_RBRACE, - sym_prose_marker, - ACTIONS(643), 3, - anon_sym_remove, - anon_sym_append, - sym_identifier, - [5367] = 6, - ACTIONS(499), 1, - sym_identifier, - ACTIONS(647), 1, - sym_any_type, - STATE(255), 1, - sym_is_condition, - STATE(257), 1, - sym_condition_expr, - STATE(340), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5387] = 5, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(641), 1, - anon_sym_from, - STATE(90), 1, - sym_block, - STATE(247), 1, - sym_template_clause, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5404] = 4, - ACTIONS(651), 1, - anon_sym_DOT, - STATE(171), 1, - aux_sym_dotted_path_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(649), 2, - anon_sym_COLON, - anon_sym_is, - [5419] = 4, - ACTIONS(603), 1, - anon_sym_DOT, - STATE(179), 1, - aux_sym_dotted_path_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(631), 2, - anon_sym_COLON, - anon_sym_is, - [5434] = 4, - ACTIONS(654), 1, - sym_identifier, - STATE(225), 1, - sym_sub_concept_field, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(339), 2, - sym_sub_concept_enum_body, - sym_sub_concept_record_body, - [5449] = 4, - ACTIONS(583), 1, - anon_sym_RBRACE, - ACTIONS(656), 1, - anon_sym_state, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(186), 2, - sym_arc_state, - aux_sym_life_arc_repeat1, - [5464] = 4, - ACTIONS(577), 1, - anon_sym_RBRACE, - ACTIONS(579), 1, - sym_time, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(184), 2, - sym_schedule_block, - aux_sym_schedule_repeat1, - [5479] = 4, - ACTIONS(660), 1, - anon_sym_or, - STATE(176), 1, - aux_sym_is_condition_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(658), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [5494] = 5, - ACTIONS(575), 1, - sym_identifier, ACTIONS(663), 1, - anon_sym_RBRACE, - STATE(264), 1, - sym_field_condition, - STATE(299), 1, - sym_dotted_path, + anon_sym_and, + ACTIONS(686), 1, + anon_sym_or, + ACTIONS(690), 1, + anon_sym_RPAREN, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [5511] = 4, - ACTIONS(543), 1, - anon_sym_RBRACE, - ACTIONS(665), 1, - anon_sym_on, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(190), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [5526] = 4, - ACTIONS(603), 1, - anon_sym_DOT, - STATE(171), 1, - aux_sym_dotted_path_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(667), 2, - anon_sym_COLON, + ACTIONS(625), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(623), 3, anon_sym_is, - [5541] = 4, - ACTIONS(671), 1, - anon_sym_COMMA, - STATE(180), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(669), 2, - anon_sym_LBRACE, - anon_sym_RBRACE, - [5556] = 4, - ACTIONS(537), 1, - anon_sym_RBRACE, - ACTIONS(665), 1, - anon_sym_on, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(190), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [5571] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(674), 2, - anon_sym_on, - sym_identifier, - ACTIONS(676), 2, - anon_sym_RBRACE, - sym_prose_marker, - [5584] = 3, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(678), 2, - anon_sym_include, - sym_identifier, - ACTIONS(680), 2, - anon_sym_RBRACE, - sym_prose_marker, - [5597] = 4, - ACTIONS(682), 1, - anon_sym_RBRACE, - ACTIONS(684), 1, - sym_time, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(184), 2, - sym_schedule_block, - aux_sym_schedule_repeat1, - [5612] = 4, - ACTIONS(579), 1, - sym_time, - ACTIONS(687), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(184), 2, - sym_schedule_block, - aux_sym_schedule_repeat1, - [5627] = 4, - ACTIONS(689), 1, - anon_sym_RBRACE, - ACTIONS(691), 1, - anon_sym_state, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(186), 2, - sym_arc_state, - aux_sym_life_arc_repeat1, - [5642] = 4, - ACTIONS(665), 1, - anon_sym_on, - ACTIONS(694), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(190), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [5657] = 5, - ACTIONS(575), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_RBRACE, - STATE(264), 1, - sym_field_condition, - STATE(299), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5674] = 5, - ACTIONS(698), 1, - anon_sym_COMMA, - ACTIONS(700), 1, - anon_sym_RBRACE, - ACTIONS(702), 1, - anon_sym_COLON, - STATE(207), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5691] = 4, - ACTIONS(704), 1, - anon_sym_RBRACE, - ACTIONS(706), 1, - anon_sym_on, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(190), 2, - sym_transition, - aux_sym_arc_state_repeat1, - [5706] = 4, - ACTIONS(656), 1, - anon_sym_state, - ACTIONS(709), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - STATE(186), 2, - sym_arc_state, - aux_sym_life_arc_repeat1, - [5721] = 4, - ACTIONS(713), 1, - anon_sym_or, - STATE(193), 1, - aux_sym_is_condition_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(711), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [5736] = 4, - ACTIONS(713), 1, - anon_sym_or, - STATE(176), 1, - aux_sym_is_condition_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(715), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [5751] = 4, - ACTIONS(717), 1, - anon_sym_COMMA, - ACTIONS(719), 1, - anon_sym_RBRACE, - STATE(230), 1, - aux_sym_variant_pattern_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5765] = 4, - ACTIONS(721), 1, - anon_sym_LBRACE, - ACTIONS(723), 1, - anon_sym_COLON, - ACTIONS(725), 1, - anon_sym_strict, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5779] = 4, - ACTIONS(727), 1, - anon_sym_LBRACE, - ACTIONS(729), 1, - anon_sym_COMMA, - STATE(227), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5793] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(731), 3, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_or, - [5803] = 4, - ACTIONS(227), 1, - anon_sym_RBRACK, - ACTIONS(733), 1, - anon_sym_COMMA, - STATE(231), 1, - aux_sym_list_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5817] = 4, - ACTIONS(575), 1, - sym_identifier, - STATE(264), 1, - sym_field_condition, - STATE(299), 1, - sym_dotted_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5831] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(735), 3, - anon_sym_RBRACE, - sym_prose_marker, - sym_identifier, - [5841] = 4, - ACTIONS(633), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(115), 1, - sym_path, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5855] = 4, - ACTIONS(737), 1, - anon_sym_COMMA, - ACTIONS(739), 1, - anon_sym_RBRACE, - STATE(180), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5869] = 4, - ACTIONS(741), 1, - anon_sym_COMMA, - ACTIONS(743), 1, - anon_sym_RBRACE, - STATE(224), 1, - aux_sym_sub_concept_record_body_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5883] = 4, - ACTIONS(745), 1, - sym_identifier, - ACTIONS(747), 1, - anon_sym_RBRACE, - STATE(248), 1, - sym_variant_pattern, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5897] = 4, - ACTIONS(747), 1, - anon_sym_RBRACE, - ACTIONS(749), 1, - anon_sym_COMMA, - STATE(229), 1, - aux_sym_concept_comparison_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5911] = 4, - ACTIONS(743), 1, - anon_sym_RBRACE, - ACTIONS(751), 1, - sym_identifier, - STATE(253), 1, - sym_sub_concept_field, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5925] = 4, - ACTIONS(753), 1, - anon_sym_COMMA, - ACTIONS(755), 1, - anon_sym_RBRACE, - STATE(180), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5939] = 4, - ACTIONS(757), 1, - anon_sym_COMMA, - ACTIONS(759), 1, - anon_sym_RBRACE, - STATE(180), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5953] = 4, - ACTIONS(54), 1, - anon_sym_SEMI, - ACTIONS(761), 1, - anon_sym_COLON_COLON, - STATE(4), 1, - aux_sym_path_segments_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5967] = 4, - ACTIONS(764), 1, - anon_sym_COMMA, - ACTIONS(767), 1, - anon_sym_RBRACE, - STATE(210), 1, - aux_sym_variant_pattern_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [5981] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(649), 3, - anon_sym_COLON, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [5453] = 7, + ACTIONS(619), 1, anon_sym_DOT, - anon_sym_is, - [5991] = 4, - ACTIONS(633), 1, - sym_identifier, - STATE(8), 1, - sym_path_segments, - STATE(283), 1, - sym_path, + ACTIONS(663), 1, + anon_sym_and, + ACTIONS(686), 1, + anon_sym_or, + ACTIONS(692), 1, + anon_sym_RPAREN, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6005] = 2, + ACTIONS(625), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(623), 3, + anon_sym_is, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [5479] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, ACTIONS(669), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + ACTIONS(671), 5, anon_sym_LBRACE, anon_sym_COMMA, anon_sym_RBRACE, - [6015] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(769), 3, - anon_sym_RBRACE, + anon_sym_RBRACK, sym_prose_marker, + [5496] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, sym_identifier, - [6025] = 4, - ACTIONS(771), 1, - anon_sym_COMMA, - ACTIONS(774), 1, - anon_sym_RPAREN, - STATE(215), 1, - aux_sym_action_node_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6039] = 4, - ACTIONS(148), 1, - anon_sym_RPAREN, - ACTIONS(776), 1, - anon_sym_COMMA, - STATE(215), 1, - aux_sym_action_node_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6053] = 4, - ACTIONS(778), 1, - anon_sym_LBRACE, - ACTIONS(780), 1, - anon_sym_LPAREN, - STATE(288), 1, - sym_decorator_params, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6067] = 4, - ACTIONS(782), 1, - anon_sym_COMMA, - ACTIONS(784), 1, - anon_sym_RPAREN, - STATE(216), 1, - aux_sym_action_node_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6081] = 4, - ACTIONS(132), 1, - anon_sym_LBRACE, - ACTIONS(786), 1, - anon_sym_as, - STATE(200), 1, - sym_block, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6095] = 4, - ACTIONS(788), 1, - anon_sym_COMMA, - ACTIONS(790), 1, + ACTIONS(696), 1, anon_sym_RBRACE, - STATE(202), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6109] = 4, - ACTIONS(792), 1, - anon_sym_COMMA, - ACTIONS(794), 1, - anon_sym_RBRACE, - STATE(205), 1, - aux_sym_concept_comparison_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6123] = 4, - ACTIONS(796), 1, - anon_sym_COMMA, - ACTIONS(798), 1, - anon_sym_RBRACE, - STATE(208), 1, - aux_sym_use_declaration_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6137] = 4, - ACTIONS(751), 1, - sym_identifier, - ACTIONS(800), 1, - anon_sym_RBRACE, - STATE(253), 1, - sym_sub_concept_field, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6151] = 4, - ACTIONS(802), 1, - anon_sym_COMMA, - ACTIONS(805), 1, - anon_sym_RBRACE, - STATE(224), 1, - aux_sym_sub_concept_record_body_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6165] = 4, - ACTIONS(807), 1, - anon_sym_COMMA, - ACTIONS(809), 1, - anon_sym_RBRACE, - STATE(203), 1, - aux_sym_sub_concept_record_body_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6179] = 4, - ACTIONS(575), 1, - sym_identifier, - STATE(194), 1, - sym_field_condition, - STATE(299), 1, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6193] = 4, - ACTIONS(811), 1, - anon_sym_LBRACE, - ACTIONS(813), 1, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + [5520] = 6, + ACTIONS(698), 1, + sym_integer, + ACTIONS(700), 1, + sym_float, + ACTIONS(702), 1, + sym_string, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(704), 2, + anon_sym_true, + anon_sym_false, + STATE(252), 2, + sym_boolean, + sym_range, + [5542] = 5, + ACTIONS(708), 1, anon_sym_COMMA, - STATE(180), 1, + STATE(168), 1, aux_sym_use_declaration_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6207] = 4, - ACTIONS(745), 1, + ACTIONS(710), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(706), 3, + anon_sym_uses, + anon_sym_include, sym_identifier, - ACTIONS(815), 1, - anon_sym_RBRACE, - STATE(248), 1, - sym_variant_pattern, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6221] = 4, - ACTIONS(817), 1, - anon_sym_COMMA, - ACTIONS(820), 1, - anon_sym_RBRACE, - STATE(229), 1, - aux_sym_concept_comparison_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6235] = 4, - ACTIONS(663), 1, - anon_sym_RBRACE, - ACTIONS(822), 1, - anon_sym_COMMA, - STATE(210), 1, - aux_sym_variant_pattern_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6249] = 4, - ACTIONS(824), 1, - anon_sym_COMMA, - ACTIONS(827), 1, - anon_sym_RBRACK, - STATE(231), 1, - aux_sym_list_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6263] = 4, - ACTIONS(58), 1, - anon_sym_SEMI, - ACTIONS(829), 1, - anon_sym_COLON_COLON, - STATE(209), 1, - aux_sym_path_segments_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6277] = 4, - ACTIONS(832), 1, - anon_sym_COMMA, - ACTIONS(834), 1, - anon_sym_RBRACK, - STATE(198), 1, - aux_sym_list_repeat1, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6291] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(836), 2, - anon_sym_RBRACE, - anon_sym_state, - [6300] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(838), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [6309] = 3, - ACTIONS(840), 1, - anon_sym_COLON_COLON, - ACTIONS(842), 1, - anon_sym_SEMI, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6320] = 3, - ACTIONS(132), 1, - anon_sym_LBRACE, - STATE(75), 1, - sym_block, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6331] = 3, - ACTIONS(132), 1, - anon_sym_LBRACE, - STATE(182), 1, - sym_block, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6342] = 3, - ACTIONS(844), 1, - sym_integer, - ACTIONS(846), 1, - sym_duration, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6353] = 3, - ACTIONS(848), 1, + [5562] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, sym_identifier, - STATE(236), 1, + ACTIONS(712), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + [5586] = 5, + ACTIONS(716), 1, + anon_sym_COMMA, + STATE(156), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(718), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(714), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [5606] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(720), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(170), 2, + sym_field, + aux_sym_character_body_repeat1, + [5630] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + [5654] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(724), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(167), 2, + sym_field, + aux_sym_character_body_repeat1, + [5678] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(726), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(55), 2, + sym_field, + aux_sym_character_body_repeat1, + [5702] = 6, + ACTIONS(728), 1, + sym_identifier, + STATE(8), 1, sym_path_segments, + STATE(266), 1, + sym_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6364] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(827), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [6373] = 3, - ACTIONS(132), 1, - anon_sym_LBRACE, - STATE(74), 1, - sym_block, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6384] = 3, - ACTIONS(850), 1, + ACTIONS(731), 2, + anon_sym_RBRACE, + sym_prose_marker, + STATE(173), 2, + sym_participant, + aux_sym_relationship_body_repeat1, + [5724] = 7, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, sym_identifier, - ACTIONS(852), 1, + ACTIONS(733), 1, anon_sym_RBRACE, + STATE(45), 1, + sym_prose_block, + STATE(440), 1, + sym_dotted_path, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6395] = 2, + STATE(172), 2, + sym_field, + aux_sym_character_body_repeat1, + [5748] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(854), 2, - anon_sym_COMMA, + ACTIONS(737), 2, anon_sym_RBRACE, - [6404] = 2, + sym_prose_marker, + ACTIONS(735), 4, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + sym_identifier, + [5763] = 5, + ACTIONS(739), 1, + sym_integer, + STATE(335), 1, + sym_boolean, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(856), 2, + ACTIONS(704), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(741), 2, + sym_float, + sym_string, + [5782] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(745), 2, anon_sym_RBRACE, - sym_time, - [6413] = 3, - ACTIONS(811), 1, - anon_sym_LBRACE, - ACTIONS(850), 1, + sym_prose_marker, + ACTIONS(743), 4, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + sym_identifier, + [5797] = 6, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(688), 1, + anon_sym_RBRACE, + ACTIONS(747), 1, + sym_identifier, + STATE(261), 1, + sym_prose_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(183), 2, + sym_species_field, + aux_sym_species_body_repeat2, + [5818] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(751), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(749), 4, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + sym_identifier, + [5833] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(755), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(753), 4, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + sym_identifier, + [5848] = 5, + ACTIONS(757), 1, + sym_identifier, + ACTIONS(761), 1, + anon_sym_include, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(759), 2, + anon_sym_RBRACE, + sym_prose_marker, + STATE(181), 2, + sym_include, + aux_sym_species_body_repeat1, + [5867] = 6, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(747), 1, + sym_identifier, + ACTIONS(764), 1, + anon_sym_RBRACE, + STATE(261), 1, + sym_prose_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(183), 2, + sym_species_field, + aux_sym_species_body_repeat2, + [5888] = 6, + ACTIONS(766), 1, + sym_identifier, + ACTIONS(769), 1, + anon_sym_RBRACE, + ACTIONS(771), 1, + sym_prose_marker, + STATE(261), 1, + sym_prose_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(183), 2, + sym_species_field, + aux_sym_species_body_repeat2, + [5909] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(776), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(774), 4, + anon_sym_block, + anon_sym_override, + anon_sym_recurrence, + sym_identifier, + [5924] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(780), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(778), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [5938] = 4, + ACTIONS(782), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6424] = 3, - ACTIONS(132), 1, - anon_sym_LBRACE, - STATE(97), 1, - sym_block, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6435] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(820), 2, - anon_sym_COMMA, + ACTIONS(714), 2, + anon_sym_uses, + anon_sym_include, + ACTIONS(718), 2, anon_sym_RBRACE, - [6444] = 3, - ACTIONS(860), 1, - aux_sym_prose_block_token1, - ACTIONS(862), 1, - sym_prose_content, - ACTIONS(858), 2, - sym_line_comment, - sym_block_comment, - [6455] = 3, - ACTIONS(751), 1, - sym_identifier, - STATE(253), 1, - sym_sub_concept_field, + sym_prose_marker, + [5954] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6466] = 3, - ACTIONS(850), 1, - sym_identifier, - ACTIONS(864), 1, + ACTIONS(787), 2, anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6477] = 3, - ACTIONS(132), 1, + sym_prose_marker, + ACTIONS(785), 3, + anon_sym_remove, + anon_sym_append, + sym_identifier, + [5968] = 6, + ACTIONS(789), 1, anon_sym_LBRACE, - STATE(214), 1, - sym_block, + ACTIONS(791), 1, + anon_sym_COLON, + ACTIONS(793), 1, + anon_sym_from, + STATE(87), 1, + sym_character_body, + STATE(343), 1, + sym_template_clause, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6488] = 2, + [5988] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(797), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(795), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [6002] = 5, + ACTIONS(799), 1, + sym_identifier, + STATE(8), 1, + sym_path_segments, + STATE(266), 1, + sym_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(137), 2, + sym_participant, + aux_sym_relationship_body_repeat1, + [6020] = 6, + ACTIONS(276), 1, + anon_sym_RBRACE, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(678), 1, + anon_sym_DOT, + ACTIONS(801), 1, + anon_sym_COLON, + STATE(230), 1, + aux_sym_dotted_path_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6040] = 6, + ACTIONS(118), 1, + sym_prose_marker, + ACTIONS(694), 1, + sym_identifier, + STATE(45), 1, + sym_prose_block, + STATE(195), 1, + sym_field, + STATE(440), 1, + sym_dotted_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6060] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, ACTIONS(805), 2, - anon_sym_COMMA, anon_sym_RBRACE, - [6497] = 3, - ACTIONS(850), 1, + sym_prose_marker, + ACTIONS(803), 3, + anon_sym_uses, + anon_sym_include, sym_identifier, - ACTIONS(866), 1, - anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6508] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(868), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [6517] = 3, - ACTIONS(870), 1, - anon_sym_DOT_DOT, - ACTIONS(872), 1, - anon_sym_RPAREN, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6528] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(874), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [6537] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(876), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [6546] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(878), 2, - anon_sym_RBRACE, - anon_sym_state, - [6555] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(880), 2, - anon_sym_LBRACE, - anon_sym_LPAREN, - [6564] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(882), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [6573] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(774), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [6582] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(884), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [6591] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(767), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [6600] = 3, - ACTIONS(850), 1, - sym_identifier, - ACTIONS(886), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6611] = 3, - ACTIONS(755), 1, - anon_sym_RBRACE, - ACTIONS(850), 1, + [6074] = 4, + ACTIONS(807), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6622] = 2, + ACTIONS(810), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(812), 2, + anon_sym_uses, + anon_sym_include, + [6090] = 3, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(888), 2, + ACTIONS(816), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(814), 3, + anon_sym_remove, + anon_sym_append, + sym_identifier, + [6104] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(820), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(818), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [6118] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(824), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(822), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [6132] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(42), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(44), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [6146] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(46), 2, + anon_sym_RBRACE, + sym_prose_marker, + ACTIONS(48), 3, + anon_sym_uses, + anon_sym_include, + sym_identifier, + [6160] = 5, + ACTIONS(826), 1, + sym_identifier, + ACTIONS(828), 1, sym_any_type, + STATE(211), 1, + sym_is_value, + STATE(299), 1, + sym_is_condition, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6177] = 4, + ACTIONS(830), 1, sym_identifier, - [6631] = 2, + ACTIONS(832), 1, + anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - ACTIONS(890), 2, - anon_sym_RBRACE, - anon_sym_on, - [6640] = 3, - ACTIONS(892), 1, + STATE(204), 2, + sym_block_field, + aux_sym_schedule_block_repeat1, + [6192] = 5, + ACTIONS(834), 1, anon_sym_LBRACE, - ACTIONS(894), 1, - anon_sym_STAR, + ACTIONS(836), 1, + anon_sym_COLON, + ACTIONS(838), 1, + anon_sym_strict, + STATE(90), 1, + sym_template_body, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6651] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(896), 2, + [6209] = 4, + ACTIONS(830), 1, + sym_identifier, + ACTIONS(840), 1, anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(205), 2, + sym_block_field, + aux_sym_schedule_block_repeat1, + [6224] = 4, + ACTIONS(830), 1, + sym_identifier, + ACTIONS(842), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(226), 2, + sym_block_field, + aux_sym_schedule_block_repeat1, + [6239] = 4, + ACTIONS(830), 1, + sym_identifier, + ACTIONS(844), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(226), 2, + sym_block_field, + aux_sym_schedule_block_repeat1, + [6254] = 4, + ACTIONS(667), 1, + anon_sym_RBRACE, + ACTIONS(846), 1, anon_sym_state, - [6660] = 3, - ACTIONS(759), 1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(217), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [6269] = 4, + ACTIONS(848), 1, anon_sym_RBRACE, ACTIONS(850), 1, - sym_identifier, + anon_sym_block, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6671] = 3, - ACTIONS(132), 1, + STATE(207), 2, + sym_schedule_block, + aux_sym_recurrence_block_repeat1, + [6284] = 5, + ACTIONS(789), 1, anon_sym_LBRACE, - STATE(70), 1, - sym_block, + ACTIONS(793), 1, + anon_sym_from, + STATE(113), 1, + sym_character_body, + STATE(350), 1, + sym_template_clause, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6682] = 3, - ACTIONS(898), 1, - sym_identifier, - ACTIONS(900), 1, - anon_sym_LBRACE, + [6301] = 4, + ACTIONS(846), 1, + anon_sym_state, + ACTIONS(853), 1, + anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6693] = 3, - ACTIONS(902), 1, - sym_identifier, - ACTIONS(904), 1, - anon_sym_LBRACE, + STATE(217), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [6316] = 4, + ACTIONS(645), 1, + anon_sym_RBRACE, + ACTIONS(855), 1, + anon_sym_on, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6704] = 3, - ACTIONS(745), 1, - sym_identifier, - STATE(248), 1, - sym_variant_pattern, + STATE(222), 2, + sym_transition, + aux_sym_state_body_repeat1, + [6331] = 4, + ACTIONS(859), 1, + anon_sym_or, + STATE(216), 1, + aux_sym_is_condition_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6715] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(906), 2, + ACTIONS(857), 2, anon_sym_COMMA, anon_sym_RBRACE, - [6724] = 3, - ACTIONS(132), 1, - anon_sym_LBRACE, - STATE(245), 1, - sym_block, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6735] = 3, - ACTIONS(745), 1, - sym_identifier, - STATE(221), 1, - sym_variant_pattern, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6746] = 2, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - ACTIONS(908), 2, - anon_sym_RBRACE, + [6346] = 4, + ACTIONS(846), 1, anon_sym_state, - [6755] = 3, - ACTIONS(910), 1, - anon_sym_LBRACE, - ACTIONS(912), 1, - anon_sym_strict, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6766] = 3, - ACTIONS(739), 1, + ACTIONS(861), 1, anon_sym_RBRACE, - ACTIONS(850), 1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(217), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [6361] = 4, + ACTIONS(651), 1, + anon_sym_RBRACE, + ACTIONS(846), 1, + anon_sym_state, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(217), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [6376] = 4, + ACTIONS(615), 1, + anon_sym_RBRACE, + ACTIONS(855), 1, + anon_sym_on, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(222), 2, + sym_transition, + aux_sym_state_body_repeat1, + [6391] = 4, + ACTIONS(863), 1, sym_identifier, + STATE(228), 1, + sym_sub_concept_field, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6777] = 3, - ACTIONS(575), 1, + STATE(431), 2, + sym_sub_concept_enum_body, + sym_sub_concept_record_body, + [6406] = 4, + ACTIONS(859), 1, + anon_sym_or, + STATE(218), 1, + aux_sym_is_condition_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(865), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [6421] = 4, + ACTIONS(867), 1, + anon_sym_RBRACE, + ACTIONS(869), 1, + anon_sym_state, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(217), 2, + sym_state_block, + aux_sym_life_arc_declaration_repeat1, + [6436] = 4, + ACTIONS(874), 1, + anon_sym_or, + STATE(218), 1, + aux_sym_is_condition_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(872), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [6451] = 3, + ACTIONS(138), 1, + anon_sym_DOT_DOT, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(877), 3, + anon_sym_RBRACE, + sym_prose_marker, sym_identifier, - STATE(360), 1, - sym_dotted_path, + [6464] = 3, + ACTIONS(136), 1, + anon_sym_DOT_DOT, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6788] = 2, - ACTIONS(914), 1, - anon_sym_LBRACE, + ACTIONS(877), 3, + anon_sym_RBRACE, + sym_prose_marker, + sym_identifier, + [6477] = 4, + ACTIONS(855), 1, + anon_sym_on, + ACTIONS(879), 1, + anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6796] = 2, - ACTIONS(916), 1, + STATE(222), 2, + sym_transition, + aux_sym_state_body_repeat1, + [6492] = 4, + ACTIONS(881), 1, + anon_sym_RBRACE, + ACTIONS(883), 1, + anon_sym_on, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(222), 2, + sym_transition, + aux_sym_state_body_repeat1, + [6507] = 5, + ACTIONS(886), 1, + anon_sym_COMMA, + ACTIONS(888), 1, + anon_sym_RBRACE, + ACTIONS(890), 1, anon_sym_COLON, + STATE(254), 1, + aux_sym_use_declaration_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6804] = 2, - ACTIONS(918), 1, + [6524] = 3, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(892), 2, + anon_sym_on, sym_identifier, + ACTIONS(894), 2, + anon_sym_RBRACE, + sym_prose_marker, + [6537] = 4, + ACTIONS(896), 1, + anon_sym_RBRACE, + ACTIONS(898), 1, + anon_sym_block, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6812] = 2, - ACTIONS(920), 1, + STATE(207), 2, + sym_schedule_block, + aux_sym_recurrence_block_repeat1, + [6552] = 4, + ACTIONS(900), 1, sym_identifier, + ACTIONS(903), 1, + anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6820] = 2, - ACTIONS(922), 1, - anon_sym_SEMI, + STATE(226), 2, + sym_block_field, + aux_sym_schedule_block_repeat1, + [6567] = 3, + ACTIONS(907), 1, + sym_integer, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6828] = 2, - ACTIONS(924), 1, + ACTIONS(905), 3, + sym_float, + sym_string, + sym_identifier, + [6580] = 4, + ACTIONS(909), 1, + anon_sym_COMMA, + ACTIONS(911), 1, + anon_sym_RBRACE, + STATE(229), 1, + aux_sym_sub_concept_record_body_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6594] = 4, + ACTIONS(913), 1, + anon_sym_COMMA, + ACTIONS(915), 1, + anon_sym_RBRACE, + STATE(245), 1, + aux_sym_sub_concept_record_body_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6608] = 4, + ACTIONS(678), 1, + anon_sym_DOT, + ACTIONS(917), 1, + anon_sym_COLON, + STATE(258), 1, + aux_sym_dotted_path_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6622] = 4, + ACTIONS(919), 1, anon_sym_LBRACE, + ACTIONS(921), 1, + anon_sym_COMMA, + STATE(156), 1, + aux_sym_use_declaration_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6836] = 2, + [6636] = 4, + ACTIONS(54), 1, + anon_sym_SEMI, + ACTIONS(923), 1, + anon_sym_COLON_COLON, + STATE(2), 1, + aux_sym_path_segments_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6650] = 3, + ACTIONS(898), 1, + anon_sym_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + STATE(225), 2, + sym_schedule_block, + aux_sym_recurrence_block_repeat1, + [6662] = 4, ACTIONS(926), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6844] = 2, + anon_sym_COMMA, ACTIONS(928), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6852] = 2, - ACTIONS(930), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6860] = 2, - ACTIONS(932), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6868] = 2, - ACTIONS(934), 1, - anon_sym_DASH_GT, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6876] = 2, - ACTIONS(936), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6884] = 2, - ACTIONS(938), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6892] = 2, - ACTIONS(940), 1, - anon_sym_SEMI, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6900] = 2, - ACTIONS(942), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6908] = 2, - ACTIONS(944), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6916] = 2, - ACTIONS(946), 1, - anon_sym_COLON, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6924] = 2, - ACTIONS(948), 1, - anon_sym_LPAREN, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6932] = 2, - ACTIONS(950), 1, - anon_sym_LPAREN, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6940] = 2, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6948] = 2, - ACTIONS(954), 1, anon_sym_RBRACE, + STATE(279), 1, + aux_sym_concept_comparison_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6956] = 2, + [6676] = 4, + ACTIONS(930), 1, + anon_sym_COMMA, + ACTIONS(932), 1, + anon_sym_RBRACK, + STATE(275), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6690] = 4, + ACTIONS(934), 1, + anon_sym_COMMA, + ACTIONS(936), 1, + anon_sym_RBRACE, + STATE(256), 1, + aux_sym_requires_clause_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6704] = 4, + ACTIONS(938), 1, + anon_sym_COMMA, + ACTIONS(941), 1, + anon_sym_RPAREN, + STATE(237), 1, + aux_sym_action_node_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6718] = 4, + ACTIONS(678), 1, + anon_sym_DOT, + ACTIONS(801), 1, + anon_sym_COLON, + STATE(230), 1, + aux_sym_dotted_path_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6732] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(872), 3, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_or, + [6742] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(943), 3, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_or, + [6752] = 4, + ACTIONS(58), 1, + anon_sym_SEMI, + ACTIONS(945), 1, + anon_sym_COLON_COLON, + STATE(232), 1, + aux_sym_path_segments_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6766] = 4, + ACTIONS(948), 1, + anon_sym_COMMA, + ACTIONS(950), 1, + anon_sym_RPAREN, + STATE(265), 1, + aux_sym_action_node_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6780] = 4, + ACTIONS(252), 1, + anon_sym_RBRACK, + ACTIONS(952), 1, + anon_sym_COMMA, + STATE(260), 1, + aux_sym_list_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6794] = 4, + ACTIONS(954), 1, + sym_identifier, ACTIONS(956), 1, - anon_sym_LBRACE, + anon_sym_RBRACE, + STATE(329), 1, + sym_sub_concept_field, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6964] = 2, + [6808] = 4, ACTIONS(958), 1, + anon_sym_COMMA, + ACTIONS(961), 1, + anon_sym_RBRACE, + STATE(245), 1, + aux_sym_sub_concept_record_body_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6822] = 4, + ACTIONS(963), 1, anon_sym_LBRACE, + ACTIONS(965), 1, + anon_sym_COMMA, + STATE(231), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6836] = 4, + ACTIONS(967), 1, + anon_sym_COMMA, + ACTIONS(969), 1, + anon_sym_RBRACE, + STATE(255), 1, + aux_sym_variant_pattern_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6850] = 4, + ACTIONS(971), 1, + sym_identifier, + ACTIONS(973), 1, + anon_sym_RBRACE, + STATE(305), 1, + sym_field_condition, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6864] = 4, + ACTIONS(975), 1, + anon_sym_COMMA, + ACTIONS(977), 1, + anon_sym_RBRACE, + STATE(283), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6878] = 4, + ACTIONS(915), 1, + anon_sym_RBRACE, + ACTIONS(954), 1, + sym_identifier, + STATE(329), 1, + sym_sub_concept_field, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6892] = 4, + ACTIONS(979), 1, + anon_sym_behaviors, + ACTIONS(981), 1, + anon_sym_schedule, + ACTIONS(983), 1, + anon_sym_schedules, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6906] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(877), 3, + anon_sym_RBRACE, + sym_prose_marker, + sym_identifier, + [6916] = 4, + ACTIONS(985), 1, + sym_identifier, + ACTIONS(987), 1, + anon_sym_RBRACE, + STATE(318), 1, + sym_required_field, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6930] = 4, + ACTIONS(989), 1, + anon_sym_COMMA, + ACTIONS(991), 1, + anon_sym_RBRACE, + STATE(156), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6944] = 4, + ACTIONS(973), 1, + anon_sym_RBRACE, + ACTIONS(993), 1, + anon_sym_COMMA, + STATE(271), 1, + aux_sym_variant_pattern_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [6958] = 4, + ACTIONS(987), 1, + anon_sym_RBRACE, + ACTIONS(995), 1, + anon_sym_COMMA, + STATE(280), 1, + aux_sym_requires_clause_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, [6972] = 2, - ACTIONS(960), 1, - anon_sym_RPAREN, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [6980] = 2, - ACTIONS(962), 1, - anon_sym_DOT, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6988] = 2, - ACTIONS(964), 1, - sym_integer, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [6996] = 2, - ACTIONS(966), 1, + ACTIONS(997), 3, anon_sym_RBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7004] = 2, - ACTIONS(702), 1, + sym_prose_marker, + sym_identifier, + [6982] = 4, + ACTIONS(999), 1, anon_sym_COLON, + ACTIONS(1001), 1, + anon_sym_DOT, + STATE(258), 1, + aux_sym_dotted_path_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7012] = 2, - ACTIONS(968), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7020] = 2, - ACTIONS(970), 1, - anon_sym_COLON, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7028] = 2, - ACTIONS(972), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7036] = 2, - ACTIONS(974), 1, - anon_sym_SEMI, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7044] = 2, - ACTIONS(976), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7052] = 2, - ACTIONS(978), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7060] = 2, - ACTIONS(980), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7068] = 2, - ACTIONS(982), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7076] = 2, - ACTIONS(984), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7084] = 2, - ACTIONS(986), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7092] = 2, - ACTIONS(988), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7100] = 2, - ACTIONS(990), 1, - sym_time, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7108] = 2, - ACTIONS(992), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7116] = 2, - ACTIONS(994), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7124] = 2, - ACTIONS(996), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7132] = 2, - ACTIONS(998), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7140] = 2, - ACTIONS(1000), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7148] = 2, - ACTIONS(850), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7156] = 2, - ACTIONS(1002), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7164] = 2, + [6996] = 4, ACTIONS(1004), 1, + anon_sym_COMMA, + ACTIONS(1006), 1, + anon_sym_RBRACE, + STATE(274), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7010] = 4, + ACTIONS(1008), 1, + anon_sym_COMMA, + ACTIONS(1011), 1, + anon_sym_RBRACK, + STATE(260), 1, + aux_sym_list_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7024] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1013), 3, + anon_sym_RBRACE, + sym_prose_marker, sym_identifier, + [7034] = 4, + ACTIONS(1015), 1, + sym_identifier, + ACTIONS(1017), 1, + anon_sym_RBRACE, + STATE(312), 1, + sym_variant_pattern, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7172] = 2, - ACTIONS(1006), 1, - sym_float, + [7048] = 4, + ACTIONS(1019), 1, + anon_sym_COMMA, + ACTIONS(1022), 1, + anon_sym_RBRACE, + STATE(263), 1, + aux_sym_concept_comparison_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7180] = 2, - ACTIONS(1006), 1, - sym_integer, + [7062] = 4, + ACTIONS(834), 1, + anon_sym_LBRACE, + ACTIONS(1024), 1, + anon_sym_strict, + STATE(81), 1, + sym_template_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7076] = 4, + ACTIONS(196), 1, + anon_sym_RPAREN, + ACTIONS(1026), 1, + anon_sym_COMMA, + STATE(237), 1, + aux_sym_action_node_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7090] = 4, + ACTIONS(182), 1, + anon_sym_LBRACE, + ACTIONS(1028), 1, + anon_sym_as, + STATE(273), 1, + sym_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7104] = 4, + ACTIONS(1030), 1, + anon_sym_LBRACE, + ACTIONS(1032), 1, + anon_sym_extends, + STATE(107), 1, + sym_schedule_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7118] = 4, + ACTIONS(1034), 1, + anon_sym_LBRACE, + ACTIONS(1036), 1, + anon_sym_requires, + STATE(374), 1, + sym_requires_clause, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7132] = 4, + ACTIONS(1038), 1, + anon_sym_LBRACE, + ACTIONS(1040), 1, + anon_sym_LPAREN, + STATE(380), 1, + sym_decorator_params, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7146] = 4, + ACTIONS(1042), 1, + anon_sym_COMMA, + ACTIONS(1044), 1, + anon_sym_RBRACK, + STATE(243), 1, + aux_sym_list_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7160] = 4, + ACTIONS(1046), 1, + anon_sym_COMMA, + ACTIONS(1049), 1, + anon_sym_RBRACE, + STATE(271), 1, + aux_sym_variant_pattern_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7174] = 4, + ACTIONS(971), 1, + sym_identifier, + ACTIONS(1051), 1, + anon_sym_RBRACE, + STATE(305), 1, + sym_field_condition, ACTIONS(3), 2, sym_line_comment, sym_block_comment, [7188] = 2, - ACTIONS(1008), 1, - sym_prose_marker, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7196] = 2, - ACTIONS(1010), 1, + ACTIONS(1053), 3, anon_sym_RBRACE, + sym_prose_marker, + sym_identifier, + [7198] = 4, + ACTIONS(1055), 1, + anon_sym_COMMA, + ACTIONS(1057), 1, + anon_sym_RBRACE, + STATE(156), 1, + aux_sym_use_declaration_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7204] = 2, - ACTIONS(1012), 1, - ts_builtin_sym_end, + [7212] = 4, + ACTIONS(1059), 1, + anon_sym_COMMA, + ACTIONS(1061), 1, + anon_sym_RBRACK, + STATE(156), 1, + aux_sym_use_declaration_repeat1, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7212] = 2, - ACTIONS(1014), 1, + [7226] = 3, + ACTIONS(1065), 1, + anon_sym_COMMA, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1063), 2, + anon_sym_RBRACE, + sym_identifier, + [7238] = 4, + ACTIONS(799), 1, + sym_identifier, + STATE(8), 1, + sym_path_segments, + STATE(417), 1, + sym_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7252] = 4, + ACTIONS(1015), 1, + sym_identifier, + ACTIONS(1067), 1, + anon_sym_RBRACE, + STATE(312), 1, + sym_variant_pattern, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7266] = 4, + ACTIONS(1067), 1, + anon_sym_RBRACE, + ACTIONS(1069), 1, + anon_sym_COMMA, + STATE(263), 1, + aux_sym_concept_comparison_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7280] = 4, + ACTIONS(1071), 1, + anon_sym_COMMA, + ACTIONS(1074), 1, + anon_sym_RBRACE, + STATE(280), 1, + aux_sym_requires_clause_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7294] = 4, + ACTIONS(799), 1, + sym_identifier, + STATE(8), 1, + sym_path_segments, + STATE(116), 1, + sym_path, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7308] = 4, + ACTIONS(985), 1, + sym_identifier, + ACTIONS(1076), 1, + anon_sym_RBRACE, + STATE(318), 1, + sym_required_field, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7322] = 4, + ACTIONS(1078), 1, + anon_sym_COMMA, + ACTIONS(1080), 1, + anon_sym_RBRACE, + STATE(156), 1, + aux_sym_use_declaration_repeat1, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7336] = 3, + ACTIONS(991), 1, + anon_sym_RBRACE, + ACTIONS(1082), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7220] = 2, - ACTIONS(1016), 1, + [7347] = 3, + ACTIONS(1084), 1, + sym_identifier, + ACTIONS(1086), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7228] = 2, - ACTIONS(1018), 1, - anon_sym_SEMI, + [7358] = 2, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7236] = 2, - ACTIONS(1020), 1, + ACTIONS(1088), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7367] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1090), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7376] = 3, + ACTIONS(1092), 1, + anon_sym_LBRACE, + ACTIONS(1094), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7387] = 3, + ACTIONS(1096), 1, + sym_identifier, + ACTIONS(1098), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7398] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1100), 2, + anon_sym_RBRACE, + anon_sym_state, + [7407] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(999), 2, + anon_sym_COLON, + anon_sym_DOT, + [7416] = 3, + ACTIONS(1080), 1, + anon_sym_RBRACE, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7427] = 3, + ACTIONS(1102), 1, + sym_integer, + ACTIONS(1104), 1, + sym_duration, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7438] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1106), 2, + anon_sym_LBRACE, + anon_sym_LPAREN, + [7447] = 3, + ACTIONS(1108), 1, + anon_sym_LBRACE, + STATE(69), 1, + sym_species_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7458] = 3, + ACTIONS(985), 1, + sym_identifier, + STATE(236), 1, + sym_required_field, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7469] = 3, + ACTIONS(182), 1, + anon_sym_LBRACE, + STATE(67), 1, + sym_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7480] = 3, + ACTIONS(954), 1, + sym_identifier, + STATE(329), 1, + sym_sub_concept_field, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7491] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1110), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7500] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1112), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7509] = 3, + ACTIONS(1114), 1, + anon_sym_LBRACE, + STATE(66), 1, + sym_relationship_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7520] = 3, + ACTIONS(182), 1, + anon_sym_LBRACE, + STATE(110), 1, + sym_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7531] = 3, + ACTIONS(1116), 1, + anon_sym_LBRACE, + STATE(65), 1, + sym_behavior_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7542] = 3, + ACTIONS(1057), 1, + anon_sym_RBRACE, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7553] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1049), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7562] = 3, + ACTIONS(1061), 1, + anon_sym_RBRACK, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7573] = 3, + ACTIONS(1030), 1, + anon_sym_LBRACE, + STATE(97), 1, + sym_schedule_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7584] = 3, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(1118), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7595] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1120), 2, + anon_sym_RBRACE, + sym_identifier, + [7604] = 3, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(1122), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7244] = 2, - ACTIONS(1022), 1, - anon_sym_is, + [7615] = 2, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7252] = 2, - ACTIONS(872), 1, + ACTIONS(1124), 2, + anon_sym_RBRACE, + sym_identifier, + [7624] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1022), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7633] = 3, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(1126), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7644] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1011), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [7653] = 3, + ACTIONS(971), 1, + sym_identifier, + STATE(247), 1, + sym_field_condition, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7664] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1128), 2, + anon_sym_RBRACE, + anon_sym_on, + [7673] = 3, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(1130), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7684] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1074), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7693] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1132), 2, + anon_sym_RBRACE, + anon_sym_state, + [7702] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1134), 2, + anon_sym_RBRACE, + anon_sym_state, + [7711] = 3, + ACTIONS(1136), 1, + sym_integer, + ACTIONS(1138), 1, + sym_duration, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7722] = 3, + ACTIONS(1140), 1, + sym_identifier, + STATE(239), 1, + sym_is_value, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7733] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1142), 2, + anon_sym_RBRACE, + anon_sym_state, + [7742] = 3, + ACTIONS(182), 1, + anon_sym_LBRACE, + STATE(257), 1, + sym_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7753] = 3, + ACTIONS(834), 1, + anon_sym_LBRACE, + STATE(88), 1, + sym_template_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7764] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1144), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7773] = 3, + ACTIONS(1015), 1, + sym_identifier, + STATE(312), 1, + sym_variant_pattern, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7784] = 3, + ACTIONS(1146), 1, + anon_sym_DOT_DOT, + ACTIONS(1148), 1, anon_sym_RPAREN, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7260] = 2, - ACTIONS(1024), 1, + [7795] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(961), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7804] = 3, + ACTIONS(1150), 1, + sym_identifier, + STATE(332), 1, + sym_path_segments, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7815] = 3, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(1152), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7268] = 2, - ACTIONS(1026), 1, - anon_sym_COLON, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7276] = 2, - ACTIONS(1028), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7284] = 2, - ACTIONS(1030), 1, - anon_sym_COLON, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7292] = 2, - ACTIONS(1032), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7300] = 2, - ACTIONS(1034), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7308] = 2, - ACTIONS(1036), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7316] = 2, - ACTIONS(1038), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7324] = 2, - ACTIONS(1040), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7332] = 2, - ACTIONS(1042), 1, - sym_prose_marker, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7340] = 2, - ACTIONS(1044), 1, - sym_prose_content, - ACTIONS(858), 2, - sym_line_comment, - sym_block_comment, - [7348] = 2, - ACTIONS(1046), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7356] = 2, - ACTIONS(1048), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7364] = 2, - ACTIONS(1050), 1, + [7826] = 3, + ACTIONS(1154), 1, + anon_sym_COLON_COLON, + ACTIONS(1156), 1, anon_sym_SEMI, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7372] = 2, - ACTIONS(1052), 1, + [7837] = 3, + ACTIONS(971), 1, + sym_identifier, + STATE(305), 1, + sym_field_condition, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7848] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1158), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [7857] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1160), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [7866] = 3, + ACTIONS(1162), 1, + anon_sym_DOT_DOT, + ACTIONS(1164), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7877] = 3, + ACTIONS(1015), 1, + sym_identifier, + STATE(234), 1, + sym_variant_pattern, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7888] = 3, + ACTIONS(1166), 1, + sym_time, + STATE(203), 1, + sym_time_range, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7899] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(941), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [7908] = 3, + ACTIONS(1166), 1, + sym_time, + STATE(201), 1, + sym_time_range, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7919] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1168), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [7928] = 3, + ACTIONS(1170), 1, + anon_sym_LBRACE, + STATE(323), 1, + sym_state_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7939] = 3, + ACTIONS(789), 1, + anon_sym_LBRACE, + STATE(82), 1, + sym_character_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7950] = 3, + ACTIONS(182), 1, + anon_sym_LBRACE, + STATE(224), 1, + sym_block, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7961] = 2, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + ACTIONS(1172), 2, + anon_sym_RBRACE, + anon_sym_state, + [7970] = 3, + ACTIONS(834), 1, + anon_sym_LBRACE, + STATE(85), 1, + sym_template_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7981] = 3, + ACTIONS(1174), 1, + sym_identifier, + ACTIONS(1176), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [7992] = 3, + ACTIONS(985), 1, + sym_identifier, + STATE(318), 1, + sym_required_field, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8003] = 3, + ACTIONS(919), 1, + anon_sym_LBRACE, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8014] = 3, + ACTIONS(789), 1, + anon_sym_LBRACE, + STATE(86), 1, + sym_character_body, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8025] = 3, + ACTIONS(1178), 1, + anon_sym_LBRACE, + ACTIONS(1180), 1, + anon_sym_STAR, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8036] = 3, + ACTIONS(1184), 1, + aux_sym_prose_block_token1, + ACTIONS(1186), 1, + sym_prose_content, + ACTIONS(1182), 2, + sym_line_comment, + sym_block_comment, + [8047] = 2, + ACTIONS(1188), 1, + sym_prose_content, + ACTIONS(1182), 2, + sym_line_comment, + sym_block_comment, + [8055] = 2, + ACTIONS(1190), 1, + anon_sym_on, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8063] = 2, + ACTIONS(1192), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7380] = 2, - ACTIONS(1054), 1, + [8071] = 2, + ACTIONS(1194), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8079] = 2, + ACTIONS(1196), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8087] = 2, + ACTIONS(1198), 1, + ts_builtin_sym_end, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8095] = 2, + ACTIONS(1200), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7388] = 2, - ACTIONS(1056), 1, + [8103] = 2, + ACTIONS(1202), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8111] = 2, + ACTIONS(1204), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8119] = 2, + ACTIONS(1206), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8127] = 2, + ACTIONS(1208), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7396] = 2, - ACTIONS(1058), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7404] = 2, - ACTIONS(1060), 1, - anon_sym_is, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7412] = 2, - ACTIONS(1062), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7420] = 2, - ACTIONS(1064), 1, - sym_identifier, - ACTIONS(3), 2, - sym_line_comment, - sym_block_comment, - [7428] = 2, - ACTIONS(1066), 1, + [8135] = 2, + ACTIONS(1210), 1, anon_sym_RBRACE, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7436] = 2, - ACTIONS(1068), 1, + [8143] = 2, + ACTIONS(1212), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8151] = 2, + ACTIONS(1214), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8159] = 2, + ACTIONS(1216), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, - [7444] = 2, - ACTIONS(1070), 1, + [8167] = 2, + ACTIONS(1218), 1, + sym_time, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8175] = 2, + ACTIONS(1220), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8183] = 2, + ACTIONS(1222), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8191] = 2, + ACTIONS(1224), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8199] = 2, + ACTIONS(1226), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8207] = 2, + ACTIONS(890), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8215] = 2, + ACTIONS(1228), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8223] = 2, + ACTIONS(1230), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8231] = 2, + ACTIONS(1232), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8239] = 2, + ACTIONS(1234), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8247] = 2, + ACTIONS(1236), 1, sym_identifier, ACTIONS(3), 2, sym_line_comment, sym_block_comment, + [8255] = 2, + ACTIONS(1238), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8263] = 2, + ACTIONS(1240), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8271] = 2, + ACTIONS(1242), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8279] = 2, + ACTIONS(1244), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8287] = 2, + ACTIONS(1246), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8295] = 2, + ACTIONS(1248), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8303] = 2, + ACTIONS(1250), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8311] = 2, + ACTIONS(1252), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8319] = 2, + ACTIONS(1254), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8327] = 2, + ACTIONS(1256), 1, + sym_integer, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8335] = 2, + ACTIONS(1258), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8343] = 2, + ACTIONS(1260), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8351] = 2, + ACTIONS(1262), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8359] = 2, + ACTIONS(1264), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8367] = 2, + ACTIONS(1266), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8375] = 2, + ACTIONS(1268), 1, + sym_integer, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8383] = 2, + ACTIONS(1270), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8391] = 2, + ACTIONS(1272), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8399] = 2, + ACTIONS(1274), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8407] = 2, + ACTIONS(1276), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8415] = 2, + ACTIONS(1278), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8423] = 2, + ACTIONS(1280), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8431] = 2, + ACTIONS(1282), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8439] = 2, + ACTIONS(1284), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8447] = 2, + ACTIONS(1286), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8455] = 2, + ACTIONS(1288), 1, + sym_prose_marker, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8463] = 2, + ACTIONS(1290), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8471] = 2, + ACTIONS(1292), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8479] = 2, + ACTIONS(1294), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8487] = 2, + ACTIONS(1296), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8495] = 2, + ACTIONS(1298), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8503] = 2, + ACTIONS(1300), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8511] = 2, + ACTIONS(1302), 1, + anon_sym_DASH_GT, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8519] = 2, + ACTIONS(1304), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8527] = 2, + ACTIONS(1306), 1, + anon_sym_is, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8535] = 2, + ACTIONS(1308), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8543] = 2, + ACTIONS(1310), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8551] = 2, + ACTIONS(1082), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8559] = 2, + ACTIONS(1312), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8567] = 2, + ACTIONS(1314), 1, + sym_float, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8575] = 2, + ACTIONS(1316), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8583] = 2, + ACTIONS(1318), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8591] = 2, + ACTIONS(1314), 1, + sym_integer, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8599] = 2, + ACTIONS(1320), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8607] = 2, + ACTIONS(1322), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8615] = 2, + ACTIONS(1324), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8623] = 2, + ACTIONS(1326), 1, + anon_sym_DOT, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8631] = 2, + ACTIONS(1328), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8639] = 2, + ACTIONS(1330), 1, + sym_prose_marker, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8647] = 2, + ACTIONS(1332), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8655] = 2, + ACTIONS(1334), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8663] = 2, + ACTIONS(1336), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8671] = 2, + ACTIONS(1338), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8679] = 2, + ACTIONS(1340), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8687] = 2, + ACTIONS(1342), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8695] = 2, + ACTIONS(1344), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8703] = 2, + ACTIONS(1346), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8711] = 2, + ACTIONS(1348), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8719] = 2, + ACTIONS(1350), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8727] = 2, + ACTIONS(1352), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8735] = 2, + ACTIONS(1148), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8743] = 2, + ACTIONS(1354), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8751] = 2, + ACTIONS(1356), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8759] = 2, + ACTIONS(1358), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8767] = 2, + ACTIONS(1360), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8775] = 2, + ACTIONS(1362), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8783] = 2, + ACTIONS(1364), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8791] = 2, + ACTIONS(1366), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8799] = 2, + ACTIONS(1368), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8807] = 2, + ACTIONS(1370), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8815] = 2, + ACTIONS(1372), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8823] = 2, + ACTIONS(1164), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8831] = 2, + ACTIONS(1374), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8839] = 2, + ACTIONS(1376), 1, + sym_identifier, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, + [8847] = 2, + ACTIONS(1378), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_line_comment, + sym_block_comment, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 47, - [SMALL_STATE(4)] = 94, - [SMALL_STATE(5)] = 144, - [SMALL_STATE(6)] = 193, - [SMALL_STATE(7)] = 242, - [SMALL_STATE(8)] = 287, - [SMALL_STATE(9)] = 330, - [SMALL_STATE(10)] = 371, - [SMALL_STATE(11)] = 441, - [SMALL_STATE(12)] = 511, - [SMALL_STATE(13)] = 571, - [SMALL_STATE(14)] = 631, - [SMALL_STATE(15)] = 693, - [SMALL_STATE(16)] = 755, - [SMALL_STATE(17)] = 817, - [SMALL_STATE(18)] = 868, - [SMALL_STATE(19)] = 927, - [SMALL_STATE(20)] = 962, - [SMALL_STATE(21)] = 1013, - [SMALL_STATE(22)] = 1048, - [SMALL_STATE(23)] = 1099, - [SMALL_STATE(24)] = 1150, - [SMALL_STATE(25)] = 1201, - [SMALL_STATE(26)] = 1233, - [SMALL_STATE(27)] = 1281, - [SMALL_STATE(28)] = 1337, - [SMALL_STATE(29)] = 1369, - [SMALL_STATE(30)] = 1417, - [SMALL_STATE(31)] = 1449, - [SMALL_STATE(32)] = 1481, - [SMALL_STATE(33)] = 1529, - [SMALL_STATE(34)] = 1577, - [SMALL_STATE(35)] = 1609, - [SMALL_STATE(36)] = 1665, - [SMALL_STATE(37)] = 1697, - [SMALL_STATE(38)] = 1729, - [SMALL_STATE(39)] = 1761, - [SMALL_STATE(40)] = 1817, - [SMALL_STATE(41)] = 1849, - [SMALL_STATE(42)] = 1881, - [SMALL_STATE(43)] = 1913, - [SMALL_STATE(44)] = 1966, - [SMALL_STATE(45)] = 2019, - [SMALL_STATE(46)] = 2066, - [SMALL_STATE(47)] = 2107, - [SMALL_STATE(48)] = 2154, - [SMALL_STATE(49)] = 2201, - [SMALL_STATE(50)] = 2254, - [SMALL_STATE(51)] = 2283, - [SMALL_STATE(52)] = 2312, - [SMALL_STATE(53)] = 2357, - [SMALL_STATE(54)] = 2399, - [SMALL_STATE(55)] = 2441, - [SMALL_STATE(56)] = 2483, - [SMALL_STATE(57)] = 2525, - [SMALL_STATE(58)] = 2567, - [SMALL_STATE(59)] = 2609, - [SMALL_STATE(60)] = 2651, - [SMALL_STATE(61)] = 2675, - [SMALL_STATE(62)] = 2701, - [SMALL_STATE(63)] = 2727, - [SMALL_STATE(64)] = 2751, - [SMALL_STATE(65)] = 2775, - [SMALL_STATE(66)] = 2799, - [SMALL_STATE(67)] = 2823, - [SMALL_STATE(68)] = 2847, - [SMALL_STATE(69)] = 2871, - [SMALL_STATE(70)] = 2895, - [SMALL_STATE(71)] = 2919, - [SMALL_STATE(72)] = 2943, - [SMALL_STATE(73)] = 2967, - [SMALL_STATE(74)] = 2991, - [SMALL_STATE(75)] = 3015, - [SMALL_STATE(76)] = 3039, - [SMALL_STATE(77)] = 3063, - [SMALL_STATE(78)] = 3087, - [SMALL_STATE(79)] = 3111, - [SMALL_STATE(80)] = 3135, - [SMALL_STATE(81)] = 3159, - [SMALL_STATE(82)] = 3183, - [SMALL_STATE(83)] = 3207, - [SMALL_STATE(84)] = 3231, - [SMALL_STATE(85)] = 3255, - [SMALL_STATE(86)] = 3279, - [SMALL_STATE(87)] = 3303, - [SMALL_STATE(88)] = 3327, - [SMALL_STATE(89)] = 3351, - [SMALL_STATE(90)] = 3375, - [SMALL_STATE(91)] = 3399, - [SMALL_STATE(92)] = 3423, - [SMALL_STATE(93)] = 3447, - [SMALL_STATE(94)] = 3471, - [SMALL_STATE(95)] = 3495, - [SMALL_STATE(96)] = 3519, - [SMALL_STATE(97)] = 3543, - [SMALL_STATE(98)] = 3567, - [SMALL_STATE(99)] = 3591, - [SMALL_STATE(100)] = 3615, - [SMALL_STATE(101)] = 3639, - [SMALL_STATE(102)] = 3663, - [SMALL_STATE(103)] = 3687, - [SMALL_STATE(104)] = 3710, - [SMALL_STATE(105)] = 3733, - [SMALL_STATE(106)] = 3756, - [SMALL_STATE(107)] = 3779, - [SMALL_STATE(108)] = 3802, - [SMALL_STATE(109)] = 3825, - [SMALL_STATE(110)] = 3848, - [SMALL_STATE(111)] = 3871, - [SMALL_STATE(112)] = 3894, - [SMALL_STATE(113)] = 3917, - [SMALL_STATE(114)] = 3940, - [SMALL_STATE(115)] = 3963, - [SMALL_STATE(116)] = 3986, - [SMALL_STATE(117)] = 4009, - [SMALL_STATE(118)] = 4043, - [SMALL_STATE(119)] = 4077, - [SMALL_STATE(120)] = 4108, - [SMALL_STATE(121)] = 4141, - [SMALL_STATE(122)] = 4172, - [SMALL_STATE(123)] = 4203, - [SMALL_STATE(124)] = 4236, - [SMALL_STATE(125)] = 4267, - [SMALL_STATE(126)] = 4298, - [SMALL_STATE(127)] = 4329, - [SMALL_STATE(128)] = 4360, - [SMALL_STATE(129)] = 4391, - [SMALL_STATE(130)] = 4422, - [SMALL_STATE(131)] = 4441, - [SMALL_STATE(132)] = 4472, - [SMALL_STATE(133)] = 4503, - [SMALL_STATE(134)] = 4526, - [SMALL_STATE(135)] = 4559, - [SMALL_STATE(136)] = 4582, - [SMALL_STATE(137)] = 4607, - [SMALL_STATE(138)] = 4638, - [SMALL_STATE(139)] = 4659, - [SMALL_STATE(140)] = 4690, - [SMALL_STATE(141)] = 4721, - [SMALL_STATE(142)] = 4752, - [SMALL_STATE(143)] = 4783, - [SMALL_STATE(144)] = 4802, - [SMALL_STATE(145)] = 4833, - [SMALL_STATE(146)] = 4852, - [SMALL_STATE(147)] = 4878, - [SMALL_STATE(148)] = 4904, - [SMALL_STATE(149)] = 4930, - [SMALL_STATE(150)] = 4956, - [SMALL_STATE(151)] = 4980, - [SMALL_STATE(152)] = 5002, - [SMALL_STATE(153)] = 5026, - [SMALL_STATE(154)] = 5050, - [SMALL_STATE(155)] = 5074, - [SMALL_STATE(156)] = 5098, - [SMALL_STATE(157)] = 5122, - [SMALL_STATE(158)] = 5146, - [SMALL_STATE(159)] = 5170, - [SMALL_STATE(160)] = 5194, - [SMALL_STATE(161)] = 5218, - [SMALL_STATE(162)] = 5242, - [SMALL_STATE(163)] = 5261, - [SMALL_STATE(164)] = 5281, - [SMALL_STATE(165)] = 5301, - [SMALL_STATE(166)] = 5319, - [SMALL_STATE(167)] = 5333, - [SMALL_STATE(168)] = 5353, - [SMALL_STATE(169)] = 5367, - [SMALL_STATE(170)] = 5387, - [SMALL_STATE(171)] = 5404, - [SMALL_STATE(172)] = 5419, - [SMALL_STATE(173)] = 5434, - [SMALL_STATE(174)] = 5449, - [SMALL_STATE(175)] = 5464, - [SMALL_STATE(176)] = 5479, - [SMALL_STATE(177)] = 5494, - [SMALL_STATE(178)] = 5511, - [SMALL_STATE(179)] = 5526, - [SMALL_STATE(180)] = 5541, - [SMALL_STATE(181)] = 5556, - [SMALL_STATE(182)] = 5571, - [SMALL_STATE(183)] = 5584, - [SMALL_STATE(184)] = 5597, - [SMALL_STATE(185)] = 5612, - [SMALL_STATE(186)] = 5627, - [SMALL_STATE(187)] = 5642, - [SMALL_STATE(188)] = 5657, - [SMALL_STATE(189)] = 5674, - [SMALL_STATE(190)] = 5691, - [SMALL_STATE(191)] = 5706, - [SMALL_STATE(192)] = 5721, - [SMALL_STATE(193)] = 5736, - [SMALL_STATE(194)] = 5751, - [SMALL_STATE(195)] = 5765, - [SMALL_STATE(196)] = 5779, - [SMALL_STATE(197)] = 5793, - [SMALL_STATE(198)] = 5803, - [SMALL_STATE(199)] = 5817, - [SMALL_STATE(200)] = 5831, - [SMALL_STATE(201)] = 5841, - [SMALL_STATE(202)] = 5855, - [SMALL_STATE(203)] = 5869, - [SMALL_STATE(204)] = 5883, - [SMALL_STATE(205)] = 5897, - [SMALL_STATE(206)] = 5911, - [SMALL_STATE(207)] = 5925, - [SMALL_STATE(208)] = 5939, - [SMALL_STATE(209)] = 5953, - [SMALL_STATE(210)] = 5967, - [SMALL_STATE(211)] = 5981, - [SMALL_STATE(212)] = 5991, - [SMALL_STATE(213)] = 6005, - [SMALL_STATE(214)] = 6015, - [SMALL_STATE(215)] = 6025, - [SMALL_STATE(216)] = 6039, - [SMALL_STATE(217)] = 6053, - [SMALL_STATE(218)] = 6067, - [SMALL_STATE(219)] = 6081, - [SMALL_STATE(220)] = 6095, - [SMALL_STATE(221)] = 6109, - [SMALL_STATE(222)] = 6123, - [SMALL_STATE(223)] = 6137, - [SMALL_STATE(224)] = 6151, - [SMALL_STATE(225)] = 6165, - [SMALL_STATE(226)] = 6179, - [SMALL_STATE(227)] = 6193, - [SMALL_STATE(228)] = 6207, - [SMALL_STATE(229)] = 6221, - [SMALL_STATE(230)] = 6235, - [SMALL_STATE(231)] = 6249, - [SMALL_STATE(232)] = 6263, - [SMALL_STATE(233)] = 6277, - [SMALL_STATE(234)] = 6291, - [SMALL_STATE(235)] = 6300, - [SMALL_STATE(236)] = 6309, - [SMALL_STATE(237)] = 6320, - [SMALL_STATE(238)] = 6331, - [SMALL_STATE(239)] = 6342, - [SMALL_STATE(240)] = 6353, - [SMALL_STATE(241)] = 6364, - [SMALL_STATE(242)] = 6373, - [SMALL_STATE(243)] = 6384, - [SMALL_STATE(244)] = 6395, - [SMALL_STATE(245)] = 6404, - [SMALL_STATE(246)] = 6413, - [SMALL_STATE(247)] = 6424, - [SMALL_STATE(248)] = 6435, - [SMALL_STATE(249)] = 6444, - [SMALL_STATE(250)] = 6455, - [SMALL_STATE(251)] = 6466, - [SMALL_STATE(252)] = 6477, - [SMALL_STATE(253)] = 6488, - [SMALL_STATE(254)] = 6497, - [SMALL_STATE(255)] = 6508, - [SMALL_STATE(256)] = 6517, - [SMALL_STATE(257)] = 6528, - [SMALL_STATE(258)] = 6537, - [SMALL_STATE(259)] = 6546, - [SMALL_STATE(260)] = 6555, - [SMALL_STATE(261)] = 6564, - [SMALL_STATE(262)] = 6573, - [SMALL_STATE(263)] = 6582, - [SMALL_STATE(264)] = 6591, - [SMALL_STATE(265)] = 6600, - [SMALL_STATE(266)] = 6611, - [SMALL_STATE(267)] = 6622, - [SMALL_STATE(268)] = 6631, - [SMALL_STATE(269)] = 6640, - [SMALL_STATE(270)] = 6651, - [SMALL_STATE(271)] = 6660, - [SMALL_STATE(272)] = 6671, - [SMALL_STATE(273)] = 6682, - [SMALL_STATE(274)] = 6693, - [SMALL_STATE(275)] = 6704, - [SMALL_STATE(276)] = 6715, - [SMALL_STATE(277)] = 6724, - [SMALL_STATE(278)] = 6735, - [SMALL_STATE(279)] = 6746, - [SMALL_STATE(280)] = 6755, - [SMALL_STATE(281)] = 6766, - [SMALL_STATE(282)] = 6777, - [SMALL_STATE(283)] = 6788, - [SMALL_STATE(284)] = 6796, - [SMALL_STATE(285)] = 6804, - [SMALL_STATE(286)] = 6812, - [SMALL_STATE(287)] = 6820, - [SMALL_STATE(288)] = 6828, - [SMALL_STATE(289)] = 6836, - [SMALL_STATE(290)] = 6844, - [SMALL_STATE(291)] = 6852, - [SMALL_STATE(292)] = 6860, - [SMALL_STATE(293)] = 6868, - [SMALL_STATE(294)] = 6876, - [SMALL_STATE(295)] = 6884, - [SMALL_STATE(296)] = 6892, - [SMALL_STATE(297)] = 6900, - [SMALL_STATE(298)] = 6908, - [SMALL_STATE(299)] = 6916, - [SMALL_STATE(300)] = 6924, - [SMALL_STATE(301)] = 6932, - [SMALL_STATE(302)] = 6940, - [SMALL_STATE(303)] = 6948, - [SMALL_STATE(304)] = 6956, - [SMALL_STATE(305)] = 6964, - [SMALL_STATE(306)] = 6972, - [SMALL_STATE(307)] = 6980, - [SMALL_STATE(308)] = 6988, - [SMALL_STATE(309)] = 6996, - [SMALL_STATE(310)] = 7004, - [SMALL_STATE(311)] = 7012, - [SMALL_STATE(312)] = 7020, - [SMALL_STATE(313)] = 7028, - [SMALL_STATE(314)] = 7036, - [SMALL_STATE(315)] = 7044, - [SMALL_STATE(316)] = 7052, - [SMALL_STATE(317)] = 7060, - [SMALL_STATE(318)] = 7068, - [SMALL_STATE(319)] = 7076, - [SMALL_STATE(320)] = 7084, - [SMALL_STATE(321)] = 7092, - [SMALL_STATE(322)] = 7100, - [SMALL_STATE(323)] = 7108, - [SMALL_STATE(324)] = 7116, - [SMALL_STATE(325)] = 7124, - [SMALL_STATE(326)] = 7132, - [SMALL_STATE(327)] = 7140, - [SMALL_STATE(328)] = 7148, - [SMALL_STATE(329)] = 7156, - [SMALL_STATE(330)] = 7164, - [SMALL_STATE(331)] = 7172, - [SMALL_STATE(332)] = 7180, - [SMALL_STATE(333)] = 7188, - [SMALL_STATE(334)] = 7196, - [SMALL_STATE(335)] = 7204, - [SMALL_STATE(336)] = 7212, - [SMALL_STATE(337)] = 7220, - [SMALL_STATE(338)] = 7228, - [SMALL_STATE(339)] = 7236, - [SMALL_STATE(340)] = 7244, - [SMALL_STATE(341)] = 7252, - [SMALL_STATE(342)] = 7260, - [SMALL_STATE(343)] = 7268, - [SMALL_STATE(344)] = 7276, - [SMALL_STATE(345)] = 7284, - [SMALL_STATE(346)] = 7292, - [SMALL_STATE(347)] = 7300, - [SMALL_STATE(348)] = 7308, - [SMALL_STATE(349)] = 7316, - [SMALL_STATE(350)] = 7324, - [SMALL_STATE(351)] = 7332, - [SMALL_STATE(352)] = 7340, - [SMALL_STATE(353)] = 7348, - [SMALL_STATE(354)] = 7356, - [SMALL_STATE(355)] = 7364, - [SMALL_STATE(356)] = 7372, - [SMALL_STATE(357)] = 7380, - [SMALL_STATE(358)] = 7388, - [SMALL_STATE(359)] = 7396, - [SMALL_STATE(360)] = 7404, - [SMALL_STATE(361)] = 7412, - [SMALL_STATE(362)] = 7420, - [SMALL_STATE(363)] = 7428, - [SMALL_STATE(364)] = 7436, - [SMALL_STATE(365)] = 7444, + [SMALL_STATE(3)] = 53, + [SMALL_STATE(4)] = 102, + [SMALL_STATE(5)] = 151, + [SMALL_STATE(6)] = 203, + [SMALL_STATE(7)] = 255, + [SMALL_STATE(8)] = 303, + [SMALL_STATE(9)] = 349, + [SMALL_STATE(10)] = 393, + [SMALL_STATE(11)] = 463, + [SMALL_STATE(12)] = 533, + [SMALL_STATE(13)] = 596, + [SMALL_STATE(14)] = 659, + [SMALL_STATE(15)] = 697, + [SMALL_STATE(16)] = 735, + [SMALL_STATE(17)] = 770, + [SMALL_STATE(18)] = 805, + [SMALL_STATE(19)] = 840, + [SMALL_STATE(20)] = 875, + [SMALL_STATE(21)] = 910, + [SMALL_STATE(22)] = 945, + [SMALL_STATE(23)] = 980, + [SMALL_STATE(24)] = 1015, + [SMALL_STATE(25)] = 1050, + [SMALL_STATE(26)] = 1085, + [SMALL_STATE(27)] = 1120, + [SMALL_STATE(28)] = 1182, + [SMALL_STATE(29)] = 1236, + [SMALL_STATE(30)] = 1290, + [SMALL_STATE(31)] = 1344, + [SMALL_STATE(32)] = 1406, + [SMALL_STATE(33)] = 1460, + [SMALL_STATE(34)] = 1514, + [SMALL_STATE(35)] = 1576, + [SMALL_STATE(36)] = 1627, + [SMALL_STATE(37)] = 1686, + [SMALL_STATE(38)] = 1737, + [SMALL_STATE(39)] = 1788, + [SMALL_STATE(40)] = 1839, + [SMALL_STATE(41)] = 1889, + [SMALL_STATE(42)] = 1939, + [SMALL_STATE(43)] = 1971, + [SMALL_STATE(44)] = 2021, + [SMALL_STATE(45)] = 2077, + [SMALL_STATE(46)] = 2109, + [SMALL_STATE(47)] = 2159, + [SMALL_STATE(48)] = 2209, + [SMALL_STATE(49)] = 2259, + [SMALL_STATE(50)] = 2315, + [SMALL_STATE(51)] = 2371, + [SMALL_STATE(52)] = 2424, + [SMALL_STATE(53)] = 2477, + [SMALL_STATE(54)] = 2530, + [SMALL_STATE(55)] = 2583, + [SMALL_STATE(56)] = 2623, + [SMALL_STATE(57)] = 2668, + [SMALL_STATE(58)] = 2710, + [SMALL_STATE(59)] = 2752, + [SMALL_STATE(60)] = 2794, + [SMALL_STATE(61)] = 2836, + [SMALL_STATE(62)] = 2878, + [SMALL_STATE(63)] = 2920, + [SMALL_STATE(64)] = 2962, + [SMALL_STATE(65)] = 2988, + [SMALL_STATE(66)] = 3012, + [SMALL_STATE(67)] = 3036, + [SMALL_STATE(68)] = 3060, + [SMALL_STATE(69)] = 3084, + [SMALL_STATE(70)] = 3108, + [SMALL_STATE(71)] = 3132, + [SMALL_STATE(72)] = 3156, + [SMALL_STATE(73)] = 3180, + [SMALL_STATE(74)] = 3204, + [SMALL_STATE(75)] = 3228, + [SMALL_STATE(76)] = 3252, + [SMALL_STATE(77)] = 3276, + [SMALL_STATE(78)] = 3300, + [SMALL_STATE(79)] = 3324, + [SMALL_STATE(80)] = 3348, + [SMALL_STATE(81)] = 3372, + [SMALL_STATE(82)] = 3396, + [SMALL_STATE(83)] = 3420, + [SMALL_STATE(84)] = 3444, + [SMALL_STATE(85)] = 3468, + [SMALL_STATE(86)] = 3492, + [SMALL_STATE(87)] = 3516, + [SMALL_STATE(88)] = 3540, + [SMALL_STATE(89)] = 3564, + [SMALL_STATE(90)] = 3588, + [SMALL_STATE(91)] = 3612, + [SMALL_STATE(92)] = 3636, + [SMALL_STATE(93)] = 3660, + [SMALL_STATE(94)] = 3684, + [SMALL_STATE(95)] = 3708, + [SMALL_STATE(96)] = 3732, + [SMALL_STATE(97)] = 3756, + [SMALL_STATE(98)] = 3780, + [SMALL_STATE(99)] = 3804, + [SMALL_STATE(100)] = 3830, + [SMALL_STATE(101)] = 3854, + [SMALL_STATE(102)] = 3878, + [SMALL_STATE(103)] = 3902, + [SMALL_STATE(104)] = 3926, + [SMALL_STATE(105)] = 3950, + [SMALL_STATE(106)] = 3974, + [SMALL_STATE(107)] = 3998, + [SMALL_STATE(108)] = 4022, + [SMALL_STATE(109)] = 4046, + [SMALL_STATE(110)] = 4070, + [SMALL_STATE(111)] = 4094, + [SMALL_STATE(112)] = 4118, + [SMALL_STATE(113)] = 4142, + [SMALL_STATE(114)] = 4166, + [SMALL_STATE(115)] = 4189, + [SMALL_STATE(116)] = 4212, + [SMALL_STATE(117)] = 4235, + [SMALL_STATE(118)] = 4258, + [SMALL_STATE(119)] = 4281, + [SMALL_STATE(120)] = 4304, + [SMALL_STATE(121)] = 4327, + [SMALL_STATE(122)] = 4350, + [SMALL_STATE(123)] = 4373, + [SMALL_STATE(124)] = 4396, + [SMALL_STATE(125)] = 4419, + [SMALL_STATE(126)] = 4442, + [SMALL_STATE(127)] = 4465, + [SMALL_STATE(128)] = 4488, + [SMALL_STATE(129)] = 4511, + [SMALL_STATE(130)] = 4534, + [SMALL_STATE(131)] = 4557, + [SMALL_STATE(132)] = 4593, + [SMALL_STATE(133)] = 4629, + [SMALL_STATE(134)] = 4665, + [SMALL_STATE(135)] = 4698, + [SMALL_STATE(136)] = 4731, + [SMALL_STATE(137)] = 4764, + [SMALL_STATE(138)] = 4798, + [SMALL_STATE(139)] = 4832, + [SMALL_STATE(140)] = 4851, + [SMALL_STATE(141)] = 4870, + [SMALL_STATE(142)] = 4903, + [SMALL_STATE(143)] = 4934, + [SMALL_STATE(144)] = 4957, + [SMALL_STATE(145)] = 4978, + [SMALL_STATE(146)] = 5011, + [SMALL_STATE(147)] = 5042, + [SMALL_STATE(148)] = 5073, + [SMALL_STATE(149)] = 5092, + [SMALL_STATE(150)] = 5123, + [SMALL_STATE(151)] = 5146, + [SMALL_STATE(152)] = 5177, + [SMALL_STATE(153)] = 5208, + [SMALL_STATE(154)] = 5233, + [SMALL_STATE(155)] = 5266, + [SMALL_STATE(156)] = 5297, + [SMALL_STATE(157)] = 5319, + [SMALL_STATE(158)] = 5345, + [SMALL_STATE(159)] = 5373, + [SMALL_STATE(160)] = 5399, + [SMALL_STATE(161)] = 5427, + [SMALL_STATE(162)] = 5453, + [SMALL_STATE(163)] = 5479, + [SMALL_STATE(164)] = 5496, + [SMALL_STATE(165)] = 5520, + [SMALL_STATE(166)] = 5542, + [SMALL_STATE(167)] = 5562, + [SMALL_STATE(168)] = 5586, + [SMALL_STATE(169)] = 5606, + [SMALL_STATE(170)] = 5630, + [SMALL_STATE(171)] = 5654, + [SMALL_STATE(172)] = 5678, + [SMALL_STATE(173)] = 5702, + [SMALL_STATE(174)] = 5724, + [SMALL_STATE(175)] = 5748, + [SMALL_STATE(176)] = 5763, + [SMALL_STATE(177)] = 5782, + [SMALL_STATE(178)] = 5797, + [SMALL_STATE(179)] = 5818, + [SMALL_STATE(180)] = 5833, + [SMALL_STATE(181)] = 5848, + [SMALL_STATE(182)] = 5867, + [SMALL_STATE(183)] = 5888, + [SMALL_STATE(184)] = 5909, + [SMALL_STATE(185)] = 5924, + [SMALL_STATE(186)] = 5938, + [SMALL_STATE(187)] = 5954, + [SMALL_STATE(188)] = 5968, + [SMALL_STATE(189)] = 5988, + [SMALL_STATE(190)] = 6002, + [SMALL_STATE(191)] = 6020, + [SMALL_STATE(192)] = 6040, + [SMALL_STATE(193)] = 6060, + [SMALL_STATE(194)] = 6074, + [SMALL_STATE(195)] = 6090, + [SMALL_STATE(196)] = 6104, + [SMALL_STATE(197)] = 6118, + [SMALL_STATE(198)] = 6132, + [SMALL_STATE(199)] = 6146, + [SMALL_STATE(200)] = 6160, + [SMALL_STATE(201)] = 6177, + [SMALL_STATE(202)] = 6192, + [SMALL_STATE(203)] = 6209, + [SMALL_STATE(204)] = 6224, + [SMALL_STATE(205)] = 6239, + [SMALL_STATE(206)] = 6254, + [SMALL_STATE(207)] = 6269, + [SMALL_STATE(208)] = 6284, + [SMALL_STATE(209)] = 6301, + [SMALL_STATE(210)] = 6316, + [SMALL_STATE(211)] = 6331, + [SMALL_STATE(212)] = 6346, + [SMALL_STATE(213)] = 6361, + [SMALL_STATE(214)] = 6376, + [SMALL_STATE(215)] = 6391, + [SMALL_STATE(216)] = 6406, + [SMALL_STATE(217)] = 6421, + [SMALL_STATE(218)] = 6436, + [SMALL_STATE(219)] = 6451, + [SMALL_STATE(220)] = 6464, + [SMALL_STATE(221)] = 6477, + [SMALL_STATE(222)] = 6492, + [SMALL_STATE(223)] = 6507, + [SMALL_STATE(224)] = 6524, + [SMALL_STATE(225)] = 6537, + [SMALL_STATE(226)] = 6552, + [SMALL_STATE(227)] = 6567, + [SMALL_STATE(228)] = 6580, + [SMALL_STATE(229)] = 6594, + [SMALL_STATE(230)] = 6608, + [SMALL_STATE(231)] = 6622, + [SMALL_STATE(232)] = 6636, + [SMALL_STATE(233)] = 6650, + [SMALL_STATE(234)] = 6662, + [SMALL_STATE(235)] = 6676, + [SMALL_STATE(236)] = 6690, + [SMALL_STATE(237)] = 6704, + [SMALL_STATE(238)] = 6718, + [SMALL_STATE(239)] = 6732, + [SMALL_STATE(240)] = 6742, + [SMALL_STATE(241)] = 6752, + [SMALL_STATE(242)] = 6766, + [SMALL_STATE(243)] = 6780, + [SMALL_STATE(244)] = 6794, + [SMALL_STATE(245)] = 6808, + [SMALL_STATE(246)] = 6822, + [SMALL_STATE(247)] = 6836, + [SMALL_STATE(248)] = 6850, + [SMALL_STATE(249)] = 6864, + [SMALL_STATE(250)] = 6878, + [SMALL_STATE(251)] = 6892, + [SMALL_STATE(252)] = 6906, + [SMALL_STATE(253)] = 6916, + [SMALL_STATE(254)] = 6930, + [SMALL_STATE(255)] = 6944, + [SMALL_STATE(256)] = 6958, + [SMALL_STATE(257)] = 6972, + [SMALL_STATE(258)] = 6982, + [SMALL_STATE(259)] = 6996, + [SMALL_STATE(260)] = 7010, + [SMALL_STATE(261)] = 7024, + [SMALL_STATE(262)] = 7034, + [SMALL_STATE(263)] = 7048, + [SMALL_STATE(264)] = 7062, + [SMALL_STATE(265)] = 7076, + [SMALL_STATE(266)] = 7090, + [SMALL_STATE(267)] = 7104, + [SMALL_STATE(268)] = 7118, + [SMALL_STATE(269)] = 7132, + [SMALL_STATE(270)] = 7146, + [SMALL_STATE(271)] = 7160, + [SMALL_STATE(272)] = 7174, + [SMALL_STATE(273)] = 7188, + [SMALL_STATE(274)] = 7198, + [SMALL_STATE(275)] = 7212, + [SMALL_STATE(276)] = 7226, + [SMALL_STATE(277)] = 7238, + [SMALL_STATE(278)] = 7252, + [SMALL_STATE(279)] = 7266, + [SMALL_STATE(280)] = 7280, + [SMALL_STATE(281)] = 7294, + [SMALL_STATE(282)] = 7308, + [SMALL_STATE(283)] = 7322, + [SMALL_STATE(284)] = 7336, + [SMALL_STATE(285)] = 7347, + [SMALL_STATE(286)] = 7358, + [SMALL_STATE(287)] = 7367, + [SMALL_STATE(288)] = 7376, + [SMALL_STATE(289)] = 7387, + [SMALL_STATE(290)] = 7398, + [SMALL_STATE(291)] = 7407, + [SMALL_STATE(292)] = 7416, + [SMALL_STATE(293)] = 7427, + [SMALL_STATE(294)] = 7438, + [SMALL_STATE(295)] = 7447, + [SMALL_STATE(296)] = 7458, + [SMALL_STATE(297)] = 7469, + [SMALL_STATE(298)] = 7480, + [SMALL_STATE(299)] = 7491, + [SMALL_STATE(300)] = 7500, + [SMALL_STATE(301)] = 7509, + [SMALL_STATE(302)] = 7520, + [SMALL_STATE(303)] = 7531, + [SMALL_STATE(304)] = 7542, + [SMALL_STATE(305)] = 7553, + [SMALL_STATE(306)] = 7562, + [SMALL_STATE(307)] = 7573, + [SMALL_STATE(308)] = 7584, + [SMALL_STATE(309)] = 7595, + [SMALL_STATE(310)] = 7604, + [SMALL_STATE(311)] = 7615, + [SMALL_STATE(312)] = 7624, + [SMALL_STATE(313)] = 7633, + [SMALL_STATE(314)] = 7644, + [SMALL_STATE(315)] = 7653, + [SMALL_STATE(316)] = 7664, + [SMALL_STATE(317)] = 7673, + [SMALL_STATE(318)] = 7684, + [SMALL_STATE(319)] = 7693, + [SMALL_STATE(320)] = 7702, + [SMALL_STATE(321)] = 7711, + [SMALL_STATE(322)] = 7722, + [SMALL_STATE(323)] = 7733, + [SMALL_STATE(324)] = 7742, + [SMALL_STATE(325)] = 7753, + [SMALL_STATE(326)] = 7764, + [SMALL_STATE(327)] = 7773, + [SMALL_STATE(328)] = 7784, + [SMALL_STATE(329)] = 7795, + [SMALL_STATE(330)] = 7804, + [SMALL_STATE(331)] = 7815, + [SMALL_STATE(332)] = 7826, + [SMALL_STATE(333)] = 7837, + [SMALL_STATE(334)] = 7848, + [SMALL_STATE(335)] = 7857, + [SMALL_STATE(336)] = 7866, + [SMALL_STATE(337)] = 7877, + [SMALL_STATE(338)] = 7888, + [SMALL_STATE(339)] = 7899, + [SMALL_STATE(340)] = 7908, + [SMALL_STATE(341)] = 7919, + [SMALL_STATE(342)] = 7928, + [SMALL_STATE(343)] = 7939, + [SMALL_STATE(344)] = 7950, + [SMALL_STATE(345)] = 7961, + [SMALL_STATE(346)] = 7970, + [SMALL_STATE(347)] = 7981, + [SMALL_STATE(348)] = 7992, + [SMALL_STATE(349)] = 8003, + [SMALL_STATE(350)] = 8014, + [SMALL_STATE(351)] = 8025, + [SMALL_STATE(352)] = 8036, + [SMALL_STATE(353)] = 8047, + [SMALL_STATE(354)] = 8055, + [SMALL_STATE(355)] = 8063, + [SMALL_STATE(356)] = 8071, + [SMALL_STATE(357)] = 8079, + [SMALL_STATE(358)] = 8087, + [SMALL_STATE(359)] = 8095, + [SMALL_STATE(360)] = 8103, + [SMALL_STATE(361)] = 8111, + [SMALL_STATE(362)] = 8119, + [SMALL_STATE(363)] = 8127, + [SMALL_STATE(364)] = 8135, + [SMALL_STATE(365)] = 8143, + [SMALL_STATE(366)] = 8151, + [SMALL_STATE(367)] = 8159, + [SMALL_STATE(368)] = 8167, + [SMALL_STATE(369)] = 8175, + [SMALL_STATE(370)] = 8183, + [SMALL_STATE(371)] = 8191, + [SMALL_STATE(372)] = 8199, + [SMALL_STATE(373)] = 8207, + [SMALL_STATE(374)] = 8215, + [SMALL_STATE(375)] = 8223, + [SMALL_STATE(376)] = 8231, + [SMALL_STATE(377)] = 8239, + [SMALL_STATE(378)] = 8247, + [SMALL_STATE(379)] = 8255, + [SMALL_STATE(380)] = 8263, + [SMALL_STATE(381)] = 8271, + [SMALL_STATE(382)] = 8279, + [SMALL_STATE(383)] = 8287, + [SMALL_STATE(384)] = 8295, + [SMALL_STATE(385)] = 8303, + [SMALL_STATE(386)] = 8311, + [SMALL_STATE(387)] = 8319, + [SMALL_STATE(388)] = 8327, + [SMALL_STATE(389)] = 8335, + [SMALL_STATE(390)] = 8343, + [SMALL_STATE(391)] = 8351, + [SMALL_STATE(392)] = 8359, + [SMALL_STATE(393)] = 8367, + [SMALL_STATE(394)] = 8375, + [SMALL_STATE(395)] = 8383, + [SMALL_STATE(396)] = 8391, + [SMALL_STATE(397)] = 8399, + [SMALL_STATE(398)] = 8407, + [SMALL_STATE(399)] = 8415, + [SMALL_STATE(400)] = 8423, + [SMALL_STATE(401)] = 8431, + [SMALL_STATE(402)] = 8439, + [SMALL_STATE(403)] = 8447, + [SMALL_STATE(404)] = 8455, + [SMALL_STATE(405)] = 8463, + [SMALL_STATE(406)] = 8471, + [SMALL_STATE(407)] = 8479, + [SMALL_STATE(408)] = 8487, + [SMALL_STATE(409)] = 8495, + [SMALL_STATE(410)] = 8503, + [SMALL_STATE(411)] = 8511, + [SMALL_STATE(412)] = 8519, + [SMALL_STATE(413)] = 8527, + [SMALL_STATE(414)] = 8535, + [SMALL_STATE(415)] = 8543, + [SMALL_STATE(416)] = 8551, + [SMALL_STATE(417)] = 8559, + [SMALL_STATE(418)] = 8567, + [SMALL_STATE(419)] = 8575, + [SMALL_STATE(420)] = 8583, + [SMALL_STATE(421)] = 8591, + [SMALL_STATE(422)] = 8599, + [SMALL_STATE(423)] = 8607, + [SMALL_STATE(424)] = 8615, + [SMALL_STATE(425)] = 8623, + [SMALL_STATE(426)] = 8631, + [SMALL_STATE(427)] = 8639, + [SMALL_STATE(428)] = 8647, + [SMALL_STATE(429)] = 8655, + [SMALL_STATE(430)] = 8663, + [SMALL_STATE(431)] = 8671, + [SMALL_STATE(432)] = 8679, + [SMALL_STATE(433)] = 8687, + [SMALL_STATE(434)] = 8695, + [SMALL_STATE(435)] = 8703, + [SMALL_STATE(436)] = 8711, + [SMALL_STATE(437)] = 8719, + [SMALL_STATE(438)] = 8727, + [SMALL_STATE(439)] = 8735, + [SMALL_STATE(440)] = 8743, + [SMALL_STATE(441)] = 8751, + [SMALL_STATE(442)] = 8759, + [SMALL_STATE(443)] = 8767, + [SMALL_STATE(444)] = 8775, + [SMALL_STATE(445)] = 8783, + [SMALL_STATE(446)] = 8791, + [SMALL_STATE(447)] = 8799, + [SMALL_STATE(448)] = 8807, + [SMALL_STATE(449)] = 8815, + [SMALL_STATE(450)] = 8823, + [SMALL_STATE(451)] = 8831, + [SMALL_STATE(452)] = 8839, + [SMALL_STATE(453)] = 8847, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9543,29 +11255,29 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(346), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [43] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_path_segments_repeat1, 2), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_segments_repeat1, 2), SHIFT_REPEAT(302), - [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_segments_repeat1, 2), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(382), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), + [35] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_path_segments_repeat1, 2), + [37] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_segments_repeat1, 2), SHIFT_REPEAT(438), + [40] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_segments_repeat1, 2), + [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [44] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [48] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), [50] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path_segments, 2), - [52] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [52] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path_segments, 2), [56] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path_segments, 1), [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path_segments, 1), @@ -9575,485 +11287,631 @@ static const TSParseActionEntry ts_parse_actions[] = { [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(240), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(365), - [78] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(364), - [81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(361), - [84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(359), - [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(357), - [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(353), - [93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(350), - [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(349), - [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(348), - [102] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(347), - [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(346), - [108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(344), - [111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(336), - [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), - [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274), - [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), - [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(300), - [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(301), - [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260), - [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), - [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [170] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(62), - [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_selector_node_repeat1, 2), - [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(201), - [178] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(274), - [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(273), - [184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(300), - [187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(301), - [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(260), - [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_prose_block, 5, .production_id = 14), - [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_prose_block, 5, .production_id = 14), - [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4), - [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override, 5), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override, 5), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 1), - [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 1), - [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), - [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_prose_block, 4, .production_id = 10), - [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_prose_block, 4, .production_id = 10), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), - [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 5), - [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5), - [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override, 4), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override, 4), - [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat2, 2), SHIFT_REPEAT(172), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_repeat2, 2), - [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_repeat2, 2), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_repeat2, 2), SHIFT_REPEAT(285), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 1), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1), - [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 3, .production_id = 6), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 6), - [259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(238), - [265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 9), - [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 9), - [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_node, 4, .production_id = 11), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_node, 4, .production_id = 11), - [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 1), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 1), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 8, .production_id = 8), - [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 8, .production_id = 8), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 5, .production_id = 2), - [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 5, .production_id = 2), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule, 5, .production_id = 2), - [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule, 5, .production_id = 2), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_comparison, 5, .production_id = 2), - [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_comparison, 5, .production_id = 2), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species, 5, .production_id = 2), - [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species, 5, .production_id = 2), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationship, 5, .production_id = 2), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relationship, 5, .production_id = 2), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_comparison, 6, .production_id = 2), - [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_comparison, 6, .production_id = 2), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character, 4, .production_id = 3), - [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character, 4, .production_id = 3), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 4, .production_id = 2), - [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 4, .production_id = 2), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_declaration, 3, .production_id = 2), - [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_declaration, 3, .production_id = 2), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 7, .production_id = 2), - [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 7, .production_id = 2), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_location, 3, .production_id = 2), - [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_location, 3, .production_id = 2), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_institution, 3, .production_id = 2), - [333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_institution, 3, .production_id = 2), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior, 5, .production_id = 5), - [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior, 5, .production_id = 5), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc, 4, .production_id = 2), - [341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc, 4, .production_id = 2), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior, 6, .production_id = 9), - [345] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior, 6, .production_id = 9), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 7, .production_id = 8), - [349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 7, .production_id = 8), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc, 5, .production_id = 2), - [353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc, 5, .production_id = 2), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule, 4, .production_id = 2), - [357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule, 4, .production_id = 2), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 8), - [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 8), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationship, 6, .production_id = 2), - [365] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relationship, 6, .production_id = 2), - [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character, 3, .production_id = 1), - [369] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character, 3, .production_id = 1), - [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_comparison, 7, .production_id = 2), - [373] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_comparison, 7, .production_id = 2), - [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 5, .production_id = 2), - [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 5, .production_id = 2), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept, 7, .production_id = 13), - [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sub_concept, 7, .production_id = 13), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 7, .production_id = 2), - [385] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 7, .production_id = 2), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule, 6, .production_id = 2), - [389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule, 6, .production_id = 2), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character, 5, .production_id = 4), - [393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character, 5, .production_id = 4), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 3), - [397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 3), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc, 6, .production_id = 2), - [401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc, 6, .production_id = 2), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 6, .production_id = 8), - [405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 6, .production_id = 8), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1), - [409] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species, 6, .production_id = 2), - [413] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species, 6, .production_id = 2), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 5), - [417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 5), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character, 6, .production_id = 7), - [421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character, 6, .production_id = 7), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 7), - [425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 7), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species, 4, .production_id = 2), - [429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species, 4, .production_id = 2), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 6, .production_id = 2), - [433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 6, .production_id = 2), - [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 9, .production_id = 8), - [437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 9, .production_id = 8), - [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 6, .production_id = 2), - [441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template, 6, .production_id = 2), - [443] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorator_node, 5, .production_id = 17), - [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_node, 5, .production_id = 17), - [447] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_node, 4), - [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_node, 4), - [451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior_node, 1), - [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior_node, 1), - [455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 6), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 6), - [459] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 5), - [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 5), - [463] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 4), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 4), - [467] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorator_node, 4, .production_id = 12), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_node, 4, .production_id = 12), - [471] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_selector_node, 4), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_selector_node, 4), - [475] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_node, 5, .production_id = 15), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_node, 5, .production_id = 15), - [479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_selector_node, 5, .production_id = 15), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_selector_node, 5, .production_id = 15), - [483] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 3), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 3), - [487] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subtree_node, 2), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subtree_node, 2), - [491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_decorator_node, 7, .production_id = 23), - [493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_decorator_node, 7, .production_id = 23), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), - [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [503] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [507] = {.entry = {.count = 1, .reusable = false}}, SHIFT(290), - [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324), - [513] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), - [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), - [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [521] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(172), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_override_repeat1, 2), - [526] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(324), - [529] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(164), - [532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(285), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3), - [549] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_expression, 2), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [559] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_and_expression, 3), - [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_or_expression, 3), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison, 3, .production_id = 16), - [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison, 3, .production_id = 16), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1), - [589] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [593] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dotted_path, 1), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), - [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), - [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [609] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_relationship_repeat1, 2), SHIFT_REPEAT(6), - [612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_relationship_repeat1, 2), - [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [624] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), - [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2), - [628] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), SHIFT_REPEAT(286), - [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_path, 1), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [635] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override_op, 2), - [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override_op, 2), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [643] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override_op, 1), - [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override_op, 1), - [647] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), - [649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dotted_path_repeat1, 2), - [651] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dotted_path_repeat1, 2), SHIFT_REPEAT(316), - [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_is_condition_repeat1, 2), - [660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_is_condition_repeat1, 2), SHIFT_REPEAT(282), - [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_path, 2), - [669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_declaration_repeat1, 2), - [671] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_declaration_repeat1, 2), SHIFT_REPEAT(328), - [674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_on_enter, 3), - [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_on_enter, 3), - [678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include, 2), - [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include, 2), - [682] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_schedule_repeat1, 2), - [684] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_schedule_repeat1, 2), SHIFT_REPEAT(293), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_life_arc_repeat1, 2), - [691] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_life_arc_repeat1, 2), SHIFT_REPEAT(290), - [694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), - [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_enum_body, 1), - [702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arc_state_repeat1, 2), - [706] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arc_state_repeat1, 2), SHIFT_REPEAT(59), - [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_condition, 3), - [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_condition, 4), - [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), - [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), - [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_clause, 2), - [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_is_condition_repeat1, 4), - [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_participant, 2), - [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_record_body, 2), - [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_enum_body, 2), - [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), - [761] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_path_segments, 2), SHIFT(302), - [764] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variant_pattern_repeat1, 2), SHIFT_REPEAT(199), - [767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variant_pattern_repeat1, 2), - [769] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_participant, 4), - [771] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_action_node_repeat1, 2), SHIFT_REPEAT(18), - [774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_action_node_repeat1, 2), - [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), - [798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [800] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_record_body, 3), - [802] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sub_concept_record_body_repeat1, 2), SHIFT_REPEAT(250), - [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sub_concept_record_body_repeat1, 2), - [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_record_body, 1), - [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_clause, 3), - [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [817] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concept_comparison_repeat1, 2), SHIFT_REPEAT(275), - [820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concept_comparison_repeat1, 2), - [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [824] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(44), - [827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [829] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_path_segments, 1), SHIFT(302), - [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arc_state, 4, .production_id = 2), - [838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_param, 1), - [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [844] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), - [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), - [848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_pattern, 5, .production_id = 19), - [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_block, 6, .production_id = 20), - [858] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [860] = {.entry = {.count = 1, .reusable = false}}, SHIFT(352), - [862] = {.entry = {.count = 1, .reusable = false}}, SHIFT(351), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_enum_body, 3), - [868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_expr, 1), - [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [874] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_condition, 3, .production_id = 21), - [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_field, 3, .production_id = 18), - [878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arc_state, 6, .production_id = 2), - [880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_keyword, 1), - [882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_pattern, 6, .production_id = 19), - [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_param, 3), - [886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_clause, 4), - [888] = {.entry = {.count = 1, .reusable = false}}, SHIFT(258), - [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_transition, 4, .production_id = 22), - [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), - [896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arc_state, 7, .production_id = 2), - [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), - [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), - [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [906] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_pattern, 7, .production_id = 19), - [908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arc_state, 5, .production_id = 2), - [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), - [914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), - [930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), - [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), - [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_params, 3), - [960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), - [972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), - [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [1000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [1002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [1004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), - [1006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [1010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [1012] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), - [1016] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_params, 5), - [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [1022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), - [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [1028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), - [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), - [1038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(330), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(452), + [78] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(447), + [81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(446), + [84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(433), + [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(422), + [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(420), + [93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(419), + [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(409), + [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(386), + [102] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(384), + [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(382), + [108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(367), + [111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(363), + [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(191), + [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(281), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), + [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289), + [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(285), + [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), + [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(398), + [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), + [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override, 4), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override, 4), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 1), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 1), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_prose_block, 5, .production_id = 19), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_prose_block, 5, .production_id = 19), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 5), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_prose_block, 4, .production_id = 13), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_prose_block, 4, .production_id = 13), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override, 5), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override, 5), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4), + [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [202] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(64), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_selector_node_repeat1, 2), + [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(281), + [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(289), + [213] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(285), + [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(399), + [219] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(398), + [222] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(288), + [225] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_selector_node_repeat1, 2), SHIFT_REPEAT(294), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 3, .production_id = 9), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 9), + [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 1), + [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_character_body_repeat1, 2), SHIFT_REPEAT(238), + [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_character_body_repeat1, 2), + [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_character_body_repeat1, 2), + [263] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_body_repeat1, 2), SHIFT_REPEAT(445), + [266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344), + [272] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 1), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 1), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior_declaration, 3, .production_id = 2), + [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior_declaration, 3, .production_id = 2), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationship_declaration, 3, .production_id = 2), + [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relationship_declaration, 3, .production_id = 2), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_location_declaration, 3, .production_id = 2), + [290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_location_declaration, 3, .production_id = 2), + [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 7), + [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 7), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species_declaration, 3, .production_id = 2), + [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species_declaration, 3, .production_id = 2), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_comparison, 6, .production_id = 1), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_comparison, 6, .production_id = 1), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 6, .production_id = 1), + [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 6, .production_id = 1), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species_body, 4), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species_body, 4), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationship_body, 4), + [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relationship_body, 4), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1), + [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_body, 2), + [322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_body, 2), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior_body, 4, .production_id = 12), + [326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior_body, 4, .production_id = 12), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_body, 3), + [330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_body, 3), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 3), + [334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 3), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc_declaration, 6, .production_id = 7), + [338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc_declaration, 6, .production_id = 7), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc_declaration, 6, .production_id = 1), + [342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc_declaration, 6, .production_id = 1), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 5, .production_id = 5), + [346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 5, .production_id = 5), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_declaration, 4, .production_id = 3), + [350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_declaration, 4, .production_id = 3), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_body, 2), + [354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_body, 2), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_body, 3), + [358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_body, 3), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 6, .production_id = 11), + [362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 6, .production_id = 11), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_declaration, 6, .production_id = 10), + [366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_declaration, 6, .production_id = 10), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_declaration, 3, .production_id = 2), + [370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_declaration, 3, .production_id = 2), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 4, .production_id = 4), + [374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 4, .production_id = 4), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_body, 2), + [378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule_body, 2), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 3, .production_id = 2), + [382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 3, .production_id = 2), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_declaration, 2, .production_id = 1), + [386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_declaration, 2, .production_id = 1), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc_declaration, 7, .production_id = 7), + [390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc_declaration, 7, .production_id = 7), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_comparison, 5, .production_id = 1), + [394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_comparison, 5, .production_id = 1), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 5), + [398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 5), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc_declaration, 4, .production_id = 1), + [402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc_declaration, 4, .production_id = 1), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_body, 3), + [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule_body, 3), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_declaration, 5, .production_id = 6), + [410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule_declaration, 5, .production_id = 6), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 5, .production_id = 1), + [414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 5, .production_id = 1), + [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_node, 4, .production_id = 15), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_node, 4, .production_id = 15), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species_body, 3), + [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species_body, 3), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationship_body, 3), + [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relationship_body, 3), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc_declaration, 5, .production_id = 1), + [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc_declaration, 5, .production_id = 1), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_life_arc_declaration, 5, .production_id = 7), + [436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_life_arc_declaration, 5, .production_id = 7), + [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 9), + [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 9), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species_body, 2), + [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_species_body, 2), + [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 7, .production_id = 1), + [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 7, .production_id = 1), + [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_declaration, 3, .production_id = 2), + [452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule_declaration, 3, .production_id = 2), + [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior_body, 3, .production_id = 8), + [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior_body, 3, .production_id = 8), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept, 7, .production_id = 18), + [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sub_concept, 7, .production_id = 18), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_institution_declaration, 3, .production_id = 2), + [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_institution_declaration, 3, .production_id = 2), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concept_comparison, 7, .production_id = 1), + [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concept_comparison, 7, .production_id = 1), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_declaration, 8), + [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_declaration, 8), + [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_declaration, 5, .production_id = 5), + [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_declaration, 5, .production_id = 5), + [478] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_behavior_node, 1), + [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_behavior_node, 1), + [482] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorator_node, 4, .production_id = 17), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_node, 4, .production_id = 17), + [486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subtree_node, 2), + [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subtree_node, 2), + [490] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 4), + [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 4), + [494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_node, 4, .production_id = 16), + [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_node, 4, .production_id = 16), + [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_node, 4), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_node, 4), + [502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorator_node, 5, .production_id = 23), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_node, 5, .production_id = 23), + [506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 5), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 5), + [510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_selector_node, 5, .production_id = 21), + [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_selector_node, 5, .production_id = 21), + [514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 6), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 6), + [518] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_selector_node, 4), + [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_selector_node, 4), + [522] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_decorator_node, 7, .production_id = 29), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_decorator_node, 7, .production_id = 29), + [526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_node, 7, .production_id = 30), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_node, 7, .production_id = 30), + [530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_node, 5, .production_id = 21), + [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_node, 5, .production_id = 21), + [534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action_node, 3), + [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_node, 3), + [538] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_node, 9, .production_id = 32), + [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_node, 9, .production_id = 32), + [542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_schedule_body_repeat1, 2), SHIFT_REPEAT(238), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_schedule_body_repeat1, 2), + [547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_schedule_body_repeat1, 2), SHIFT_REPEAT(445), + [550] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_schedule_body_repeat1, 2), SHIFT_REPEAT(428), + [553] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_schedule_body_repeat1, 2), SHIFT_REPEAT(424), + [556] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_schedule_body_repeat1, 2), SHIFT_REPEAT(423), + [559] = {.entry = {.count = 1, .reusable = false}}, SHIFT(238), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [563] = {.entry = {.count = 1, .reusable = false}}, SHIFT(428), + [565] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), + [567] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251), + [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(432), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [579] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_body_repeat1, 2), SHIFT_REPEAT(238), + [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_body_repeat1, 2), + [584] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_body_repeat1, 2), SHIFT_REPEAT(251), + [587] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_body_repeat1, 2), SHIFT_REPEAT(432), + [590] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_body_repeat1, 2), SHIFT_REPEAT(445), + [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1), + [603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387), + [613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192), + [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [617] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_and_expression, 3), + [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [625] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison, 3, .production_id = 22), + [629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison, 3, .production_id = 22), + [631] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(238), + [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_override_repeat1, 2), + [636] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(387), + [639] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(192), + [642] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_override_repeat1, 2), SHIFT_REPEAT(445), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3), + [649] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3), + [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414), + [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_expression, 2), + [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_or_expression, 3), + [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_use_declaration_repeat1, 2), + [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_declaration_repeat1, 2), + [673] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_declaration_repeat1, 2), SHIFT_REPEAT(416), + [676] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dotted_path, 1), + [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389), + [682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_behaviors, 4), + [708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_behaviors, 4), + [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_behaviors, 5), + [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_behaviors, 5), + [720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [728] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_relationship_body_repeat1, 2), SHIFT_REPEAT(6), + [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_relationship_body_repeat1, 2), + [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [735] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule_block, 6, .production_id = 20), + [737] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_block, 6, .production_id = 20), + [739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(335), + [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [743] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override_block, 6, .production_id = 20), + [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override_block, 6, .production_id = 20), + [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override_block, 5, .production_id = 20), + [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override_block, 5, .production_id = 20), + [753] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recurrence_block, 7, .production_id = 27), + [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recurrence_block, 7, .production_id = 27), + [757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_species_body_repeat1, 2), + [759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_species_body_repeat1, 2), + [761] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_species_body_repeat1, 2), SHIFT_REPEAT(432), + [764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [766] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_species_body_repeat2, 2), SHIFT_REPEAT(389), + [769] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_species_body_repeat2, 2), + [771] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_species_body_repeat2, 2), SHIFT_REPEAT(445), + [774] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_schedule_block, 5, .production_id = 20), + [776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_schedule_block, 5, .production_id = 20), + [778] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include, 2), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include, 2), + [782] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_uses_behaviors, 5), SHIFT(163), + [785] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override_op, 1), + [787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override_op, 1), + [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_schedule, 6), + [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_schedule, 6), + [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_path, 1), + [803] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_schedule, 8), + [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_schedule, 8), + [807] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_uses_behaviors, 6), SHIFT(163), + [810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_behaviors, 6), + [812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_behaviors, 6), + [814] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_override_op, 2), + [816] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_override_op, 2), + [818] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_schedule, 4), + [820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_schedule, 4), + [822] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uses_schedule, 7), + [824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uses_schedule, 7), + [826] = {.entry = {.count = 1, .reusable = false}}, SHIFT(413), + [828] = {.entry = {.count = 1, .reusable = false}}, SHIFT(299), + [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), + [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), + [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_recurrence_block_repeat1, 2), + [850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_recurrence_block_repeat1, 2), SHIFT_REPEAT(428), + [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_condition, 1), + [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_condition, 2), + [867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_life_arc_declaration_repeat1, 2), + [869] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_life_arc_declaration_repeat1, 2), SHIFT_REPEAT(414), + [872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_is_condition_repeat1, 2), + [874] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_is_condition_repeat1, 2), SHIFT_REPEAT(322), + [877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species_field, 3, .production_id = 9), + [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_state_body_repeat1, 2), + [883] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_state_body_repeat1, 2), SHIFT_REPEAT(58), + [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_enum_body, 1), + [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [892] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_on_enter, 3), + [894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_on_enter, 3), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [900] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_schedule_block_repeat1, 2), SHIFT_REPEAT(365), + [903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_schedule_block_repeat1, 2), + [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [907] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), + [909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_record_body, 1), + [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_record_body, 2), + [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_path, 2), + [919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_clause, 3), + [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [923] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_path_segments, 2), SHIFT(438), + [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [938] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_action_node_repeat1, 2), SHIFT_REPEAT(36), + [941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_action_node_repeat1, 2), + [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_value, 3, .production_id = 31), + [945] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_path_segments, 1), SHIFT(438), + [948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_record_body, 3), + [958] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sub_concept_record_body_repeat1, 2), SHIFT_REPEAT(298), + [961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sub_concept_record_body_repeat1, 2), + [963] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_clause, 2), + [965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [981] = {.entry = {.count = 1, .reusable = false}}, SHIFT(356), + [983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_enum_body, 2), + [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_participant, 4), + [999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dotted_path_repeat1, 2), + [1001] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dotted_path_repeat1, 2), SHIFT_REPEAT(359), + [1004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [1006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [1008] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(53), + [1011] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), + [1013] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_species_field, 1), + [1015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [1019] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concept_comparison_repeat1, 2), SHIFT_REPEAT(327), + [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concept_comparison_repeat1, 2), + [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [1028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), + [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [1038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), - [1042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [1044] = {.entry = {.count = 1, .reusable = false}}, SHIFT(333), - [1046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [1048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [1050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [1052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [1054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [1056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), - [1060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), - [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), - [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [1042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [1044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [1046] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variant_pattern_repeat1, 2), SHIFT_REPEAT(333), + [1049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variant_pattern_repeat1, 2), + [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [1053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_participant, 2), + [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [1063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_time_range, 3, .production_id = 25), + [1065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [1067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [1069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [1071] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_requires_clause_repeat1, 2), SHIFT_REPEAT(348), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_requires_clause_repeat1, 2), + [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [1088] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_pattern, 5, .production_id = 24), + [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_field, 3, .production_id = 14), + [1092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [1094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [1096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [1100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_state_body, 2), + [1102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), + [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), + [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_keyword, 1), + [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [1110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_condition, 3, .production_id = 26), + [1112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_pattern, 6, .production_id = 24), + [1114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [1116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [1120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_time_range, 4, .production_id = 25), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [1124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_field, 3, .production_id = 9), + [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_clause, 4), + [1128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_transition, 4, .production_id = 28), + [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [1132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_state_body, 4), + [1134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_state_body, 5), + [1136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(328), + [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), + [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_state_block, 3, .production_id = 2), + [1144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_pattern, 7, .production_id = 24), + [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_enum_body, 3), + [1154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [1158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_param, 1), + [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_concept_field, 3, .production_id = 9), + [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [1168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action_param, 3), + [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [1172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_state_body, 3), + [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448), + [1182] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [1184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(353), + [1186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(404), + [1188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), + [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), + [1192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [1194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [1196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), + [1198] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [1204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_requires_clause, 6), + [1206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [1208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [1210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [1216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), + [1218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [1222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), + [1224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [1226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [1228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [1230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [1232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [1234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [1236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [1238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [1242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [1244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [1246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [1248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [1250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_params, 3), + [1252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [1254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [1256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [1262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [1266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [1268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [1270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [1272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [1274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [1276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [1278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_requires_clause, 5), + [1282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [1284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [1286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [1288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [1290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [1294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [1296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [1298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [1300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator_params, 5), + [1302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [1304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [1306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), + [1308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), + [1310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [1312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [1316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [1318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [1320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [1322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [1324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [1332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [1334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [1336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [1338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [1340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [1342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [1344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_requires_clause, 4), + [1346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [1348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [1350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [1352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [1354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [1356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [1358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [1360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [1362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [1364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), + [1366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), + [1368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [1370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [1372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [1374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [1376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), }; #ifdef __cplusplus diff --git a/tree-sitter-storybook/test/corpus/basic.txt b/tree-sitter-storybook/test/corpus/basic.txt index 1476cd8..605deac 100644 --- a/tree-sitter-storybook/test/corpus/basic.txt +++ b/tree-sitter-storybook/test/corpus/basic.txt @@ -10,9 +10,9 @@ character Alice { (source_file (declaration - (character + (character_declaration name: (identifier) - body: (block + body: (character_body (field name: (dotted_path (identifier)) value: (value (integer))))))) @@ -47,9 +47,9 @@ character Bob { (source_file (declaration - (character + (character_declaration name: (identifier) - body: (block + body: (character_body (field (prose_block marker: (prose_marker) diff --git a/tree-sitter-storybook/test/corpus/behaviors.txt b/tree-sitter-storybook/test/corpus/behaviors.txt index c8262d4..d733e70 100644 --- a/tree-sitter-storybook/test/corpus/behaviors.txt +++ b/tree-sitter-storybook/test/corpus/behaviors.txt @@ -1,29 +1,11 @@ ================== -Simple Behavior +Basic behavior tree ================== -behavior SimpleBehavior { - walk_around -} - ---- - -(source_file - (declaration - (behavior - name: (identifier) - root: (behavior_node - (action_node (identifier)))))) - -================== -Selector Behavior -================== - -behavior SelectorBehavior { - ? { - try_option_a - try_option_b - fallback +behavior BasicNeeds { + then { + CheckHunger + if(hungry) { EatFood } } } @@ -31,23 +13,33 @@ behavior SelectorBehavior { (source_file (declaration - (behavior + (behavior_declaration name: (identifier) - root: (behavior_node - (selector_node - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier)))))))) + body: (behavior_body + root: (behavior_node + (sequence_node + (behavior_node + (action_node + (identifier))) + (behavior_node + (if_decorator_node + condition: (expression + (primary_expression + (path + (path_segments + (identifier))))) + child: (behavior_node + (action_node + (identifier))))))))))) ================== -Sequence Behavior +Behavior with selector ================== -behavior SequenceBehavior { - > { - check_energy - move_to_location - perform_action +behavior Combat { + choose { + if(has_weapon) { Attack } + Flee } } @@ -55,25 +47,32 @@ behavior SequenceBehavior { (source_file (declaration - (behavior + (behavior_declaration name: (identifier) - root: (behavior_node - (sequence_node - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier)))))))) + body: (behavior_body + root: (behavior_node + (selector_node + (behavior_node + (if_decorator_node + condition: (expression + (primary_expression + (path + (path_segments + (identifier))))) + child: (behavior_node + (action_node + (identifier))))) + (behavior_node + (action_node + (identifier))))))))) ================== -Nested Behavior +Behavior with repeat ================== -behavior NestedBehavior { - > { - ? { - check_condition_a - check_condition_b - } - perform_action +behavior Patrol { + repeat(5) { + WalkPath } } @@ -81,100 +80,12 @@ behavior NestedBehavior { (source_file (declaration - (behavior + (behavior_declaration name: (identifier) - root: (behavior_node - (sequence_node - (behavior_node - (selector_node - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier))))) - (behavior_node (action_node (identifier)))))))) - -================== -Repeat Behavior -================== - -behavior RepeatBehavior { - * { - patrol - } -} - ---- - -(source_file - (declaration - (behavior - name: (identifier) - root: (behavior_node - (repeat_node - (behavior_node (action_node (identifier)))))))) - -================== -Behavior with Subtree -================== - -behavior WithSubtree { - > { - @helpers::check_preconditions - main_action - } -} - ---- - -(source_file - (declaration - (behavior - name: (identifier) - root: (behavior_node - (sequence_node - (behavior_node - (subtree_node - (path - (path_segments - (identifier) - (identifier))))) - (behavior_node (action_node (identifier)))))))) - -================== -Complex Nested Behavior -================== - -behavior ComplexBehavior { - ? { - > { - check_threat - flee_to_safety - } - > { - check_resources - gather_resources - } - * { - idle - } - } -} - ---- - -(source_file - (declaration - (behavior - name: (identifier) - root: (behavior_node - (selector_node - (behavior_node - (sequence_node - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier))))) - (behavior_node - (sequence_node - (behavior_node (action_node (identifier))) - (behavior_node (action_node (identifier))))) - (behavior_node - (repeat_node - (behavior_node (action_node (identifier)))))))))) - + body: (behavior_body + root: (behavior_node + (repeat_node + params: (integer) + child: (behavior_node + (action_node + (identifier))))))))) diff --git a/tree-sitter-storybook/test/corpus/declarations.txt b/tree-sitter-storybook/test/corpus/declarations.txt index 6f1f551..cd4da7a 100644 --- a/tree-sitter-storybook/test/corpus/declarations.txt +++ b/tree-sitter-storybook/test/corpus/declarations.txt @@ -67,11 +67,11 @@ character Alice: Human from Curious { (source_file (declaration - (character + (character_declaration name: (identifier) species: (identifier) template: (template_clause (identifier)) - body: (block + body: (character_body (field name: (dotted_path (identifier)) value: (value (integer))) @@ -110,16 +110,17 @@ template BaseCharacter strict { (source_file (declaration - (template + (template_declaration name: (identifier) - (include (identifier)) - (include (identifier)) - (field - name: (dotted_path (identifier)) - value: (value (integer))) - (field - name: (dotted_path (identifier)) - value: (value (string)))))) + body: (template_body + (include (identifier)) + (include (identifier)) + (field + name: (dotted_path (identifier)) + value: (value (integer))) + (field + name: (dotted_path (identifier)) + value: (value (string))))))) ================== Life arc with states and transitions @@ -150,7 +151,7 @@ life_arc Journey { (source_file (declaration - (life_arc + (life_arc_declaration name: (identifier) (field (prose_block @@ -158,115 +159,32 @@ life_arc Journey { tag: (identifier) content: (prose_content) end: (prose_marker))) - (arc_state + (state_block name: (identifier) - (on_enter - (block - (field - name: (dotted_path (identifier)) - value: (value (integer))))) - (transition - condition: (expression - (comparison - (expression (primary_expression (path (path_segments (identifier))))) - (expression (primary_expression (integer))))) - target: (identifier))) - (arc_state + body: (state_body + (on_enter + (block + (field + name: (dotted_path (identifier)) + value: (value (integer))))) + (transition + condition: (expression + (comparison + (expression (primary_expression (path (path_segments (identifier))))) + (expression (primary_expression (integer))))) + target: (identifier)))) + (state_block name: (identifier) - (transition - condition: (expression - (comparison - (expression (primary_expression (path (path_segments (identifier))))) - (expression (primary_expression (boolean))))) - target: (identifier))) - (arc_state - name: (identifier))))) - -================== -Schedule with time blocks -================== - -schedule DailyRoutine { - 08:00 -> 09:00: breakfast { - location: kitchen - } - - 09:00 -> 12:00: work { - duration: 3h - } -} - ---- - -(source_file - (declaration - (schedule - name: (identifier) - (schedule_block - start: (time) - end: (time) - activity: (identifier) - (block - (field - name: (dotted_path (identifier)) - value: (value (path (path_segments (identifier))))))) - (schedule_block - start: (time) - end: (time) - activity: (identifier) - (block - (field - name: (dotted_path (identifier)) - value: (value (duration)))))))) - -================== -Behavior tree - all node types -================== - -behavior GuardBehavior { - ? { - patrol - > { - detect_threat - alert(priority: high, "Guard duty") - } - * { - watch - } - @base::behaviors::Idle - } -} - ---- - -(source_file - (declaration - (behavior - name: (identifier) - root: (behavior_node - (selector_node - (behavior_node (action_node (identifier))) - (behavior_node - (sequence_node - (behavior_node (action_node (identifier))) - (behavior_node - (action_node - (identifier) - (action_param - (dotted_path (identifier)) - (value (path (path_segments (identifier))))) - (action_param - (value (string))))))) - (behavior_node - (repeat_node - (behavior_node (action_node (identifier))))) - (behavior_node - (subtree_node - (path - (path_segments - (identifier) - (identifier) - (identifier)))))))))) + body: (state_body + (transition + condition: (expression + (comparison + (expression (primary_expression (path (path_segments (identifier))))) + (expression (primary_expression (boolean))))) + target: (identifier)))) + (state_block + name: (identifier) + body: (state_body))))) ================== Institution @@ -281,9 +199,9 @@ institution Wonderland { (source_file (declaration - (institution + (institution_declaration name: (identifier) - (block + body: (block (field name: (dotted_path (identifier)) value: (value (string))) @@ -291,44 +209,6 @@ institution Wonderland { name: (dotted_path (identifier)) value: (value (string))))))) -================== -Relationship with participants -================== - -relationship Friendship { - Alice { - bond_strength: 5 - } - - WhiteRabbit as friend { - trust: 0.8 - } - - Caterpillar -} - ---- - -(source_file - (declaration - (relationship - name: (identifier) - (participant - (path (path_segments (identifier))) - (block - (field - name: (dotted_path (identifier)) - value: (value (integer))))) - (participant - (path (path_segments (identifier))) - (identifier) - (block - (field - name: (dotted_path (identifier)) - value: (value (float))))) - (participant - (path (path_segments (identifier))))))) - ================== Location ================== @@ -342,9 +222,9 @@ location TeaParty { (source_file (declaration - (location + (location_declaration name: (identifier) - (block + body: (block (field name: (dotted_path (identifier)) value: (value (string))) @@ -367,15 +247,16 @@ species Cat { (source_file (declaration - (species + (species_declaration name: (identifier) - (include (identifier)) - (field - name: (dotted_path (identifier)) - value: (value (boolean))) - (field - name: (dotted_path (identifier)) - value: (value (integer)))))) + body: (species_body + (include (identifier)) + (species_field + name: (identifier) + value: (boolean)) + (species_field + name: (identifier) + value: (integer)))))) ================== Enum declaration @@ -413,9 +294,9 @@ character SpecialAlice { (source_file (declaration - (character + (character_declaration name: (identifier) - body: (block + body: (character_body (field name: (dotted_path (identifier)) value: (value @@ -452,49 +333,52 @@ life_arc ComplexLogic { (source_file (declaration - (life_arc + (life_arc_declaration name: (identifier) - (arc_state + (state_block name: (identifier) - (transition - condition: (expression - (and_expression - (expression - (comparison - (expression - (field_access - (expression (primary_expression)) - (identifier))) - (expression (primary_expression (integer))))) - (expression - (comparison - (expression - (field_access - (expression (primary_expression)) - (identifier))) - (expression (primary_expression (float))))))) - target: (identifier)) - (transition - condition: (expression - (or_expression - (expression - (not_expression - (expression - (field_access - (expression (primary_expression)) - (identifier))))) - (expression - (comparison - (expression - (field_access - (expression (primary_expression)) - (identifier))) - (expression (primary_expression (boolean))))))) - target: (identifier))) - (arc_state - name: (identifier)) - (arc_state - name: (identifier))))) + body: (state_body + (transition + condition: (expression + (and_expression + (expression + (comparison + (expression + (field_access + (expression (primary_expression)) + (identifier))) + (expression (primary_expression (integer))))) + (expression + (comparison + (expression + (field_access + (expression (primary_expression)) + (identifier))) + (expression (primary_expression (float))))))) + target: (identifier)) + (transition + condition: (expression + (or_expression + (expression + (not_expression + (expression + (field_access + (expression (primary_expression)) + (identifier))))) + (expression + (comparison + (expression + (field_access + (expression (primary_expression)) + (identifier))) + (expression (primary_expression (boolean))))))) + target: (identifier)))) + (state_block + name: (identifier) + body: (state_body)) + (state_block + name: (identifier) + body: (state_body))))) ================== List and object values @@ -513,9 +397,9 @@ character DataRich { (source_file (declaration - (character + (character_declaration name: (identifier) - body: (block + body: (character_body (field name: (dotted_path (identifier)) value: (value @@ -560,9 +444,9 @@ character Nested { (source_file (declaration - (character + (character_declaration name: (identifier) - body: (block + body: (character_body (field name: (dotted_path (identifier) diff --git a/tree-sitter-storybook/test/corpus/highlights.txt b/tree-sitter-storybook/test/corpus/highlights.txt new file mode 100644 index 0000000..aab8be3 --- /dev/null +++ b/tree-sitter-storybook/test/corpus/highlights.txt @@ -0,0 +1,53 @@ +================== +Keywords should highlight +================== + +use schema::types; + +character Alice from Person { + age: 25 +} + +--- + +(source_file + (declaration + (use_declaration + (path_segments + (identifier) + (identifier)))) + (declaration + (character_declaration + name: (identifier) + template: (template_clause + (identifier)) + body: (character_body + (field + name: (dotted_path + (identifier)) + value: (value + (integer))))))) + +================== +Any type in sub-concept +================== + +sub_concept Field.Type { + name: "text", + value: 42 +} + +--- + +(source_file + (declaration + (sub_concept + parent: (identifier) + name: (identifier) + body: (sub_concept_record_body + (sub_concept_field + name: (identifier) + value: (string)) + (sub_concept_field + name: (identifier) + value: (integer)))))) diff --git a/tree-sitter-storybook/test/corpus/schedules.txt b/tree-sitter-storybook/test/corpus/schedules.txt new file mode 100644 index 0000000..ed5bf27 --- /dev/null +++ b/tree-sitter-storybook/test/corpus/schedules.txt @@ -0,0 +1,106 @@ +================== +Basic schedule +================== + +schedule WorkDay { + block morning { + 08:00 -> 12:00 + action: Work + } +} + +--- + +(source_file + (declaration + (schedule_declaration + name: (identifier) + body: (schedule_body + (schedule_block + name: (identifier) + time_range: (time_range + start: (time) + end: (time)) + (block_field + name: (identifier) + value: (identifier))))))) + +================== +Schedule with extends +================== + +schedule BakerDay extends WorkDay { + block early_prep { + 05:00 -> 08:00 + } +} + +--- + +(source_file + (declaration + (schedule_declaration + name: (identifier) + extends: (identifier) + body: (schedule_body + (schedule_block + name: (identifier) + time_range: (time_range + start: (time) + end: (time))))))) + +================== +Schedule with override +================== + +schedule CustomDay extends BaseDay { + override work { + 06:00 -> 14:00 + intensity: "high" + } +} + +--- + +(source_file + (declaration + (schedule_declaration + name: (identifier) + extends: (identifier) + body: (schedule_body + (override_block + name: (identifier) + time_range: (time_range + start: (time) + end: (time)) + (block_field + name: (identifier) + value: (string))))))) + +================== +Schedule with recurrence +================== + +schedule WeeklySchedule { + recurrence MarketDay on Saturday { + block market { + 06:00 -> 14:00 + } + } +} + +--- + +(source_file + (declaration + (schedule_declaration + name: (identifier) + body: (schedule_body + (recurrence_block + name: (identifier) + day: (identifier) + (schedule_block + name: (identifier) + time_range: (time_range + start: (time) + end: (time)))))))) diff --git a/tree-sitter-storybook/test/corpus/type_system.txt b/tree-sitter-storybook/test/corpus/type_system.txt index 15202a6..f39fd7c 100644 --- a/tree-sitter-storybook/test/corpus/type_system.txt +++ b/tree-sitter-storybook/test/corpus/type_system.txt @@ -2,7 +2,7 @@ Concept declaration ================== -concept Cup; +concept BakedGood --- @@ -12,34 +12,13 @@ concept Cup; name: (identifier)))) ================== -Multiple concept declarations +Sub-concept enum declaration ================== -concept Cup; -concept Customer; -concept Vendor; - ---- - -(source_file - (declaration - (concept_declaration - name: (identifier))) - (declaration - (concept_declaration - name: (identifier))) - (declaration - (concept_declaration - name: (identifier)))) - -================== -Sub-concept - enum form -================== - -sub_concept Cup.Size { - Small, - Medium, - Large +sub_concept BakedGood.Category { + Bread, + Pastry, + Cake } --- @@ -55,14 +34,12 @@ sub_concept Cup.Size { (identifier))))) ================== -Sub-concept - record form with any +Sub-concept record declaration with values ================== -sub_concept Vendor.Inventory { - Bread: any, - Pastries: any, - Cakes: any, - Cup: any +sub_concept BakedGood.Quality { + freshness: 1.0, + taste: 0.8 } --- @@ -75,51 +52,18 @@ sub_concept Vendor.Inventory { body: (sub_concept_record_body (sub_concept_field name: (identifier) - type: (any_type)) + value: (float)) (sub_concept_field name: (identifier) - type: (any_type)) - (sub_concept_field - name: (identifier) - type: (any_type)) - (sub_concept_field - name: (identifier) - type: (any_type)))))) + value: (float)))))) ================== -Sub-concept - record form with typed fields +Concept comparison ================== -sub_concept Vendor.Inventory { - Bread: any, - Pastries: Number -} - ---- - -(source_file - (declaration - (sub_concept - parent: (identifier) - name: (identifier) - body: (sub_concept_record_body - (sub_concept_field - name: (identifier) - type: (any_type)) - (sub_concept_field - name: (identifier) - type: (identifier)))))) - -================== -Concept comparison with any conditions -================== - -concept_comparison NotInterested { - NotInterested: { - Cup.Size: any, - Cup.Type: any, - Cup.Color: any - } +concept_comparison SkillLevel { + Apprentice: { freshness: any }, + Master: { freshness: Tier is Master } } --- @@ -131,230 +75,58 @@ concept_comparison NotInterested { (variant_pattern name: (identifier) (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (any_type))) + name: (identifier) + condition: (any_type))) + (variant_pattern + name: (identifier) (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (any_type))) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (any_type))))))) + name: (identifier) + condition: (is_condition + (is_value + field: (identifier) + value: (identifier)))))))) ================== -Concept comparison with is conditions +Species declaration ================== -concept_comparison Interest { - Interested: { - Cup.Type: Cup.Type is Glass or Cup.Type is Plastic, - Cup.Color: Cup.Color is Red - } +species Human { + age: 25 + energy: 0.75 } --- (source_file (declaration - (concept_comparison + (species_declaration name: (identifier) - (variant_pattern - name: (identifier) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (is_condition - (dotted_path - (identifier) - (identifier)) - (identifier) - (dotted_path - (identifier) - (identifier)) - (identifier)))) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (is_condition - (dotted_path - (identifier) - (identifier)) - (identifier)))))))) + body: (species_body + (species_field + name: (identifier) + value: (integer)) + (species_field + name: (identifier) + value: (float)))))) ================== -Concept comparison with multiple variants -================== - -concept_comparison FoodQuality { - Excellent: { - Food.Freshness: Food.Freshness is Fresh - }, - Poor: { - Food.Freshness: Food.Freshness is Stale or Food.Freshness is Spoiled - } -} - ---- - -(source_file - (declaration - (concept_comparison - name: (identifier) - (variant_pattern - name: (identifier) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (is_condition - (dotted_path - (identifier) - (identifier)) - (identifier))))) - (variant_pattern - name: (identifier) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (is_condition - (dotted_path - (identifier) - (identifier)) - (identifier) - (dotted_path - (identifier) - (identifier)) - (identifier)))))))) - -================== -Template with species extension +Template with species base ================== template Person: Human { - age: 0..100 - name: "" + name: "Unknown" } --- (source_file (declaration - (template + (template_declaration name: (identifier) species: (identifier) - (field - name: (dotted_path (identifier)) - value: (value (range (integer) (integer)))) - (field - name: (dotted_path (identifier)) - value: (value (string)))))) - -================== -Full type system example -================== - -concept Cup; - -sub_concept Cup.Size { - Small, - Medium, - Large -} - -sub_concept Cup.Type { - Ceramic, - Glass, - Plastic -} - -concept_comparison CupPreference { - Preferred: { - Cup.Size: any, - Cup.Type: Cup.Type is Glass or Cup.Type is Ceramic - }, - Avoided: { - Cup.Size: any, - Cup.Type: Cup.Type is Plastic - } -} - ---- - -(source_file - (declaration - (concept_declaration - name: (identifier))) - (declaration - (sub_concept - parent: (identifier) - name: (identifier) - body: (sub_concept_enum_body - (identifier) - (identifier) - (identifier)))) - (declaration - (sub_concept - parent: (identifier) - name: (identifier) - body: (sub_concept_enum_body - (identifier) - (identifier) - (identifier)))) - (declaration - (concept_comparison - name: (identifier) - (variant_pattern - name: (identifier) - (field_condition - sub_concept: (dotted_path - (identifier) + body: (template_body + (field + name: (dotted_path (identifier)) - condition: (condition_expr - (any_type))) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (is_condition - (dotted_path - (identifier) - (identifier)) - (identifier) - (dotted_path - (identifier) - (identifier)) - (identifier))))) - (variant_pattern - name: (identifier) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (any_type))) - (field_condition - sub_concept: (dotted_path - (identifier) - (identifier)) - condition: (condition_expr - (is_condition - (dotted_path - (identifier) - (identifier)) - (identifier)))))))) + value: (value + (string))))))) diff --git a/zed-storybook/grammars/storybook b/zed-storybook/grammars/storybook deleted file mode 160000 index 26bbef5..0000000 --- a/zed-storybook/grammars/storybook +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 26bbef58d3ade6ce6a3bc0b073102a019fa8f113