Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

tree-sitter-java

Package Overview
Dependencies
Maintainers
10
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tree-sitter-java - npm Package Compare versions

Comparing version
0.19.1
to
0.20.2
+9
.github/pull_request_template.md
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")
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")])
]
)
+1
-1

@@ -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)]

[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 @@ }

{
"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",

tree-sitter-java
================
[![Build Status](https://travis-ci.org/tree-sitter/tree-sitter-java.svg?branch=master)](https://travis-ci.org/tree-sitter/tree-sitter-java)
[![Build status](https://ci.appveyor.com/api/projects/status/keg0ldsqf19ogm4a/branch/master?svg=true)](https://ci.appveyor.com/project/maxbrunsfeld/tree-sitter-java/branch/master)
[![CI](https://github.com/tree-sitter/tree-sitter-java/actions/workflows/ci.yml/badge.svg)](https://github.com/tree-sitter/tree-sitter-java/actions/workflows/ci.yml)
[![Discord](https://img.shields.io/discord/1063097320771698699?logo=discord)](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 @@

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
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
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