tree-sitter-java
Advanced tools
| Checklist: | ||
| - [ ] All tests pass in CI. | ||
| - [ ] There are sufficient tests for the new fix/feature. | ||
| - [ ] Grammar rules have not been renamed unless absolutely necessary. | ||
| - [ ] The conflicts section hasn't grown too much. | ||
| - [ ] The parser size hasn't grown too much (check the value of STATE_COUNT in src/parser.c). | ||
| name: CI | ||
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| pull_request: | ||
| branches: | ||
| - "**" | ||
| jobs: | ||
| test: | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: true | ||
| matrix: | ||
| os: [macos-latest, ubuntu-latest] | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 18 | ||
| - run: npm install | ||
| - run: npm test | ||
| test_windows: | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 18 | ||
| - run: npm install | ||
| - run: npm run-script test-windows |
| name: Publish | ||
| on: | ||
| push: | ||
| tags: | ||
| - v* | ||
| env: | ||
| CARGO_TERM_COLOR: always | ||
| CARGO_INCREMENTAL: 0 | ||
| jobs: | ||
| publish-crate: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v3 | ||
| - name: Install Rust | ||
| uses: actions-rs/toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
| profile: minimal | ||
| override: true | ||
| - name: Verify crate | ||
| run: cargo publish --dry-run | ||
| - name: Publish crate | ||
| run: cargo publish | ||
| env: | ||
| CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} | ||
| publish-npm: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v3 | ||
| - name: Install Node | ||
| uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 18 | ||
| registry-url: "https://registry.npmjs.org" | ||
| - name: Verify package | ||
| run: npm publish --dry-run | ||
| - name: Publish package | ||
| env: | ||
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
| run: npm publish | ||
| create-release: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v3 | ||
| - name: Create GitHub release | ||
| uses: ncipollo/release-action@v1 | ||
| with: | ||
| body: | | ||
| Find tree-sitter-java ${{ github.ref_name }} on [crates.io](https://crates.io/crates/tree-sitter-java) or [NPM](https://www.npmjs.com/package/tree-sitter-java). | ||
| token: ${{ secrets.GITHUB_TOKEN }} |
| #ifndef TREE_SITTER_@UPPER_PARSERNAME@_H_ | ||
| #define TREE_SITTER_@UPPER_PARSERNAME@_H_ | ||
| #include <tree_sitter/parser.h> | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
| extern TSLanguage *tree_sitter_@PARSERNAME@(); | ||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #endif // TREE_SITTER_@UPPER_PARSERNAME@_H_ |
| prefix=@PREFIX@ | ||
| libdir=@LIBDIR@ | ||
| includedir=@INCLUDEDIR@ | ||
| additionallibs=@ADDITIONALLIBS@ | ||
| Name: tree-sitter-@PARSERNAME@ | ||
| Description: A tree-sitter grammar for the @PARSERNAME@ programming language. | ||
| URL: @PARSERURL@ | ||
| Version: @VERSION@ | ||
| Libs: -L${libdir} ${additionallibs} -ltree-sitter-@PARSERNAME@ | ||
| Cflags: -I${includedir} |
| #ifndef TREE_SITTER_JAVA_H_ | ||
| #define TREE_SITTER_JAVA_H_ | ||
| typedef struct TSLanguage TSLanguage; | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
| extern TSLanguage *tree_sitter_java(); | ||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #endif // TREE_SITTER_JAVA_H_ |
| cmake_minimum_required(VERSION 3.8) | ||
| project(tree-sitter-java) | ||
| # Enable C++11 | ||
| set(CMAKE_CXX_STANDARD 11) | ||
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
| set(CMAKE_CXX_EXTENSIONS OFF) | ||
| # Set source files | ||
| set(SOURCE_FILES | ||
| src/parser.c | ||
| ) | ||
| # Build tree-sitter-java as a shared library | ||
| add_library(tree-sitter-java SHARED ${SOURCE_FILES}) | ||
| # Set the include directories | ||
| target_include_directories(tree-sitter-java PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src") |
+116
| VERSION := 0.20.2 | ||
| # Repository | ||
| SRC_DIR := src | ||
| PARSER_REPO_URL := $(shell git -C $(SRC_DIR) remote get-url origin ) | ||
| ifeq (, $(PARSER_NAME)) | ||
| PARSER_NAME := $(shell basename $(PARSER_REPO_URL)) | ||
| PARSER_NAME := $(subst tree-sitter-,,$(PARSER_NAME)) | ||
| PARSER_NAME := $(subst .git,,$(PARSER_NAME)) | ||
| endif | ||
| ifeq (, $(PARSER_URL)) | ||
| PARSER_URL := $(subst .git,,$(PARSER_REPO_URL)) | ||
| ifeq ($(shell echo $(PARSER_URL) | grep '^[a-z][-+.0-9a-z]*://'),) | ||
| PARSER_URL := $(subst :,/,$(PARSER_URL)) | ||
| PARSER_URL := $(subst git@,https://,$(PARSER_URL)) | ||
| endif | ||
| endif | ||
| UPPER_PARSER_NAME := $(shell echo $(PARSER_NAME) | tr a-z A-Z ) | ||
| # install directory layout | ||
| PREFIX ?= /usr/local | ||
| INCLUDEDIR ?= $(PREFIX)/include | ||
| LIBDIR ?= $(PREFIX)/lib | ||
| PCLIBDIR ?= $(LIBDIR)/pkgconfig | ||
| # collect C++ sources, and link if necessary | ||
| CPPSRC := $(wildcard $(SRC_DIR)/*.cc) | ||
| ifeq (, $(CPPSRC)) | ||
| ADDITIONALLIBS := | ||
| else | ||
| ADDITIONALLIBS := -lc++ | ||
| endif | ||
| # collect sources | ||
| SRC := $(wildcard $(SRC_DIR)/*.c) | ||
| SRC += $(CPPSRC) | ||
| OBJ := $(addsuffix .o,$(basename $(SRC))) | ||
| # ABI versioning | ||
| SONAME_MAJOR := 0 | ||
| SONAME_MINOR := 0 | ||
| CFLAGS ?= -O3 -Wall -Wextra -I$(SRC_DIR) | ||
| CXXFLAGS ?= -O3 -Wall -Wextra -I$(SRC_DIR) | ||
| override CFLAGS += -std=gnu99 -fPIC | ||
| override CXXFLAGS += -fPIC | ||
| # OS-specific bits | ||
| ifeq ($(shell uname),Darwin) | ||
| SOEXT = dylib | ||
| SOEXTVER_MAJOR = $(SONAME_MAJOR).dylib | ||
| SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).dylib | ||
| LINKSHARED := $(LINKSHARED)-dynamiclib -Wl, | ||
| ifneq ($(ADDITIONALLIBS),) | ||
| LINKSHARED := $(LINKSHARED)$(ADDITIONALLIBS), | ||
| endif | ||
| LINKSHARED := $(LINKSHARED)-install_name,$(LIBDIR)/libtree-sitter-$(PARSER_NAME).$(SONAME_MAJOR).dylib,-rpath,@executable_path/../Frameworks | ||
| else | ||
| SOEXT = so | ||
| SOEXTVER_MAJOR = so.$(SONAME_MAJOR) | ||
| SOEXTVER = so.$(SONAME_MAJOR).$(SONAME_MINOR) | ||
| LINKSHARED := $(LINKSHARED)-shared -Wl, | ||
| ifneq ($(ADDITIONALLIBS),) | ||
| LINKSHARED := $(LINKSHARED)$(ADDITIONALLIBS) | ||
| endif | ||
| LINKSHARED := $(LINKSHARED)-soname,libtree-sitter-$(PARSER_NAME).so.$(SONAME_MAJOR) | ||
| endif | ||
| ifneq (,$(filter $(shell uname),FreeBSD NetBSD DragonFly)) | ||
| PCLIBDIR := $(PREFIX)/libdata/pkgconfig | ||
| endif | ||
| all: libtree-sitter-$(PARSER_NAME).a libtree-sitter-$(PARSER_NAME).$(SOEXTVER) bindings/c/$(PARSER_NAME).h bindings/c/tree-sitter-$(PARSER_NAME).pc | ||
| libtree-sitter-$(PARSER_NAME).a: $(OBJ) | ||
| $(AR) rcs $@ $^ | ||
| libtree-sitter-$(PARSER_NAME).$(SOEXTVER): $(OBJ) | ||
| $(CC) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@ | ||
| ln -sf $@ libtree-sitter-$(PARSER_NAME).$(SOEXT) | ||
| ln -sf $@ libtree-sitter-$(PARSER_NAME).$(SOEXTVER_MAJOR) | ||
| bindings/c/$(PARSER_NAME).h: | ||
| sed -e 's|@UPPER_PARSERNAME@|$(UPPER_PARSER_NAME)|' \ | ||
| -e 's|@PARSERNAME@|$(PARSER_NAME)|' \ | ||
| bindings/c/tree-sitter.h.in > $@ | ||
| bindings/c/tree-sitter-$(PARSER_NAME).pc: | ||
| sed -e 's|@LIBDIR@|$(LIBDIR)|;s|@INCLUDEDIR@|$(INCLUDEDIR)|;s|@VERSION@|$(VERSION)|' \ | ||
| -e 's|=$(PREFIX)|=$${prefix}|' \ | ||
| -e 's|@PREFIX@|$(PREFIX)|' \ | ||
| -e 's|@ADDITIONALLIBS@|$(ADDITIONALLIBS)|' \ | ||
| -e 's|@PARSERNAME@|$(PARSER_NAME)|' \ | ||
| -e 's|@PARSERURL@|$(PARSER_URL)|' \ | ||
| bindings/c/tree-sitter.pc.in > $@ | ||
| install: all | ||
| install -d '$(DESTDIR)$(LIBDIR)' | ||
| install -m755 libtree-sitter-$(PARSER_NAME).a '$(DESTDIR)$(LIBDIR)'/libtree-sitter-$(PARSER_NAME).a | ||
| install -m755 libtree-sitter-$(PARSER_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/libtree-sitter-$(PARSER_NAME).$(SOEXTVER) | ||
| ln -sf libtree-sitter-$(PARSER_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/libtree-sitter-$(PARSER_NAME).$(SOEXTVER_MAJOR) | ||
| ln -sf libtree-sitter-$(PARSER_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/libtree-sitter-$(PARSER_NAME).$(SOEXT) | ||
| install -d '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter | ||
| install -m644 bindings/c/$(PARSER_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/ | ||
| install -d '$(DESTDIR)$(PCLIBDIR)' | ||
| install -m644 bindings/c/tree-sitter-$(PARSER_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/ | ||
| clean: | ||
| rm -f $(OBJ) libtree-sitter-$(PARSER_NAME).a libtree-sitter-$(PARSER_NAME).$(SOEXT) libtree-sitter-$(PARSER_NAME).$(SOEXTVER_MAJOR) libtree-sitter-$(PARSER_NAME).$(SOEXTVER) | ||
| rm -f bindings/c/$(PARSER_NAME).h bindings/c/tree-sitter-$(PARSER_NAME).pc | ||
| .PHONY: all install clean |
| // swift-tools-version:5.3 | ||
| import PackageDescription | ||
| let package = Package( | ||
| name: "TreeSitterJava", | ||
| products: [ | ||
| .library(name: "TreeSitterJava", targets: ["TreeSitterJava"]), | ||
| ], | ||
| dependencies: [], | ||
| targets: [ | ||
| .target(name: "TreeSitterJava", | ||
| path: ".", | ||
| exclude: [ | ||
| "binding.gyp", | ||
| "bindings", | ||
| "Cargo.toml", | ||
| "corpus", | ||
| "grammar.js", | ||
| "LICENSE", | ||
| "Makefile", | ||
| "package.json", | ||
| "README.md", | ||
| "script", | ||
| "src/grammar.json", | ||
| "src/node-types.json", | ||
| ], | ||
| sources: [ | ||
| "src/parser.c", | ||
| ], | ||
| resources: [ | ||
| .copy("queries") | ||
| ], | ||
| publicHeadersPath: "bindings/swift", | ||
| cSettings: [.headerSearchPath("src")]) | ||
| ] | ||
| ) |
@@ -8,3 +8,3 @@ use std::path::Path; | ||
| let mut c_config = cc::Build::new(); | ||
| c_config.include(&src_dir); | ||
| c_config.include(src_dir); | ||
| c_config | ||
@@ -11,0 +11,0 @@ .flag_if_supported("-Wno-unused-parameter") |
@@ -49,6 +49,6 @@ // -*- coding: utf-8 -*- | ||
| /// The source of the Java tree-sitter grammar description. | ||
| pub const GRAMMAR: &'static str = include_str!("../../grammar.js"); | ||
| pub const GRAMMAR: &str = include_str!("../../grammar.js"); | ||
| /// The syntax highlighting query for this language. | ||
| pub const HIGHLIGHT_QUERY: &'static str = include_str!("../../queries/highlights.scm"); | ||
| pub const HIGHLIGHT_QUERY: &str = include_str!("../../queries/highlights.scm"); | ||
@@ -58,6 +58,6 @@ /// The content of the [`node-types.json`][] file for this grammar. | ||
| /// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types | ||
| pub const NODE_TYPES: &'static str = include_str!("../../src/node-types.json"); | ||
| pub const NODE_TYPES: &str = include_str!("../../src/node-types.json"); | ||
| /// The symbol tagging query for this language. | ||
| pub const TAGGING_QUERY: &'static str = include_str!("../../queries/tags.scm"); | ||
| pub const TAGGING_QUERY: &str = include_str!("../../queries/tags.scm"); | ||
@@ -64,0 +64,0 @@ #[cfg(test)] |
+2
-2
| [package] | ||
| name = "tree-sitter-java" | ||
| description = "Java grammar for the tree-sitter parsing library" | ||
| version = "0.19.0" | ||
| version = "0.20.2" | ||
| authors = [ | ||
@@ -28,5 +28,5 @@ "Douglas Creager <dcreager@dcreager.net>", | ||
| [dependencies] | ||
| tree-sitter = "0.19" | ||
| tree-sitter = ">= 0.19, < 0.21" | ||
| [build-dependencies] | ||
| cc = "1.0" |
+366
-134
@@ -1,25 +0,29 @@ | ||
| const DIGITS = token(sep1(/[0-9]+/, /_+/)) | ||
| const DIGITS = token(choice('0', seq(/[1-9]/, optional(seq(optional('_'), sep1(/[0-9]+/, /_+/)))))) | ||
| const DECIMAL_DIGITS = token(sep1(/[0-9]+/, '_')) | ||
| const HEX_DIGITS = token(sep1(/[A-Fa-f0-9]+/, '_')) | ||
| const PREC = { | ||
| COMMA: -1, | ||
| DECLARATION: 1, | ||
| COMMENT: 1, | ||
| ASSIGN: 0, | ||
| OBJECT: 1, | ||
| TERNARY: 1, | ||
| OR: 2, | ||
| AND: 3, | ||
| PLUS: 4, | ||
| REL: 5, | ||
| TIMES: 6, | ||
| TYPEOF: 7, | ||
| DELETE: 7, | ||
| VOID: 7, | ||
| NOT: 8, | ||
| NEG: 9, | ||
| INC: 10, | ||
| NEW: 11, | ||
| CALL: 12, | ||
| MEMBER: 13, | ||
| CAST: 15, | ||
| // https://introcs.cs.princeton.edu/java/11precedence/ | ||
| COMMENT: 0, // // /* */ | ||
| ASSIGN: 1, // = += -= *= /= %= &= ^= |= <<= >>= >>>= | ||
| DECL: 2, | ||
| ELEMENT_VAL: 2, | ||
| TERNARY: 3, // ?: | ||
| OR: 4, // || | ||
| AND: 5, // && | ||
| BIT_OR: 6, // | | ||
| BIT_XOR: 7, // ^ | ||
| BIT_AND: 8, // & | ||
| EQUALITY: 9, // == != | ||
| GENERIC: 10, | ||
| REL: 10, // < <= > >= instanceof | ||
| SHIFT: 11, // << >> >>> | ||
| ADD: 12, // + - | ||
| MULT: 13, // * / % | ||
| CAST: 14, // (Type) | ||
| OBJ_INST: 14, // new | ||
| UNARY: 15, // ++a --a a++ a-- + - ! ~ | ||
| ARRAY: 16, // [Index] | ||
| OBJ_ACCESS: 16, // . | ||
| PARENS: 16, // (Expression) | ||
| CLASS_LITERAL: 17, // . | ||
| }; | ||
@@ -31,3 +35,4 @@ | ||
| extras: $ => [ | ||
| $.comment, | ||
| $.line_comment, | ||
| $.block_comment, | ||
| /\s/ | ||
@@ -45,2 +50,4 @@ ], | ||
| $._unannotated_type, | ||
| $.comment, | ||
| $.module_directive, | ||
| ], | ||
@@ -51,5 +58,4 @@ | ||
| $._simple_type, | ||
| $._reserved_identifier, | ||
| $._class_body_declaration, | ||
| $._variable_initializer | ||
| $._variable_initializer, | ||
| ], | ||
@@ -66,2 +72,7 @@ | ||
| [$.generic_type, $.primary_expression], | ||
| [$.expression, $.statement], | ||
| // Only conflicts in switch expressions | ||
| [$.lambda_expression, $.primary_expression], | ||
| [$.inferred_parameters, $.primary_expression], | ||
| [$.argument_list, $.record_pattern_body], | ||
| ], | ||
@@ -72,4 +83,9 @@ | ||
| rules: { | ||
| program: $ => repeat($.statement), | ||
| program: $ => repeat($._toplevel_statement), | ||
| _toplevel_statement: $ => choice( | ||
| $.statement, | ||
| $.method_declaration, | ||
| ), | ||
| // Literals | ||
@@ -103,3 +119,3 @@ | ||
| octal_integer_literal: $ => token(seq( | ||
| choice('0o', '0O'), | ||
| choice('0o', '0O', '0'), | ||
| sep1(/[0-7]+/, '_'), | ||
@@ -116,6 +132,6 @@ optional(choice('l', 'L')) | ||
| decimal_floating_point_literal: $ => token(choice( | ||
| seq(DIGITS, '.', optional(DIGITS), optional(seq((/[eE]/), optional(choice('-', '+')), DIGITS)), optional(/[fFdD]/)), | ||
| seq('.', DIGITS, optional(seq((/[eE]/), optional(choice('-','+')), DIGITS)), optional(/[fFdD]/)), | ||
| seq(DIGITS, /[eEpP]/, optional(choice('-','+')), DIGITS, optional(/[fFdD]/)), | ||
| seq(DIGITS, optional(seq((/[eE]/), optional(choice('-','+')), DIGITS)), (/[fFdD]/)) | ||
| seq(DECIMAL_DIGITS, '.', optional(DECIMAL_DIGITS), optional(seq((/[eE]/), optional(choice('-', '+')), DECIMAL_DIGITS)), optional(/[fFdD]/)), | ||
| seq('.', DECIMAL_DIGITS, optional(seq((/[eE]/), optional(choice('-', '+')), DECIMAL_DIGITS)), optional(/[fFdD]/)), | ||
| seq(DIGITS, /[eEpP]/, optional(choice('-', '+')), DECIMAL_DIGITS, optional(/[fFdD]/)), | ||
| seq(DIGITS, optional(seq((/[eE]/), optional(choice('-', '+')), DECIMAL_DIGITS)), (/[fFdD]/)) | ||
| )), | ||
@@ -131,3 +147,3 @@ | ||
| /[eEpP]/, | ||
| optional(choice('-','+')), | ||
| optional(choice('-', '+')), | ||
| DIGITS, | ||
@@ -143,3 +159,3 @@ optional(/[fFdD]/) | ||
| character_literal: $ => token(seq( | ||
| "'", | ||
| '\'', | ||
| repeat1(choice( | ||
@@ -150,13 +166,56 @@ /[^\\'\n]/, | ||
| )), | ||
| "'" | ||
| '\'' | ||
| )), | ||
| string_literal: $ => token(choice( | ||
| seq('"', repeat(choice(/[^\\"\n]/, /\\(.|\n)/)), '"'), | ||
| // TODO: support multiline string literals by debugging the following: | ||
| // seq('"', repeat(choice(/[^\\"\n]/, /\\(.|\n)/)), '"', '+', /\n/, '"', repeat(choice(/[^\\"\n]/, /\\(.|\n)/))) | ||
| )), | ||
| string_literal: $ => choice($._string_literal, $._multiline_string_literal), | ||
| _string_literal: $ => seq( | ||
| '"', | ||
| repeat(choice( | ||
| $.string_fragment, | ||
| $.escape_sequence, | ||
| $.string_interpolation, | ||
| )), | ||
| '"' | ||
| ), | ||
| _multiline_string_literal: $ => seq( | ||
| '"""', | ||
| repeat(choice( | ||
| alias($._multiline_string_fragment, $.multiline_string_fragment), | ||
| $._escape_sequence, | ||
| $.string_interpolation, | ||
| )), | ||
| '"""' | ||
| ), | ||
| // Workaround to https://github.com/tree-sitter/tree-sitter/issues/1156 | ||
| // We give names to the token() constructs containing a regexp | ||
| // so as to obtain a node in the CST. | ||
| null_literal: $ => 'null', | ||
| string_fragment: _ => token.immediate(prec(1, /[^"\\]+/)), | ||
| _multiline_string_fragment: _ => choice( | ||
| /[^"\\]+/, | ||
| seq(/"([^"\\]|\\")*/), | ||
| ), | ||
| string_interpolation: $ => seq( | ||
| '\\{', | ||
| $.expression, | ||
| '}' | ||
| ), | ||
| _escape_sequence: $ => choice( | ||
| prec(2, token.immediate(seq('\\', /[^abfnrtvxu'\"\\\?]/))), | ||
| prec(1, $.escape_sequence) | ||
| ), | ||
| escape_sequence: _ => token.immediate(seq( | ||
| '\\', | ||
| choice( | ||
| /[^xu0-7]/, | ||
| /[0-7]{1,3}/, | ||
| /x[0-9a-fA-F]{2}/, | ||
| /u[0-9a-fA-F]{4}/, | ||
| /u{[0-9a-fA-F]+}/ | ||
| ))), | ||
| null_literal: _ => 'null', | ||
| // Expressions | ||
@@ -173,10 +232,19 @@ | ||
| $.unary_expression, | ||
| $.cast_expression | ||
| $.cast_expression, | ||
| $.switch_expression, | ||
| ), | ||
| cast_expression: $ => prec(PREC.CAST, seq( | ||
| '(', | ||
| sep1(field('type', $._type), '&'), | ||
| ')', | ||
| field('value', $.expression) | ||
| cast_expression: $ => prec(PREC.CAST, choice( | ||
| seq( | ||
| '(', | ||
| field('type', $._type), | ||
| ')', | ||
| field('value', $.expression), | ||
| ), | ||
| seq( | ||
| '(', | ||
| sep1(field('type', $._type), '&'), | ||
| ')', | ||
| field('value', choice($.primary_expression, $.lambda_expression)), | ||
| ), | ||
| )), | ||
@@ -197,28 +265,28 @@ | ||
| ...[ | ||
| ['>', PREC.REL], | ||
| ['<', PREC.REL], | ||
| ['==', PREC.REL], | ||
| ['>=', PREC.REL], | ||
| ['<=', PREC.REL], | ||
| ['!=', PREC.REL], | ||
| ['&&', PREC.AND], | ||
| ['||', PREC.OR], | ||
| ['+', PREC.PLUS], | ||
| ['-', PREC.PLUS], | ||
| ['*', PREC.TIMES], | ||
| ['/', PREC.TIMES], | ||
| ['&', PREC.AND], | ||
| ['|', PREC.OR], | ||
| ['^', PREC.OR], | ||
| ['%', PREC.TIMES], | ||
| ['<<', PREC.TIMES], | ||
| ['>>', PREC.TIMES], | ||
| ['>>>', PREC.TIMES], | ||
| ].map(([operator, precedence]) => | ||
| prec.left(precedence, seq( | ||
| field('left', $.expression), | ||
| field('operator', operator), | ||
| field('right', $.expression) | ||
| )) | ||
| )), | ||
| ['>', PREC.REL], | ||
| ['<', PREC.REL], | ||
| ['>=', PREC.REL], | ||
| ['<=', PREC.REL], | ||
| ['==', PREC.EQUALITY], | ||
| ['!=', PREC.EQUALITY], | ||
| ['&&', PREC.AND], | ||
| ['||', PREC.OR], | ||
| ['+', PREC.ADD], | ||
| ['-', PREC.ADD], | ||
| ['*', PREC.MULT], | ||
| ['/', PREC.MULT], | ||
| ['&', PREC.BIT_AND], | ||
| ['|', PREC.BIT_OR], | ||
| ['^', PREC.BIT_XOR], | ||
| ['%', PREC.MULT], | ||
| ['<<', PREC.SHIFT], | ||
| ['>>', PREC.SHIFT], | ||
| ['>>>', PREC.SHIFT], | ||
| ].map(([operator, precedence]) => | ||
| prec.left(precedence, seq( | ||
| field('left', $.expression), | ||
| field('operator', operator), | ||
| field('right', $.expression) | ||
| )) | ||
| )), | ||
@@ -228,3 +296,10 @@ instanceof_expression: $ => prec(PREC.REL, seq( | ||
| 'instanceof', | ||
| field('right', $._type) | ||
| optional('final'), | ||
| choice( | ||
| seq( | ||
| field('right', $._type), | ||
| optional(field('name', choice($.identifier, $._reserved_identifier))), | ||
| ), | ||
| field('pattern', $.record_pattern), | ||
| ), | ||
| )), | ||
@@ -234,3 +309,3 @@ | ||
| field('parameters', choice( | ||
| $.identifier, $.formal_parameters, $.inferred_parameters | ||
| $.identifier, $.formal_parameters, $.inferred_parameters, $._reserved_identifier | ||
| )), | ||
@@ -243,3 +318,3 @@ '->', | ||
| '(', | ||
| commaSep1($.identifier), | ||
| commaSep1(choice($.identifier, $._reserved_identifier)), | ||
| ')' | ||
@@ -257,6 +332,6 @@ ), | ||
| unary_expression: $ => choice(...[ | ||
| ['+', PREC.NEG], | ||
| ['-', PREC.NEG], | ||
| ['!', PREC.NOT], | ||
| ['~', PREC.NOT], | ||
| ['+', PREC.UNARY], | ||
| ['-', PREC.UNARY], | ||
| ['!', PREC.UNARY], | ||
| ['~', PREC.UNARY], | ||
| ].map(([operator, precedence]) => | ||
@@ -269,3 +344,4 @@ prec.left(precedence, seq( | ||
| update_expression: $ => prec.left(PREC.INC, choice( | ||
| update_expression: $ => prec.left(PREC.UNARY, choice( | ||
| // Post (in|de)crement is evaluated before pre (in|de)crement | ||
| seq($.expression, '++'), | ||
@@ -289,3 +365,4 @@ seq($.expression, '--'), | ||
| $.method_reference, | ||
| $.array_creation_expression | ||
| $.array_creation_expression, | ||
| $.template_expression | ||
| ), | ||
@@ -295,2 +372,3 @@ | ||
| 'new', | ||
| repeat($._annotation), | ||
| field('type', $._simple_type), | ||
@@ -313,4 +391,6 @@ choice( | ||
| class_literal: $ => seq($._unannotated_type, '.', 'class'), | ||
| condition: $ => seq('(', $.expression, ')'), | ||
| class_literal: $ => prec.dynamic(PREC.CLASS_LITERAL, seq($._unannotated_type, '.', 'class')), | ||
| object_creation_expression: $ => choice( | ||
@@ -323,3 +403,10 @@ $._unqualified_object_creation_expression, | ||
| 'new', | ||
| field('type_arguments', optional($.type_arguments)), | ||
| choice( | ||
| seq( | ||
| repeat($._annotation), | ||
| field('type_arguments', $.type_arguments), | ||
| repeat($._annotation), | ||
| ), | ||
| repeat($._annotation), | ||
| ), | ||
| field('type', $._simple_type), | ||
@@ -340,2 +427,8 @@ field('arguments', $.argument_list), | ||
| template_expression: $ => seq( | ||
| field('template_processor', $.primary_expression), | ||
| '.', | ||
| field('template_argument', $.string_literal) | ||
| ), | ||
| array_access: $ => seq( | ||
@@ -395,2 +488,57 @@ field('array', $.primary_expression), | ||
| switch_expression: $ => seq( | ||
| 'switch', | ||
| field('condition', $.parenthesized_expression), | ||
| field('body', $.switch_block) | ||
| ), | ||
| switch_block: $ => seq( | ||
| '{', | ||
| choice( | ||
| repeat($.switch_block_statement_group), | ||
| repeat($.switch_rule) | ||
| ), | ||
| '}' | ||
| ), | ||
| switch_block_statement_group: $ => prec.left(seq( | ||
| repeat1(seq($.switch_label, ':')), | ||
| repeat($.statement), | ||
| )), | ||
| switch_rule: $ => seq( | ||
| $.switch_label, | ||
| '->', | ||
| choice($.expression_statement, $.throw_statement, $.block) | ||
| ), | ||
| switch_label: $ => choice( | ||
| seq('case', | ||
| choice( | ||
| $.pattern, | ||
| commaSep1($.expression) | ||
| ), | ||
| optional($.guard) | ||
| ), | ||
| 'default' | ||
| ), | ||
| pattern: $ => choice( | ||
| $.type_pattern, | ||
| $.record_pattern, | ||
| ), | ||
| type_pattern: $ => seq($._unannotated_type, choice($.identifier, $._reserved_identifier)), | ||
| record_pattern: $ => seq(choice($.identifier, $._reserved_identifier, $.generic_type), $.record_pattern_body), | ||
| record_pattern_body: $ => seq('(', commaSep(choice($.record_pattern_component, $.record_pattern)), ')'), | ||
| record_pattern_component: $ => choice( | ||
| $.underscore_pattern, | ||
| seq( | ||
| $._unannotated_type, | ||
| choice($.identifier, $._reserved_identifier) | ||
| )), | ||
| underscore_pattern: $ => '_', | ||
| guard: $ => seq('when', $.expression), | ||
| // Statements | ||
@@ -409,3 +557,2 @@ | ||
| $.assert_statement, | ||
| $.switch_statement, | ||
| $.do_statement, | ||
@@ -415,2 +562,4 @@ $.break_statement, | ||
| $.return_statement, | ||
| $.yield_statement, | ||
| $.switch_expression, // switch statements and expressions are identical | ||
| $.synchronized_statement, | ||
@@ -441,19 +590,2 @@ $.local_variable_declaration, | ||
| switch_statement: $ => seq( | ||
| 'switch', | ||
| field('condition', $.parenthesized_expression), | ||
| field('body', $.switch_block) | ||
| ), | ||
| switch_block: $ => seq( | ||
| '{', | ||
| repeat(choice($.switch_label, $.statement)), | ||
| '}' | ||
| ), | ||
| switch_label: $ => choice( | ||
| seq('case', $.expression, ':'), | ||
| seq('default', ':') | ||
| ), | ||
| do_statement: $ => seq( | ||
@@ -477,2 +609,8 @@ 'do', | ||
| yield_statement: $ => seq( | ||
| 'yield', | ||
| $.expression, | ||
| ';' | ||
| ), | ||
| synchronized_statement: $ => seq( | ||
@@ -539,3 +677,3 @@ 'synchronized', | ||
| 'if', | ||
| field('condition', $.parenthesized_expression), | ||
| field('condition', $.condition), | ||
| field('consequence', $.statement), | ||
@@ -547,3 +685,3 @@ optional(seq('else', field('alternative', $.statement))) | ||
| 'while', | ||
| field('condition', $.parenthesized_expression), | ||
| field('condition', $.condition), | ||
| field('body', $.statement) | ||
@@ -611,3 +749,3 @@ ), | ||
| _element_value: $ => prec(1, choice( | ||
| _element_value: $ => prec(PREC.ELEMENT_VAL, choice( | ||
| $.expression, | ||
@@ -627,3 +765,3 @@ $.element_value_array_initializer, | ||
| declaration: $ => prec(1, choice( | ||
| declaration: $ => prec(PREC.DECL, choice( | ||
| $.module_declaration, | ||
@@ -633,2 +771,3 @@ $.package_declaration, | ||
| $.class_declaration, | ||
| $.record_declaration, | ||
| $.interface_declaration, | ||
@@ -653,10 +792,17 @@ $.annotation_type_declaration, | ||
| module_directive: $ => seq(choice( | ||
| seq('requires', repeat($.requires_modifier), $._name), | ||
| seq('exports', $._name, optional('to'), optional($._name), repeat(seq(',', $._name))), | ||
| seq('opens', $._name, optional('to'), optional($._name), repeat(seq(',', $._name))), | ||
| seq('uses', $._name), | ||
| seq('provides', $._name, 'with', $._name, repeat(seq(',', $._name))) | ||
| ), ';'), | ||
| module_directive: $ => choice( | ||
| $.requires_module_directive, | ||
| $.exports_module_directive, | ||
| $.opens_module_directive, | ||
| $.uses_module_directive, | ||
| $.provides_module_directive | ||
| ), | ||
| requires_module_directive: $ => seq( | ||
| 'requires', | ||
| repeat(field('modifiers', $.requires_modifier)), | ||
| field('module', $._name), | ||
| ';' | ||
| ), | ||
| requires_modifier: $ => choice( | ||
@@ -667,2 +813,39 @@ 'transitive', | ||
| exports_module_directive: $ => seq( | ||
| 'exports', | ||
| field('package', $._name), | ||
| optional(seq( | ||
| 'to', | ||
| field('modules', $._name), | ||
| repeat(seq(',', field('modules', $._name))) | ||
| )), | ||
| ';' | ||
| ), | ||
| opens_module_directive: $ => seq( | ||
| 'opens', | ||
| field('package', $._name), | ||
| optional(seq( | ||
| 'to', | ||
| field('modules', $._name), | ||
| repeat(seq(',', field('modules', $._name))) | ||
| )), | ||
| ';' | ||
| ), | ||
| uses_module_directive: $ => seq( | ||
| 'uses', | ||
| field('type', $._name), | ||
| ';' | ||
| ), | ||
| provides_module_directive: $ => seq( | ||
| 'provides', | ||
| field('provided', $._name), | ||
| 'with', | ||
| $._name, | ||
| repeat(seq(',', (field('provider', $._name)))), | ||
| ';' | ||
| ), | ||
| package_declaration: $ => seq( | ||
@@ -720,2 +903,3 @@ repeat($._annotation), | ||
| optional(field('interfaces', $.super_interfaces)), | ||
| optional(field('permits', $.permits)), | ||
| field('body', $.class_body) | ||
@@ -737,3 +921,5 @@ ), | ||
| 'transient', | ||
| 'volatile' | ||
| 'volatile', | ||
| 'sealed', | ||
| 'non-sealed', | ||
| )), | ||
@@ -747,3 +933,3 @@ | ||
| repeat($._annotation), | ||
| $.identifier, | ||
| alias($.identifier, $.type_identifier), | ||
| optional($.type_bound) | ||
@@ -761,6 +947,6 @@ ), | ||
| 'implements', | ||
| $.interface_type_list | ||
| $.type_list | ||
| ), | ||
| interface_type_list: $ => seq( | ||
| type_list: $ => seq( | ||
| $._type, | ||
@@ -770,2 +956,7 @@ repeat(seq(',', $._type)) | ||
| permits: $ => seq( | ||
| 'permits', | ||
| $.type_list | ||
| ), | ||
| class_body: $ => seq( | ||
@@ -779,3 +970,5 @@ '{', | ||
| $.field_declaration, | ||
| $.record_declaration, | ||
| $.method_declaration, | ||
| $.compact_constructor_declaration, // For records. | ||
| $.class_declaration, | ||
@@ -852,2 +1045,12 @@ $.interface_declaration, | ||
| record_declaration: $ => seq( | ||
| optional($.modifiers), | ||
| 'record', | ||
| field('name', $.identifier), | ||
| optional(field('type_parameters', $.type_parameters)), | ||
| field('parameters', $.formal_parameters), | ||
| optional(field('interfaces', $.super_interfaces)), | ||
| field('body', $.class_body) | ||
| ), | ||
| annotation_type_declaration: $ => seq( | ||
@@ -861,3 +1064,4 @@ optional($.modifiers), | ||
| annotation_type_body: $ => seq( | ||
| '{', repeat(choice( | ||
| '{', | ||
| repeat(choice( | ||
| $.annotation_type_element_declaration, | ||
@@ -867,3 +1071,5 @@ $.constant_declaration, | ||
| $.interface_declaration, | ||
| $.annotation_type_declaration | ||
| $.enum_declaration, | ||
| $.annotation_type_declaration, | ||
| ';', | ||
| )), | ||
@@ -876,3 +1082,3 @@ '}' | ||
| field('type', $._unannotated_type), | ||
| field('name', $.identifier), | ||
| field('name', choice($.identifier, $._reserved_identifier)), | ||
| '(', ')', | ||
@@ -895,2 +1101,3 @@ field('dimensions', optional($.dimensions)), | ||
| optional($.extends_interfaces), | ||
| optional(field('permits', $.permits)), | ||
| field('body', $.interface_body) | ||
@@ -901,3 +1108,3 @@ ), | ||
| 'extends', | ||
| $.interface_type_list | ||
| $.type_list | ||
| ), | ||
@@ -913,2 +1120,3 @@ | ||
| $.interface_declaration, | ||
| $.record_declaration, | ||
| $.annotation_type_declaration, | ||
@@ -937,3 +1145,3 @@ ';' | ||
| _variable_declarator_id: $ => seq( | ||
| field('name', choice($.identifier, $._reserved_identifier)), | ||
| field('name', choice($.identifier, $._reserved_identifier, $.underscore_pattern)), | ||
| field('dimensions', optional($.dimensions)) | ||
@@ -992,3 +1200,3 @@ ), | ||
| generic_type: $ => prec.dynamic(10, seq( | ||
| generic_type: $ => prec.dynamic(PREC.GENERIC, seq( | ||
| choice( | ||
@@ -1041,4 +1249,9 @@ alias($.identifier, $.type_identifier), | ||
| '(', | ||
| optional($.receiver_parameter), | ||
| commaSep(choice($.formal_parameter, $.spread_parameter)), | ||
| choice( | ||
| $.receiver_parameter, | ||
| seq( | ||
| optional(seq($.receiver_parameter, ',')), | ||
| commaSep(choice($.formal_parameter, $.spread_parameter)), | ||
| ), | ||
| ), | ||
| ')' | ||
@@ -1056,3 +1269,3 @@ ), | ||
| $._unannotated_type, | ||
| optional(seq($.identifier, '.')), | ||
| repeat(seq($.identifier, '.')), | ||
| $.this | ||
@@ -1085,7 +1298,20 @@ ), | ||
| _reserved_identifier: $ => alias(choice( | ||
| 'open', | ||
| 'module' | ||
| ), $.identifier), | ||
| compact_constructor_declaration: $ => seq( | ||
| optional($.modifiers), | ||
| field('name', $.identifier), | ||
| field('body', $.block) | ||
| ), | ||
| _reserved_identifier: $ => prec(-3, alias( | ||
| choice( | ||
| 'open', | ||
| 'module', | ||
| 'record', | ||
| 'with', | ||
| 'yield', | ||
| 'sealed', | ||
| ), | ||
| $.identifier, | ||
| )), | ||
| this: $ => 'this', | ||
@@ -1096,7 +1322,13 @@ | ||
| // https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-IdentifierChars | ||
| identifier: $ => /[A-Za-z_$][A-Za-z0-9_$]*/, | ||
| identifier: $ => /[\p{L}_$][\p{L}\p{Nd}\u00A2_$]*/, | ||
| // http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890 | ||
| comment: $ => token(prec(PREC.COMMENT, choice( | ||
| seq('//', /.*/), | ||
| comment: $ => choice( | ||
| $.line_comment, | ||
| $.block_comment, | ||
| ), | ||
| line_comment: $ => token(prec(PREC.COMMENT, seq('//', /[^\n]*/))), | ||
| block_comment: $ => token(prec(PREC.COMMENT, | ||
| seq( | ||
@@ -1107,7 +1339,7 @@ '/*', | ||
| ) | ||
| ))), | ||
| )), | ||
| } | ||
| }); | ||
| function sep1 (rule, separator) { | ||
| function sep1(rule, separator) { | ||
| return seq(rule, repeat(seq(separator, rule))); | ||
@@ -1114,0 +1346,0 @@ } |
+3
-3
| { | ||
| "name": "tree-sitter-java", | ||
| "version": "0.19.1", | ||
| "version": "0.20.2", | ||
| "description": "Java grammar for tree-sitter", | ||
@@ -20,6 +20,6 @@ "main": "bindings/node", | ||
| "devDependencies": { | ||
| "tree-sitter-cli": "^0.19.2" | ||
| "tree-sitter-cli": "^0.20.6" | ||
| }, | ||
| "scripts": { | ||
| "build": "tree-sitter generate && node-gyp build", | ||
| "build": "tree-sitter generate && node-gyp rebuild", | ||
| "test": "tree-sitter test && script/parse-examples", | ||
@@ -26,0 +26,0 @@ "test-windows": "tree-sitter test", |
+2
-2
| tree-sitter-java | ||
| ================ | ||
| [](https://travis-ci.org/tree-sitter/tree-sitter-java) | ||
| [](https://ci.appveyor.com/project/maxbrunsfeld/tree-sitter-java/branch/master) | ||
| [](https://github.com/tree-sitter/tree-sitter-java/actions/workflows/ci.yml) | ||
| [](https://discord.gg/w7nTvsVJhm) | ||
| Java grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter). |
@@ -16,5 +16,4 @@ #ifndef TREE_SITTER_PARSER_H_ | ||
| #ifndef TREE_SITTER_API_H_ | ||
| typedef uint16_t TSStateId; | ||
| #ifndef TREE_SITTER_API_H_ | ||
| typedef uint16_t TSSymbol; | ||
@@ -106,4 +105,4 @@ typedef uint16_t TSFieldId; | ||
| const TSParseActionEntry *parse_actions; | ||
| const char **symbol_names; | ||
| const char **field_names; | ||
| const char * const *symbol_names; | ||
| const char * const *field_names; | ||
| const TSFieldMapSlice *field_map_slices; | ||
@@ -128,2 +127,3 @@ const TSFieldMapEntry *field_map_entries; | ||
| } external_scanner; | ||
| const TSStateId *primary_state_ids; | ||
| }; | ||
@@ -145,3 +145,4 @@ | ||
| skip = false; \ | ||
| lookahead = lexer->lookahead; | ||
| lookahead = lexer->lookahead; \ | ||
| eof = lexer->eof(lexer); | ||
@@ -172,3 +173,3 @@ #define ADVANCE(state_value) \ | ||
| #define SMALL_STATE(id) id - LARGE_STATE_COUNT | ||
| #define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) | ||
@@ -183,3 +184,3 @@ #define STATE(id) id | ||
| .type = TSParseActionTypeShift, \ | ||
| .state = state_value \ | ||
| .state = (state_value) \ | ||
| } \ | ||
@@ -192,3 +193,3 @@ }} | ||
| .type = TSParseActionTypeShift, \ | ||
| .state = state_value, \ | ||
| .state = (state_value), \ | ||
| .repetition = true \ | ||
@@ -195,0 +196,0 @@ } \ |
@@ -5,3 +5,6 @@ enum Material { | ||
| // ^ constant | ||
| CANVAS | ||
| CANVAS, | ||
| // ^ constant | ||
| SPANDEX_3_PERCENT | ||
| // ^ constant | ||
| } | ||
@@ -8,0 +11,0 @@ |
-23
| language: node_js | ||
| sudo: false | ||
| node_js: | ||
| - 11 | ||
| compiler: clang-3.6 | ||
| env: | ||
| - CXX=clang-3.6 | ||
| addons: | ||
| apt: | ||
| sources: | ||
| - llvm-toolchain-precise-3.6 | ||
| - ubuntu-toolchain-r-test | ||
| packages: | ||
| - clang-3.6 | ||
| branches: | ||
| only: | ||
| - master |
-23
| image: Visual Studio 2015 | ||
| environment: | ||
| nodejs_version: "11" | ||
| platform: | ||
| - x64 | ||
| - x86 | ||
| install: | ||
| - ps: Install-Product node $env:nodejs_version | ||
| - node --version | ||
| - npm --version | ||
| - npm install | ||
| test_script: | ||
| - npm run test-windows | ||
| build: off | ||
| branches: | ||
| only: | ||
| - master |
-834
| public abstract class AnalysisFactoryTestCase extends ESTestCase { | ||
| static final Map<String,Class<?>> KNOWN_TOKENFILTERS = new MapBuilder<String,Class<?>>() | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .put("apostrophe") | ||
| .put("arabicnormalization") | ||
| .put("arabicstem") | ||
| .put("asciifolding") | ||
| .put("bengalinormalization") | ||
| .put("bengalistem") | ||
| .put("brazilianstem") | ||
| .put("bulgarianstem") | ||
| .put("cjkbigram") | ||
| .put("cjkwidth") | ||
| .put("classic") | ||
| .put("commongrams") | ||
| .put("commongramsquery") | ||
| .put("czechstem") | ||
| .put("decimaldigit") | ||
| .put("delimitedpayload") | ||
| .put("dictionarycompoundword") | ||
| .put("edgengram") | ||
| .put("elision") | ||
| .put("englishminimalstem") | ||
| .put("englishpossessive") | ||
| .put("finnishlightstem") | ||
| .put("flattengraph") | ||
| .put("frenchlightstem") | ||
| .put("frenchminimalstem") | ||
| .put("galicianminimalstem") | ||
| .put("galicianstem") | ||
| .put("germanlightstem") | ||
| .put("germanminimalstem") | ||
| .put("germannormalization") | ||
| .put("germanstem") | ||
| .put("greeklowercase") | ||
| .put("greekstem") | ||
| .put("hindinormalization") | ||
| .put("hindistem") | ||
| .put("hungarianlightstem") | ||
| .put("hunspellstem") | ||
| .put("hyphenationcompoundword") | ||
| .put("indicnormalization") | ||
| .put("indonesianstem") | ||
| .put("irishlowercase") | ||
| .put("italianlightstem") | ||
| .put("keepword") | ||
| .put("keywordmarker") | ||
| .put("kstem") | ||
| .put("latvianstem") | ||
| .put("length") | ||
| .put("limittokencount") | ||
| .put("lowercase") | ||
| .put("minhash") | ||
| .put("ngram") | ||
| .put("norwegianlightstem") | ||
| .put("norwegianminimalstem") | ||
| .put("patterncapturegroup") | ||
| .put("patternreplace") | ||
| .put("persiannormalization") | ||
| .put("porterstem") | ||
| .put("portugueselightstem") | ||
| .put("portugueseminimalstem") | ||
| .put("portuguesestem") | ||
| .put("reversestring") | ||
| .put("russianlightstem") | ||
| .put("scandinavianfolding") | ||
| .put("scandinaviannormalization") | ||
| .put("serbiannormalization") | ||
| .put("shingle") | ||
| .put("snowballporter") | ||
| .put("soraninormalization") | ||
| .put("soranistem") | ||
| .put("spanishlightstem") | ||
| .put("standard") | ||
| .put("stemmeroverride") | ||
| .put("stop") | ||
| .put("swedishlightstem") | ||
| .put("synonym") | ||
| .put("synonymgraph") | ||
| .put("trim") | ||
| .put("truncate") | ||
| .put("turkishlowercase") | ||
| .put("type") | ||
| .put("uppercase") | ||
| .put("worddelimiter") | ||
| .put("worddelimitergraph") | ||
| .immutableMap(); | ||
| } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
2950618
71.54%30
25%13654
10.7%