diff --git a/Taskfile.yml b/Taskfile.yml index 6e6903afc8..f8c6ede9d7 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -129,6 +129,12 @@ tasks: desc: Just an example to show it running cmds: - "{{.TYPESEARCH_BIN_RELEASE_DIR}}/type_searcher --output-path ./search-results.json --game {{.GAME}} --fields '[{\"type\":\"int16\",\"offset\":2},{\"type\":\"int16\",\"offset\":4}]'" + update-treesitter: + desc: Updates locally built tree-sitter rules + cmds: + - cd ../tree-sitter-opengoal && yarn gen + - python ./scripts/tasks/cp.py --src "../tree-sitter-opengoal/src/*" --dest "./third-party/tree-sitter/tree-sitter-opengoal" + - python ./scripts/tasks/cp.py --src "../tree-sitter-opengoal/grammar.js" --dest "./third-party/tree-sitter/tree-sitter-opengoal" # TESTS offline-tests: # ran by jenkins cmds: diff --git a/common/formatter/formatter.cpp b/common/formatter/formatter.cpp index 304d006e04..1fa42974a9 100644 --- a/common/formatter/formatter.cpp +++ b/common/formatter/formatter.cpp @@ -15,14 +15,6 @@ extern "C" { extern const TSLanguage* tree_sitter_opengoal(); } -// TODO - incoporate some rules from zprint -// https://github.com/kkinnear/zprint/blob/main/doc/types/classic.md -// as well as maybe adjust the default rules to incorporate line length -// https://github.com/kkinnear/zprint/blob/main/doc/options/indent.md -// TODO - block comments seem to have an issue being parsed properly, also it basically needs the -// code for flexibly wrapping a block of code in configurable symbols (parens, block comment braces, -// etc) - std::string apply_formatting(const FormatterTreeNode& curr_node, std::string output, int tree_depth = 0) { @@ -38,7 +30,6 @@ std::string apply_formatting(const FormatterTreeNode& curr_node, curr_form += curr_node.token.value(); return curr_form; } - // TODO - this might have some issues for non-list top level elements (ie. comments) if (!curr_node.metadata.is_top_level) { curr_form += "("; } diff --git a/common/formatter/formatter_tree.cpp b/common/formatter/formatter_tree.cpp index 4e0989743a..b41ef1cba3 100644 --- a/common/formatter/formatter_tree.cpp +++ b/common/formatter/formatter_tree.cpp @@ -4,6 +4,8 @@ #include "config/rule_config.h" +#include "third-party/fmt/core.h" + namespace formatter { const std::shared_ptr default_rule = std::make_shared(); } @@ -11,13 +13,13 @@ const std::shared_ptr default_rule = std::make_shared 0) { const auto& c = source.at(pos); if (c == '\n') { @@ -43,8 +46,40 @@ bool node_preceeded_by_only_whitespace(const std::string& source, const TSNode& FormatterTreeNode::FormatterTreeNode(const std::string& source, const TSNode& node) : token(get_source_code(source, node)) { - // Set any metadata based on the value of the token + metadata.node_type = ts_node_type(node); metadata.is_comment = str_util::starts_with(str_util::ltrim(token.value()), ";"); + // Do some formatting on block-comments text + // TODO - this should go into a formatting rule + if (str_util::starts_with(str_util::ltrim(token.value()), "#|")) { + metadata.is_comment = true; + // Normalize block comments, remove any trailing or leading whitespace + // Only allow annotations on the first line, like #|@file + // Don't mess with internal indentation as the user might intend it to be a certain way. + std::string new_token = ""; + std::string comment_contents = ""; + bool seek_until_whitespace = str_util::starts_with(token.value(), "#|@"); + int chars_seeked = 0; + for (const auto& c : token.value()) { + if (c == '\n' || (seek_until_whitespace && (c == ' ' || c == '\t')) || + (!seek_until_whitespace && (c != '#' && c != '|'))) { + break; + } + chars_seeked++; + new_token += c; + } + // Remove the first line content and any leading whitespace + comment_contents = str_util::ltrim_newlines(token.value().substr(chars_seeked)); + // Remove trailing whitespace + comment_contents = str_util::rtrim(comment_contents); + // remove |# + comment_contents.pop_back(); + comment_contents.pop_back(); + comment_contents = str_util::rtrim(comment_contents); + new_token += fmt::format("\n{}\n|#", comment_contents); + token = new_token; + } + + // Set any metadata based on the value of the token metadata.num_blank_lines_following = num_blank_lines_following_node(source, node); metadata.is_inline = !node_preceeded_by_only_whitespace(source, node); }; @@ -100,6 +135,12 @@ void FormatterTree::construct_formatter_tree_recursive(const std::string& source FormatterTreeNode list_node; if (curr_node_type == "list_lit") { list_node = FormatterTreeNode(); + } else if (curr_node_type == "str_lit") { + // Strings are a special case, they are literals and essentially tokens but the grammar can + // detect formatter identifiers, this is useful for semantic highlighting but doesn't matter for + // formatting So for strings, we treat them as if they should be a single token + tree_node.refs.push_back(FormatterTreeNode(source, curr_node)); + return; } for (size_t i = 0; i < ts_node_child_count(curr_node); i++) { const auto child_node = ts_node_child(curr_node, i); diff --git a/common/formatter/formatter_tree.h b/common/formatter/formatter_tree.h index ee245ec662..02d7b7036b 100644 --- a/common/formatter/formatter_tree.h +++ b/common/formatter/formatter_tree.h @@ -34,6 +34,7 @@ extern const std::shared_ptr default_indentation_rule; class FormatterTreeNode { public: struct Metadata { + std::string node_type; bool is_top_level = false; bool is_comment = false; bool is_inline = false; diff --git a/common/formatter/formatting_rules.cpp b/common/formatter/formatting_rules.cpp index d1d44376e9..fd33d019ed 100644 --- a/common/formatter/formatting_rules.cpp +++ b/common/formatter/formatting_rules.cpp @@ -1,5 +1,7 @@ #include "formatting_rules.h" +#include + #include "common/util/string_util.h" void formatter_rules::blank_lines::separate_by_newline(std::string& curr_text, @@ -23,6 +25,29 @@ void formatter_rules::blank_lines::separate_by_newline(std::string& curr_text, curr_text += "\n"; } +// TODO - probably need to include quoted literals as well, though the grammar currently does not +// differentiate between a quoted symbol and a quoted form +const std::set constant_pair_types = {"kwd_lit", "num_lit", "str_lit", "char_lit", + "null_lit", "bool_lit", "sym_lit"}; + +bool formatter_rules::constant_pairs::is_element_second_in_constant_pair( + const FormatterTreeNode& containing_node, + const FormatterTreeNode& node, + const int index) { + if (containing_node.refs.empty() || index == 0) { + return false; + } + // Ensure that a keyword came before hand + if (containing_node.refs.at(index - 1).metadata.node_type != "kwd_lit") { + return false; + } + // Check the type of the element + if (constant_pair_types.find(node.metadata.node_type) != constant_pair_types.end()) { + return true; + } + return false; +} + void IndentationRule::append_newline(std::string& curr_text, const FormatterTreeNode& node, const FormatterTreeNode& containing_node, @@ -34,6 +59,11 @@ void IndentationRule::append_newline(std::string& curr_text, (node.metadata.is_comment && node.metadata.is_inline)) { return; } + // Check if it's a constant pair + if (formatter_rules::constant_pairs::is_element_second_in_constant_pair(containing_node, node, + index)) { + return; + } curr_text = str_util::rtrim(curr_text) + "\n"; } @@ -45,6 +75,12 @@ void IndentationRule::indent_token(std::string& curr_text, if (node.metadata.is_top_level) { return; } + // If the element is the second element in a constant pair, that means we did not append a + // new-line before hand so we require no indentation (it's inline with the previous element) + if (formatter_rules::constant_pairs::is_element_second_in_constant_pair(containing_node, node, + index)) { + return; + } if (containing_node.metadata.multiple_elements_first_line) { if (index > 1) { // Only apply indentation if we are about to print a normal text token @@ -87,6 +123,11 @@ void InnerIndentationRule::append_newline(std::string& curr_text, if (index < 1 || (m_depth != depth || m_index && m_index.value() != index)) { return; } + // Check if it's a constant pair + if (formatter_rules::constant_pairs::is_element_second_in_constant_pair(containing_node, node, + index)) { + return; + } if (!node.metadata.was_on_first_line_of_form) { curr_text = str_util::rtrim(curr_text) + "\n"; } @@ -100,6 +141,12 @@ void InnerIndentationRule::indent_token(std::string& curr_text, if (index < 1 || (m_depth != depth || m_index && m_index.value() != index)) { return; } + // If the element is the second element in a constant pair, that means we did not append a + // new-line before hand so we require no indentation (it's inline with the previous element) + if (formatter_rules::constant_pairs::is_element_second_in_constant_pair(containing_node, node, + index)) { + return; + } // We only new-line elements if they were not originally on the first line if (!node.metadata.was_on_first_line_of_form) { curr_text += str_util::repeat(depth * 2, " "); diff --git a/common/formatter/formatting_rules.h b/common/formatter/formatting_rules.h index 372bc735ea..ad120bb3b4 100644 --- a/common/formatter/formatting_rules.h +++ b/common/formatter/formatting_rules.h @@ -10,7 +10,7 @@ namespace formatter_rules { // The formatter will try to collapse as much space as possible in the top-level, this means // separating forms by a single empty blank line // -// The exception is comments, top level comments will retain their following blank lines from the +// The exception are comments, top level comments will retain their following blank lines from the // original source // - this could be none, in the case where a comment is directly next to a form (like this one!) // - you don't want them to be separated! @@ -27,12 +27,44 @@ void separate_by_newline(std::string& curr_text, } // TODO - nothing here yet, in the future: -// - if/when the formatter is concerned with line length, there are implications here // - align consecutive comment lines +// - if/when the formatter is concerned with line length, there are implications here // // Reference - https://github.com/kkinnear/zprint/blob/main/doc/options/comments.md namespace comments {} +// Paired elements in a list will be kept in-line rather than the default new-line indentation +// For example: +// (:msg "hello world" :delay 100 :fn (lambda () (+ 1 1))) +// Would typically become: +// (:msg +// "hello world" +// :delay +// 100 +// :fn +// (lambda () +// (+ 1 1))) +// But with constant pairs: +// (:msg "hello world" +// :delay 100 +// :fn +// (lambda () +// (+ 1 1))) +// +// Reference - https://github.com/kkinnear/zprint/blob/main/doc/options/constantpairs.md +namespace constant_pairs { +// Determines if the given element is the second element in a constant pair, if it is then we would +// usually want to elide the new-line in whatever code that applies it +// +// This is true if: +// - the element is in a list +// - the element is preceeded by a keyword +// - the element is a: +// - keyword, symbol, string, number, or boolean +bool is_element_second_in_constant_pair(const FormatterTreeNode& containing_node, + const FormatterTreeNode& node, + const int index); +} // namespace constant_pairs } // namespace formatter_rules // Indentation rules are heavily inspired by the descriptions here diff --git a/common/util/string_util.cpp b/common/util/string_util.cpp index 7b985a7d6c..d43e610bfa 100644 --- a/common/util/string_util.cpp +++ b/common/util/string_util.cpp @@ -24,6 +24,23 @@ bool ends_with(const std::string& s, const std::string& suffix) { 0 == s.compare(s.size() - suffix.size(), suffix.size(), suffix); } +// Left-trims any leading whitespace up to and including the final leading newline +// For example: +// " \n\n hello world" => " hello world" +std::string ltrim_newlines(const std::string& s) { + size_t start = s.find_first_not_of(WHITESPACE); + // Seek backwards until we hit the beginning of the string, or a newline -- this is the actual + // substr point we want to use + for (int i = start - 1; i >= 0; i--) { + const auto& c = s.at(i); + if (c == '\n') { + break; + } + start--; + } + return (start == std::string::npos) ? "" : s.substr(start); +} + std::string ltrim(const std::string& s) { size_t start = s.find_first_not_of(WHITESPACE); return (start == std::string::npos) ? "" : s.substr(start); diff --git a/common/util/string_util.h b/common/util/string_util.h index a128852334..43be1760c9 100644 --- a/common/util/string_util.h +++ b/common/util/string_util.h @@ -7,6 +7,7 @@ namespace str_util { bool contains(const std::string& s, const std::string& substr); bool starts_with(const std::string& s, const std::string& prefix); bool ends_with(const std::string& s, const std::string& suffix); +std::string ltrim_newlines(const std::string& s); std::string ltrim(const std::string& s); std::string rtrim(const std::string& s); std::string trim(const std::string& s); diff --git a/scripts/tasks/cp.py b/scripts/tasks/cp.py new file mode 100644 index 0000000000..7cb1e4d3ca --- /dev/null +++ b/scripts/tasks/cp.py @@ -0,0 +1,31 @@ +# Windows doesn't have the GNU toolchain by default, making it hard to write Taskfiles that are cross-platform +# This "solves" that + +import argparse +import glob +parser = argparse.ArgumentParser() +parser.add_argument("--src") +parser.add_argument("--dest") +args = parser.parse_args() + +import shutil +import os + +def copy_with_glob(source_glob, destination): + # Expand the glob pattern + paths = glob.glob(source_glob, recursive=True) + + for path in paths: + # Get the destination path by joining the destination directory with the relative path + relative_path = os.path.relpath(path, os.path.dirname(source_glob)) + dest_path = os.path.join(destination, relative_path) + + # Check if the path is a file or a directory + if os.path.isfile(path): + # Copy the file + shutil.copy2(path, dest_path) + elif os.path.isdir(path): + # Copy the directory and its contents recursively + shutil.copytree(path, dest_path, dirs_exist_ok=True) + +copy_with_glob(args.src, args.dest) diff --git a/test/common/formatter/corpus/comments.test.gc b/test/common/formatter/corpus/comments.test.gc index e04c98889a..8a6c933854 100644 --- a/test/common/formatter/corpus/comments.test.gc +++ b/test/common/formatter/corpus/comments.test.gc @@ -1,5 +1,5 @@ === -Top-Level Comment +Comment - Top-Level === ;; test @@ -11,7 +11,22 @@ Top-Level Comment (println "test") === -Inline Comment +Comment - Within Form +=== + +(println + ;; test + "test") + +--- + +(println + ;; test + "test") + + +=== +Comment - Inline === (println "test") ;; test @@ -21,9 +36,17 @@ Inline Comment (println "test") ;; test === -TODO - Block Comment +Block Comment === +#| + block comment + test|# + +(println "test") + +--- + #| block comment test @@ -31,12 +54,71 @@ TODO - Block Comment (println "test") +=== +Block Comment - Single Line +=== + +#|block comment|# + --- #| +block comment +|# - |# +=== +Block Comment - Don't Allow Content on Opening Brace +=== + +#| block comment + test +|# (println "test") +--- +#| + block comment + test +|# + +(println "test") + +=== +Block Comment - Allow Annotations +=== + +#|@file block comment + test +|# + +(println "test") + +--- + +#|@file + block comment + test +|# + +(println "test") + +=== +Block Comment - In Form +=== + +(println + #| block comment + test +|# +"test") + +--- + +(println + #| + block comment + test +|# + "test") diff --git a/test/common/formatter/corpus/constant-pairs.test.gc b/test/common/formatter/corpus/constant-pairs.test.gc new file mode 100644 index 0000000000..e2b4ab63ff --- /dev/null +++ b/test/common/formatter/corpus/constant-pairs.test.gc @@ -0,0 +1,51 @@ +=== +One Pair +=== + +(:hello + +"world") + +--- + +(:hello "world") + +=== +Not a Valid Constant +=== + +(:hello + +(println "hello world")) + +--- + +(:hello + (println "hello world")) + +=== +Two Pairs +=== + +(:hello + +"world" :test 123) + +--- + +(:hello "world" + :test 123) + +=== +Pair Mixture +=== + +(:hello + +"world" "not-a-pair" :test 123) + +--- + +(:hello "world" + "not-a-pair" + :test 123) diff --git a/test/common/formatter/test_formatter.cpp b/test/common/formatter/test_formatter.cpp index d8bcd246f9..ee3194e570 100644 --- a/test/common/formatter/test_formatter.cpp +++ b/test/common/formatter/test_formatter.cpp @@ -36,9 +36,12 @@ struct TestDefinition { }; std::vector get_test_definitions(const fs::path& file_path) { + std::vector tests; // Read in the file, and run the test const auto contents = str_util::split(file_util::read_text_file(file_path)); - std::vector tests; + if (contents.empty() || (contents.size() == 1 && contents.at(0).empty())) { + return tests; + } TestDefinition curr_test; size_t i = 0; while (i < contents.size()) { diff --git a/third-party/tree-sitter/tree-sitter-opengoal/grammar.js b/third-party/tree-sitter/tree-sitter-opengoal/grammar.js new file mode 100644 index 0000000000..71b1387e3b --- /dev/null +++ b/third-party/tree-sitter/tree-sitter-opengoal/grammar.js @@ -0,0 +1,295 @@ +// Heavily stripped down - https://github.com/sogaiu/tree-sitter-clojure/ +// With some features taken from https://github.com/theHamsta/tree-sitter-commonlisp/blob/master/grammar.js + +// java.lang.Character.isWhitespace +// +// Space Separator (Zs) but NOT including (U+00A0, U+2007, U+202F) +// U+0020, U+1680, U+2000, U+2001, U+2002, U+2003, U+2004, U+2005, +// U+2006, U+2008, U+2009, U+200A, U+205F, U+3000 +// Line Separator (Zl) +// U+2028 +// Paragraph Separator (Zp) +// U+2029 +// Horizontal Tabulation +// \t +// Line Feed +// \n +// Vertical Tabulation +// U+000B +// Form Feed +// \f +// Carriage Return +// \r +// File Separator +// U+001C +// Group Separator +// U+001D +// Record Separator +// U+001E +// Unit Separator +// U+001F +const WHITESPACE_CHAR = + /[\f\n\r\t \u000B\u001C\u001D\u001E\u001F\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2008\u2009\u200a\u205f\u3000]/; + +const WHITESPACE = + token(repeat1(WHITESPACE_CHAR)); + +const COMMENT = + token(/(;)[^\n]*/); + +const BLOCK_COMMENT = + token(seq('#|', repeat1(/[^#|]/), '|#')); + +const DIGIT = + /[0-9]/; + +const HEX_DIGIT = + /[0-9a-fA-F]/; + +const BINARY_DIGIT = + /[0-1]/; + +const HEX_NUMBER = + seq("#x", + repeat1(HEX_DIGIT)); + +const BINARY_NUMBER = + seq("#b", + repeat1(BINARY_DIGIT)); + +const FLOAT = + seq(repeat1(DIGIT), + optional(seq(".", + repeat(DIGIT)))); + +const INTEGER = + seq(repeat1(DIGIT)); + +// TODO - does OG support negative hex/binary? +const NUMBER = + token(prec(10, seq(optional(/[+-]/), + choice(HEX_NUMBER, + BINARY_NUMBER, + FLOAT, + INTEGER)))); + +const NULL = + token('none'); + +// While technically anything other than #f is true, conventionally speaking #t is used to indicate true +const BOOLEAN = + token(choice('#f', + '#t')); + +const KEYWORD_HEAD = + /[^\f\n\r\t ()\[\]{}"@~^;`\\,:/\u000B\u001C\u001D\u001E\u001F\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2008\u2009\u200a\u205f\u3000]/; + +const KEYWORD_BODY = + choice(/[:']/, KEYWORD_HEAD); + +const KEYWORD = token(seq(":", KEYWORD_HEAD, repeat(KEYWORD_BODY))) + +const ANY_CHAR = + /.|\n/; + +const CHARACTER = + token(seq("#\\", + choice(ANY_CHAR, "\\s", "\\n", "\\t"))); + +// \u000B => +// \u001C => +// \u001D => +// \u001E => +// \u001F => +// \u2028 => +// \u2029 => +// \u1680 => +// \u2000 => +// \u2001 => +// \u2002 => +// \u2003 => +// \u2004 => +// \u2005 => +// \u2006 => +// \u2008 => +// \u2009 => +// \u200a => +// \u205f => +// \u3000 => +const SYMBOL_HEAD = + /[^\f\n\r\t \/()\[\]{}"@~^;`\\,:#'0-9\u000B\u001C\u001D\u001E\u001F\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2008\u2009\u200a\u205f\u3000]/; + +const SYMBOL_BODY = + choice(SYMBOL_HEAD, + /[:#'0-9]/); + +const SYMBOL = + token(seq(SYMBOL_HEAD, + repeat(SYMBOL_BODY))); + +module.exports = grammar({ + name: 'opengoal', + + extras: $ => + [], + + conflicts: $ => + [], + + inline: $ => + [$._kwd_unqualified, + $._sym_unqualified], + + rules: { + // THIS MUST BE FIRST -- even though this doesn't look like it matters + source: $ => + repeat(choice($._form, + $._gap)), + + _gap: $ => + choice($._ws, + $.comment, + $.block_comment), + + _ws: $ => + WHITESPACE, + + comment: $ => + COMMENT, + + block_comment: $ => BLOCK_COMMENT, + + _form: $ => + choice($.num_lit, // atom-ish + $.kwd_lit, + $.str_lit, + $.char_lit, + $.null_lit, + $.bool_lit, + $.sym_lit, + // basic collection-ish + $.list_lit, + // some other reader macros + $.quoting_lit, + $.quasi_quoting_lit, + $.unquote_splicing_lit, + $.unquoting_lit), + + num_lit: $ => + NUMBER, + + kwd_lit: $ => KEYWORD, + + // https://opengoal.dev/docs/reference/lib/#format + // TODO - a lot of this might be irrelevant or not comprehensive in terms of OpenGOAL's + // but to be honest, most of these rare features are never used + _format_token: $ => choice(alias(NUMBER, $.num_lit), seq("'", alias(/./, $.char_lit))), + format_prefix_parameters: _ => choice('v', 'V', '#'), + format_modifiers: $ => seq(repeat(choice($._format_token, ',')), choice('@', '@:', ':', ':@')), + format_directive_type: $ => choice( + seq(optional(field('repetitions', $._format_token)), choice('~', '%', '&', '|')), + /[cC]/, + /\^/, + '\n', + '\r', + /[pP]/, + /[iI]/, + /[wW]/, + /[aA]/, + '_', + /[()]/, + /[{}]/, + /[\[\]]/, + /[<>]/, + ';', + seq(field('numberOfArgs', $._format_token), '*'), + '?', + "Newline", + seq(repeat(choice($._format_token, ',')), /[$rRbBdDgGxXeEoOsStTfF]/), + ), + format_specifier: $ => + prec.left(seq( + '~', + optional($.format_prefix_parameters), + optional($.format_modifiers), + prec(5, $.format_directive_type), + )), + + str_lit: $ => + seq( + '"', + repeat(choice( + token.immediate(prec(1, /[^\\~"]+/)), + token.immediate(seq(/\\./)), + $.format_specifier, + )), + optional('~'), + '"', + ), + + char_lit: $ => + CHARACTER, + + null_lit: $ => + NULL, + + bool_lit: $ => + BOOLEAN, + + sym_lit: $ => + seq(choice($._sym_unqualified)), + + _sym_unqualified: $ => + field('name', alias(choice("/", SYMBOL), + $.sym_name)), + + list_lit: $ => + seq($._bare_list_lit), + + _bare_list_lit: $ => + seq(field('open', "("), + repeat(choice(field('value', $._form), + $._gap)), + field('close', ")")), + + quoting_lit: $ => + seq(field('marker', "'"), + repeat($._gap), + field('value', $._form)), + + quasi_quoting_lit: $ => + seq(field('marker', "`"), + repeat($._gap), + field('value', $._form)), + + unquote_splicing_lit: $ => + seq(field('marker', ",@"), + repeat($._gap), + field('value', $._form)), + + unquoting_lit: $ => + seq(field('marker', ","), + repeat($._gap), + field('value', $._form)), + + // TODO - consider having ones for defun, defmethod, defstate, etc + // defun_keyword: _ => prec(10, clSymbol(choice('defun', 'defmacro', 'defgeneric', 'defmethod'))), + + // defun_header: $ => + // prec(PREC.SPECIAL, choice( + // seq(field('keyword', $.defun_keyword), + // repeat($._gap), + // choice($.unquoting_lit, $.unquote_splicing_lit) + // ), + // seq(field('keyword', $.defun_keyword), + // repeat($._gap), + // field('function_name', $._form), + // optional(field('specifier', seq(repeat($._gap), choice($.kwd_lit, $.sym_lit)))), + // repeat($._gap), + // field('lambda_list', choice($.list_lit, $.unquoting_lit))), + // seq(field('keyword', alias('lambda', $.defun_keyword)), + // repeat($._gap), + // field('lambda_list', choice($.list_lit, $.unquoting_lit))) + // )), + } +}); diff --git a/third-party/tree-sitter/tree-sitter-opengoal/grammar.json b/third-party/tree-sitter/tree-sitter-opengoal/grammar.json index 6ba9b22840..a7ac90f8a9 100644 --- a/third-party/tree-sitter/tree-sitter-opengoal/grammar.json +++ b/third-party/tree-sitter/tree-sitter-opengoal/grammar.json @@ -30,7 +30,7 @@ }, { "type": "SYMBOL", - "name": "comment_multiline" + "name": "block_comment" } ] }, @@ -48,51 +48,31 @@ "type": "TOKEN", "content": { "type": "PATTERN", - "value": "(;).*\\n?" + "value": "(;)[^\\n]*" } }, - "comment_multiline": { - "type": "SEQ", - "members": [ - { - "type": "TOKEN", - "content": { + "block_comment": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { "type": "STRING", "value": "#|" - } - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "[^|#]+" - }, - { - "type": "PATTERN", - "value": "#[^|]" - }, - { - "type": "PATTERN", - "value": "[^#]\\|" - }, - { - "type": "PATTERN", - "value": "[\\n\\r]+" - } - ] - } - }, - { - "type": "TOKEN", - "content": { + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[^#|]" + } + }, + { "type": "STRING", "value": "|#" } - } - ] + ] + } }, "_form": { "type": "CHOICE", @@ -257,126 +237,491 @@ } }, "kwd_lit": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_kwd_unqualified" - } - ] - }, - "_kwd_unqualified": { - "type": "PREC", - "value": 1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "marker", - "content": { - "type": "SYMBOL", - "name": "_kwd_marker" - } - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "ALIAS", - "content": { - "type": "TOKEN", - "content": { - "type": "SEQ", - "members": [ - { - "type": "PATTERN", - "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:/\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "[:']" - }, - { - "type": "PATTERN", - "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:/\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" - } - ] - } - } - ] - } - }, - "named": true, - "value": "kwd_name" - } - } - ] - } - }, - "_kwd_marker": { - "type": "CHOICE", - "members": [ - { - "type": "TOKEN", - "content": { - "type": "STRING", - "value": ":" - } - } - ] - }, - "str_lit": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "\"" + "value": ":" + }, + { + "type": "PATTERN", + "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:/\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" }, { "type": "REPEAT", "content": { - "type": "PATTERN", - "value": "[^\"\\\\]" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "STRING", - "value": "\\" + "type": "PATTERN", + "value": "[:']" }, { "type": "PATTERN", - "value": "." - }, - { - "type": "REPEAT", - "content": { - "type": "PATTERN", - "value": "[^\"\\\\]" - } + "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:/\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" } ] } - }, - { - "type": "STRING", - "value": "\"" } ] } }, + "_format_token": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[+-]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#x" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9a-fA-F]" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#b" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-1]" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "[0-9]" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]" + } + } + ] + } + ] + } + ] + } + } + }, + "named": true, + "value": "num_lit" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "." + }, + "named": true, + "value": "char_lit" + } + ] + } + ] + }, + "format_prefix_parameters": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "v" + }, + { + "type": "STRING", + "value": "V" + }, + { + "type": "STRING", + "value": "#" + } + ] + }, + "format_modifiers": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_format_token" + }, + { + "type": "STRING", + "value": "," + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "@" + }, + { + "type": "STRING", + "value": "@:" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "STRING", + "value": ":@" + } + ] + } + ] + }, + "format_directive_type": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "repetitions", + "content": { + "type": "SYMBOL", + "name": "_format_token" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "~" + }, + { + "type": "STRING", + "value": "%" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "STRING", + "value": "|" + } + ] + } + ] + }, + { + "type": "PATTERN", + "value": "[cC]" + }, + { + "type": "PATTERN", + "value": "\\^" + }, + { + "type": "STRING", + "value": "\n" + }, + { + "type": "STRING", + "value": "\r" + }, + { + "type": "PATTERN", + "value": "[pP]" + }, + { + "type": "PATTERN", + "value": "[iI]" + }, + { + "type": "PATTERN", + "value": "[wW]" + }, + { + "type": "PATTERN", + "value": "[aA]" + }, + { + "type": "STRING", + "value": "_" + }, + { + "type": "PATTERN", + "value": "[()]" + }, + { + "type": "PATTERN", + "value": "[{}]" + }, + { + "type": "PATTERN", + "value": "[\\[\\]]" + }, + { + "type": "PATTERN", + "value": "[<>]" + }, + { + "type": "STRING", + "value": ";" + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "numberOfArgs", + "content": { + "type": "SYMBOL", + "name": "_format_token" + } + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "STRING", + "value": "?" + }, + { + "type": "STRING", + "value": "Newline" + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_format_token" + }, + { + "type": "STRING", + "value": "," + } + ] + } + }, + { + "type": "PATTERN", + "value": "[$rRbBdDgGxXeEoOsStTfF]" + } + ] + } + ] + }, + "format_specifier": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "~" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "format_prefix_parameters" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "format_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PREC", + "value": 5, + "content": { + "type": "SYMBOL", + "name": "format_directive_type" + } + } + ] + } + }, + "str_lit": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^\\\\~\"]+" + } + } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "\\\\." + } + ] + } + }, + { + "type": "SYMBOL", + "name": "format_specifier" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "~" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, "char_lit": { "type": "TOKEN", "content": { @@ -661,7 +1006,7 @@ "precedences": [], "externals": [], "inline": [ - "_kwd_unqualified", + "ReferenceError", "_sym_unqualified" ], "supertypes": [] diff --git a/third-party/tree-sitter/tree-sitter-opengoal/node-types.json b/third-party/tree-sitter/tree-sitter-opengoal/node-types.json index ec651ce718..39bb78c10d 100644 --- a/third-party/tree-sitter/tree-sitter-opengoal/node-types.json +++ b/third-party/tree-sitter/tree-sitter-opengoal/node-types.json @@ -1,33 +1,105 @@ [ { - "type": "comment_multiline", - "named": true, - "fields": {} - }, - { - "type": "kwd_lit", + "type": "format_directive_type", "named": true, "fields": { - "marker": { - "multiple": false, - "required": true, + "numberOfArgs": { + "multiple": true, + "required": false, "types": [ { - "type": ":", + "type": "'", "named": false + }, + { + "type": "char_lit", + "named": true + }, + { + "type": "num_lit", + "named": true } ] }, - "name": { - "multiple": false, - "required": true, + "repetitions": { + "multiple": true, + "required": false, "types": [ { - "type": "kwd_name", + "type": "'", + "named": false + }, + { + "type": "char_lit", + "named": true + }, + { + "type": "num_lit", "named": true } ] } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "char_lit", + "named": true + }, + { + "type": "num_lit", + "named": true + } + ] + } + }, + { + "type": "format_modifiers", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "char_lit", + "named": true + }, + { + "type": "num_lit", + "named": true + } + ] + } + }, + { + "type": "format_prefix_parameters", + "named": true, + "fields": {} + }, + { + "type": "format_specifier", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "format_directive_type", + "named": true + }, + { + "type": "format_modifiers", + "named": true + }, + { + "type": "format_prefix_parameters", + "named": true + } + ] } }, { @@ -114,16 +186,21 @@ "required": false, "types": [ { - "type": "comment", + "type": "block_comment", "named": true }, { - "type": "comment_multiline", + "type": "comment", "named": true } ] } }, + { + "type": "num_lit", + "named": true, + "fields": {} + }, { "type": "quasi_quoting_lit", "named": true, @@ -198,11 +275,11 @@ "required": false, "types": [ { - "type": "comment", + "type": "block_comment", "named": true }, { - "type": "comment_multiline", + "type": "comment", "named": true } ] @@ -282,11 +359,11 @@ "required": false, "types": [ { - "type": "comment", + "type": "block_comment", "named": true }, { - "type": "comment_multiline", + "type": "comment", "named": true } ] @@ -300,6 +377,10 @@ "multiple": true, "required": false, "types": [ + { + "type": "block_comment", + "named": true + }, { "type": "bool_lit", "named": true @@ -312,10 +393,6 @@ "type": "comment", "named": true }, - { - "type": "comment_multiline", - "named": true - }, { "type": "kwd_lit", "named": true @@ -359,6 +436,21 @@ ] } }, + { + "type": "str_lit", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "format_specifier", + "named": true + } + ] + } + }, { "type": "sym_lit", "named": true, @@ -449,11 +541,11 @@ "required": false, "types": [ { - "type": "comment", + "type": "block_comment", "named": true }, { - "type": "comment_multiline", + "type": "comment", "named": true } ] @@ -533,18 +625,38 @@ "required": false, "types": [ { - "type": "comment", + "type": "block_comment", "named": true }, { - "type": "comment_multiline", + "type": "comment", "named": true } ] } }, { - "type": "#|", + "type": "\n", + "named": false + }, + { + "type": "\r", + "named": false + }, + { + "type": "\"", + "named": false + }, + { + "type": "#", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "&", "named": false }, { @@ -559,6 +671,10 @@ "type": ")", "named": false }, + { + "type": "*", + "named": false + }, { "type": ",", "named": false @@ -571,10 +687,46 @@ "type": ":", "named": false }, + { + "type": ":@", + "named": false + }, + { + "type": ";", + "named": false + }, + { + "type": "?", + "named": false + }, + { + "type": "@", + "named": false + }, + { + "type": "@:", + "named": false + }, + { + "type": "Newline", + "named": false + }, + { + "type": "V", + "named": false + }, + { + "type": "_", + "named": false + }, { "type": "`", "named": false }, + { + "type": "block_comment", + "named": true + }, { "type": "bool_lit", "named": true @@ -588,27 +740,27 @@ "named": true }, { - "type": "kwd_name", + "type": "kwd_lit", "named": true }, { "type": "null_lit", "named": true }, - { - "type": "num_lit", - "named": true - }, - { - "type": "str_lit", - "named": true - }, { "type": "sym_name", "named": true }, { - "type": "|#", + "type": "v", + "named": false + }, + { + "type": "|", + "named": false + }, + { + "type": "~", "named": false } ] \ No newline at end of file diff --git a/third-party/tree-sitter/tree-sitter-opengoal/parser.c b/third-party/tree-sitter/tree-sitter-opengoal/parser.c index 1d9eb7880c..a36a65454e 100644 --- a/third-party/tree-sitter/tree-sitter-opengoal/parser.c +++ b/third-party/tree-sitter/tree-sitter-opengoal/parser.c @@ -6,73 +6,132 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 37 -#define LARGE_STATE_COUNT 15 -#define SYMBOL_COUNT 41 +#define STATE_COUNT 60 +#define LARGE_STATE_COUNT 4 +#define SYMBOL_COUNT 72 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 24 +#define TOKEN_COUNT 50 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 5 -#define MAX_ALIAS_SEQUENCE_LENGTH 3 -#define PRODUCTION_ID_COUNT 10 +#define FIELD_COUNT 7 +#define MAX_ALIAS_SEQUENCE_LENGTH 4 +#define PRODUCTION_ID_COUNT 12 enum { sym__ws = 1, sym_comment = 2, - anon_sym_POUND_PIPE = 3, - aux_sym_comment_multiline_token1 = 4, - aux_sym_comment_multiline_token2 = 5, - aux_sym_comment_multiline_token3 = 6, - aux_sym_comment_multiline_token4 = 7, - anon_sym_PIPE_POUND = 8, - sym_num_lit = 9, - aux_sym__kwd_unqualified_token1 = 10, - anon_sym_COLON = 11, - sym_str_lit = 12, - sym_char_lit = 13, - sym_null_lit = 14, - sym_bool_lit = 15, - anon_sym_SLASH = 16, - aux_sym__sym_unqualified_token1 = 17, - anon_sym_LPAREN = 18, - anon_sym_RPAREN = 19, - anon_sym_SQUOTE = 20, - anon_sym_BQUOTE = 21, - anon_sym_COMMA_AT = 22, - anon_sym_COMMA = 23, - sym_source = 24, - sym__gap = 25, - sym_comment_multiline = 26, - sym__form = 27, - sym_kwd_lit = 28, - sym__kwd_marker = 29, - sym_sym_lit = 30, - sym_list_lit = 31, - sym__bare_list_lit = 32, - sym_quoting_lit = 33, - sym_quasi_quoting_lit = 34, - sym_unquote_splicing_lit = 35, - sym_unquoting_lit = 36, - aux_sym_source_repeat1 = 37, - aux_sym_comment_multiline_repeat1 = 38, - aux_sym__bare_list_lit_repeat1 = 39, - aux_sym_quoting_lit_repeat1 = 40, + sym_block_comment = 3, + aux_sym_num_lit_token1 = 4, + sym_kwd_lit = 5, + anon_sym_SQUOTE = 6, + aux_sym__format_token_token1 = 7, + anon_sym_v = 8, + anon_sym_V = 9, + anon_sym_POUND = 10, + anon_sym_COMMA = 11, + anon_sym_AT = 12, + anon_sym_AT_COLON = 13, + anon_sym_COLON = 14, + anon_sym_COLON_AT = 15, + anon_sym_TILDE = 16, + anon_sym_PERCENT = 17, + anon_sym_AMP = 18, + anon_sym_PIPE = 19, + aux_sym_format_directive_type_token1 = 20, + aux_sym_format_directive_type_token2 = 21, + anon_sym_LF = 22, + anon_sym_CR = 23, + aux_sym_format_directive_type_token3 = 24, + aux_sym_format_directive_type_token4 = 25, + aux_sym_format_directive_type_token5 = 26, + aux_sym_format_directive_type_token6 = 27, + anon_sym__ = 28, + aux_sym_format_directive_type_token7 = 29, + aux_sym_format_directive_type_token8 = 30, + aux_sym_format_directive_type_token9 = 31, + aux_sym_format_directive_type_token10 = 32, + anon_sym_SEMI = 33, + anon_sym_STAR = 34, + anon_sym_QMARK = 35, + anon_sym_Newline = 36, + aux_sym_format_directive_type_token11 = 37, + anon_sym_DQUOTE = 38, + aux_sym_str_lit_token1 = 39, + aux_sym_str_lit_token2 = 40, + sym_char_lit = 41, + sym_null_lit = 42, + sym_bool_lit = 43, + anon_sym_SLASH = 44, + aux_sym__sym_unqualified_token1 = 45, + anon_sym_LPAREN = 46, + anon_sym_RPAREN = 47, + anon_sym_BQUOTE = 48, + anon_sym_COMMA_AT = 49, + sym_source = 50, + sym__gap = 51, + sym__form = 52, + sym_num_lit = 53, + sym__format_token = 54, + sym_format_prefix_parameters = 55, + sym_format_modifiers = 56, + sym_format_directive_type = 57, + sym_format_specifier = 58, + sym_str_lit = 59, + sym_sym_lit = 60, + sym_list_lit = 61, + sym__bare_list_lit = 62, + sym_quoting_lit = 63, + sym_quasi_quoting_lit = 64, + sym_unquote_splicing_lit = 65, + sym_unquoting_lit = 66, + aux_sym_source_repeat1 = 67, + aux_sym_format_modifiers_repeat1 = 68, + aux_sym_str_lit_repeat1 = 69, + aux_sym__bare_list_lit_repeat1 = 70, + aux_sym_quoting_lit_repeat1 = 71, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym__ws] = "_ws", [sym_comment] = "comment", - [anon_sym_POUND_PIPE] = "#|", - [aux_sym_comment_multiline_token1] = "comment_multiline_token1", - [aux_sym_comment_multiline_token2] = "comment_multiline_token2", - [aux_sym_comment_multiline_token3] = "comment_multiline_token3", - [aux_sym_comment_multiline_token4] = "comment_multiline_token4", - [anon_sym_PIPE_POUND] = "|#", - [sym_num_lit] = "num_lit", - [aux_sym__kwd_unqualified_token1] = "kwd_name", + [sym_block_comment] = "block_comment", + [aux_sym_num_lit_token1] = "num_lit_token1", + [sym_kwd_lit] = "kwd_lit", + [anon_sym_SQUOTE] = "'", + [aux_sym__format_token_token1] = "char_lit", + [anon_sym_v] = "v", + [anon_sym_V] = "V", + [anon_sym_POUND] = "#", + [anon_sym_COMMA] = ",", + [anon_sym_AT] = "@", + [anon_sym_AT_COLON] = "@:", [anon_sym_COLON] = ":", - [sym_str_lit] = "str_lit", + [anon_sym_COLON_AT] = ":@", + [anon_sym_TILDE] = "~", + [anon_sym_PERCENT] = "%", + [anon_sym_AMP] = "&", + [anon_sym_PIPE] = "|", + [aux_sym_format_directive_type_token1] = "format_directive_type_token1", + [aux_sym_format_directive_type_token2] = "format_directive_type_token2", + [anon_sym_LF] = "\n", + [anon_sym_CR] = "\r", + [aux_sym_format_directive_type_token3] = "format_directive_type_token3", + [aux_sym_format_directive_type_token4] = "format_directive_type_token4", + [aux_sym_format_directive_type_token5] = "format_directive_type_token5", + [aux_sym_format_directive_type_token6] = "format_directive_type_token6", + [anon_sym__] = "_", + [aux_sym_format_directive_type_token7] = "format_directive_type_token7", + [aux_sym_format_directive_type_token8] = "format_directive_type_token8", + [aux_sym_format_directive_type_token9] = "format_directive_type_token9", + [aux_sym_format_directive_type_token10] = "format_directive_type_token10", + [anon_sym_SEMI] = ";", + [anon_sym_STAR] = "*", + [anon_sym_QMARK] = "\?", + [anon_sym_Newline] = "Newline", + [aux_sym_format_directive_type_token11] = "format_directive_type_token11", + [anon_sym_DQUOTE] = "\"", + [aux_sym_str_lit_token1] = "str_lit_token1", + [aux_sym_str_lit_token2] = "str_lit_token2", [sym_char_lit] = "char_lit", [sym_null_lit] = "null_lit", [sym_bool_lit] = "bool_lit", @@ -80,16 +139,18 @@ static const char * const ts_symbol_names[] = { [aux_sym__sym_unqualified_token1] = "sym_name", [anon_sym_LPAREN] = "(", [anon_sym_RPAREN] = ")", - [anon_sym_SQUOTE] = "'", [anon_sym_BQUOTE] = "`", [anon_sym_COMMA_AT] = ",@", - [anon_sym_COMMA] = ",", [sym_source] = "source", [sym__gap] = "_gap", - [sym_comment_multiline] = "comment_multiline", [sym__form] = "_form", - [sym_kwd_lit] = "kwd_lit", - [sym__kwd_marker] = "_kwd_marker", + [sym_num_lit] = "num_lit", + [sym__format_token] = "_format_token", + [sym_format_prefix_parameters] = "format_prefix_parameters", + [sym_format_modifiers] = "format_modifiers", + [sym_format_directive_type] = "format_directive_type", + [sym_format_specifier] = "format_specifier", + [sym_str_lit] = "str_lit", [sym_sym_lit] = "sym_lit", [sym_list_lit] = "list_lit", [sym__bare_list_lit] = "_bare_list_lit", @@ -98,7 +159,8 @@ static const char * const ts_symbol_names[] = { [sym_unquote_splicing_lit] = "unquote_splicing_lit", [sym_unquoting_lit] = "unquoting_lit", [aux_sym_source_repeat1] = "source_repeat1", - [aux_sym_comment_multiline_repeat1] = "comment_multiline_repeat1", + [aux_sym_format_modifiers_repeat1] = "format_modifiers_repeat1", + [aux_sym_str_lit_repeat1] = "str_lit_repeat1", [aux_sym__bare_list_lit_repeat1] = "_bare_list_lit_repeat1", [aux_sym_quoting_lit_repeat1] = "quoting_lit_repeat1", }; @@ -107,16 +169,44 @@ static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym__ws] = sym__ws, [sym_comment] = sym_comment, - [anon_sym_POUND_PIPE] = anon_sym_POUND_PIPE, - [aux_sym_comment_multiline_token1] = aux_sym_comment_multiline_token1, - [aux_sym_comment_multiline_token2] = aux_sym_comment_multiline_token2, - [aux_sym_comment_multiline_token3] = aux_sym_comment_multiline_token3, - [aux_sym_comment_multiline_token4] = aux_sym_comment_multiline_token4, - [anon_sym_PIPE_POUND] = anon_sym_PIPE_POUND, - [sym_num_lit] = sym_num_lit, - [aux_sym__kwd_unqualified_token1] = aux_sym__kwd_unqualified_token1, + [sym_block_comment] = sym_block_comment, + [aux_sym_num_lit_token1] = aux_sym_num_lit_token1, + [sym_kwd_lit] = sym_kwd_lit, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, + [aux_sym__format_token_token1] = sym_char_lit, + [anon_sym_v] = anon_sym_v, + [anon_sym_V] = anon_sym_V, + [anon_sym_POUND] = anon_sym_POUND, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_AT] = anon_sym_AT, + [anon_sym_AT_COLON] = anon_sym_AT_COLON, [anon_sym_COLON] = anon_sym_COLON, - [sym_str_lit] = sym_str_lit, + [anon_sym_COLON_AT] = anon_sym_COLON_AT, + [anon_sym_TILDE] = anon_sym_TILDE, + [anon_sym_PERCENT] = anon_sym_PERCENT, + [anon_sym_AMP] = anon_sym_AMP, + [anon_sym_PIPE] = anon_sym_PIPE, + [aux_sym_format_directive_type_token1] = aux_sym_format_directive_type_token1, + [aux_sym_format_directive_type_token2] = aux_sym_format_directive_type_token2, + [anon_sym_LF] = anon_sym_LF, + [anon_sym_CR] = anon_sym_CR, + [aux_sym_format_directive_type_token3] = aux_sym_format_directive_type_token3, + [aux_sym_format_directive_type_token4] = aux_sym_format_directive_type_token4, + [aux_sym_format_directive_type_token5] = aux_sym_format_directive_type_token5, + [aux_sym_format_directive_type_token6] = aux_sym_format_directive_type_token6, + [anon_sym__] = anon_sym__, + [aux_sym_format_directive_type_token7] = aux_sym_format_directive_type_token7, + [aux_sym_format_directive_type_token8] = aux_sym_format_directive_type_token8, + [aux_sym_format_directive_type_token9] = aux_sym_format_directive_type_token9, + [aux_sym_format_directive_type_token10] = aux_sym_format_directive_type_token10, + [anon_sym_SEMI] = anon_sym_SEMI, + [anon_sym_STAR] = anon_sym_STAR, + [anon_sym_QMARK] = anon_sym_QMARK, + [anon_sym_Newline] = anon_sym_Newline, + [aux_sym_format_directive_type_token11] = aux_sym_format_directive_type_token11, + [anon_sym_DQUOTE] = anon_sym_DQUOTE, + [aux_sym_str_lit_token1] = aux_sym_str_lit_token1, + [aux_sym_str_lit_token2] = aux_sym_str_lit_token2, [sym_char_lit] = sym_char_lit, [sym_null_lit] = sym_null_lit, [sym_bool_lit] = sym_bool_lit, @@ -124,16 +214,18 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym__sym_unqualified_token1] = anon_sym_SLASH, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, - [anon_sym_SQUOTE] = anon_sym_SQUOTE, [anon_sym_BQUOTE] = anon_sym_BQUOTE, [anon_sym_COMMA_AT] = anon_sym_COMMA_AT, - [anon_sym_COMMA] = anon_sym_COMMA, [sym_source] = sym_source, [sym__gap] = sym__gap, - [sym_comment_multiline] = sym_comment_multiline, [sym__form] = sym__form, - [sym_kwd_lit] = sym_kwd_lit, - [sym__kwd_marker] = sym__kwd_marker, + [sym_num_lit] = sym_num_lit, + [sym__format_token] = sym__format_token, + [sym_format_prefix_parameters] = sym_format_prefix_parameters, + [sym_format_modifiers] = sym_format_modifiers, + [sym_format_directive_type] = sym_format_directive_type, + [sym_format_specifier] = sym_format_specifier, + [sym_str_lit] = sym_str_lit, [sym_sym_lit] = sym_sym_lit, [sym_list_lit] = sym_list_lit, [sym__bare_list_lit] = sym__bare_list_lit, @@ -142,7 +234,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_unquote_splicing_lit] = sym_unquote_splicing_lit, [sym_unquoting_lit] = sym_unquoting_lit, [aux_sym_source_repeat1] = aux_sym_source_repeat1, - [aux_sym_comment_multiline_repeat1] = aux_sym_comment_multiline_repeat1, + [aux_sym_format_modifiers_repeat1] = aux_sym_format_modifiers_repeat1, + [aux_sym_str_lit_repeat1] = aux_sym_str_lit_repeat1, [aux_sym__bare_list_lit_repeat1] = aux_sym__bare_list_lit_repeat1, [aux_sym_quoting_lit_repeat1] = aux_sym_quoting_lit_repeat1, }; @@ -160,45 +253,157 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_POUND_PIPE] = { - .visible = true, - .named = false, - }, - [aux_sym_comment_multiline_token1] = { - .visible = false, - .named = false, - }, - [aux_sym_comment_multiline_token2] = { - .visible = false, - .named = false, - }, - [aux_sym_comment_multiline_token3] = { - .visible = false, - .named = false, - }, - [aux_sym_comment_multiline_token4] = { - .visible = false, - .named = false, - }, - [anon_sym_PIPE_POUND] = { - .visible = true, - .named = false, - }, - [sym_num_lit] = { + [sym_block_comment] = { .visible = true, .named = true, }, - [aux_sym__kwd_unqualified_token1] = { + [aux_sym_num_lit_token1] = { + .visible = false, + .named = false, + }, + [sym_kwd_lit] = { .visible = true, .named = true, }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym__format_token_token1] = { + .visible = true, + .named = true, + }, + [anon_sym_v] = { + .visible = true, + .named = false, + }, + [anon_sym_V] = { + .visible = true, + .named = false, + }, + [anon_sym_POUND] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_AT] = { + .visible = true, + .named = false, + }, + [anon_sym_AT_COLON] = { + .visible = true, + .named = false, + }, [anon_sym_COLON] = { .visible = true, .named = false, }, - [sym_str_lit] = { + [anon_sym_COLON_AT] = { .visible = true, - .named = true, + .named = false, + }, + [anon_sym_TILDE] = { + .visible = true, + .named = false, + }, + [anon_sym_PERCENT] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP] = { + .visible = true, + .named = false, + }, + [anon_sym_PIPE] = { + .visible = true, + .named = false, + }, + [aux_sym_format_directive_type_token1] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token2] = { + .visible = false, + .named = false, + }, + [anon_sym_LF] = { + .visible = true, + .named = false, + }, + [anon_sym_CR] = { + .visible = true, + .named = false, + }, + [aux_sym_format_directive_type_token3] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token4] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token5] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token6] = { + .visible = false, + .named = false, + }, + [anon_sym__] = { + .visible = true, + .named = false, + }, + [aux_sym_format_directive_type_token7] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token8] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token9] = { + .visible = false, + .named = false, + }, + [aux_sym_format_directive_type_token10] = { + .visible = false, + .named = false, + }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, + [anon_sym_QMARK] = { + .visible = true, + .named = false, + }, + [anon_sym_Newline] = { + .visible = true, + .named = false, + }, + [aux_sym_format_directive_type_token11] = { + .visible = false, + .named = false, + }, + [anon_sym_DQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym_str_lit_token1] = { + .visible = false, + .named = false, + }, + [aux_sym_str_lit_token2] = { + .visible = false, + .named = false, }, [sym_char_lit] = { .visible = true, @@ -228,10 +433,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_SQUOTE] = { - .visible = true, - .named = false, - }, [anon_sym_BQUOTE] = { .visible = true, .named = false, @@ -240,10 +441,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { - .visible = true, - .named = false, - }, [sym_source] = { .visible = true, .named = true, @@ -252,22 +449,38 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [sym_comment_multiline] = { - .visible = true, - .named = true, - }, [sym__form] = { .visible = false, .named = true, }, - [sym_kwd_lit] = { + [sym_num_lit] = { .visible = true, .named = true, }, - [sym__kwd_marker] = { + [sym__format_token] = { .visible = false, .named = true, }, + [sym_format_prefix_parameters] = { + .visible = true, + .named = true, + }, + [sym_format_modifiers] = { + .visible = true, + .named = true, + }, + [sym_format_directive_type] = { + .visible = true, + .named = true, + }, + [sym_format_specifier] = { + .visible = true, + .named = true, + }, + [sym_str_lit] = { + .visible = true, + .named = true, + }, [sym_sym_lit] = { .visible = true, .named = true, @@ -300,7 +513,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_comment_multiline_repeat1] = { + [aux_sym_format_modifiers_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_str_lit_repeat1] = { .visible = false, .named = false, }, @@ -318,8 +535,10 @@ enum { field_close = 1, field_marker = 2, field_name = 3, - field_open = 4, - field_value = 5, + field_numberOfArgs = 4, + field_open = 5, + field_repetitions = 6, + field_value = 7, }; static const char * const ts_field_names[] = { @@ -327,7 +546,9 @@ static const char * const ts_field_names[] = { [field_close] = "close", [field_marker] = "marker", [field_name] = "name", + [field_numberOfArgs] = "numberOfArgs", [field_open] = "open", + [field_repetitions] = "repetitions", [field_value] = "value", }; @@ -335,12 +556,13 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 3}, [3] = {.index = 4, .length = 2}, - [4] = {.index = 6, .length = 1}, - [5] = {.index = 7, .length = 2}, + [4] = {.index = 6, .length = 2}, + [5] = {.index = 8, .length = 1}, [6] = {.index = 9, .length = 2}, - [7] = {.index = 11, .length = 3}, - [8] = {.index = 14, .length = 2}, - [9] = {.index = 16, .length = 2}, + [8] = {.index = 11, .length = 3}, + [9] = {.index = 14, .length = 2}, + [10] = {.index = 16, .length = 1}, + [11] = {.index = 17, .length = 1}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -351,16 +573,16 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_open, 0, .inherited = true}, {field_value, 0, .inherited = true}, [4] = - {field_close, 1}, - {field_open, 0}, - [6] = - {field_value, 0}, - [7] = {field_marker, 0}, {field_value, 1}, + [6] = + {field_close, 1}, + {field_open, 0}, + [8] = + {field_value, 0}, [9] = {field_marker, 0}, - {field_name, 1}, + {field_value, 2}, [11] = {field_close, 2}, {field_open, 0}, @@ -369,12 +591,16 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_value, 0, .inherited = true}, {field_value, 1, .inherited = true}, [16] = - {field_marker, 0}, - {field_value, 2}, + {field_repetitions, 0}, + [17] = + {field_numberOfArgs, 0}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, + [7] = { + [0] = sym_num_lit, + }, }; static const uint16_t ts_non_terminal_alias_map[] = { @@ -419,9 +645,32 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [34] = 34, [35] = 35, [36] = 36, + [37] = 37, + [38] = 38, + [39] = 39, + [40] = 40, + [41] = 41, + [42] = 42, + [43] = 43, + [44] = 44, + [45] = 45, + [46] = 46, + [47] = 47, + [48] = 48, + [49] = 49, + [50] = 50, + [51] = 51, + [52] = 52, + [53] = 53, + [54] = 54, + [55] = 55, + [56] = 56, + [57] = 57, + [58] = 58, + [59] = 59, }; -static inline bool aux_sym__kwd_unqualified_token1_character_set_1(int32_t c) { +static inline bool sym_kwd_lit_character_set_1(int32_t c) { return (c < '[' ? (c < '(' ? (c < 28 @@ -447,7 +696,7 @@ static inline bool aux_sym__kwd_unqualified_token1_character_set_1(int32_t c) { : (c <= 8287 || c == 12288)))))); } -static inline bool aux_sym__kwd_unqualified_token1_character_set_2(int32_t c) { +static inline bool sym_kwd_lit_character_set_2(int32_t c) { return (c < '[' ? (c < '(' ? (c < 28 @@ -473,6 +722,20 @@ static inline bool aux_sym__kwd_unqualified_token1_character_set_2(int32_t c) { : (c <= 8287 || c == 12288)))))); } +static inline bool aux_sym_str_lit_token1_character_set_1(int32_t c) { + return (c < 'X' + ? (c < 'O' + ? (c < 'B' + ? c == '$' + : c <= 'G') + : (c <= 'O' || (c >= 'R' && c <= 'T'))) + : (c <= 'X' || (c < 'r' + ? (c < 'o' + ? (c >= 'b' && c <= 'g') + : c <= 'o') + : (c <= 't' || c == 'x')))); +} + static inline bool aux_sym__sym_unqualified_token1_character_set_1(int32_t c) { return (c < '[' ? (c < '(' @@ -530,117 +793,183 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(18); - if (lookahead == '"') ADVANCE(1); - if (lookahead == '#') ADVANCE(6); - if (lookahead == '\'') ADVANCE(54); - if (lookahead == '(') ADVANCE(52); - if (lookahead == ')') ADVANCE(53); - if (lookahead == ',') ADVANCE(57); - if (lookahead == '/') ADVANCE(43); - if (lookahead == ':') ADVANCE(36); - if (lookahead == ';') ADVANCE(22); - if (lookahead == '`') ADVANCE(55); - if (lookahead == 'n') ADVANCE(10); - if (lookahead == '|') ADVANCE(2); - if (lookahead == '\n' || - lookahead == '\r') ADVANCE(19); - if (('+' <= lookahead && lookahead <= '-')) ADVANCE(4); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(31); - if (('\t' <= lookahead && lookahead <= '\f') || - (28 <= lookahead && lookahead <= ' ') || - lookahead == 5760 || - (8192 <= lookahead && lookahead <= 8198) || - (8200 <= lookahead && lookahead <= 8202) || - lookahead == 8232 || - lookahead == 8233 || - lookahead == 8287 || - lookahead == 12288) ADVANCE(20); + if (eof) ADVANCE(22); + if (lookahead == '\n') ADVANCE(65); + if (lookahead == '\r') ADVANCE(65); + if (lookahead == '"') ADVANCE(64); + if (lookahead == '#') ADVANCE(65); + if (lookahead == '%') ADVANCE(65); + if (lookahead == '&') ADVANCE(65); + if (lookahead == '\'') ADVANCE(65); + if (lookahead == '(') ADVANCE(65); + if (lookahead == ')') ADVANCE(65); + if (lookahead == '*') ADVANCE(65); + if (lookahead == ',') ADVANCE(65); + if (lookahead == '/') ADVANCE(65); + if (lookahead == ':') ADVANCE(65); + if (lookahead == ';') ADVANCE(65); + if (lookahead == '?') ADVANCE(65); + if (lookahead == '@') ADVANCE(65); + if (lookahead == 'V') ADVANCE(65); + if (lookahead == '\\') ADVANCE(32); + if (lookahead == '^') ADVANCE(65); + if (lookahead == '_') ADVANCE(65); + if (lookahead == '`') ADVANCE(65); + if (lookahead == 'v') ADVANCE(65); + if (lookahead == '|') ADVANCE(65); + if (lookahead == '~') ADVANCE(42); + if (lookahead == '<' || + lookahead == '>') ADVANCE(65); + if (lookahead == 'A' || + lookahead == 'a') ADVANCE(65); + if (lookahead == 'C' || + lookahead == 'c') ADVANCE(65); + if (lookahead == 'I' || + lookahead == 'i') ADVANCE(65); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(65); + if (lookahead == 'W' || + lookahead == 'w') ADVANCE(65); + if (('[' <= lookahead && lookahead <= ']')) ADVANCE(65); + if (('{' <= lookahead && lookahead <= '}')) ADVANCE(65); + if (aux_sym_str_lit_token1_character_set_1(lookahead)) ADVANCE(65); + if (lookahead != 0) ADVANCE(65); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(37); - if (lookahead == '\\') ADVANCE(14); - if (lookahead != 0) ADVANCE(1); + if (lookahead == '\n') ADVANCE(48); + if (lookahead == '\r') ADVANCE(49); + if (lookahead == '"') ADVANCE(64); + if (lookahead == '#') ADVANCE(35); + if (lookahead == '%') ADVANCE(43); + if (lookahead == '&') ADVANCE(44); + if (lookahead == '\'') ADVANCE(31); + if (lookahead == '*') ADVANCE(60); + if (lookahead == ',') ADVANCE(36); + if (lookahead == ':') ADVANCE(40); + if (lookahead == ';') ADVANCE(59); + if (lookahead == '?') ADVANCE(61); + if (lookahead == '@') ADVANCE(38); + if (lookahead == 'N') ADVANCE(7); + if (lookahead == 'V') ADVANCE(34); + if (lookahead == '^') ADVANCE(47); + if (lookahead == '_') ADVANCE(54); + if (lookahead == 'v') ADVANCE(33); + if (lookahead == '|') ADVANCE(45); + if (lookahead == '~') ADVANCE(42); + if (('+' <= lookahead && lookahead <= '-')) ADVANCE(4); + if (lookahead == '<' || + lookahead == '>') ADVANCE(58); + if (lookahead == 'A' || + lookahead == 'a') ADVANCE(53); + if (lookahead == 'C' || + lookahead == 'c') ADVANCE(46); + if (lookahead == 'I' || + lookahead == 'i') ADVANCE(51); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(50); + if (lookahead == 'W' || + lookahead == 'w') ADVANCE(52); + if (lookahead == '[' || + lookahead == ']') ADVANCE(57); + if (('{' <= lookahead && lookahead <= '}')) ADVANCE(56); + if (lookahead == '(' || + lookahead == ')') ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26); + if (aux_sym_str_lit_token1_character_set_1(lookahead)) ADVANCE(63); END_STATE(); case 2: - if (lookahead == '#') ADVANCE(30); + if (lookahead == '"') ADVANCE(64); + if (lookahead == '\\') ADVANCE(19); + if (lookahead == '~') ADVANCE(42); + if (lookahead != 0) ADVANCE(65); END_STATE(); case 3: - if (lookahead == '#') ADVANCE(30); - if (lookahead == '|') ADVANCE(29); + if (lookahead == '#') ADVANCE(25); END_STATE(); case 4: - if (lookahead == '#') ADVANCE(7); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(31); + if (lookahead == '#') ADVANCE(6); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26); END_STATE(); case 5: - if (lookahead == '#') ADVANCE(16); - if (lookahead == '|') ADVANCE(3); - if (lookahead == '\n' || - lookahead == '\r') ADVANCE(24); - if (lookahead != 0) ADVANCE(25); + if (lookahead == '\\') ADVANCE(20); + if (lookahead == 'b') ADVANCE(14); + if (lookahead == 'f' || + lookahead == 't') ADVANCE(70); + if (lookahead == 'x') ADVANCE(15); + if (lookahead == '|') ADVANCE(17); END_STATE(); case 6: - if (lookahead == '\\') ADVANCE(15); - if (lookahead == 'b') ADVANCE(11); - if (lookahead == 'f' || - lookahead == 't') ADVANCE(42); - if (lookahead == 'x') ADVANCE(12); - if (lookahead == '|') ADVANCE(23); + if (lookahead == 'b') ADVANCE(14); + if (lookahead == 'x') ADVANCE(15); END_STATE(); case 7: - if (lookahead == 'b') ADVANCE(11); - if (lookahead == 'x') ADVANCE(12); + if (lookahead == 'e') ADVANCE(12); END_STATE(); case 8: - if (lookahead == 'e') ADVANCE(40); + if (lookahead == 'e') ADVANCE(62); END_STATE(); case 9: - if (lookahead == 'n') ADVANCE(8); + if (lookahead == 'i') ADVANCE(11); END_STATE(); case 10: - if (lookahead == 'o') ADVANCE(9); + if (lookahead == 'l') ADVANCE(9); END_STATE(); case 11: - if (lookahead == '0' || - lookahead == '1') ADVANCE(32); + if (lookahead == 'n') ADVANCE(8); END_STATE(); case 12: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(34); + if (lookahead == 'w') ADVANCE(10); END_STATE(); case 13: - if (!aux_sym__kwd_unqualified_token1_character_set_1(lookahead)) ADVANCE(35); + if (lookahead == '|') ADVANCE(3); + if (lookahead != 0 && + lookahead != '#') ADVANCE(13); END_STATE(); case 14: - if (lookahead != 0 && - lookahead != '\n') ADVANCE(1); + if (lookahead == '0' || + lookahead == '1') ADVANCE(27); END_STATE(); case 15: - if (lookahead != 0 && - lookahead != '\\') ADVANCE(38); - if (lookahead == '\\') ADVANCE(39); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(29); END_STATE(); case 16: - if (lookahead != 0 && - lookahead != '|') ADVANCE(28); + if (!sym_kwd_lit_character_set_1(lookahead)) ADVANCE(30); END_STATE(); case 17: - if (eof) ADVANCE(18); - if (lookahead == '"') ADVANCE(1); - if (lookahead == '#') ADVANCE(6); - if (lookahead == '\'') ADVANCE(54); - if (lookahead == '(') ADVANCE(52); - if (lookahead == ')') ADVANCE(53); - if (lookahead == ',') ADVANCE(57); - if (lookahead == '/') ADVANCE(43); - if (lookahead == ':') ADVANCE(36); - if (lookahead == ';') ADVANCE(22); - if (lookahead == '`') ADVANCE(55); - if (lookahead == 'n') ADVANCE(48); - if (('+' <= lookahead && lookahead <= '-')) ADVANCE(44); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(31); + if (lookahead != 0 && + lookahead != '#' && + lookahead != '|') ADVANCE(13); + END_STATE(); + case 18: + if (lookahead != 0 && + lookahead != '\n') ADVANCE(32); + END_STATE(); + case 19: + if (lookahead != 0 && + lookahead != '\n') ADVANCE(66); + END_STATE(); + case 20: + if (lookahead != 0 && + lookahead != '\\') ADVANCE(67); + if (lookahead == '\\') ADVANCE(68); + END_STATE(); + case 21: + if (eof) ADVANCE(22); + if (lookahead == '"') ADVANCE(64); + if (lookahead == '#') ADVANCE(5); + if (lookahead == '\'') ADVANCE(31); + if (lookahead == '(') ADVANCE(80); + if (lookahead == ')') ADVANCE(81); + if (lookahead == ',') ADVANCE(37); + if (lookahead == '/') ADVANCE(71); + if (lookahead == ':') ADVANCE(16); + if (lookahead == ';') ADVANCE(24); + if (lookahead == '`') ADVANCE(82); + if (lookahead == 'n') ADVANCE(76); + if (('+' <= lookahead && lookahead <= '-')) ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26); if (('\t' <= lookahead && lookahead <= '\r') || (28 <= lookahead && lookahead <= ' ') || lookahead == 5760 || @@ -649,32 +978,18 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == 8232 || lookahead == 8233 || lookahead == 8287 || - lookahead == 12288) ADVANCE(20); + lookahead == 12288) ADVANCE(23); if (lookahead != 0 && lookahead != '@' && (lookahead < '[' || '^' < lookahead) && lookahead != '{' && lookahead != '}' && - lookahead != '~') ADVANCE(51); + lookahead != '~') ADVANCE(79); END_STATE(); - case 18: + case 22: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 19: - ACCEPT_TOKEN(sym__ws); - if (lookahead == '\n' || - lookahead == '\r') ADVANCE(19); - if (('\t' <= lookahead && lookahead <= '\f') || - (28 <= lookahead && lookahead <= ' ') || - lookahead == 5760 || - (8192 <= lookahead && lookahead <= 8198) || - (8200 <= lookahead && lookahead <= 8202) || - lookahead == 8232 || - lookahead == 8233 || - lookahead == 8287 || - lookahead == 12288) ADVANCE(20); - END_STATE(); - case 20: + case 23: ACCEPT_TOKEN(sym__ws); if (('\t' <= lookahead && lookahead <= '\r') || (28 <= lookahead && lookahead <= ' ') || @@ -684,171 +999,232 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == 8232 || lookahead == 8233 || lookahead == 8287 || - lookahead == 12288) ADVANCE(20); - END_STATE(); - case 21: - ACCEPT_TOKEN(sym_comment); - END_STATE(); - case 22: - ACCEPT_TOKEN(sym_comment); - if (lookahead == '\n') ADVANCE(21); - if (lookahead != 0) ADVANCE(22); - END_STATE(); - case 23: - ACCEPT_TOKEN(anon_sym_POUND_PIPE); + lookahead == 12288) ADVANCE(23); END_STATE(); case 24: - ACCEPT_TOKEN(aux_sym_comment_multiline_token1); - if (lookahead == '|') ADVANCE(29); - if (lookahead == '\n' || - lookahead == '\r') ADVANCE(26); + ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && - lookahead != '#') ADVANCE(27); + lookahead != '\n') ADVANCE(24); END_STATE(); case 25: - ACCEPT_TOKEN(aux_sym_comment_multiline_token1); - if (lookahead == '|') ADVANCE(29); - if (lookahead != 0 && - lookahead != '#') ADVANCE(27); + ACCEPT_TOKEN(sym_block_comment); END_STATE(); case 26: - ACCEPT_TOKEN(aux_sym_comment_multiline_token1); - if (lookahead == '\n' || - lookahead == '\r') ADVANCE(26); - if (lookahead != 0 && - lookahead != '#' && - lookahead != '|') ADVANCE(27); + ACCEPT_TOKEN(aux_sym_num_lit_token1); + if (lookahead == '.') ADVANCE(28); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26); END_STATE(); case 27: - ACCEPT_TOKEN(aux_sym_comment_multiline_token1); - if (lookahead != 0 && - lookahead != '#' && - lookahead != '|') ADVANCE(27); + ACCEPT_TOKEN(aux_sym_num_lit_token1); + if (lookahead == '0' || + lookahead == '1') ADVANCE(27); END_STATE(); case 28: - ACCEPT_TOKEN(aux_sym_comment_multiline_token2); + ACCEPT_TOKEN(aux_sym_num_lit_token1); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(28); END_STATE(); case 29: - ACCEPT_TOKEN(aux_sym_comment_multiline_token3); - END_STATE(); - case 30: - ACCEPT_TOKEN(anon_sym_PIPE_POUND); - END_STATE(); - case 31: - ACCEPT_TOKEN(sym_num_lit); - if (lookahead == '.') ADVANCE(33); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(31); - END_STATE(); - case 32: - ACCEPT_TOKEN(sym_num_lit); - if (lookahead == '0' || - lookahead == '1') ADVANCE(32); - END_STATE(); - case 33: - ACCEPT_TOKEN(sym_num_lit); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(33); - END_STATE(); - case 34: - ACCEPT_TOKEN(sym_num_lit); + ACCEPT_TOKEN(aux_sym_num_lit_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(34); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(29); + END_STATE(); + case 30: + ACCEPT_TOKEN(sym_kwd_lit); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(30); + END_STATE(); + case 31: + ACCEPT_TOKEN(anon_sym_SQUOTE); + END_STATE(); + case 32: + ACCEPT_TOKEN(aux_sym__format_token_token1); + END_STATE(); + case 33: + ACCEPT_TOKEN(anon_sym_v); + END_STATE(); + case 34: + ACCEPT_TOKEN(anon_sym_V); END_STATE(); case 35: - ACCEPT_TOKEN(aux_sym__kwd_unqualified_token1); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(35); + ACCEPT_TOKEN(anon_sym_POUND); + if (lookahead == 'b') ADVANCE(14); + if (lookahead == 'x') ADVANCE(15); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 37: - ACCEPT_TOKEN(sym_str_lit); + ACCEPT_TOKEN(anon_sym_COMMA); + if (lookahead == '@') ADVANCE(83); END_STATE(); case 38: - ACCEPT_TOKEN(sym_char_lit); + ACCEPT_TOKEN(anon_sym_AT); + if (lookahead == ':') ADVANCE(39); END_STATE(); case 39: + ACCEPT_TOKEN(anon_sym_AT_COLON); + END_STATE(); + case 40: + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == '@') ADVANCE(41); + END_STATE(); + case 41: + ACCEPT_TOKEN(anon_sym_COLON_AT); + END_STATE(); + case 42: + ACCEPT_TOKEN(anon_sym_TILDE); + END_STATE(); + case 43: + ACCEPT_TOKEN(anon_sym_PERCENT); + END_STATE(); + case 44: + ACCEPT_TOKEN(anon_sym_AMP); + END_STATE(); + case 45: + ACCEPT_TOKEN(anon_sym_PIPE); + END_STATE(); + case 46: + ACCEPT_TOKEN(aux_sym_format_directive_type_token1); + END_STATE(); + case 47: + ACCEPT_TOKEN(aux_sym_format_directive_type_token2); + END_STATE(); + case 48: + ACCEPT_TOKEN(anon_sym_LF); + END_STATE(); + case 49: + ACCEPT_TOKEN(anon_sym_CR); + END_STATE(); + case 50: + ACCEPT_TOKEN(aux_sym_format_directive_type_token3); + END_STATE(); + case 51: + ACCEPT_TOKEN(aux_sym_format_directive_type_token4); + END_STATE(); + case 52: + ACCEPT_TOKEN(aux_sym_format_directive_type_token5); + END_STATE(); + case 53: + ACCEPT_TOKEN(aux_sym_format_directive_type_token6); + END_STATE(); + case 54: + ACCEPT_TOKEN(anon_sym__); + END_STATE(); + case 55: + ACCEPT_TOKEN(aux_sym_format_directive_type_token7); + END_STATE(); + case 56: + ACCEPT_TOKEN(aux_sym_format_directive_type_token8); + END_STATE(); + case 57: + ACCEPT_TOKEN(aux_sym_format_directive_type_token9); + END_STATE(); + case 58: + ACCEPT_TOKEN(aux_sym_format_directive_type_token10); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_SEMI); + END_STATE(); + case 60: + ACCEPT_TOKEN(anon_sym_STAR); + END_STATE(); + case 61: + ACCEPT_TOKEN(anon_sym_QMARK); + END_STATE(); + case 62: + ACCEPT_TOKEN(anon_sym_Newline); + END_STATE(); + case 63: + ACCEPT_TOKEN(aux_sym_format_directive_type_token11); + END_STATE(); + case 64: + ACCEPT_TOKEN(anon_sym_DQUOTE); + END_STATE(); + case 65: + ACCEPT_TOKEN(aux_sym_str_lit_token1); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\' && + lookahead != '~') ADVANCE(65); + END_STATE(); + case 66: + ACCEPT_TOKEN(aux_sym_str_lit_token2); + END_STATE(); + case 67: + ACCEPT_TOKEN(sym_char_lit); + END_STATE(); + case 68: ACCEPT_TOKEN(sym_char_lit); if (lookahead == 'n' || lookahead == 's' || - lookahead == 't') ADVANCE(38); + lookahead == 't') ADVANCE(67); END_STATE(); - case 40: + case 69: ACCEPT_TOKEN(sym_null_lit); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 41: - ACCEPT_TOKEN(sym_null_lit); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); - END_STATE(); - case 42: + case 70: ACCEPT_TOKEN(sym_bool_lit); END_STATE(); - case 43: + case 71: ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); - case 44: + case 72: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (lookahead == '#') ADVANCE(45); - if (!aux_sym__sym_unqualified_token1_character_set_1(lookahead)) ADVANCE(51); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(31); + if (lookahead == '#') ADVANCE(73); + if (!aux_sym__sym_unqualified_token1_character_set_1(lookahead)) ADVANCE(79); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26); END_STATE(); - case 45: + case 73: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (lookahead == 'b') ADVANCE(49); - if (lookahead == 'x') ADVANCE(50); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + if (lookahead == 'b') ADVANCE(77); + if (lookahead == 'x') ADVANCE(78); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 46: + case 74: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (lookahead == 'e') ADVANCE(41); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + if (lookahead == 'e') ADVANCE(69); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 47: + case 75: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (lookahead == 'n') ADVANCE(46); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + if (lookahead == 'n') ADVANCE(74); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 48: + case 76: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (lookahead == 'o') ADVANCE(47); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + if (lookahead == 'o') ADVANCE(75); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 49: + case 77: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); if (lookahead == '0' || - lookahead == '1') ADVANCE(32); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + lookahead == '1') ADVANCE(27); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 50: + case 78: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (!aux_sym__sym_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + if (!aux_sym__sym_unqualified_token1_character_set_2(lookahead)) ADVANCE(79); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(34); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(29); END_STATE(); - case 51: + case 79: ACCEPT_TOKEN(aux_sym__sym_unqualified_token1); - if (!aux_sym__kwd_unqualified_token1_character_set_2(lookahead)) ADVANCE(51); + if (!sym_kwd_lit_character_set_2(lookahead)) ADVANCE(79); END_STATE(); - case 52: + case 80: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 53: + case 81: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 54: - ACCEPT_TOKEN(anon_sym_SQUOTE); - END_STATE(); - case 55: + case 82: ACCEPT_TOKEN(anon_sym_BQUOTE); END_STATE(); - case 56: + case 83: ACCEPT_TOKEN(anon_sym_COMMA_AT); END_STATE(); - case 57: - ACCEPT_TOKEN(anon_sym_COMMA); - if (lookahead == '@') ADVANCE(56); - END_STATE(); default: return false; } @@ -856,1053 +1232,1818 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 17}, - [2] = {.lex_state = 17}, - [3] = {.lex_state = 17}, - [4] = {.lex_state = 17}, - [5] = {.lex_state = 17}, - [6] = {.lex_state = 17}, - [7] = {.lex_state = 17}, - [8] = {.lex_state = 17}, - [9] = {.lex_state = 17}, - [10] = {.lex_state = 17}, - [11] = {.lex_state = 17}, - [12] = {.lex_state = 17}, - [13] = {.lex_state = 17}, - [14] = {.lex_state = 17}, - [15] = {.lex_state = 17}, - [16] = {.lex_state = 17}, - [17] = {.lex_state = 17}, - [18] = {.lex_state = 17}, - [19] = {.lex_state = 17}, - [20] = {.lex_state = 17}, - [21] = {.lex_state = 17}, - [22] = {.lex_state = 17}, - [23] = {.lex_state = 17}, - [24] = {.lex_state = 17}, - [25] = {.lex_state = 17}, - [26] = {.lex_state = 17}, - [27] = {.lex_state = 17}, - [28] = {.lex_state = 17}, - [29] = {.lex_state = 17}, - [30] = {.lex_state = 17}, - [31] = {.lex_state = 17}, - [32] = {.lex_state = 5}, - [33] = {.lex_state = 5}, - [34] = {.lex_state = 5}, - [35] = {.lex_state = 13}, - [36] = {.lex_state = 0}, + [1] = {.lex_state = 21}, + [2] = {.lex_state = 1}, + [3] = {.lex_state = 1}, + [4] = {.lex_state = 1}, + [5] = {.lex_state = 1}, + [6] = {.lex_state = 21}, + [7] = {.lex_state = 21}, + [8] = {.lex_state = 21}, + [9] = {.lex_state = 21}, + [10] = {.lex_state = 21}, + [11] = {.lex_state = 21}, + [12] = {.lex_state = 21}, + [13] = {.lex_state = 21}, + [14] = {.lex_state = 21}, + [15] = {.lex_state = 21}, + [16] = {.lex_state = 21}, + [17] = {.lex_state = 21}, + [18] = {.lex_state = 21}, + [19] = {.lex_state = 1}, + [20] = {.lex_state = 1}, + [21] = {.lex_state = 1}, + [22] = {.lex_state = 1}, + [23] = {.lex_state = 1}, + [24] = {.lex_state = 21}, + [25] = {.lex_state = 21}, + [26] = {.lex_state = 21}, + [27] = {.lex_state = 21}, + [28] = {.lex_state = 21}, + [29] = {.lex_state = 21}, + [30] = {.lex_state = 21}, + [31] = {.lex_state = 21}, + [32] = {.lex_state = 21}, + [33] = {.lex_state = 21}, + [34] = {.lex_state = 21}, + [35] = {.lex_state = 21}, + [36] = {.lex_state = 21}, + [37] = {.lex_state = 21}, + [38] = {.lex_state = 21}, + [39] = {.lex_state = 21}, + [40] = {.lex_state = 21}, + [41] = {.lex_state = 21}, + [42] = {.lex_state = 1}, + [43] = {.lex_state = 1}, + [44] = {.lex_state = 1}, + [45] = {.lex_state = 1}, + [46] = {.lex_state = 1}, + [47] = {.lex_state = 2}, + [48] = {.lex_state = 1}, + [49] = {.lex_state = 2}, + [50] = {.lex_state = 2}, + [51] = {.lex_state = 2}, + [52] = {.lex_state = 2}, + [53] = {.lex_state = 2}, + [54] = {.lex_state = 2}, + [55] = {.lex_state = 2}, + [56] = {.lex_state = 2}, + [57] = {.lex_state = 2}, + [58] = {.lex_state = 18}, + [59] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), - [sym__ws] = ACTIONS(1), - [sym_comment] = ACTIONS(1), - [anon_sym_POUND_PIPE] = ACTIONS(1), - [aux_sym_comment_multiline_token4] = ACTIONS(1), - [anon_sym_PIPE_POUND] = ACTIONS(1), - [sym_num_lit] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), + [aux_sym__format_token_token1] = ACTIONS(1), + [anon_sym_v] = ACTIONS(1), + [anon_sym_V] = ACTIONS(1), + [anon_sym_POUND] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_AT] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), - [sym_str_lit] = ACTIONS(1), + [anon_sym_TILDE] = ACTIONS(1), + [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_AMP] = ACTIONS(1), + [anon_sym_PIPE] = ACTIONS(1), + [aux_sym_format_directive_type_token1] = ACTIONS(1), + [aux_sym_format_directive_type_token2] = ACTIONS(1), + [anon_sym_LF] = ACTIONS(1), + [anon_sym_CR] = ACTIONS(1), + [aux_sym_format_directive_type_token3] = ACTIONS(1), + [aux_sym_format_directive_type_token4] = ACTIONS(1), + [aux_sym_format_directive_type_token5] = ACTIONS(1), + [aux_sym_format_directive_type_token6] = ACTIONS(1), + [anon_sym__] = ACTIONS(1), + [aux_sym_format_directive_type_token7] = ACTIONS(1), + [aux_sym_format_directive_type_token8] = ACTIONS(1), + [aux_sym_format_directive_type_token9] = ACTIONS(1), + [aux_sym_format_directive_type_token10] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [anon_sym_QMARK] = ACTIONS(1), + [aux_sym_format_directive_type_token11] = ACTIONS(1), + [anon_sym_DQUOTE] = ACTIONS(1), + [aux_sym_str_lit_token1] = ACTIONS(1), [sym_char_lit] = ACTIONS(1), - [sym_null_lit] = ACTIONS(1), - [sym_bool_lit] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), - [anon_sym_SQUOTE] = ACTIONS(1), [anon_sym_BQUOTE] = ACTIONS(1), - [anon_sym_COMMA_AT] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), }, [1] = { - [sym_source] = STATE(36), - [sym__gap] = STATE(6), - [sym_comment_multiline] = STATE(6), - [sym__form] = STATE(6), - [sym_kwd_lit] = STATE(6), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(6), - [sym_list_lit] = STATE(6), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(6), - [sym_quasi_quoting_lit] = STATE(6), - [sym_unquote_splicing_lit] = STATE(6), - [sym_unquoting_lit] = STATE(6), - [aux_sym_source_repeat1] = STATE(6), + [sym_source] = STATE(59), + [sym__gap] = STATE(9), + [sym__form] = STATE(9), + [sym_num_lit] = STATE(9), + [sym_str_lit] = STATE(9), + [sym_sym_lit] = STATE(9), + [sym_list_lit] = STATE(9), + [sym__bare_list_lit] = STATE(25), + [sym_quoting_lit] = STATE(9), + [sym_quasi_quoting_lit] = STATE(9), + [sym_unquote_splicing_lit] = STATE(9), + [sym_unquoting_lit] = STATE(9), + [aux_sym_source_repeat1] = STATE(9), [ts_builtin_sym_end] = ACTIONS(3), [sym__ws] = ACTIONS(5), [sym_comment] = ACTIONS(5), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(5), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(5), + [sym_block_comment] = ACTIONS(5), + [aux_sym_num_lit_token1] = ACTIONS(7), + [sym_kwd_lit] = ACTIONS(5), + [anon_sym_SQUOTE] = ACTIONS(9), + [anon_sym_COMMA] = ACTIONS(11), + [anon_sym_DQUOTE] = ACTIONS(13), [sym_char_lit] = ACTIONS(5), - [sym_null_lit] = ACTIONS(11), + [sym_null_lit] = ACTIONS(15), [sym_bool_lit] = ACTIONS(5), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), + [anon_sym_SLASH] = ACTIONS(17), + [aux_sym__sym_unqualified_token1] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_BQUOTE] = ACTIONS(23), + [anon_sym_COMMA_AT] = ACTIONS(25), }, [2] = { - [sym__gap] = STATE(3), - [sym_comment_multiline] = STATE(3), - [sym__form] = STATE(31), - [sym_kwd_lit] = STATE(31), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(31), - [sym_list_lit] = STATE(31), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(31), - [sym_quasi_quoting_lit] = STATE(31), - [sym_unquote_splicing_lit] = STATE(31), - [sym_unquoting_lit] = STATE(31), - [aux_sym__bare_list_lit_repeat1] = STATE(3), - [sym__ws] = ACTIONS(27), - [sym_comment] = ACTIONS(27), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(29), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(29), - [sym_char_lit] = ACTIONS(29), - [sym_null_lit] = ACTIONS(31), - [sym_bool_lit] = ACTIONS(29), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_RPAREN] = ACTIONS(33), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), + [sym__format_token] = STATE(44), + [sym_format_prefix_parameters] = STATE(5), + [sym_format_modifiers] = STATE(21), + [sym_format_directive_type] = STATE(51), + [aux_sym_format_modifiers_repeat1] = STATE(45), + [aux_sym_num_lit_token1] = ACTIONS(27), + [anon_sym_SQUOTE] = ACTIONS(29), + [anon_sym_v] = ACTIONS(31), + [anon_sym_V] = ACTIONS(31), + [anon_sym_POUND] = ACTIONS(33), + [anon_sym_COMMA] = ACTIONS(35), + [anon_sym_AT] = ACTIONS(37), + [anon_sym_AT_COLON] = ACTIONS(39), + [anon_sym_COLON] = ACTIONS(37), + [anon_sym_COLON_AT] = ACTIONS(39), + [anon_sym_TILDE] = ACTIONS(41), + [anon_sym_PERCENT] = ACTIONS(41), + [anon_sym_AMP] = ACTIONS(41), + [anon_sym_PIPE] = ACTIONS(41), + [aux_sym_format_directive_type_token1] = ACTIONS(41), + [aux_sym_format_directive_type_token2] = ACTIONS(41), + [anon_sym_LF] = ACTIONS(41), + [anon_sym_CR] = ACTIONS(41), + [aux_sym_format_directive_type_token3] = ACTIONS(41), + [aux_sym_format_directive_type_token4] = ACTIONS(41), + [aux_sym_format_directive_type_token5] = ACTIONS(41), + [aux_sym_format_directive_type_token6] = ACTIONS(41), + [anon_sym__] = ACTIONS(41), + [aux_sym_format_directive_type_token7] = ACTIONS(41), + [aux_sym_format_directive_type_token8] = ACTIONS(41), + [aux_sym_format_directive_type_token9] = ACTIONS(41), + [aux_sym_format_directive_type_token10] = ACTIONS(41), + [anon_sym_SEMI] = ACTIONS(41), + [anon_sym_QMARK] = ACTIONS(41), + [anon_sym_Newline] = ACTIONS(41), + [aux_sym_format_directive_type_token11] = ACTIONS(41), + [anon_sym_DQUOTE] = ACTIONS(43), }, [3] = { - [sym__gap] = STATE(3), - [sym_comment_multiline] = STATE(3), - [sym__form] = STATE(31), - [sym_kwd_lit] = STATE(31), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(31), - [sym_list_lit] = STATE(31), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(31), - [sym_quasi_quoting_lit] = STATE(31), - [sym_unquote_splicing_lit] = STATE(31), - [sym_unquoting_lit] = STATE(31), - [aux_sym__bare_list_lit_repeat1] = STATE(3), - [sym__ws] = ACTIONS(35), - [sym_comment] = ACTIONS(35), - [anon_sym_POUND_PIPE] = ACTIONS(38), - [sym_num_lit] = ACTIONS(41), - [anon_sym_COLON] = ACTIONS(44), - [sym_str_lit] = ACTIONS(41), - [sym_char_lit] = ACTIONS(41), - [sym_null_lit] = ACTIONS(47), - [sym_bool_lit] = ACTIONS(41), - [anon_sym_SLASH] = ACTIONS(50), - [aux_sym__sym_unqualified_token1] = ACTIONS(53), - [anon_sym_LPAREN] = ACTIONS(56), - [anon_sym_RPAREN] = ACTIONS(59), - [anon_sym_SQUOTE] = ACTIONS(61), - [anon_sym_BQUOTE] = ACTIONS(64), - [anon_sym_COMMA_AT] = ACTIONS(67), - [anon_sym_COMMA] = ACTIONS(70), - }, - [4] = { - [sym__gap] = STATE(2), - [sym_comment_multiline] = STATE(2), - [sym__form] = STATE(31), - [sym_kwd_lit] = STATE(31), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(31), - [sym_list_lit] = STATE(31), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(31), - [sym_quasi_quoting_lit] = STATE(31), - [sym_unquote_splicing_lit] = STATE(31), - [sym_unquoting_lit] = STATE(31), - [aux_sym__bare_list_lit_repeat1] = STATE(2), - [sym__ws] = ACTIONS(73), - [sym_comment] = ACTIONS(73), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(29), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(29), - [sym_char_lit] = ACTIONS(29), - [sym_null_lit] = ACTIONS(31), - [sym_bool_lit] = ACTIONS(29), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_RPAREN] = ACTIONS(75), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [5] = { - [sym__gap] = STATE(5), - [sym_comment_multiline] = STATE(5), - [sym__form] = STATE(5), - [sym_kwd_lit] = STATE(5), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(5), - [sym_list_lit] = STATE(5), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(5), - [sym_quasi_quoting_lit] = STATE(5), - [sym_unquote_splicing_lit] = STATE(5), - [sym_unquoting_lit] = STATE(5), - [aux_sym_source_repeat1] = STATE(5), - [ts_builtin_sym_end] = ACTIONS(77), - [sym__ws] = ACTIONS(79), - [sym_comment] = ACTIONS(79), - [anon_sym_POUND_PIPE] = ACTIONS(82), - [sym_num_lit] = ACTIONS(79), - [anon_sym_COLON] = ACTIONS(85), - [sym_str_lit] = ACTIONS(79), - [sym_char_lit] = ACTIONS(79), - [sym_null_lit] = ACTIONS(88), - [sym_bool_lit] = ACTIONS(79), - [anon_sym_SLASH] = ACTIONS(91), - [aux_sym__sym_unqualified_token1] = ACTIONS(94), - [anon_sym_LPAREN] = ACTIONS(97), - [anon_sym_SQUOTE] = ACTIONS(100), - [anon_sym_BQUOTE] = ACTIONS(103), - [anon_sym_COMMA_AT] = ACTIONS(106), - [anon_sym_COMMA] = ACTIONS(109), - }, - [6] = { - [sym__gap] = STATE(5), - [sym_comment_multiline] = STATE(5), - [sym__form] = STATE(5), - [sym_kwd_lit] = STATE(5), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(5), - [sym_list_lit] = STATE(5), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(5), - [sym_quasi_quoting_lit] = STATE(5), - [sym_unquote_splicing_lit] = STATE(5), - [sym_unquoting_lit] = STATE(5), - [aux_sym_source_repeat1] = STATE(5), - [ts_builtin_sym_end] = ACTIONS(112), - [sym__ws] = ACTIONS(114), - [sym_comment] = ACTIONS(114), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(114), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(114), - [sym_char_lit] = ACTIONS(114), - [sym_null_lit] = ACTIONS(116), - [sym_bool_lit] = ACTIONS(114), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [7] = { - [sym__gap] = STATE(14), - [sym_comment_multiline] = STATE(14), - [sym__form] = STATE(16), - [sym_kwd_lit] = STATE(16), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(16), - [sym_list_lit] = STATE(16), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(16), - [sym_quasi_quoting_lit] = STATE(16), - [sym_unquote_splicing_lit] = STATE(16), - [sym_unquoting_lit] = STATE(16), - [aux_sym_quoting_lit_repeat1] = STATE(14), - [sym__ws] = ACTIONS(118), - [sym_comment] = ACTIONS(118), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(120), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(120), - [sym_char_lit] = ACTIONS(120), - [sym_null_lit] = ACTIONS(122), - [sym_bool_lit] = ACTIONS(120), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [8] = { - [sym__gap] = STATE(13), - [sym_comment_multiline] = STATE(13), - [sym__form] = STATE(18), - [sym_kwd_lit] = STATE(18), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(18), - [sym_list_lit] = STATE(18), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(18), - [sym_quasi_quoting_lit] = STATE(18), - [sym_unquote_splicing_lit] = STATE(18), - [sym_unquoting_lit] = STATE(18), - [aux_sym_quoting_lit_repeat1] = STATE(13), - [sym__ws] = ACTIONS(124), - [sym_comment] = ACTIONS(124), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(126), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(126), - [sym_char_lit] = ACTIONS(126), - [sym_null_lit] = ACTIONS(128), - [sym_bool_lit] = ACTIONS(126), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [9] = { - [sym__gap] = STATE(12), - [sym_comment_multiline] = STATE(12), - [sym__form] = STATE(19), - [sym_kwd_lit] = STATE(19), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(19), - [sym_list_lit] = STATE(19), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(19), - [sym_quasi_quoting_lit] = STATE(19), - [sym_unquote_splicing_lit] = STATE(19), - [sym_unquoting_lit] = STATE(19), - [aux_sym_quoting_lit_repeat1] = STATE(12), - [sym__ws] = ACTIONS(130), - [sym_comment] = ACTIONS(130), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(132), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(132), - [sym_char_lit] = ACTIONS(132), - [sym_null_lit] = ACTIONS(134), - [sym_bool_lit] = ACTIONS(132), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [10] = { - [sym__gap] = STATE(11), - [sym_comment_multiline] = STATE(11), - [sym__form] = STATE(21), - [sym_kwd_lit] = STATE(21), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(21), - [sym_list_lit] = STATE(21), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(21), - [sym_quasi_quoting_lit] = STATE(21), - [sym_unquote_splicing_lit] = STATE(21), - [sym_unquoting_lit] = STATE(21), - [aux_sym_quoting_lit_repeat1] = STATE(11), - [sym__ws] = ACTIONS(136), - [sym_comment] = ACTIONS(136), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(138), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(138), - [sym_char_lit] = ACTIONS(138), - [sym_null_lit] = ACTIONS(140), - [sym_bool_lit] = ACTIONS(138), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [11] = { - [sym__gap] = STATE(15), - [sym_comment_multiline] = STATE(15), - [sym__form] = STATE(30), - [sym_kwd_lit] = STATE(30), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(30), - [sym_list_lit] = STATE(30), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(30), - [sym_quasi_quoting_lit] = STATE(30), - [sym_unquote_splicing_lit] = STATE(30), - [sym_unquoting_lit] = STATE(30), - [aux_sym_quoting_lit_repeat1] = STATE(15), - [sym__ws] = ACTIONS(142), - [sym_comment] = ACTIONS(142), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(144), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(144), - [sym_char_lit] = ACTIONS(144), - [sym_null_lit] = ACTIONS(146), - [sym_bool_lit] = ACTIONS(144), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [12] = { - [sym__gap] = STATE(15), - [sym_comment_multiline] = STATE(15), - [sym__form] = STATE(29), - [sym_kwd_lit] = STATE(29), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(29), - [sym_list_lit] = STATE(29), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(29), - [sym_quasi_quoting_lit] = STATE(29), - [sym_unquote_splicing_lit] = STATE(29), - [sym_unquoting_lit] = STATE(29), - [aux_sym_quoting_lit_repeat1] = STATE(15), - [sym__ws] = ACTIONS(142), - [sym_comment] = ACTIONS(142), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(148), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(148), - [sym_char_lit] = ACTIONS(148), - [sym_null_lit] = ACTIONS(150), - [sym_bool_lit] = ACTIONS(148), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [13] = { - [sym__gap] = STATE(15), - [sym_comment_multiline] = STATE(15), - [sym__form] = STATE(28), - [sym_kwd_lit] = STATE(28), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(28), - [sym_list_lit] = STATE(28), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(28), - [sym_quasi_quoting_lit] = STATE(28), - [sym_unquote_splicing_lit] = STATE(28), - [sym_unquoting_lit] = STATE(28), - [aux_sym_quoting_lit_repeat1] = STATE(15), - [sym__ws] = ACTIONS(142), - [sym_comment] = ACTIONS(142), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(152), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(152), - [sym_char_lit] = ACTIONS(152), - [sym_null_lit] = ACTIONS(154), - [sym_bool_lit] = ACTIONS(152), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), - }, - [14] = { - [sym__gap] = STATE(15), - [sym_comment_multiline] = STATE(15), - [sym__form] = STATE(26), - [sym_kwd_lit] = STATE(26), - [sym__kwd_marker] = STATE(35), - [sym_sym_lit] = STATE(26), - [sym_list_lit] = STATE(26), - [sym__bare_list_lit] = STATE(22), - [sym_quoting_lit] = STATE(26), - [sym_quasi_quoting_lit] = STATE(26), - [sym_unquote_splicing_lit] = STATE(26), - [sym_unquoting_lit] = STATE(26), - [aux_sym_quoting_lit_repeat1] = STATE(15), - [sym__ws] = ACTIONS(142), - [sym_comment] = ACTIONS(142), - [anon_sym_POUND_PIPE] = ACTIONS(7), - [sym_num_lit] = ACTIONS(156), - [anon_sym_COLON] = ACTIONS(9), - [sym_str_lit] = ACTIONS(156), - [sym_char_lit] = ACTIONS(156), - [sym_null_lit] = ACTIONS(158), - [sym_bool_lit] = ACTIONS(156), - [anon_sym_SLASH] = ACTIONS(13), - [aux_sym__sym_unqualified_token1] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_SQUOTE] = ACTIONS(19), - [anon_sym_BQUOTE] = ACTIONS(21), - [anon_sym_COMMA_AT] = ACTIONS(23), - [anon_sym_COMMA] = ACTIONS(25), + [sym__format_token] = STATE(44), + [sym_format_prefix_parameters] = STATE(5), + [sym_format_modifiers] = STATE(21), + [sym_format_directive_type] = STATE(51), + [aux_sym_format_modifiers_repeat1] = STATE(45), + [aux_sym_num_lit_token1] = ACTIONS(27), + [anon_sym_SQUOTE] = ACTIONS(29), + [anon_sym_v] = ACTIONS(31), + [anon_sym_V] = ACTIONS(31), + [anon_sym_POUND] = ACTIONS(33), + [anon_sym_COMMA] = ACTIONS(35), + [anon_sym_AT] = ACTIONS(37), + [anon_sym_AT_COLON] = ACTIONS(39), + [anon_sym_COLON] = ACTIONS(37), + [anon_sym_COLON_AT] = ACTIONS(39), + [anon_sym_TILDE] = ACTIONS(41), + [anon_sym_PERCENT] = ACTIONS(41), + [anon_sym_AMP] = ACTIONS(41), + [anon_sym_PIPE] = ACTIONS(41), + [aux_sym_format_directive_type_token1] = ACTIONS(41), + [aux_sym_format_directive_type_token2] = ACTIONS(41), + [anon_sym_LF] = ACTIONS(41), + [anon_sym_CR] = ACTIONS(41), + [aux_sym_format_directive_type_token3] = ACTIONS(41), + [aux_sym_format_directive_type_token4] = ACTIONS(41), + [aux_sym_format_directive_type_token5] = ACTIONS(41), + [aux_sym_format_directive_type_token6] = ACTIONS(41), + [anon_sym__] = ACTIONS(41), + [aux_sym_format_directive_type_token7] = ACTIONS(41), + [aux_sym_format_directive_type_token8] = ACTIONS(41), + [aux_sym_format_directive_type_token9] = ACTIONS(41), + [aux_sym_format_directive_type_token10] = ACTIONS(41), + [anon_sym_SEMI] = ACTIONS(41), + [anon_sym_QMARK] = ACTIONS(41), + [anon_sym_Newline] = ACTIONS(41), + [aux_sym_format_directive_type_token11] = ACTIONS(41), + [anon_sym_DQUOTE] = ACTIONS(45), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 5, - ACTIONS(163), 1, - anon_sym_POUND_PIPE, - ACTIONS(160), 2, + [0] = 13, + ACTIONS(27), 1, + aux_sym_num_lit_token1, + ACTIONS(29), 1, + anon_sym_SQUOTE, + ACTIONS(33), 1, + anon_sym_POUND, + ACTIONS(35), 1, + anon_sym_COMMA, + STATE(5), 1, + sym_format_prefix_parameters, + STATE(21), 1, + sym_format_modifiers, + STATE(44), 1, + sym__format_token, + STATE(45), 1, + aux_sym_format_modifiers_repeat1, + STATE(51), 1, + sym_format_directive_type, + ACTIONS(31), 2, + anon_sym_v, + anon_sym_V, + ACTIONS(37), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(39), 2, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + ACTIONS(41), 21, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [63] = 10, + ACTIONS(27), 1, + aux_sym_num_lit_token1, + ACTIONS(29), 1, + anon_sym_SQUOTE, + ACTIONS(35), 1, + anon_sym_COMMA, + STATE(20), 1, + sym_format_modifiers, + STATE(44), 1, + sym__format_token, + STATE(45), 1, + aux_sym_format_modifiers_repeat1, + STATE(54), 1, + sym_format_directive_type, + ACTIONS(37), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(39), 2, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + ACTIONS(41), 21, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [116] = 14, + ACTIONS(47), 1, + ts_builtin_sym_end, + ACTIONS(52), 1, + aux_sym_num_lit_token1, + ACTIONS(55), 1, + anon_sym_SQUOTE, + ACTIONS(58), 1, + anon_sym_COMMA, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(64), 1, + sym_null_lit, + ACTIONS(67), 1, + anon_sym_SLASH, + ACTIONS(70), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(73), 1, + anon_sym_LPAREN, + ACTIONS(76), 1, + anon_sym_BQUOTE, + ACTIONS(79), 1, + anon_sym_COMMA_AT, + STATE(25), 1, + sym__bare_list_lit, + ACTIONS(49), 6, sym__ws, sym_comment, - ACTIONS(168), 3, - sym_null_lit, - aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - STATE(15), 3, + sym_block_comment, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(6), 11, + sym__gap, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + aux_sym_source_repeat1, + [174] = 16, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(86), 1, + sym_null_lit, + ACTIONS(88), 1, + anon_sym_RPAREN, + STATE(25), 1, + sym__bare_list_lit, + STATE(10), 2, + sym__gap, + aux_sym__bare_list_lit_repeat1, + ACTIONS(82), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(84), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(41), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [236] = 16, + ACTIONS(93), 1, + aux_sym_num_lit_token1, + ACTIONS(99), 1, + anon_sym_SQUOTE, + ACTIONS(102), 1, + anon_sym_COMMA, + ACTIONS(105), 1, + anon_sym_DQUOTE, + ACTIONS(108), 1, + sym_null_lit, + ACTIONS(111), 1, + anon_sym_SLASH, + ACTIONS(114), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(117), 1, + anon_sym_LPAREN, + ACTIONS(120), 1, + anon_sym_RPAREN, + ACTIONS(122), 1, + anon_sym_BQUOTE, + ACTIONS(125), 1, + anon_sym_COMMA_AT, + STATE(25), 1, + sym__bare_list_lit, + STATE(8), 2, + sym__gap, + aux_sym__bare_list_lit_repeat1, + ACTIONS(90), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(96), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(41), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [298] = 14, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(128), 1, + ts_builtin_sym_end, + ACTIONS(132), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + ACTIONS(130), 6, + sym__ws, + sym_comment, + sym_block_comment, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(6), 11, + sym__gap, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + aux_sym_source_repeat1, + [356] = 16, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(86), 1, + sym_null_lit, + ACTIONS(136), 1, + anon_sym_RPAREN, + STATE(25), 1, + sym__bare_list_lit, + STATE(8), 2, + sym__gap, + aux_sym__bare_list_lit_repeat1, + ACTIONS(84), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + ACTIONS(134), 3, + sym__ws, + sym_comment, + sym_block_comment, + STATE(41), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [418] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(142), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(17), 2, sym__gap, - sym_comment_multiline, aux_sym_quoting_lit_repeat1, - ACTIONS(166), 10, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + ACTIONS(138), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(140), 3, + sym_kwd_lit, sym_char_lit, sym_bool_lit, - anon_sym_SLASH, - anon_sym_LPAREN, + STATE(38), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [477] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, anon_sym_BQUOTE, + ACTIONS(25), 1, anon_sym_COMMA_AT, - [30] = 2, + ACTIONS(148), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(18), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(144), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(146), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(36), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [536] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(154), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(29), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(150), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(152), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(37), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [595] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(158), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(29), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(150), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(156), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(39), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [654] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(164), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(14), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(160), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(162), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(26), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [713] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(170), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(13), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(166), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(168), 3, + sym_kwd_lit, + sym_char_lit, + sym_bool_lit, + STATE(27), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [772] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, + anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_BQUOTE, + ACTIONS(25), 1, + anon_sym_COMMA_AT, + ACTIONS(174), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(29), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(150), 3, + sym__ws, + sym_comment, + sym_block_comment, ACTIONS(172), 3, - sym_null_lit, - aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(170), 15, - ts_builtin_sym_end, - sym__ws, - sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_kwd_lit, sym_char_lit, sym_bool_lit, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, + STATE(28), 9, + sym__form, + sym_num_lit, + sym_str_lit, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [831] = 15, + ACTIONS(7), 1, + aux_sym_num_lit_token1, + ACTIONS(9), 1, anon_sym_SQUOTE, + ACTIONS(11), 1, + anon_sym_COMMA, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(17), 1, + anon_sym_SLASH, + ACTIONS(19), 1, + aux_sym__sym_unqualified_token1, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, anon_sym_BQUOTE, + ACTIONS(25), 1, anon_sym_COMMA_AT, - [53] = 2, + ACTIONS(178), 1, + sym_null_lit, + STATE(25), 1, + sym__bare_list_lit, + STATE(29), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(150), 3, + sym__ws, + sym_comment, + sym_block_comment, ACTIONS(176), 3, - sym_null_lit, - aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(174), 15, - ts_builtin_sym_end, - sym__ws, - sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_kwd_lit, sym_char_lit, sym_bool_lit, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_SQUOTE, - anon_sym_BQUOTE, - anon_sym_COMMA_AT, - [76] = 2, - ACTIONS(180), 3, - sym_null_lit, - aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(178), 15, - ts_builtin_sym_end, - sym__ws, - sym_comment, - anon_sym_POUND_PIPE, + STATE(24), 9, + sym__form, sym_num_lit, - anon_sym_COLON, sym_str_lit, - sym_char_lit, - sym_bool_lit, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, + sym_sym_lit, + sym_list_lit, + sym_quoting_lit, + sym_quasi_quoting_lit, + sym_unquote_splicing_lit, + sym_unquoting_lit, + [890] = 2, + ACTIONS(182), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(180), 26, + aux_sym_num_lit_token1, anon_sym_SQUOTE, - anon_sym_BQUOTE, - anon_sym_COMMA_AT, - [99] = 2, - ACTIONS(184), 3, - sym_null_lit, - aux_sym__sym_unqualified_token1, anon_sym_COMMA, - ACTIONS(182), 15, - ts_builtin_sym_end, - sym__ws, - sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, - sym_char_lit, - sym_bool_lit, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [923] = 7, + ACTIONS(27), 1, + aux_sym_num_lit_token1, + ACTIONS(29), 1, anon_sym_SQUOTE, - anon_sym_BQUOTE, - anon_sym_COMMA_AT, - [122] = 2, - ACTIONS(188), 3, - sym_null_lit, - aux_sym__sym_unqualified_token1, + ACTIONS(184), 1, anon_sym_COMMA, - ACTIONS(186), 15, - ts_builtin_sym_end, - sym__ws, - sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, - sym_char_lit, - sym_bool_lit, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, + STATE(44), 1, + sym__format_token, + STATE(48), 1, + aux_sym_format_modifiers_repeat1, + STATE(57), 1, + sym_format_directive_type, + ACTIONS(41), 21, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [965] = 7, + ACTIONS(27), 1, + aux_sym_num_lit_token1, + ACTIONS(29), 1, anon_sym_SQUOTE, - anon_sym_BQUOTE, - anon_sym_COMMA_AT, - [145] = 2, + ACTIONS(184), 1, + anon_sym_COMMA, + STATE(44), 1, + sym__format_token, + STATE(48), 1, + aux_sym_format_modifiers_repeat1, + STATE(54), 1, + sym_format_directive_type, + ACTIONS(41), 21, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [1007] = 1, + ACTIONS(186), 24, + aux_sym_num_lit_token1, + anon_sym_SQUOTE, + anon_sym_COMMA, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [1034] = 1, + ACTIONS(188), 24, + aux_sym_num_lit_token1, + anon_sym_SQUOTE, + anon_sym_COMMA, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + aux_sym_format_directive_type_token1, + aux_sym_format_directive_type_token2, + anon_sym_LF, + anon_sym_CR, + aux_sym_format_directive_type_token3, + aux_sym_format_directive_type_token4, + aux_sym_format_directive_type_token5, + aux_sym_format_directive_type_token6, + anon_sym__, + aux_sym_format_directive_type_token7, + aux_sym_format_directive_type_token8, + aux_sym_format_directive_type_token9, + aux_sym_format_directive_type_token10, + anon_sym_SEMI, + anon_sym_QMARK, + anon_sym_Newline, + aux_sym_format_directive_type_token11, + [1061] = 2, ACTIONS(192), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, ACTIONS(190), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [168] = 2, + [1084] = 2, ACTIONS(196), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, ACTIONS(194), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [191] = 2, + [1107] = 2, ACTIONS(200), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, ACTIONS(198), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [214] = 2, + [1130] = 2, ACTIONS(204), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, ACTIONS(202), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [237] = 2, + [1153] = 2, ACTIONS(208), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, ACTIONS(206), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [260] = 2, - ACTIONS(212), 3, + [1176] = 4, + STATE(29), 2, + sym__gap, + aux_sym_quoting_lit_repeat1, + ACTIONS(210), 3, + sym__ws, + sym_comment, + sym_block_comment, + ACTIONS(215), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, + ACTIONS(213), 10, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1203] = 2, + ACTIONS(219), 3, anon_sym_COMMA, - ACTIONS(210), 15, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(217), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [283] = 2, - ACTIONS(216), 3, + [1226] = 2, + ACTIONS(223), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(214), 15, + ACTIONS(221), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [306] = 2, - ACTIONS(220), 3, + [1249] = 2, + ACTIONS(227), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(218), 15, + ACTIONS(225), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [329] = 2, - ACTIONS(224), 3, + [1272] = 2, + ACTIONS(231), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(222), 15, + ACTIONS(229), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [352] = 2, - ACTIONS(228), 3, + [1295] = 2, + ACTIONS(235), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(226), 15, + ACTIONS(233), 15, ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [375] = 2, - ACTIONS(232), 3, + [1318] = 2, + ACTIONS(239), 3, + anon_sym_COMMA, sym_null_lit, aux_sym__sym_unqualified_token1, - anon_sym_COMMA, - ACTIONS(230), 14, + ACTIONS(237), 15, + ts_builtin_sym_end, sym__ws, sym_comment, - anon_sym_POUND_PIPE, - sym_num_lit, - anon_sym_COLON, - sym_str_lit, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, sym_char_lit, sym_bool_lit, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_SQUOTE, anon_sym_BQUOTE, anon_sym_COMMA_AT, - [397] = 4, - ACTIONS(238), 1, - anon_sym_PIPE_POUND, - STATE(33), 1, - aux_sym_comment_multiline_repeat1, - ACTIONS(234), 2, - aux_sym_comment_multiline_token1, - aux_sym_comment_multiline_token4, - ACTIONS(236), 2, - aux_sym_comment_multiline_token2, - aux_sym_comment_multiline_token3, - [412] = 4, - ACTIONS(244), 1, - anon_sym_PIPE_POUND, - STATE(34), 1, - aux_sym_comment_multiline_repeat1, - ACTIONS(240), 2, - aux_sym_comment_multiline_token1, - aux_sym_comment_multiline_token4, - ACTIONS(242), 2, - aux_sym_comment_multiline_token2, - aux_sym_comment_multiline_token3, - [427] = 4, - ACTIONS(252), 1, - anon_sym_PIPE_POUND, - STATE(34), 1, - aux_sym_comment_multiline_repeat1, - ACTIONS(246), 2, - aux_sym_comment_multiline_token1, - aux_sym_comment_multiline_token4, - ACTIONS(249), 2, - aux_sym_comment_multiline_token2, - aux_sym_comment_multiline_token3, - [442] = 1, - ACTIONS(254), 1, - aux_sym__kwd_unqualified_token1, - [446] = 1, - ACTIONS(256), 1, + [1341] = 2, + ACTIONS(243), 3, + anon_sym_COMMA, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(241), 15, + ts_builtin_sym_end, + sym__ws, + sym_comment, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1364] = 2, + ACTIONS(247), 3, + anon_sym_COMMA, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(245), 15, + ts_builtin_sym_end, + sym__ws, + sym_comment, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1387] = 2, + ACTIONS(251), 3, + anon_sym_COMMA, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(249), 15, + ts_builtin_sym_end, + sym__ws, + sym_comment, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1410] = 2, + ACTIONS(255), 3, + anon_sym_COMMA, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(253), 15, + ts_builtin_sym_end, + sym__ws, + sym_comment, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1433] = 2, + ACTIONS(259), 3, + anon_sym_COMMA, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(257), 15, + ts_builtin_sym_end, + sym__ws, + sym_comment, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1456] = 2, + ACTIONS(263), 3, + anon_sym_COMMA, + sym_null_lit, + aux_sym__sym_unqualified_token1, + ACTIONS(261), 14, + sym__ws, + sym_comment, + sym_block_comment, + aux_sym_num_lit_token1, + sym_kwd_lit, + anon_sym_SQUOTE, + anon_sym_DQUOTE, + sym_char_lit, + sym_bool_lit, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE, + anon_sym_COMMA_AT, + [1478] = 2, + ACTIONS(267), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(265), 11, + aux_sym_num_lit_token1, + anon_sym_SQUOTE, + anon_sym_COMMA, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + aux_sym_format_directive_type_token11, + [1496] = 2, + ACTIONS(271), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(269), 11, + aux_sym_num_lit_token1, + anon_sym_SQUOTE, + anon_sym_COMMA, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + aux_sym_format_directive_type_token11, + [1514] = 4, + ACTIONS(279), 1, + anon_sym_STAR, + ACTIONS(275), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(277), 4, + anon_sym_TILDE, + anon_sym_PERCENT, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(273), 6, + aux_sym_num_lit_token1, + anon_sym_SQUOTE, + anon_sym_COMMA, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + aux_sym_format_directive_type_token11, + [1536] = 7, + ACTIONS(27), 1, + aux_sym_num_lit_token1, + ACTIONS(29), 1, + anon_sym_SQUOTE, + ACTIONS(281), 1, + anon_sym_COMMA, + ACTIONS(287), 1, + aux_sym_format_directive_type_token11, + ACTIONS(283), 2, + anon_sym_AT, + anon_sym_COLON, + ACTIONS(285), 2, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + STATE(46), 2, + sym__format_token, + aux_sym_format_modifiers_repeat1, + [1561] = 6, + ACTIONS(289), 1, + aux_sym_num_lit_token1, + ACTIONS(292), 1, + anon_sym_SQUOTE, + ACTIONS(295), 1, + anon_sym_COMMA, + ACTIONS(298), 2, + anon_sym_AT, + anon_sym_COLON, + STATE(46), 2, + sym__format_token, + aux_sym_format_modifiers_repeat1, + ACTIONS(300), 3, + anon_sym_AT_COLON, + anon_sym_COLON_AT, + aux_sym_format_directive_type_token11, + [1584] = 4, + ACTIONS(302), 1, + anon_sym_TILDE, + ACTIONS(305), 1, + anon_sym_DQUOTE, + ACTIONS(307), 2, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + STATE(47), 2, + sym_format_specifier, + aux_sym_str_lit_repeat1, + [1599] = 5, + ACTIONS(27), 1, + aux_sym_num_lit_token1, + ACTIONS(29), 1, + anon_sym_SQUOTE, + ACTIONS(281), 1, + anon_sym_COMMA, + ACTIONS(287), 1, + aux_sym_format_directive_type_token11, + STATE(46), 2, + sym__format_token, + aux_sym_format_modifiers_repeat1, + [1616] = 4, + ACTIONS(45), 1, + anon_sym_DQUOTE, + ACTIONS(310), 1, + anon_sym_TILDE, + ACTIONS(312), 2, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + STATE(47), 2, + sym_format_specifier, + aux_sym_str_lit_repeat1, + [1631] = 4, + ACTIONS(314), 1, + anon_sym_TILDE, + ACTIONS(316), 1, + anon_sym_DQUOTE, + ACTIONS(318), 2, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + STATE(49), 2, + sym_format_specifier, + aux_sym_str_lit_repeat1, + [1646] = 1, + ACTIONS(320), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1653] = 1, + ACTIONS(322), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1660] = 1, + ACTIONS(324), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1667] = 1, + ACTIONS(326), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1674] = 1, + ACTIONS(328), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1681] = 1, + ACTIONS(330), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1688] = 1, + ACTIONS(332), 4, + anon_sym_TILDE, + anon_sym_DQUOTE, + aux_sym_str_lit_token1, + aux_sym_str_lit_token2, + [1695] = 1, + ACTIONS(334), 1, + aux_sym__format_token_token1, + [1699] = 1, + ACTIONS(336), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(15)] = 0, - [SMALL_STATE(16)] = 30, - [SMALL_STATE(17)] = 53, - [SMALL_STATE(18)] = 76, - [SMALL_STATE(19)] = 99, - [SMALL_STATE(20)] = 122, - [SMALL_STATE(21)] = 145, - [SMALL_STATE(22)] = 168, - [SMALL_STATE(23)] = 191, - [SMALL_STATE(24)] = 214, - [SMALL_STATE(25)] = 237, - [SMALL_STATE(26)] = 260, - [SMALL_STATE(27)] = 283, - [SMALL_STATE(28)] = 306, - [SMALL_STATE(29)] = 329, - [SMALL_STATE(30)] = 352, - [SMALL_STATE(31)] = 375, - [SMALL_STATE(32)] = 397, - [SMALL_STATE(33)] = 412, - [SMALL_STATE(34)] = 427, - [SMALL_STATE(35)] = 442, - [SMALL_STATE(36)] = 446, + [SMALL_STATE(4)] = 0, + [SMALL_STATE(5)] = 63, + [SMALL_STATE(6)] = 116, + [SMALL_STATE(7)] = 174, + [SMALL_STATE(8)] = 236, + [SMALL_STATE(9)] = 298, + [SMALL_STATE(10)] = 356, + [SMALL_STATE(11)] = 418, + [SMALL_STATE(12)] = 477, + [SMALL_STATE(13)] = 536, + [SMALL_STATE(14)] = 595, + [SMALL_STATE(15)] = 654, + [SMALL_STATE(16)] = 713, + [SMALL_STATE(17)] = 772, + [SMALL_STATE(18)] = 831, + [SMALL_STATE(19)] = 890, + [SMALL_STATE(20)] = 923, + [SMALL_STATE(21)] = 965, + [SMALL_STATE(22)] = 1007, + [SMALL_STATE(23)] = 1034, + [SMALL_STATE(24)] = 1061, + [SMALL_STATE(25)] = 1084, + [SMALL_STATE(26)] = 1107, + [SMALL_STATE(27)] = 1130, + [SMALL_STATE(28)] = 1153, + [SMALL_STATE(29)] = 1176, + [SMALL_STATE(30)] = 1203, + [SMALL_STATE(31)] = 1226, + [SMALL_STATE(32)] = 1249, + [SMALL_STATE(33)] = 1272, + [SMALL_STATE(34)] = 1295, + [SMALL_STATE(35)] = 1318, + [SMALL_STATE(36)] = 1341, + [SMALL_STATE(37)] = 1364, + [SMALL_STATE(38)] = 1387, + [SMALL_STATE(39)] = 1410, + [SMALL_STATE(40)] = 1433, + [SMALL_STATE(41)] = 1456, + [SMALL_STATE(42)] = 1478, + [SMALL_STATE(43)] = 1496, + [SMALL_STATE(44)] = 1514, + [SMALL_STATE(45)] = 1536, + [SMALL_STATE(46)] = 1561, + [SMALL_STATE(47)] = 1584, + [SMALL_STATE(48)] = 1599, + [SMALL_STATE(49)] = 1616, + [SMALL_STATE(50)] = 1631, + [SMALL_STATE(51)] = 1646, + [SMALL_STATE(52)] = 1653, + [SMALL_STATE(53)] = 1660, + [SMALL_STATE(54)] = 1667, + [SMALL_STATE(55)] = 1674, + [SMALL_STATE(56)] = 1681, + [SMALL_STATE(57)] = 1688, + [SMALL_STATE(58)] = 1695, + [SMALL_STATE(59)] = 1699, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [35] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(3), - [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(32), - [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(31), - [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(35), - [47] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(31), - [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(27), - [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(27), - [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(4), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), - [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(7), - [64] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(8), - [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(9), - [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 8), SHIFT_REPEAT(10), - [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), - [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(5), - [82] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(32), - [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(35), - [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(5), - [91] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(27), - [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(27), - [97] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(4), - [100] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7), - [103] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(8), - [106] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(9), - [109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(10), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), - [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [160] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), SHIFT_REPEAT(15), - [163] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), SHIFT_REPEAT(32), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoting_lit, 2, .production_id = 5), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoting_lit, 2, .production_id = 5), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__bare_list_lit, 2, .production_id = 3), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__bare_list_lit, 2, .production_id = 3), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quasi_quoting_lit, 2, .production_id = 5), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quasi_quoting_lit, 2, .production_id = 5), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquote_splicing_lit, 2, .production_id = 5), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquote_splicing_lit, 2, .production_id = 5), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_multiline, 2), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_multiline, 2), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquoting_lit, 2, .production_id = 5), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquoting_lit, 2, .production_id = 5), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(6), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(30), + [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(11), + [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(12), + [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(50), + [64] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(6), + [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(33), + [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(33), + [73] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7), + [76] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(15), + [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(16), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(8), + [93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(30), + [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(41), + [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(11), + [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(12), + [105] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(50), + [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(41), + [111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(33), + [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(33), + [117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(7), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), + [122] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(15), + [125] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 2, .production_id = 9), SHIFT_REPEAT(16), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [148] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), + [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_prefix_parameters, 1), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_prefix_parameters, 1), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_modifiers, 1), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_modifiers, 2), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquoting_lit, 3, .production_id = 6), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquoting_lit, 3, .production_id = 6), [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_lit, 1, .production_id = 2), [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_lit, 1, .production_id = 2), - [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_kwd_lit, 2, .production_id = 6), - [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_kwd_lit, 2, .production_id = 6), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_multiline, 3), - [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_multiline, 3), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__bare_list_lit, 3, .production_id = 7), - [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__bare_list_lit, 3, .production_id = 7), - [210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoting_lit, 3, .production_id = 9), - [212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoting_lit, 3, .production_id = 9), - [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sym_lit, 1, .production_id = 1), - [216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sym_lit, 1, .production_id = 1), - [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quasi_quoting_lit, 3, .production_id = 9), - [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quasi_quoting_lit, 3, .production_id = 9), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquote_splicing_lit, 3, .production_id = 9), - [224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquote_splicing_lit, 3, .production_id = 9), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquoting_lit, 3, .production_id = 9), - [228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquoting_lit, 3, .production_id = 9), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 1, .production_id = 4), - [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 1, .production_id = 4), - [234] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [240] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comment_multiline_repeat1, 2), SHIFT_REPEAT(34), - [249] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comment_multiline_repeat1, 2), SHIFT_REPEAT(34), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comment_multiline_repeat1, 2), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [256] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quasi_quoting_lit, 2, .production_id = 3), + [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quasi_quoting_lit, 2, .production_id = 3), + [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquote_splicing_lit, 2, .production_id = 3), + [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquote_splicing_lit, 2, .production_id = 3), + [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoting_lit, 3, .production_id = 6), + [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoting_lit, 3, .production_id = 6), + [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), SHIFT_REPEAT(29), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_quoting_lit_repeat1, 2), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_num_lit, 1), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_num_lit, 1), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_str_lit, 4), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_str_lit, 4), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__bare_list_lit, 2, .production_id = 4), + [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__bare_list_lit, 2, .production_id = 4), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sym_lit, 1, .production_id = 1), + [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sym_lit, 1, .production_id = 1), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_str_lit, 3), + [235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_str_lit, 3), + [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_str_lit, 2), + [239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_str_lit, 2), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquoting_lit, 2, .production_id = 3), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquoting_lit, 2, .production_id = 3), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquote_splicing_lit, 3, .production_id = 6), + [247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquote_splicing_lit, 3, .production_id = 6), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoting_lit, 2, .production_id = 3), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoting_lit, 2, .production_id = 3), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quasi_quoting_lit, 3, .production_id = 6), + [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quasi_quoting_lit, 3, .production_id = 6), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__bare_list_lit, 3, .production_id = 8), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__bare_list_lit, 3, .production_id = 8), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__bare_list_lit_repeat1, 1, .production_id = 5), + [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__bare_list_lit_repeat1, 1, .production_id = 5), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__format_token, 1, .production_id = 7), + [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__format_token, 1, .production_id = 7), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__format_token, 2), + [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__format_token, 2), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_modifiers_repeat1, 1), + [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_modifiers_repeat1, 1), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_modifiers_repeat1, 2), SHIFT_REPEAT(42), + [292] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_modifiers_repeat1, 2), SHIFT_REPEAT(58), + [295] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_modifiers_repeat1, 2), SHIFT_REPEAT(46), + [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_modifiers_repeat1, 2), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_modifiers_repeat1, 2), + [302] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_str_lit_repeat1, 2), SHIFT_REPEAT(4), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_str_lit_repeat1, 2), + [307] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_str_lit_repeat1, 2), SHIFT_REPEAT(47), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_specifier, 2), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_directive_type, 2, .production_id = 10), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_directive_type, 2, .production_id = 11), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_specifier, 3), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_directive_type, 1), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_directive_type, 2), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_format_specifier, 4), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [336] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus