llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Jonas Devlieghere (JDevlieghere) <details> <summary>Changes</summary> This adds tree-sitter based Swift syntax highlighting to LLDB. It consists of the SwiftTreeSitterHighlighter plugin and the vendored Swift grammar [1], which is licensed under MIT. [1] https://github.com/alex-pinkus/tree-sitter-swift Depends on: * https://github.com/llvm/llvm-project/pull/181282 * https://github.com/llvm/llvm-project/pull/181279 --- Patch is 20.70 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/181297.diff 11 Files Affected: - (modified) lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt (+1) - (added) lldb/source/Plugins/Highlighter/TreeSitter/Swift/CMakeLists.txt (+11) - (added) lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp (+381) - (added) lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.h (+41) - (modified) lldb/source/Plugins/Highlighter/TreeSitter/third-party/CMakeLists.txt (+1) - (added) lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/CMakeLists.txt (+16) - (added) lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/LICENSE (+21) - (added) lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/parser.c (+591510) - (added) lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/scanner.c (+865) - (modified) lldb/unittests/Highlighter/CMakeLists.txt (+2) - (modified) lldb/unittests/Highlighter/HighlighterTest.cpp (+18-1) ``````````diff diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt b/lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt index 7e2fa37b02af4..6279626ae56c0 100644 --- a/lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt +++ b/lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt @@ -1,5 +1,6 @@ add_subdirectory(third-party) add_subdirectory(Rust) +add_subdirectory(Swift) add_lldb_library(lldbTreeSitter TreeSitterHighlighter.cpp diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/Swift/CMakeLists.txt b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/CMakeLists.txt new file mode 100644 index 0000000000000..36e653c240929 --- /dev/null +++ b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/CMakeLists.txt @@ -0,0 +1,11 @@ +add_lldb_library(lldbPluginHighlighterTreeSitterSwift PLUGIN + SwiftTreeSitterHighlighter.cpp + + LINK_COMPONENTS + Support + LINK_LIBS + lldbCore + lldbUtility + lldbTreeSitter + tree-sitter-swift +) diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp new file mode 100644 index 0000000000000..3b7cbeaeaec59 --- /dev/null +++ b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp @@ -0,0 +1,381 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "SwiftTreeSitterHighlighter.h" +#include "lldb/Target/Language.h" + +LLDB_PLUGIN_DEFINE_ADV(SwiftTreeSitterHighlighter, HighlighterTreeSitterSwift) + +extern "C" { +const TSLanguage *tree_sitter_swift(); +} + +using namespace lldb_private; + +const TSLanguage *SwiftTreeSitterHighlighter::GetLanguage() const { + return tree_sitter_swift(); +} + +llvm::StringRef SwiftTreeSitterHighlighter::GetHighlightQuery() const { + static constexpr const llvm::StringLiteral query = R"__( +[ + "." + ";" + ":" + "," +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +; Identifiers +(type_identifier) @type + +[ + (self_expression) + (super_expression) +] @variable.builtin + +; Declarations +[ + "func" + "deinit" +] @keyword.function + +[ + (visibility_modifier) + (member_modifier) + (function_modifier) + (property_modifier) + (parameter_modifier) + (inheritance_modifier) + (mutation_modifier) +] @keyword.modifier + +(simple_identifier) @variable + +(function_declaration + (simple_identifier) @function.method) + +(protocol_function_declaration + name: (simple_identifier) @function.method) + +(init_declaration + "init" @constructor) + +(parameter + external_name: (simple_identifier) @variable.parameter) + +(parameter + name: (simple_identifier) @variable.parameter) + +(type_parameter + (type_identifier) @variable.parameter) + +(inheritance_constraint + (identifier + (simple_identifier) @variable.parameter)) + +(equality_constraint + (identifier + (simple_identifier) @variable.parameter)) + +[ + "protocol" + "extension" + "indirect" + "nonisolated" + "override" + "convenience" + "required" + "some" + "any" + "weak" + "unowned" + "didSet" + "willSet" + "subscript" + "let" + "var" + (throws) + (where_keyword) + (getter_specifier) + (setter_specifier) + (modify_specifier) + (else) + (as_operator) +] @keyword + +[ + "enum" + "struct" + "class" + "typealias" +] @keyword.type + +[ + "async" + "await" +] @keyword.coroutine + +(shebang_line) @keyword.directive + +(class_body + (property_declaration + (pattern + (simple_identifier) @variable.member))) + +(protocol_property_declaration + (pattern + (simple_identifier) @variable.member)) + +(navigation_expression + (navigation_suffix + (simple_identifier) @variable.member)) + +(value_argument + name: (value_argument_label + (simple_identifier) @variable.member)) + +(import_declaration + "import" @keyword.import) + +(enum_entry + "case" @keyword) + +(modifiers + (attribute + "@" @attribute + (user_type + (type_identifier) @attribute))) + +; Function calls +(call_expression + (simple_identifier) @function.call) ; foo() + +(call_expression + ; foo.bar.baz(): highlight the baz() + (navigation_expression + (navigation_suffix + (simple_identifier) @function.call))) + +(call_expression + (prefix_expression + (simple_identifier) @function.call)) ; .foo() + +((navigation_expression + (simple_identifier) @type) ; SomeType.method(): highlight SomeType as a type + (#match? @type "^[A-Z]")) + +(directive) @keyword.directive + +; See https://docs.swift.org/swift-book/documentation/the-swift-programming-language/lexicalstructure/#Keywords-and-Punctuation +[ + (diagnostic) + (availability_condition) + (playground_literal) + (key_path_string_expression) + (selector_expression) + (external_macro_definition) +] @function.macro + +(special_literal) @constant.macro + +; Statements +(for_statement + "for" @keyword.repeat) + +(for_statement + "in" @keyword.repeat) + +[ + "while" + "repeat" + "continue" + "break" +] @keyword.repeat + +(guard_statement + "guard" @keyword.conditional) + +(if_statement + "if" @keyword.conditional) + +(switch_statement + "switch" @keyword.conditional) + +(switch_entry + "case" @keyword) + +(switch_entry + "fallthrough" @keyword) + +(switch_entry + (default_keyword) @keyword) + +"return" @keyword.return + +(ternary_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +[ + (try_operator) + "do" + (throw_keyword) + (catch_keyword) +] @keyword.exception + +(statement_label) @label + +; Comments +[ + (comment) + (multiline_comment) +] @comment @spell + +((comment) @comment.documentation + (#match? @comment.documentation "^///[^/]")) + +((comment) @comment.documentation + (#match? @comment.documentation "^///$")) + +((multiline_comment) @comment.documentation + (#match? @comment.documentation "^/[*][*][^*].*[*]/$")) + +; String literals +(line_str_text) @string + +(str_escaped_char) @string.escape + +(multi_line_str_text) @string + +(raw_str_part) @string + +(raw_str_end_part) @string + +(line_string_literal + [ + "\\(" + ")" + ] @punctuation.special) + +(multi_line_string_literal + [ + "\\(" + ")" + ] @punctuation.special) + +(raw_str_interpolation + [ + (raw_str_interpolation_start) + ")" + ] @punctuation.special) + +[ + "\"" + "\"\"\"" +] @string + +; Lambda literals +(lambda_literal + "in" @keyword.operator) + +; Basic literals +[ + (integer_literal) + (hex_literal) + (oct_literal) + (bin_literal) +] @number + +(real_literal) @number.float + +(boolean_literal) @boolean + +"nil" @constant.builtin + +(wildcard_pattern) @character.special + +; Regex literals +(regex_literal) @string.regexp + +; Operators +(custom_operator) @operator + +[ + "+" + "-" + "*" + "/" + "%" + "=" + "+=" + "-=" + "*=" + "/=" + "<" + ">" + "<<" + ">>" + "<=" + ">=" + "++" + "--" + "^" + "&" + "&&" + "|" + "||" + "~" + "%=" + "!=" + "!==" + "==" + "===" + "?" + "??" + "->" + "..<" + "..." + (bang) +] @operator + +(type_arguments + [ + "<" + ">" + ] @punctuation.bracket) +)__"; + + return query; +} + +Highlighter * +SwiftTreeSitterHighlighter::CreateInstance(lldb::LanguageType language) { + if (language == lldb::eLanguageTypeSwift) + return new SwiftTreeSitterHighlighter(); + return nullptr; +} + +void SwiftTreeSitterHighlighter::Initialize() { + PluginManager::RegisterPlugin(GetPluginNameStatic(), GetPluginNameStatic(), + CreateInstance); +} + +void SwiftTreeSitterHighlighter::Terminate() { + PluginManager::UnregisterPlugin(CreateInstance); +} diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.h b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.h new file mode 100644 index 0000000000000..3723991100fa8 --- /dev/null +++ b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.h @@ -0,0 +1,41 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_TREESITTERCOMMON_SWIFTTREESITTERHIGHLIGHTER_H +#define LLDB_SOURCE_PLUGINS_LANGUAGE_TREESITTERCOMMON_SWIFTTREESITTERHIGHLIGHTER_H + +#include "../TreeSitterHighlighter.h" +#include "llvm/ADT/StringRef.h" + +namespace lldb_private { + +class SwiftTreeSitterHighlighter : public TreeSitterHighlighter { +public: + SwiftTreeSitterHighlighter() = default; + ~SwiftTreeSitterHighlighter() override = default; + + llvm::StringRef GetName() const override { return "tree-sitter-swift"; } + + static Highlighter *CreateInstance(lldb::LanguageType language); + + static void Terminate(); + static void Initialize(); + + static llvm::StringRef GetPluginNameStatic() { + return "Tree-sitter Swift Highlighter"; + } + llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } + +protected: + const TSLanguage *GetLanguage() const override; + llvm::StringRef GetHighlightQuery() const override; +}; + +} // namespace lldb_private + +#endif // LLDB_SOURCE_PLUGINS_LANGUAGE_TREESITTERCOMMON_SWIFTTREESITTERHIGHLIGHTER_H diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/third-party/CMakeLists.txt b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/CMakeLists.txt index 9df7f064c62c6..c612d12f01271 100644 --- a/lldb/source/Plugins/Highlighter/TreeSitter/third-party/CMakeLists.txt +++ b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/CMakeLists.txt @@ -1,2 +1,3 @@ add_subdirectory(tree-sitter) add_subdirectory(tree-sitter-rust) +add_subdirectory(tree-sitter-swift) diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/CMakeLists.txt b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/CMakeLists.txt new file mode 100644 index 0000000000000..4d2946fdd918a --- /dev/null +++ b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/CMakeLists.txt @@ -0,0 +1,16 @@ +add_lldb_library(tree-sitter-swift + parser.c + scanner.c + + LINK_LIBS + tree-sitter +) + +set_property(TARGET tree-sitter-swift PROPERTY C_STANDARD 11) + +target_compile_options(tree-sitter-swift PRIVATE + "-Wno-everything" +) + +target_include_directories(tree-sitter-swift PRIVATE + ${TreeSitter_INCLUDE_DIR}) diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/LICENSE b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/LICENSE new file mode 100644 index 0000000000000..f158d70053113 --- /dev/null +++ b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 alex-pinkus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/parser.c b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/parser.c new file mode 100644 index 0000000000000..817df0cbb62f0 --- /dev/null +++ b/lldb/source/Plugins/Highlighter/TreeSitter/third-party/tree-sitter-swift/parser.c @@ -0,0 +1,591510 @@ +/* Automatically @generated by tree-sitter v0.25.6 */ + +#include "tree_sitter/parser.h" + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#ifdef _MSC_VER +#pragma optimize("", off) +#elif defined(__clang__) +#pragma clang optimize off +#elif defined(__GNUC__) +#pragma GCC optimize("O0") +#endif + +#define LANGUAGE_VERSION 15 +#define STATE_COUNT 9028 +#define LARGE_STATE_COUNT 1918 +#define SYMBOL_COUNT 547 +#define ALIAS_COUNT 5 +#define TOKEN_COUNT 213 +#define EXTERNAL_TOKEN_COUNT 33 +#define FIELD_COUNT 46 +#define MAX_ALIAS_SEQUENCE_LENGTH 10 +#define MAX_RESERVED_WORD_SET_SIZE 0 +#define PRODUCTION_ID_COUNT 259 +#define SUPERTYPE_COUNT 0 + +enum ts_symbol_identifiers { + anon_sym_BANG = 1, + aux_sym_shebang_line_token1 = 2, + sym_comment = 3, + aux_sym_simple_identifier_token1 = 4, + aux_sym_simple_identifier_token2 = 5, + aux_sym_simple_identifier_token3 = 6, + aux_sym_simple_identifier_token4 = 7, + anon_sym_actor = 8, + anon_sym_async = 9, + anon_sym_each = 10, + anon_sym_lazy = 11, + anon_sym_repeat = 12, + anon_sym_package = 13, + anon_sym_nil = 14, + sym_real_literal = 15, + sym_integer_literal = 16, + sym_hex_literal = 17, + sym_oct_literal = 18, + sym_bin_literal = 19, + anon_sym_true = 20, + anon_sym_false = 21, + anon_sym_DQUOTE = 22, + aux_sym_line_str_text_token1 = 23, + anon_sym_BSLASH = 24, + anon_sym_u = 25, + aux_sym__uni_character_literal_token1 = 26, + anon_sym_DQUOTE_DQUOTE_DQUOTE = 27, + anon_sym_RPAREN = 28, + sym_raw_str_interpolation_start = 29, + anon_sym_BSLASH_LPAREN = 30, + anon_sym_COMMA = 31, + sym__escaped_identifier = 32, + aux_sym__extended_regex_literal_token1 = 33, + aux_sym__multiline_regex_literal_token1 = 34, + aux_sym__multiline_regex_literal_token2 = 35, + sym__oneline_regex_literal = 36, + anon_sym_COLON = 37, + anon_sym_BANG2 = 38, + anon_sym_LPAREN = 39, + anon_sym_LBRACK = 40, + anon_sym_RBRACK = 41, + anon_sym_DOT = 42, + anon_sym_Type = 43, + anon_sym_Protocol = 44, + anon_sym_QMARK = 45, + anon_sym_QMARK2 = 46, + anon_sym_some = 47, + anon_sym_any = 48, + anon_sym_AMP = 49, + anon_sym_TILDE = 50, + anon_sym_if = 51, + anon_sym_switch = 52, + anon_sym_selector = 53, + anon_sym_getter_COLON = 54, + anon_sym_setter_COLON = 55, + aux_sym_custom_operator_token1 = 56, + anon_sym_LT = 57, + anon_sym_GT = 58, + anon_sym_await = 59, + anon_sym_file = 60, + anon_sym_fileID = 61, + anon_sym_filePath = 62, + anon_sym_line = 63, + anon_sym_column = 64, + anon_sym_function = 65, + anon_sym_dsohandle = 66, + anon_sym_colorLiteral = 67, + anon_sym_fileLiteral = 68, + anon_sym_imageLiteral = 69, + anon_sym_LBRACE = 70, + anon_sym_CARET_LBRACE = 71, + anon_sym_RBRACE = 72, + anon_sym_in = 73, + anon_sym_self = 74, + anon_sym_super = 75, + anon_sym_guard = 76, + anon_sym_case = 77, + anon_sym_fallthrough = 78, + anon_sym_do = 79, + anon_sym_keyPath = 80, + anon_sym_try = 81, + anon_sym_PLUS_EQ = 82, + anon_sym_DASH_EQ = 83, + anon_sym_STAR_EQ = 84, + anon_sym_SLASH_EQ = 85, + anon_sym_PERCENT_EQ = 86, + anon_sym_BANG_EQ = 87, + anon_sym_BANG_EQ_EQ = 88, + anon_sym_EQ_EQ_EQ = 89, + anon_sym_LT_EQ = 90, + anon_sym_GT_EQ = 91, + anon_sym_DOT_DOT_DOT = 92, + anon_sym_DOT_DOT_LT = 93, + anon_sym_is = 94, + anon_sym_PLUS = 95, + anon_sym_DASH = 96, + anon_sym_STAR = 97, + anon_sym_SLASH = 98, + anon_sym_PERCENT = 99, + anon_sym_PLUS_PLUS = 100, + anon_sym_DASH_DASH = 101, + anon_sym_PIPE = 102, + anon_sym_CARET = 103, + anon_sym_LT_LT = 104, + anon_sym_GT_GT = 105, + sym_statement_label = 106, + anon_sym_for = 107, + anon_sym_while = 108, + sym_throw_keyword = 109, + anon_sym_return = 110, + anon_sym_continue = 111, + anon_sym_break = 112, + anon_sym_yield = 113, + anon_sym_available = 114, + anon_sym_unavailable = 115, + anon_sym_import = 116, + anon_sym_typealias = 117, + anon_sym_struct = 118, + anon_sym_class = 119, + anon_sym_enum = 120, + anon_sym_protocol = 121, + anon_sym_let = 122, + anon_sym_var = 123, + anon_sym_func = 124, + anon_sym_willSet = 125, + anon_sym_didSet = 126, + anon_sym_macro = 127, + anon_sym_externalMacro = 128, + anon_sym_extension = 129, + anon_sym_indirect = 130, + anon_sym_SEMI = 131, + anon_sym_init = 132, + anon_sym_deinit = 133, + anon_sym_subscript = 134, + anon_sym_get = 135, + anon_sym_set = 136, + anon_sym__modify = 137, + anon_sym_prefix = 138, + anon_sym_infix = 139, + anon_sym_postfix = 140, + anon_sym_operator = 141, + anon_sym_precedencegroup = 142, + anon_sym_associatedtype = 143, + anon_sym_AT = 144, + sym_wildcard_pattern = 145, + anon_sym_override = 146, + anon_sym_convenience = 147, + anon_sym_required = 148, + anon_sym_nonisolated = 149, + anon_sym_public = 150, + anon_sym_private = 151, + anon_sym_internal = 152, + anon_sym_fileprivate = 153, + anon_sym_open = 154, + anon_sym_mutating = 155, + anon_sym_nonmutating = 156, + anon_sym_static = 157, + anon_sym_dynamic = 158, + anon_sym_optional = 159, + anon_sym_distributed = 160, + anon_sym_final = 161, + anon_sym_inout = 162, + anon_sym_ATescaping = 163, + anon_sym_ATautoclosure = 164, + anon_sym_weak = 165, + anon_sym_unowned = 166, + anon_sym_unowned_LPARENsafe_RPAREN = 167, + anon_sym_unowned_LPARENunsafe_RPAREN = 168, + anon_sym_borrowing = 169, + anon_sym_consuming = 170, + anon_sym_os = 171, + anon_sym_arch = 172, + anon_sym_swift = 173, + anon_sym_compiler = 174, + anon_sym_canImport = 175, + anon_sym_targetEnvironment = 176, + aux_sym_diagnostic_token1 = 177, + aux_sym_diagnostic_token2 = 178, + aux_sym_diagnostic_token3 = 179, + sym_multiline_comment = 180, + sym_raw_str_part = 181, + sym_raw_str_continuing_indicator = 182, + sym_raw_str_end_part = 183, + sym__implicit_semi = 184, + sym__explicit_semi = 185, + sym__arrow_operator_custom = 186, + sym__dot_custom = 187, + sym__conjunction_operator_custom = 188, + sym__disjunction_operator_custom = 189, + sym__nil_coalescing_operator_custom = 190, + sym__eq_custom = 191, + sym__eq_eq_custom = 192, + sym__plus_then_ws = 193, + sym__minus_then_ws = 194, + sym__bang_custom = 195, + sym__throws_keyword = 196, + sym__rethrows_keyword = 197, + sym_default_keyword = 198, + sym_where_keyword = 199, + sym_else = 200, + sym_catch_keyword = 201, + sym__as_custom = 202, + sym__as_quest_custom = 203, + sym__as_bang_custom = 204, + sym__async_keyword_custom = 205, + sym__custom_operator = 206, + sym__hash_symbol_custom = 207, + sym__directive_if = 208, + sym__directive_elseif = 209, + sym__directive_else = 210, + sym__directive_endif = 211, + sym__fake_try_bang = 212, + sym_source_file = 213, + sym__semi = 214, + sym_shebang_line = 215, + sym_simple_identifier = 216, + sym__contextual_simple_identifier = 217, + sym_identifier = 218, + sym__basic_literal = 219, + sym_boolean_literal = 220, + sym__string_literal = 221, + sym_line_string_literal = 222, + sym__line_string_content = 223, + sym_line_str_text = 224, + sym_str_escaped_char = 225, + sym__uni_character_literal = 226, + sym_multi_line_string_literal = 227, + sym_raw_string_literal = 228, + sym_raw_str_interpolation = 229, + sym__multi_line_string_content = 230, + sym__interpolation = 231, + sym__interpolation_contents = 232, + sym_multi_line_str_text = 233, + sym_regex_literal = 234, + sym__extended_regex_literal = 235, + sym__multiline_regex_literal = 236, + sym_type_annotation = 237, + sym__possibly_implicitly_unwrapped_type = 238, + sym__type = 239, + sym__unannotated_type = 240, + sym_user_type = 241, + sym__simple_user_type = 242, + sym_tuple_type = 243... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/181297 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
