plum
git clone https://git.pyrossh.dev/plum
A statically typed, imperative programming language inspired by rust, python
e832171
— Peter John
2022-11-07T01:04:41+05:30
intitial commit
- .gitattributes +2 -0
- .gitignore +7 -0
- .npmignore +6 -0
- Cargo.toml +26 -0
- binding.gyp +19 -0
- bindings/node/binding.cc +28 -0
- bindings/node/index.js +19 -0
- bindings/rust/README.md +36 -0
- bindings/rust/build.rs +28 -0
- bindings/rust/lib.rs +68 -0
- grammar.js +77 -0
- package.json +34 -0
- src/grammar.json +349 -0
- src/node-types.json +183 -0
- src/parser.c +3061 -0
- src/scanner.cc +408 -0
- src/tree_sitter/parser.h +224 -0
- test/corpus/class_definitions.txt +67 -0
- test/corpus/import_statements.txt +13 -0
.gitattributes
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/src/** linguist-vendored
|
|
2
|
+
/examples/* linguist-vendored
|
.gitignore
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Cargo.lock
|
|
2
|
+
package-lock.json
|
|
3
|
+
node_modules
|
|
4
|
+
build
|
|
5
|
+
*.log
|
|
6
|
+
/examples/*/
|
|
7
|
+
/target/
|
.npmignore
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
corpus
|
|
2
|
+
examples
|
|
3
|
+
build
|
|
4
|
+
script
|
|
5
|
+
target
|
|
6
|
+
bindings/rust
|
Cargo.toml
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "tree-sitter-pine"
|
|
3
|
+
description = "pine grammar for the tree-sitter parsing library"
|
|
4
|
+
version = "0.0.1"
|
|
5
|
+
keywords = ["incremental", "parsing", "pine"]
|
|
6
|
+
categories = ["parsing", "text-editors"]
|
|
7
|
+
repository = "https://github.com/tree-sitter/tree-sitter-pine"
|
|
8
|
+
edition = "2018"
|
|
9
|
+
license = "MIT"
|
|
10
|
+
|
|
11
|
+
build = "bindings/rust/build.rs"
|
|
12
|
+
include = [
|
|
13
|
+
"bindings/rust/*",
|
|
14
|
+
"grammar.js",
|
|
15
|
+
"queries/*",
|
|
16
|
+
"src/*",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[lib]
|
|
20
|
+
path = "bindings/rust/lib.rs"
|
|
21
|
+
|
|
22
|
+
[dependencies]
|
|
23
|
+
tree-sitter = "~0.20"
|
|
24
|
+
|
|
25
|
+
[build-dependencies]
|
|
26
|
+
cc = "1.0"
|
binding.gyp
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"targets": [
|
|
3
|
+
{
|
|
4
|
+
"target_name": "tree_sitter_pine_binding",
|
|
5
|
+
"include_dirs": [
|
|
6
|
+
"<!(node -e \"require('nan')\")",
|
|
7
|
+
"src"
|
|
8
|
+
],
|
|
9
|
+
"sources": [
|
|
10
|
+
"bindings/node/binding.cc",
|
|
11
|
+
"src/parser.c",
|
|
12
|
+
"src/scanner.cc",
|
|
13
|
+
],
|
|
14
|
+
"cflags_c": [
|
|
15
|
+
"-std=c99",
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
bindings/node/binding.cc
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#include "tree_sitter/parser.h"
|
|
2
|
+
#include <node.h>
|
|
3
|
+
#include "nan.h"
|
|
4
|
+
|
|
5
|
+
using namespace v8;
|
|
6
|
+
|
|
7
|
+
extern "C" TSLanguage * tree_sitter_pine();
|
|
8
|
+
|
|
9
|
+
namespace {
|
|
10
|
+
|
|
11
|
+
NAN_METHOD(New) {}
|
|
12
|
+
|
|
13
|
+
void Init(Local<Object> exports, Local<Object> module) {
|
|
14
|
+
Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(New);
|
|
15
|
+
tpl->SetClassName(Nan::New("Language").ToLocalChecked());
|
|
16
|
+
tpl->InstanceTemplate()->SetInternalFieldCount(1);
|
|
17
|
+
|
|
18
|
+
Local<Function> constructor = Nan::GetFunction(tpl).ToLocalChecked();
|
|
19
|
+
Local<Object> instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked();
|
|
20
|
+
Nan::SetInternalFieldPointer(instance, 0, tree_sitter_pine());
|
|
21
|
+
|
|
22
|
+
Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("pine").ToLocalChecked());
|
|
23
|
+
Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
NODE_MODULE(tree_sitter_pine_binding, Init)
|
|
27
|
+
|
|
28
|
+
} // namespace
|
bindings/node/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
try {
|
|
2
|
+
module.exports = require("../../build/Release/tree_sitter_pine_binding");
|
|
3
|
+
} catch (error1) {
|
|
4
|
+
if (error1.code !== 'MODULE_NOT_FOUND') {
|
|
5
|
+
throw error1;
|
|
6
|
+
}
|
|
7
|
+
try {
|
|
8
|
+
module.exports = require("../../build/Debug/tree_sitter_pine_binding");
|
|
9
|
+
} catch (error2) {
|
|
10
|
+
if (error2.code !== 'MODULE_NOT_FOUND') {
|
|
11
|
+
throw error2;
|
|
12
|
+
}
|
|
13
|
+
throw error1
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
module.exports.nodeTypeInfo = require("../../src/node-types.json");
|
|
19
|
+
} catch (_) {}
|
bindings/rust/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# tree-sitter-python
|
|
2
|
+
|
|
3
|
+
This crate provides a Python grammar for the [tree-sitter][] parsing library.
|
|
4
|
+
To use this crate, add it to the `[dependencies]` section of your `Cargo.toml`
|
|
5
|
+
file. (Note that you will probably also need to depend on the
|
|
6
|
+
[`tree-sitter`][tree-sitter crate] crate to use the parsed result in any useful
|
|
7
|
+
way.)
|
|
8
|
+
|
|
9
|
+
``` toml
|
|
10
|
+
[dependencies]
|
|
11
|
+
tree-sitter = "0.17"
|
|
12
|
+
tree-sitter-python = "0.17"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Typically, you will use the [language][language func] function to add this
|
|
16
|
+
grammar to a tree-sitter [Parser][], and then use the parser to parse some code:
|
|
17
|
+
|
|
18
|
+
``` rust
|
|
19
|
+
let code = r#"
|
|
20
|
+
def double(x):
|
|
21
|
+
return x * 2
|
|
22
|
+
"#;
|
|
23
|
+
let mut parser = Parser::new();
|
|
24
|
+
parser.set_language(tree_sitter_python::language()).expect("Error loading Python grammar");
|
|
25
|
+
let parsed = parser.parse(code, None);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If you have any questions, please reach out to us in the [tree-sitter
|
|
29
|
+
discussions] page.
|
|
30
|
+
|
|
31
|
+
[Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
|
|
32
|
+
[language func]: https://docs.rs/tree-sitter-python/*/tree_sitter_python/fn.language.html
|
|
33
|
+
[Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
|
|
34
|
+
[tree-sitter]: https://tree-sitter.github.io/
|
|
35
|
+
[tree-sitter crate]: https://crates.io/crates/tree-sitter
|
|
36
|
+
[tree-sitter discussions]: https://github.com/tree-sitter/tree-sitter/discussions
|
bindings/rust/build.rs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
use std::path::Path;
|
|
2
|
+
extern crate cc;
|
|
3
|
+
|
|
4
|
+
fn main() {
|
|
5
|
+
let src_dir = Path::new("src");
|
|
6
|
+
|
|
7
|
+
let mut c_config = cc::Build::new();
|
|
8
|
+
c_config.include(&src_dir);
|
|
9
|
+
c_config
|
|
10
|
+
.flag_if_supported("-Wno-unused-parameter")
|
|
11
|
+
.flag_if_supported("-Wno-unused-but-set-variable")
|
|
12
|
+
.flag_if_supported("-Wno-trigraphs");
|
|
13
|
+
let parser_path = src_dir.join("parser.c");
|
|
14
|
+
c_config.file(&parser_path);
|
|
15
|
+
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
|
|
16
|
+
c_config.compile("parser");
|
|
17
|
+
|
|
18
|
+
let mut cpp_config = cc::Build::new();
|
|
19
|
+
cpp_config.cpp(true);
|
|
20
|
+
cpp_config.include(&src_dir);
|
|
21
|
+
cpp_config
|
|
22
|
+
.flag_if_supported("-Wno-unused-parameter")
|
|
23
|
+
.flag_if_supported("-Wno-unused-but-set-variable");
|
|
24
|
+
let scanner_path = src_dir.join("scanner.cc");
|
|
25
|
+
cpp_config.file(&scanner_path);
|
|
26
|
+
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
|
|
27
|
+
cpp_config.compile("scanner");
|
|
28
|
+
}
|
bindings/rust/lib.rs
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// -*- coding: utf-8 -*-
|
|
2
|
+
// ------------------------------------------------------------------------------------------------
|
|
3
|
+
// Copyright © 2020, tree-sitter-python authors.
|
|
4
|
+
// See the LICENSE file in this repo for license details.
|
|
5
|
+
// ------------------------------------------------------------------------------------------------
|
|
6
|
+
|
|
7
|
+
//! This crate provides a Python grammar for the [tree-sitter][] parsing library.
|
|
8
|
+
//!
|
|
9
|
+
//! Typically, you will use the [language][language func] function to add this grammar to a
|
|
10
|
+
//! tree-sitter [Parser][], and then use the parser to parse some code:
|
|
11
|
+
//!
|
|
12
|
+
//! ```
|
|
13
|
+
//! use tree_sitter::Parser;
|
|
14
|
+
//!
|
|
15
|
+
//! let code = r#"
|
|
16
|
+
//! def double(x):
|
|
17
|
+
//! return x * 2
|
|
18
|
+
//! "#;
|
|
19
|
+
//! let mut parser = Parser::new();
|
|
20
|
+
//! parser.set_language(tree_sitter_python::language()).expect("Error loading Python grammar");
|
|
21
|
+
//! let parsed = parser.parse(code, None);
|
|
22
|
+
//! # let parsed = parsed.unwrap();
|
|
23
|
+
//! # let root = parsed.root_node();
|
|
24
|
+
//! # assert!(!root.has_error());
|
|
25
|
+
//! ```
|
|
26
|
+
//!
|
|
27
|
+
//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
|
|
28
|
+
//! [language func]: fn.language.html
|
|
29
|
+
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
|
|
30
|
+
//! [tree-sitter]: https://tree-sitter.github.io/
|
|
31
|
+
|
|
32
|
+
use tree_sitter::Language;
|
|
33
|
+
|
|
34
|
+
extern "C" {
|
|
35
|
+
fn tree_sitter_python() -> Language;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/// Returns the tree-sitter [Language][] for this grammar.
|
|
39
|
+
///
|
|
40
|
+
/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
|
|
41
|
+
pub fn language() -> Language {
|
|
42
|
+
unsafe { tree_sitter_python() }
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/// The source of the Python tree-sitter grammar description.
|
|
46
|
+
pub const GRAMMAR: &'static str = include_str!("../../grammar.js");
|
|
47
|
+
|
|
48
|
+
/// The syntax highlighting query for this language.
|
|
49
|
+
pub const HIGHLIGHT_QUERY: &'static str = include_str!("../../queries/highlights.scm");
|
|
50
|
+
|
|
51
|
+
/// The content of the [`node-types.json`][] file for this grammar.
|
|
52
|
+
///
|
|
53
|
+
/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types
|
|
54
|
+
pub const NODE_TYPES: &'static str = include_str!("../../src/node-types.json");
|
|
55
|
+
|
|
56
|
+
/// The symbol tagging query for this language.
|
|
57
|
+
pub const TAGGING_QUERY: &'static str = include_str!("../../queries/tags.scm");
|
|
58
|
+
|
|
59
|
+
#[cfg(test)]
|
|
60
|
+
mod tests {
|
|
61
|
+
#[test]
|
|
62
|
+
fn can_load_grammar() {
|
|
63
|
+
let mut parser = tree_sitter::Parser::new();
|
|
64
|
+
parser
|
|
65
|
+
.set_language(super::language())
|
|
66
|
+
.expect("Error loading Python grammar");
|
|
67
|
+
}
|
|
68
|
+
}
|
grammar.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
module.exports = grammar({
|
|
2
|
+
name: 'pine',
|
|
3
|
+
externals: $ => [
|
|
4
|
+
$._newline,
|
|
5
|
+
$._indent,
|
|
6
|
+
$._dedent,
|
|
7
|
+
$._string_start,
|
|
8
|
+
$._string_content,
|
|
9
|
+
$._string_end,
|
|
10
|
+
|
|
11
|
+
// Mark comments as external tokens so that the external scanner is always
|
|
12
|
+
// invoked, even if no external token is expected. This allows for better
|
|
13
|
+
// error recovery, because the external scanner can maintain the overall
|
|
14
|
+
// structure by returning dedent tokens whenever a dedent occurs, even
|
|
15
|
+
// if no dedent is expected.
|
|
16
|
+
$.comment,
|
|
17
|
+
|
|
18
|
+
// Allow the external scanner to check for the validity of closing brackets
|
|
19
|
+
// so that it can avoid returning dedent tokens between brackets.
|
|
20
|
+
']',
|
|
21
|
+
')',
|
|
22
|
+
'}',
|
|
23
|
+
],
|
|
24
|
+
rules: {
|
|
25
|
+
module: $ => repeat($._definitions),
|
|
26
|
+
|
|
27
|
+
_definitions: $ => choice(
|
|
28
|
+
$.import_statement,
|
|
29
|
+
$.class_definition,
|
|
30
|
+
),
|
|
31
|
+
|
|
32
|
+
import_statement: $ => seq(
|
|
33
|
+
'import',
|
|
34
|
+
commaSep1(field('name', sep1($.identifier, '/')))
|
|
35
|
+
),
|
|
36
|
+
|
|
37
|
+
class_definition: $ => seq(
|
|
38
|
+
'class',
|
|
39
|
+
field('name', $.identifier),
|
|
40
|
+
field('generics', optional($.generic_list)),
|
|
41
|
+
field('traits', optional($.trait_list)),
|
|
42
|
+
':',
|
|
43
|
+
field('fields', seq($._indent, seq(
|
|
44
|
+
repeat($.type_pair),
|
|
45
|
+
$._dedent
|
|
46
|
+
))),
|
|
47
|
+
),
|
|
48
|
+
|
|
49
|
+
trait_list: $ => seq(
|
|
50
|
+
'(',
|
|
51
|
+
commaSep1($.identifier),
|
|
52
|
+
')'
|
|
53
|
+
),
|
|
54
|
+
|
|
55
|
+
generic_list: $ => seq(
|
|
56
|
+
'<',
|
|
57
|
+
commaSep1($.identifier),
|
|
58
|
+
'>'
|
|
59
|
+
),
|
|
60
|
+
|
|
61
|
+
type_pair: $ => seq(
|
|
62
|
+
field('key', $.identifier),
|
|
63
|
+
':',
|
|
64
|
+
field('value', $.identifier)
|
|
65
|
+
),
|
|
66
|
+
|
|
67
|
+
identifier: $ => /[_\p{XID_Start}][_\p{XID_Continue}]*/,
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
function commaSep1(rule) {
|
|
72
|
+
return sep1(rule, ',')
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function sep1(rule, separator) {
|
|
76
|
+
return seq(rule, repeat(seq(separator, rule)))
|
|
77
|
+
}
|
package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tree-sitter-pine",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "bindings/node",
|
|
5
|
+
"description": "Pine grammar for tree-sitter",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tree-sitter generate && node-gyp build",
|
|
8
|
+
"test": "tree-sitter test && script/parse-examples",
|
|
9
|
+
"parse": "tree-sitter parse",
|
|
10
|
+
"test-windows": "tree-sitter test"
|
|
11
|
+
},
|
|
12
|
+
"author": "pyrossh",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"parser",
|
|
16
|
+
"lexer",
|
|
17
|
+
"pine"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"nan": "^2.17.0"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"tree-sitter-cli": "^0.20.7"
|
|
24
|
+
},
|
|
25
|
+
"repository": "https://github.com/pyrossh/tree-sitter-pine",
|
|
26
|
+
"tree-sitter": [
|
|
27
|
+
{
|
|
28
|
+
"scope": "source.pine",
|
|
29
|
+
"file-types": [
|
|
30
|
+
"pi"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
src/grammar.json
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pine",
|
|
3
|
+
"rules": {
|
|
4
|
+
"module": {
|
|
5
|
+
"type": "REPEAT",
|
|
6
|
+
"content": {
|
|
7
|
+
"type": "SYMBOL",
|
|
8
|
+
"name": "_definitions"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"_definitions": {
|
|
12
|
+
"type": "CHOICE",
|
|
13
|
+
"members": [
|
|
14
|
+
{
|
|
15
|
+
"type": "SYMBOL",
|
|
16
|
+
"name": "import_statement"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "SYMBOL",
|
|
20
|
+
"name": "class_definition"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"import_statement": {
|
|
25
|
+
"type": "SEQ",
|
|
26
|
+
"members": [
|
|
27
|
+
{
|
|
28
|
+
"type": "STRING",
|
|
29
|
+
"value": "import"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "SEQ",
|
|
33
|
+
"members": [
|
|
34
|
+
{
|
|
35
|
+
"type": "FIELD",
|
|
36
|
+
"name": "name",
|
|
37
|
+
"content": {
|
|
38
|
+
"type": "SEQ",
|
|
39
|
+
"members": [
|
|
40
|
+
{
|
|
41
|
+
"type": "SYMBOL",
|
|
42
|
+
"name": "identifier"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "REPEAT",
|
|
46
|
+
"content": {
|
|
47
|
+
"type": "SEQ",
|
|
48
|
+
"members": [
|
|
49
|
+
{
|
|
50
|
+
"type": "STRING",
|
|
51
|
+
"value": "/"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "SYMBOL",
|
|
55
|
+
"name": "identifier"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"type": "REPEAT",
|
|
65
|
+
"content": {
|
|
66
|
+
"type": "SEQ",
|
|
67
|
+
"members": [
|
|
68
|
+
{
|
|
69
|
+
"type": "STRING",
|
|
70
|
+
"value": ","
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "FIELD",
|
|
74
|
+
"name": "name",
|
|
75
|
+
"content": {
|
|
76
|
+
"type": "SEQ",
|
|
77
|
+
"members": [
|
|
78
|
+
{
|
|
79
|
+
"type": "SYMBOL",
|
|
80
|
+
"name": "identifier"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"type": "REPEAT",
|
|
84
|
+
"content": {
|
|
85
|
+
"type": "SEQ",
|
|
86
|
+
"members": [
|
|
87
|
+
{
|
|
88
|
+
"type": "STRING",
|
|
89
|
+
"value": "/"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "SYMBOL",
|
|
93
|
+
"name": "identifier"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"class_definition": {
|
|
109
|
+
"type": "SEQ",
|
|
110
|
+
"members": [
|
|
111
|
+
{
|
|
112
|
+
"type": "STRING",
|
|
113
|
+
"value": "class"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"type": "FIELD",
|
|
117
|
+
"name": "name",
|
|
118
|
+
"content": {
|
|
119
|
+
"type": "SYMBOL",
|
|
120
|
+
"name": "identifier"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"type": "FIELD",
|
|
125
|
+
"name": "generics",
|
|
126
|
+
"content": {
|
|
127
|
+
"type": "CHOICE",
|
|
128
|
+
"members": [
|
|
129
|
+
{
|
|
130
|
+
"type": "SYMBOL",
|
|
131
|
+
"name": "generic_list"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"type": "BLANK"
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"type": "FIELD",
|
|
141
|
+
"name": "traits",
|
|
142
|
+
"content": {
|
|
143
|
+
"type": "CHOICE",
|
|
144
|
+
"members": [
|
|
145
|
+
{
|
|
146
|
+
"type": "SYMBOL",
|
|
147
|
+
"name": "trait_list"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"type": "BLANK"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"type": "STRING",
|
|
157
|
+
"value": ":"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"type": "FIELD",
|
|
161
|
+
"name": "fields",
|
|
162
|
+
"content": {
|
|
163
|
+
"type": "SEQ",
|
|
164
|
+
"members": [
|
|
165
|
+
{
|
|
166
|
+
"type": "SYMBOL",
|
|
167
|
+
"name": "_indent"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"type": "SEQ",
|
|
171
|
+
"members": [
|
|
172
|
+
{
|
|
173
|
+
"type": "REPEAT",
|
|
174
|
+
"content": {
|
|
175
|
+
"type": "SYMBOL",
|
|
176
|
+
"name": "type_pair"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"type": "SYMBOL",
|
|
181
|
+
"name": "_dedent"
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
"trait_list": {
|
|
191
|
+
"type": "SEQ",
|
|
192
|
+
"members": [
|
|
193
|
+
{
|
|
194
|
+
"type": "STRING",
|
|
195
|
+
"value": "("
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"type": "SEQ",
|
|
199
|
+
"members": [
|
|
200
|
+
{
|
|
201
|
+
"type": "SYMBOL",
|
|
202
|
+
"name": "identifier"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"type": "REPEAT",
|
|
206
|
+
"content": {
|
|
207
|
+
"type": "SEQ",
|
|
208
|
+
"members": [
|
|
209
|
+
{
|
|
210
|
+
"type": "STRING",
|
|
211
|
+
"value": ","
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"type": "SYMBOL",
|
|
215
|
+
"name": "identifier"
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"type": "STRING",
|
|
224
|
+
"value": ")"
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"generic_list": {
|
|
229
|
+
"type": "SEQ",
|
|
230
|
+
"members": [
|
|
231
|
+
{
|
|
232
|
+
"type": "STRING",
|
|
233
|
+
"value": "<"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"type": "SEQ",
|
|
237
|
+
"members": [
|
|
238
|
+
{
|
|
239
|
+
"type": "SYMBOL",
|
|
240
|
+
"name": "identifier"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"type": "REPEAT",
|
|
244
|
+
"content": {
|
|
245
|
+
"type": "SEQ",
|
|
246
|
+
"members": [
|
|
247
|
+
{
|
|
248
|
+
"type": "STRING",
|
|
249
|
+
"value": ","
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"type": "SYMBOL",
|
|
253
|
+
"name": "identifier"
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
]
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"type": "STRING",
|
|
262
|
+
"value": ">"
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
},
|
|
266
|
+
"type_pair": {
|
|
267
|
+
"type": "SEQ",
|
|
268
|
+
"members": [
|
|
269
|
+
{
|
|
270
|
+
"type": "FIELD",
|
|
271
|
+
"name": "key",
|
|
272
|
+
"content": {
|
|
273
|
+
"type": "SYMBOL",
|
|
274
|
+
"name": "identifier"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"type": "STRING",
|
|
279
|
+
"value": ":"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"type": "FIELD",
|
|
283
|
+
"name": "value",
|
|
284
|
+
"content": {
|
|
285
|
+
"type": "SYMBOL",
|
|
286
|
+
"name": "identifier"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
]
|
|
290
|
+
},
|
|
291
|
+
"identifier": {
|
|
292
|
+
"type": "PATTERN",
|
|
293
|
+
"value": "[_\\p{XID_Start}][_\\p{XID_Continue}]*"
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"extras": [
|
|
297
|
+
{
|
|
298
|
+
"type": "PATTERN",
|
|
299
|
+
"value": "\\s"
|
|
300
|
+
}
|
|
301
|
+
],
|
|
302
|
+
"conflicts": [],
|
|
303
|
+
"precedences": [],
|
|
304
|
+
"externals": [
|
|
305
|
+
{
|
|
306
|
+
"type": "SYMBOL",
|
|
307
|
+
"name": "_newline"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"type": "SYMBOL",
|
|
311
|
+
"name": "_indent"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"type": "SYMBOL",
|
|
315
|
+
"name": "_dedent"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"type": "SYMBOL",
|
|
319
|
+
"name": "_string_start"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"type": "SYMBOL",
|
|
323
|
+
"name": "_string_content"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"type": "SYMBOL",
|
|
327
|
+
"name": "_string_end"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"type": "SYMBOL",
|
|
331
|
+
"name": "comment"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"type": "STRING",
|
|
335
|
+
"value": "]"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"type": "STRING",
|
|
339
|
+
"value": ")"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"type": "STRING",
|
|
343
|
+
"value": "}"
|
|
344
|
+
}
|
|
345
|
+
],
|
|
346
|
+
"inline": [],
|
|
347
|
+
"supertypes": []
|
|
348
|
+
}
|
|
349
|
+
|
src/node-types.json
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "class_definition",
|
|
4
|
+
"named": true,
|
|
5
|
+
"fields": {
|
|
6
|
+
"fields": {
|
|
7
|
+
"multiple": true,
|
|
8
|
+
"required": true,
|
|
9
|
+
"types": [
|
|
10
|
+
{
|
|
11
|
+
"type": "type_pair",
|
|
12
|
+
"named": true
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"generics": {
|
|
17
|
+
"multiple": false,
|
|
18
|
+
"required": false,
|
|
19
|
+
"types": [
|
|
20
|
+
{
|
|
21
|
+
"type": "generic_list",
|
|
22
|
+
"named": true
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"name": {
|
|
27
|
+
"multiple": false,
|
|
28
|
+
"required": true,
|
|
29
|
+
"types": [
|
|
30
|
+
{
|
|
31
|
+
"type": "identifier",
|
|
32
|
+
"named": true
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"traits": {
|
|
37
|
+
"multiple": false,
|
|
38
|
+
"required": false,
|
|
39
|
+
"types": [
|
|
40
|
+
{
|
|
41
|
+
"type": "trait_list",
|
|
42
|
+
"named": true
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "generic_list",
|
|
50
|
+
"named": true,
|
|
51
|
+
"fields": {},
|
|
52
|
+
"children": {
|
|
53
|
+
"multiple": true,
|
|
54
|
+
"required": true,
|
|
55
|
+
"types": [
|
|
56
|
+
{
|
|
57
|
+
"type": "identifier",
|
|
58
|
+
"named": true
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"type": "import_statement",
|
|
65
|
+
"named": true,
|
|
66
|
+
"fields": {
|
|
67
|
+
"name": {
|
|
68
|
+
"multiple": true,
|
|
69
|
+
"required": true,
|
|
70
|
+
"types": [
|
|
71
|
+
{
|
|
72
|
+
"type": "/",
|
|
73
|
+
"named": false
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"type": "identifier",
|
|
77
|
+
"named": true
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"type": "module",
|
|
85
|
+
"named": true,
|
|
86
|
+
"fields": {},
|
|
87
|
+
"children": {
|
|
88
|
+
"multiple": true,
|
|
89
|
+
"required": false,
|
|
90
|
+
"types": [
|
|
91
|
+
{
|
|
92
|
+
"type": "class_definition",
|
|
93
|
+
"named": true
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"type": "import_statement",
|
|
97
|
+
"named": true
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"type": "trait_list",
|
|
104
|
+
"named": true,
|
|
105
|
+
"fields": {},
|
|
106
|
+
"children": {
|
|
107
|
+
"multiple": true,
|
|
108
|
+
"required": true,
|
|
109
|
+
"types": [
|
|
110
|
+
{
|
|
111
|
+
"type": "identifier",
|
|
112
|
+
"named": true
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"type": "type_pair",
|
|
119
|
+
"named": true,
|
|
120
|
+
"fields": {
|
|
121
|
+
"key": {
|
|
122
|
+
"multiple": false,
|
|
123
|
+
"required": true,
|
|
124
|
+
"types": [
|
|
125
|
+
{
|
|
126
|
+
"type": "identifier",
|
|
127
|
+
"named": true
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"value": {
|
|
132
|
+
"multiple": false,
|
|
133
|
+
"required": true,
|
|
134
|
+
"types": [
|
|
135
|
+
{
|
|
136
|
+
"type": "identifier",
|
|
137
|
+
"named": true
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "(",
|
|
145
|
+
"named": false
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": ")",
|
|
149
|
+
"named": false
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"type": ",",
|
|
153
|
+
"named": false
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"type": "/",
|
|
157
|
+
"named": false
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"type": ":",
|
|
161
|
+
"named": false
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"type": "<",
|
|
165
|
+
"named": false
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"type": ">",
|
|
169
|
+
"named": false
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"type": "class",
|
|
173
|
+
"named": false
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"type": "identifier",
|
|
177
|
+
"named": true
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"type": "import",
|
|
181
|
+
"named": false
|
|
182
|
+
}
|
|
183
|
+
]
|
src/parser.c
ADDED
|
@@ -0,0 +1,3061 @@
|
|
|
1
|
+
#include <tree_sitter/parser.h>
|
|
2
|
+
|
|
3
|
+
#if defined(__GNUC__) || defined(__clang__)
|
|
4
|
+
#pragma GCC diagnostic push
|
|
5
|
+
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
#define LANGUAGE_VERSION 14
|
|
9
|
+
#define STATE_COUNT 62
|
|
10
|
+
#define LARGE_STATE_COUNT 2
|
|
11
|
+
#define SYMBOL_COUNT 32
|
|
12
|
+
#define ALIAS_COUNT 0
|
|
13
|
+
#define TOKEN_COUNT 20
|
|
14
|
+
#define EXTERNAL_TOKEN_COUNT 10
|
|
15
|
+
#define FIELD_COUNT 6
|
|
16
|
+
#define MAX_ALIAS_SEQUENCE_LENGTH 8
|
|
17
|
+
#define PRODUCTION_ID_COUNT 15
|
|
18
|
+
|
|
19
|
+
enum {
|
|
20
|
+
anon_sym_import = 1,
|
|
21
|
+
anon_sym_SLASH = 2,
|
|
22
|
+
anon_sym_COMMA = 3,
|
|
23
|
+
anon_sym_class = 4,
|
|
24
|
+
anon_sym_COLON = 5,
|
|
25
|
+
anon_sym_LPAREN = 6,
|
|
26
|
+
anon_sym_RPAREN = 7,
|
|
27
|
+
anon_sym_LT = 8,
|
|
28
|
+
anon_sym_GT = 9,
|
|
29
|
+
sym_identifier = 10,
|
|
30
|
+
anon_sym_RBRACK = 11,
|
|
31
|
+
anon_sym_RBRACE = 12,
|
|
32
|
+
sym__newline = 13,
|
|
33
|
+
sym__indent = 14,
|
|
34
|
+
sym__dedent = 15,
|
|
35
|
+
sym__string_start = 16,
|
|
36
|
+
sym__string_content = 17,
|
|
37
|
+
sym__string_end = 18,
|
|
38
|
+
sym_comment = 19,
|
|
39
|
+
sym_module = 20,
|
|
40
|
+
sym__definitions = 21,
|
|
41
|
+
sym_import_statement = 22,
|
|
42
|
+
sym_class_definition = 23,
|
|
43
|
+
sym_trait_list = 24,
|
|
44
|
+
sym_generic_list = 25,
|
|
45
|
+
sym_type_pair = 26,
|
|
46
|
+
aux_sym_module_repeat1 = 27,
|
|
47
|
+
aux_sym_import_statement_repeat1 = 28,
|
|
48
|
+
aux_sym_import_statement_repeat2 = 29,
|
|
49
|
+
aux_sym_class_definition_repeat1 = 30,
|
|
50
|
+
aux_sym_trait_list_repeat1 = 31,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
static const char * const ts_symbol_names[] = {
|
|
54
|
+
[ts_builtin_sym_end] = "end",
|
|
55
|
+
[anon_sym_import] = "import",
|
|
56
|
+
[anon_sym_SLASH] = "/",
|
|
57
|
+
[anon_sym_COMMA] = ",",
|
|
58
|
+
[anon_sym_class] = "class",
|
|
59
|
+
[anon_sym_COLON] = ":",
|
|
60
|
+
[anon_sym_LPAREN] = "(",
|
|
61
|
+
[anon_sym_RPAREN] = ")",
|
|
62
|
+
[anon_sym_LT] = "<",
|
|
63
|
+
[anon_sym_GT] = ">",
|
|
64
|
+
[sym_identifier] = "identifier",
|
|
65
|
+
[anon_sym_RBRACK] = "]",
|
|
66
|
+
[anon_sym_RBRACE] = "}",
|
|
67
|
+
[sym__newline] = "_newline",
|
|
68
|
+
[sym__indent] = "_indent",
|
|
69
|
+
[sym__dedent] = "_dedent",
|
|
70
|
+
[sym__string_start] = "_string_start",
|
|
71
|
+
[sym__string_content] = "_string_content",
|
|
72
|
+
[sym__string_end] = "_string_end",
|
|
73
|
+
[sym_comment] = "comment",
|
|
74
|
+
[sym_module] = "module",
|
|
75
|
+
[sym__definitions] = "_definitions",
|
|
76
|
+
[sym_import_statement] = "import_statement",
|
|
77
|
+
[sym_class_definition] = "class_definition",
|
|
78
|
+
[sym_trait_list] = "trait_list",
|
|
79
|
+
[sym_generic_list] = "generic_list",
|
|
80
|
+
[sym_type_pair] = "type_pair",
|
|
81
|
+
[aux_sym_module_repeat1] = "module_repeat1",
|
|
82
|
+
[aux_sym_import_statement_repeat1] = "import_statement_repeat1",
|
|
83
|
+
[aux_sym_import_statement_repeat2] = "import_statement_repeat2",
|
|
84
|
+
[aux_sym_class_definition_repeat1] = "class_definition_repeat1",
|
|
85
|
+
[aux_sym_trait_list_repeat1] = "trait_list_repeat1",
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
static const TSSymbol ts_symbol_map[] = {
|
|
89
|
+
[ts_builtin_sym_end] = ts_builtin_sym_end,
|
|
90
|
+
[anon_sym_import] = anon_sym_import,
|
|
91
|
+
[anon_sym_SLASH] = anon_sym_SLASH,
|
|
92
|
+
[anon_sym_COMMA] = anon_sym_COMMA,
|
|
93
|
+
[anon_sym_class] = anon_sym_class,
|
|
94
|
+
[anon_sym_COLON] = anon_sym_COLON,
|
|
95
|
+
[anon_sym_LPAREN] = anon_sym_LPAREN,
|
|
96
|
+
[anon_sym_RPAREN] = anon_sym_RPAREN,
|
|
97
|
+
[anon_sym_LT] = anon_sym_LT,
|
|
98
|
+
[anon_sym_GT] = anon_sym_GT,
|
|
99
|
+
[sym_identifier] = sym_identifier,
|
|
100
|
+
[anon_sym_RBRACK] = anon_sym_RBRACK,
|
|
101
|
+
[anon_sym_RBRACE] = anon_sym_RBRACE,
|
|
102
|
+
[sym__newline] = sym__newline,
|
|
103
|
+
[sym__indent] = sym__indent,
|
|
104
|
+
[sym__dedent] = sym__dedent,
|
|
105
|
+
[sym__string_start] = sym__string_start,
|
|
106
|
+
[sym__string_content] = sym__string_content,
|
|
107
|
+
[sym__string_end] = sym__string_end,
|
|
108
|
+
[sym_comment] = sym_comment,
|
|
109
|
+
[sym_module] = sym_module,
|
|
110
|
+
[sym__definitions] = sym__definitions,
|
|
111
|
+
[sym_import_statement] = sym_import_statement,
|
|
112
|
+
[sym_class_definition] = sym_class_definition,
|
|
113
|
+
[sym_trait_list] = sym_trait_list,
|
|
114
|
+
[sym_generic_list] = sym_generic_list,
|
|
115
|
+
[sym_type_pair] = sym_type_pair,
|
|
116
|
+
[aux_sym_module_repeat1] = aux_sym_module_repeat1,
|
|
117
|
+
[aux_sym_import_statement_repeat1] = aux_sym_import_statement_repeat1,
|
|
118
|
+
[aux_sym_import_statement_repeat2] = aux_sym_import_statement_repeat2,
|
|
119
|
+
[aux_sym_class_definition_repeat1] = aux_sym_class_definition_repeat1,
|
|
120
|
+
[aux_sym_trait_list_repeat1] = aux_sym_trait_list_repeat1,
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
static const TSSymbolMetadata ts_symbol_metadata[] = {
|
|
124
|
+
[ts_builtin_sym_end] = {
|
|
125
|
+
.visible = false,
|
|
126
|
+
.named = true,
|
|
127
|
+
},
|
|
128
|
+
[anon_sym_import] = {
|
|
129
|
+
.visible = true,
|
|
130
|
+
.named = false,
|
|
131
|
+
},
|
|
132
|
+
[anon_sym_SLASH] = {
|
|
133
|
+
.visible = true,
|
|
134
|
+
.named = false,
|
|
135
|
+
},
|
|
136
|
+
[anon_sym_COMMA] = {
|
|
137
|
+
.visible = true,
|
|
138
|
+
.named = false,
|
|
139
|
+
},
|
|
140
|
+
[anon_sym_class] = {
|
|
141
|
+
.visible = true,
|
|
142
|
+
.named = false,
|
|
143
|
+
},
|
|
144
|
+
[anon_sym_COLON] = {
|
|
145
|
+
.visible = true,
|
|
146
|
+
.named = false,
|
|
147
|
+
},
|
|
148
|
+
[anon_sym_LPAREN] = {
|
|
149
|
+
.visible = true,
|
|
150
|
+
.named = false,
|
|
151
|
+
},
|
|
152
|
+
[anon_sym_RPAREN] = {
|
|
153
|
+
.visible = true,
|
|
154
|
+
.named = false,
|
|
155
|
+
},
|
|
156
|
+
[anon_sym_LT] = {
|
|
157
|
+
.visible = true,
|
|
158
|
+
.named = false,
|
|
159
|
+
},
|
|
160
|
+
[anon_sym_GT] = {
|
|
161
|
+
.visible = true,
|
|
162
|
+
.named = false,
|
|
163
|
+
},
|
|
164
|
+
[sym_identifier] = {
|
|
165
|
+
.visible = true,
|
|
166
|
+
.named = true,
|
|
167
|
+
},
|
|
168
|
+
[anon_sym_RBRACK] = {
|
|
169
|
+
.visible = true,
|
|
170
|
+
.named = false,
|
|
171
|
+
},
|
|
172
|
+
[anon_sym_RBRACE] = {
|
|
173
|
+
.visible = true,
|
|
174
|
+
.named = false,
|
|
175
|
+
},
|
|
176
|
+
[sym__newline] = {
|
|
177
|
+
.visible = false,
|
|
178
|
+
.named = true,
|
|
179
|
+
},
|
|
180
|
+
[sym__indent] = {
|
|
181
|
+
.visible = false,
|
|
182
|
+
.named = true,
|
|
183
|
+
},
|
|
184
|
+
[sym__dedent] = {
|
|
185
|
+
.visible = false,
|
|
186
|
+
.named = true,
|
|
187
|
+
},
|
|
188
|
+
[sym__string_start] = {
|
|
189
|
+
.visible = false,
|
|
190
|
+
.named = true,
|
|
191
|
+
},
|
|
192
|
+
[sym__string_content] = {
|
|
193
|
+
.visible = false,
|
|
194
|
+
.named = true,
|
|
195
|
+
},
|
|
196
|
+
[sym__string_end] = {
|
|
197
|
+
.visible = false,
|
|
198
|
+
.named = true,
|
|
199
|
+
},
|
|
200
|
+
[sym_comment] = {
|
|
201
|
+
.visible = true,
|
|
202
|
+
.named = true,
|
|
203
|
+
},
|
|
204
|
+
[sym_module] = {
|
|
205
|
+
.visible = true,
|
|
206
|
+
.named = true,
|
|
207
|
+
},
|
|
208
|
+
[sym__definitions] = {
|
|
209
|
+
.visible = false,
|
|
210
|
+
.named = true,
|
|
211
|
+
},
|
|
212
|
+
[sym_import_statement] = {
|
|
213
|
+
.visible = true,
|
|
214
|
+
.named = true,
|
|
215
|
+
},
|
|
216
|
+
[sym_class_definition] = {
|
|
217
|
+
.visible = true,
|
|
218
|
+
.named = true,
|
|
219
|
+
},
|
|
220
|
+
[sym_trait_list] = {
|
|
221
|
+
.visible = true,
|
|
222
|
+
.named = true,
|
|
223
|
+
},
|
|
224
|
+
[sym_generic_list] = {
|
|
225
|
+
.visible = true,
|
|
226
|
+
.named = true,
|
|
227
|
+
},
|
|
228
|
+
[sym_type_pair] = {
|
|
229
|
+
.visible = true,
|
|
230
|
+
.named = true,
|
|
231
|
+
},
|
|
232
|
+
[aux_sym_module_repeat1] = {
|
|
233
|
+
.visible = false,
|
|
234
|
+
.named = false,
|
|
235
|
+
},
|
|
236
|
+
[aux_sym_import_statement_repeat1] = {
|
|
237
|
+
.visible = false,
|
|
238
|
+
.named = false,
|
|
239
|
+
},
|
|
240
|
+
[aux_sym_import_statement_repeat2] = {
|
|
241
|
+
.visible = false,
|
|
242
|
+
.named = false,
|
|
243
|
+
},
|
|
244
|
+
[aux_sym_class_definition_repeat1] = {
|
|
245
|
+
.visible = false,
|
|
246
|
+
.named = false,
|
|
247
|
+
},
|
|
248
|
+
[aux_sym_trait_list_repeat1] = {
|
|
249
|
+
.visible = false,
|
|
250
|
+
.named = false,
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
enum {
|
|
255
|
+
field_fields = 1,
|
|
256
|
+
field_generics = 2,
|
|
257
|
+
field_key = 3,
|
|
258
|
+
field_name = 4,
|
|
259
|
+
field_traits = 5,
|
|
260
|
+
field_value = 6,
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
static const char * const ts_field_names[] = {
|
|
264
|
+
[0] = NULL,
|
|
265
|
+
[field_fields] = "fields",
|
|
266
|
+
[field_generics] = "generics",
|
|
267
|
+
[field_key] = "key",
|
|
268
|
+
[field_name] = "name",
|
|
269
|
+
[field_traits] = "traits",
|
|
270
|
+
[field_value] = "value",
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
|
|
274
|
+
[1] = {.index = 0, .length = 1},
|
|
275
|
+
[2] = {.index = 1, .length = 2},
|
|
276
|
+
[3] = {.index = 3, .length = 2},
|
|
277
|
+
[4] = {.index = 5, .length = 3},
|
|
278
|
+
[5] = {.index = 8, .length = 2},
|
|
279
|
+
[6] = {.index = 10, .length = 3},
|
|
280
|
+
[7] = {.index = 13, .length = 4},
|
|
281
|
+
[8] = {.index = 17, .length = 4},
|
|
282
|
+
[9] = {.index = 21, .length = 4},
|
|
283
|
+
[10] = {.index = 25, .length = 2},
|
|
284
|
+
[11] = {.index = 27, .length = 5},
|
|
285
|
+
[12] = {.index = 32, .length = 5},
|
|
286
|
+
[13] = {.index = 37, .length = 5},
|
|
287
|
+
[14] = {.index = 42, .length = 6},
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
static const TSFieldMapEntry ts_field_map_entries[] = {
|
|
291
|
+
[0] =
|
|
292
|
+
{field_name, 1},
|
|
293
|
+
[1] =
|
|
294
|
+
{field_name, 1},
|
|
295
|
+
{field_name, 2},
|
|
296
|
+
[3] =
|
|
297
|
+
{field_name, 1},
|
|
298
|
+
{field_name, 2, .inherited = true},
|
|
299
|
+
[5] =
|
|
300
|
+
{field_name, 1},
|
|
301
|
+
{field_name, 2},
|
|
302
|
+
{field_name, 3, .inherited = true},
|
|
303
|
+
[8] =
|
|
304
|
+
{field_name, 0, .inherited = true},
|
|
305
|
+
{field_name, 1, .inherited = true},
|
|
306
|
+
[10] =
|
|
307
|
+
{field_fields, 3},
|
|
308
|
+
{field_fields, 4},
|
|
309
|
+
{field_name, 1},
|
|
310
|
+
[13] =
|
|
311
|
+
{field_fields, 3},
|
|
312
|
+
{field_fields, 4},
|
|
313
|
+
{field_fields, 5},
|
|
314
|
+
{field_name, 1},
|
|
315
|
+
[17] =
|
|
316
|
+
{field_fields, 4},
|
|
317
|
+
{field_fields, 5},
|
|
318
|
+
{field_name, 1},
|
|
319
|
+
{field_traits, 2},
|
|
320
|
+
[21] =
|
|
321
|
+
{field_fields, 4},
|
|
322
|
+
{field_fields, 5},
|
|
323
|
+
{field_generics, 2},
|
|
324
|
+
{field_name, 1},
|
|
325
|
+
[25] =
|
|
326
|
+
{field_key, 0},
|
|
327
|
+
{field_value, 2},
|
|
328
|
+
[27] =
|
|
329
|
+
{field_fields, 4},
|
|
330
|
+
{field_fields, 5},
|
|
331
|
+
{field_fields, 6},
|
|
332
|
+
{field_name, 1},
|
|
333
|
+
{field_traits, 2},
|
|
334
|
+
[32] =
|
|
335
|
+
{field_fields, 4},
|
|
336
|
+
{field_fields, 5},
|
|
337
|
+
{field_fields, 6},
|
|
338
|
+
{field_generics, 2},
|
|
339
|
+
{field_name, 1},
|
|
340
|
+
[37] =
|
|
341
|
+
{field_fields, 5},
|
|
342
|
+
{field_fields, 6},
|
|
343
|
+
{field_generics, 2},
|
|
344
|
+
{field_name, 1},
|
|
345
|
+
{field_traits, 3},
|
|
346
|
+
[42] =
|
|
347
|
+
{field_fields, 5},
|
|
348
|
+
{field_fields, 6},
|
|
349
|
+
{field_fields, 7},
|
|
350
|
+
{field_generics, 2},
|
|
351
|
+
{field_name, 1},
|
|
352
|
+
{field_traits, 3},
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
|
|
356
|
+
[0] = {0},
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
static const uint16_t ts_non_terminal_alias_map[] = {
|
|
360
|
+
0,
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
|
|
364
|
+
[0] = 0,
|
|
365
|
+
[1] = 1,
|
|
366
|
+
[2] = 2,
|
|
367
|
+
[3] = 3,
|
|
368
|
+
[4] = 4,
|
|
369
|
+
[5] = 5,
|
|
370
|
+
[6] = 6,
|
|
371
|
+
[7] = 7,
|
|
372
|
+
[8] = 8,
|
|
373
|
+
[9] = 9,
|
|
374
|
+
[10] = 10,
|
|
375
|
+
[11] = 11,
|
|
376
|
+
[12] = 12,
|
|
377
|
+
[13] = 13,
|
|
378
|
+
[14] = 14,
|
|
379
|
+
[15] = 15,
|
|
380
|
+
[16] = 16,
|
|
381
|
+
[17] = 17,
|
|
382
|
+
[18] = 18,
|
|
383
|
+
[19] = 19,
|
|
384
|
+
[20] = 20,
|
|
385
|
+
[21] = 21,
|
|
386
|
+
[22] = 22,
|
|
387
|
+
[23] = 23,
|
|
388
|
+
[24] = 24,
|
|
389
|
+
[25] = 25,
|
|
390
|
+
[26] = 26,
|
|
391
|
+
[27] = 27,
|
|
392
|
+
[28] = 26,
|
|
393
|
+
[29] = 29,
|
|
394
|
+
[30] = 30,
|
|
395
|
+
[31] = 31,
|
|
396
|
+
[32] = 32,
|
|
397
|
+
[33] = 33,
|
|
398
|
+
[34] = 34,
|
|
399
|
+
[35] = 35,
|
|
400
|
+
[36] = 36,
|
|
401
|
+
[37] = 37,
|
|
402
|
+
[38] = 38,
|
|
403
|
+
[39] = 39,
|
|
404
|
+
[40] = 38,
|
|
405
|
+
[41] = 41,
|
|
406
|
+
[42] = 42,
|
|
407
|
+
[43] = 43,
|
|
408
|
+
[44] = 44,
|
|
409
|
+
[45] = 45,
|
|
410
|
+
[46] = 46,
|
|
411
|
+
[47] = 47,
|
|
412
|
+
[48] = 48,
|
|
413
|
+
[49] = 49,
|
|
414
|
+
[50] = 50,
|
|
415
|
+
[51] = 51,
|
|
416
|
+
[52] = 52,
|
|
417
|
+
[53] = 53,
|
|
418
|
+
[54] = 54,
|
|
419
|
+
[55] = 55,
|
|
420
|
+
[56] = 56,
|
|
421
|
+
[57] = 57,
|
|
422
|
+
[58] = 58,
|
|
423
|
+
[59] = 59,
|
|
424
|
+
[60] = 60,
|
|
425
|
+
[61] = 44,
|
|
426
|
+
};
|
|
427
|
+
|
|
428
|
+
static inline bool sym_identifier_character_set_1(int32_t c) {
|
|
429
|
+
return (c < 43514
|
|
430
|
+
? (c < 4193
|
|
431
|
+
? (c < 2707
|
|
432
|
+
? (c < 1994
|
|
433
|
+
? (c < 910
|
|
434
|
+
? (c < 736
|
|
435
|
+
? (c < 186
|
|
436
|
+
? (c < 'a'
|
|
437
|
+
? (c < '_'
|
|
438
|
+
? (c >= 'A' && c <= 'Z')
|
|
439
|
+
: c <= '_')
|
|
440
|
+
: (c <= 'z' || (c < 181
|
|
441
|
+
? c == 170
|
|
442
|
+
: c <= 181)))
|
|
443
|
+
: (c <= 186 || (c < 248
|
|
444
|
+
? (c < 216
|
|
445
|
+
? (c >= 192 && c <= 214)
|
|
446
|
+
: c <= 246)
|
|
447
|
+
: (c <= 705 || (c >= 710 && c <= 721)))))
|
|
448
|
+
: (c <= 740 || (c < 891
|
|
449
|
+
? (c < 880
|
|
450
|
+
? (c < 750
|
|
451
|
+
? c == 748
|
|
452
|
+
: c <= 750)
|
|
453
|
+
: (c <= 884 || (c >= 886 && c <= 887)))
|
|
454
|
+
: (c <= 893 || (c < 904
|
|
455
|
+
? (c < 902
|
|
456
|
+
? c == 895
|
|
457
|
+
: c <= 902)
|
|
458
|
+
: (c <= 906 || c == 908))))))
|
|
459
|
+
: (c <= 929 || (c < 1649
|
|
460
|
+
? (c < 1376
|
|
461
|
+
? (c < 1162
|
|
462
|
+
? (c < 1015
|
|
463
|
+
? (c >= 931 && c <= 1013)
|
|
464
|
+
: c <= 1153)
|
|
465
|
+
: (c <= 1327 || (c < 1369
|
|
466
|
+
? (c >= 1329 && c <= 1366)
|
|
467
|
+
: c <= 1369)))
|
|
468
|
+
: (c <= 1416 || (c < 1568
|
|
469
|
+
? (c < 1519
|
|
470
|
+
? (c >= 1488 && c <= 1514)
|
|
471
|
+
: c <= 1522)
|
|
472
|
+
: (c <= 1610 || (c >= 1646 && c <= 1647)))))
|
|
473
|
+
: (c <= 1747 || (c < 1791
|
|
474
|
+
? (c < 1774
|
|
475
|
+
? (c < 1765
|
|
476
|
+
? c == 1749
|
|
477
|
+
: c <= 1766)
|
|
478
|
+
: (c <= 1775 || (c >= 1786 && c <= 1788)))
|
|
479
|
+
: (c <= 1791 || (c < 1869
|
|
480
|
+
? (c < 1810
|
|
481
|
+
? c == 1808
|
|
482
|
+
: c <= 1839)
|
|
483
|
+
: (c <= 1957 || c == 1969))))))))
|
|
484
|
+
: (c <= 2026 || (c < 2482
|
|
485
|
+
? (c < 2208
|
|
486
|
+
? (c < 2088
|
|
487
|
+
? (c < 2048
|
|
488
|
+
? (c < 2042
|
|
489
|
+
? (c >= 2036 && c <= 2037)
|
|
490
|
+
: c <= 2042)
|
|
491
|
+
: (c <= 2069 || (c < 2084
|
|
492
|
+
? c == 2074
|
|
493
|
+
: c <= 2084)))
|
|
494
|
+
: (c <= 2088 || (c < 2160
|
|
495
|
+
? (c < 2144
|
|
496
|
+
? (c >= 2112 && c <= 2136)
|
|
497
|
+
: c <= 2154)
|
|
498
|
+
: (c <= 2183 || (c >= 2185 && c <= 2190)))))
|
|
499
|
+
: (c <= 2249 || (c < 2417
|
|
500
|
+
? (c < 2384
|
|
501
|
+
? (c < 2365
|
|
502
|
+
? (c >= 2308 && c <= 2361)
|
|
503
|
+
: c <= 2365)
|
|
504
|
+
: (c <= 2384 || (c >= 2392 && c <= 2401)))
|
|
505
|
+
: (c <= 2432 || (c < 2451
|
|
506
|
+
? (c < 2447
|
|
507
|
+
? (c >= 2437 && c <= 2444)
|
|
508
|
+
: c <= 2448)
|
|
509
|
+
: (c <= 2472 || (c >= 2474 && c <= 2480)))))))
|
|
510
|
+
: (c <= 2482 || (c < 2579
|
|
511
|
+
? (c < 2527
|
|
512
|
+
? (c < 2510
|
|
513
|
+
? (c < 2493
|
|
514
|
+
? (c >= 2486 && c <= 2489)
|
|
515
|
+
: c <= 2493)
|
|
516
|
+
: (c <= 2510 || (c >= 2524 && c <= 2525)))
|
|
517
|
+
: (c <= 2529 || (c < 2565
|
|
518
|
+
? (c < 2556
|
|
519
|
+
? (c >= 2544 && c <= 2545)
|
|
520
|
+
: c <= 2556)
|
|
521
|
+
: (c <= 2570 || (c >= 2575 && c <= 2576)))))
|
|
522
|
+
: (c <= 2600 || (c < 2649
|
|
523
|
+
? (c < 2613
|
|
524
|
+
? (c < 2610
|
|
525
|
+
? (c >= 2602 && c <= 2608)
|
|
526
|
+
: c <= 2611)
|
|
527
|
+
: (c <= 2614 || (c >= 2616 && c <= 2617)))
|
|
528
|
+
: (c <= 2652 || (c < 2693
|
|
529
|
+
? (c < 2674
|
|
530
|
+
? c == 2654
|
|
531
|
+
: c <= 2676)
|
|
532
|
+
: (c <= 2701 || (c >= 2703 && c <= 2705)))))))))))
|
|
533
|
+
: (c <= 2728 || (c < 3242
|
|
534
|
+
? (c < 2962
|
|
535
|
+
? (c < 2858
|
|
536
|
+
? (c < 2784
|
|
537
|
+
? (c < 2741
|
|
538
|
+
? (c < 2738
|
|
539
|
+
? (c >= 2730 && c <= 2736)
|
|
540
|
+
: c <= 2739)
|
|
541
|
+
: (c <= 2745 || (c < 2768
|
|
542
|
+
? c == 2749
|
|
543
|
+
: c <= 2768)))
|
|
544
|
+
: (c <= 2785 || (c < 2831
|
|
545
|
+
? (c < 2821
|
|
546
|
+
? c == 2809
|
|
547
|
+
: c <= 2828)
|
|
548
|
+
: (c <= 2832 || (c >= 2835 && c <= 2856)))))
|
|
549
|
+
: (c <= 2864 || (c < 2911
|
|
550
|
+
? (c < 2877
|
|
551
|
+
? (c < 2869
|
|
552
|
+
? (c >= 2866 && c <= 2867)
|
|
553
|
+
: c <= 2873)
|
|
554
|
+
: (c <= 2877 || (c >= 2908 && c <= 2909)))
|
|
555
|
+
: (c <= 2913 || (c < 2949
|
|
556
|
+
? (c < 2947
|
|
557
|
+
? c == 2929
|
|
558
|
+
: c <= 2947)
|
|
559
|
+
: (c <= 2954 || (c >= 2958 && c <= 2960)))))))
|
|
560
|
+
: (c <= 2965 || (c < 3090
|
|
561
|
+
? (c < 2984
|
|
562
|
+
? (c < 2974
|
|
563
|
+
? (c < 2972
|
|
564
|
+
? (c >= 2969 && c <= 2970)
|
|
565
|
+
: c <= 2972)
|
|
566
|
+
: (c <= 2975 || (c >= 2979 && c <= 2980)))
|
|
567
|
+
: (c <= 2986 || (c < 3077
|
|
568
|
+
? (c < 3024
|
|
569
|
+
? (c >= 2990 && c <= 3001)
|
|
570
|
+
: c <= 3024)
|
|
571
|
+
: (c <= 3084 || (c >= 3086 && c <= 3088)))))
|
|
572
|
+
: (c <= 3112 || (c < 3168
|
|
573
|
+
? (c < 3160
|
|
574
|
+
? (c < 3133
|
|
575
|
+
? (c >= 3114 && c <= 3129)
|
|
576
|
+
: c <= 3133)
|
|
577
|
+
: (c <= 3162 || c == 3165))
|
|
578
|
+
: (c <= 3169 || (c < 3214
|
|
579
|
+
? (c < 3205
|
|
580
|
+
? c == 3200
|
|
581
|
+
: c <= 3212)
|
|
582
|
+
: (c <= 3216 || (c >= 3218 && c <= 3240)))))))))
|
|
583
|
+
: (c <= 3251 || (c < 3648
|
|
584
|
+
? (c < 3412
|
|
585
|
+
? (c < 3332
|
|
586
|
+
? (c < 3293
|
|
587
|
+
? (c < 3261
|
|
588
|
+
? (c >= 3253 && c <= 3257)
|
|
589
|
+
: c <= 3261)
|
|
590
|
+
: (c <= 3294 || (c < 3313
|
|
591
|
+
? (c >= 3296 && c <= 3297)
|
|
592
|
+
: c <= 3314)))
|
|
593
|
+
: (c <= 3340 || (c < 3389
|
|
594
|
+
? (c < 3346
|
|
595
|
+
? (c >= 3342 && c <= 3344)
|
|
596
|
+
: c <= 3386)
|
|
597
|
+
: (c <= 3389 || c == 3406))))
|
|
598
|
+
: (c <= 3414 || (c < 3507
|
|
599
|
+
? (c < 3461
|
|
600
|
+
? (c < 3450
|
|
601
|
+
? (c >= 3423 && c <= 3425)
|
|
602
|
+
: c <= 3455)
|
|
603
|
+
: (c <= 3478 || (c >= 3482 && c <= 3505)))
|
|
604
|
+
: (c <= 3515 || (c < 3585
|
|
605
|
+
? (c < 3520
|
|
606
|
+
? c == 3517
|
|
607
|
+
: c <= 3526)
|
|
608
|
+
: (c <= 3632 || c == 3634))))))
|
|
609
|
+
: (c <= 3654 || (c < 3782
|
|
610
|
+
? (c < 3749
|
|
611
|
+
? (c < 3718
|
|
612
|
+
? (c < 3716
|
|
613
|
+
? (c >= 3713 && c <= 3714)
|
|
614
|
+
: c <= 3716)
|
|
615
|
+
: (c <= 3722 || (c >= 3724 && c <= 3747)))
|
|
616
|
+
: (c <= 3749 || (c < 3773
|
|
617
|
+
? (c < 3762
|
|
618
|
+
? (c >= 3751 && c <= 3760)
|
|
619
|
+
: c <= 3762)
|
|
620
|
+
: (c <= 3773 || (c >= 3776 && c <= 3780)))))
|
|
621
|
+
: (c <= 3782 || (c < 3976
|
|
622
|
+
? (c < 3904
|
|
623
|
+
? (c < 3840
|
|
624
|
+
? (c >= 3804 && c <= 3807)
|
|
625
|
+
: c <= 3840)
|
|
626
|
+
: (c <= 3911 || (c >= 3913 && c <= 3948)))
|
|
627
|
+
: (c <= 3980 || (c < 4176
|
|
628
|
+
? (c < 4159
|
|
629
|
+
? (c >= 4096 && c <= 4138)
|
|
630
|
+
: c <= 4159)
|
|
631
|
+
: (c <= 4181 || (c >= 4186 && c <= 4189)))))))))))))
|
|
632
|
+
: (c <= 4193 || (c < 8134
|
|
633
|
+
? (c < 6176
|
|
634
|
+
? (c < 4808
|
|
635
|
+
? (c < 4688
|
|
636
|
+
? (c < 4295
|
|
637
|
+
? (c < 4213
|
|
638
|
+
? (c < 4206
|
|
639
|
+
? (c >= 4197 && c <= 4198)
|
|
640
|
+
: c <= 4208)
|
|
641
|
+
: (c <= 4225 || (c < 4256
|
|
642
|
+
? c == 4238
|
|
643
|
+
: c <= 4293)))
|
|
644
|
+
: (c <= 4295 || (c < 4348
|
|
645
|
+
? (c < 4304
|
|
646
|
+
? c == 4301
|
|
647
|
+
: c <= 4346)
|
|
648
|
+
: (c <= 4680 || (c >= 4682 && c <= 4685)))))
|
|
649
|
+
: (c <= 4694 || (c < 4752
|
|
650
|
+
? (c < 4704
|
|
651
|
+
? (c < 4698
|
|
652
|
+
? c == 4696
|
|
653
|
+
: c <= 4701)
|
|
654
|
+
: (c <= 4744 || (c >= 4746 && c <= 4749)))
|
|
655
|
+
: (c <= 4784 || (c < 4800
|
|
656
|
+
? (c < 4792
|
|
657
|
+
? (c >= 4786 && c <= 4789)
|
|
658
|
+
: c <= 4798)
|
|
659
|
+
: (c <= 4800 || (c >= 4802 && c <= 4805)))))))
|
|
660
|
+
: (c <= 4822 || (c < 5792
|
|
661
|
+
? (c < 5024
|
|
662
|
+
? (c < 4888
|
|
663
|
+
? (c < 4882
|
|
664
|
+
? (c >= 4824 && c <= 4880)
|
|
665
|
+
: c <= 4885)
|
|
666
|
+
: (c <= 4954 || (c >= 4992 && c <= 5007)))
|
|
667
|
+
: (c <= 5109 || (c < 5743
|
|
668
|
+
? (c < 5121
|
|
669
|
+
? (c >= 5112 && c <= 5117)
|
|
670
|
+
: c <= 5740)
|
|
671
|
+
: (c <= 5759 || (c >= 5761 && c <= 5786)))))
|
|
672
|
+
: (c <= 5866 || (c < 5984
|
|
673
|
+
? (c < 5919
|
|
674
|
+
? (c < 5888
|
|
675
|
+
? (c >= 5870 && c <= 5880)
|
|
676
|
+
: c <= 5905)
|
|
677
|
+
: (c <= 5937 || (c >= 5952 && c <= 5969)))
|
|
678
|
+
: (c <= 5996 || (c < 6103
|
|
679
|
+
? (c < 6016
|
|
680
|
+
? (c >= 5998 && c <= 6000)
|
|
681
|
+
: c <= 6067)
|
|
682
|
+
: (c <= 6103 || c == 6108))))))))
|
|
683
|
+
: (c <= 6264 || (c < 7312
|
|
684
|
+
? (c < 6823
|
|
685
|
+
? (c < 6512
|
|
686
|
+
? (c < 6320
|
|
687
|
+
? (c < 6314
|
|
688
|
+
? (c >= 6272 && c <= 6312)
|
|
689
|
+
: c <= 6314)
|
|
690
|
+
: (c <= 6389 || (c < 6480
|
|
691
|
+
? (c >= 6400 && c <= 6430)
|
|
692
|
+
: c <= 6509)))
|
|
693
|
+
: (c <= 6516 || (c < 6656
|
|
694
|
+
? (c < 6576
|
|
695
|
+
? (c >= 6528 && c <= 6571)
|
|
696
|
+
: c <= 6601)
|
|
697
|
+
: (c <= 6678 || (c >= 6688 && c <= 6740)))))
|
|
698
|
+
: (c <= 6823 || (c < 7098
|
|
699
|
+
? (c < 7043
|
|
700
|
+
? (c < 6981
|
|
701
|
+
? (c >= 6917 && c <= 6963)
|
|
702
|
+
: c <= 6988)
|
|
703
|
+
: (c <= 7072 || (c >= 7086 && c <= 7087)))
|
|
704
|
+
: (c <= 7141 || (c < 7258
|
|
705
|
+
? (c < 7245
|
|
706
|
+
? (c >= 7168 && c <= 7203)
|
|
707
|
+
: c <= 7247)
|
|
708
|
+
: (c <= 7293 || (c >= 7296 && c <= 7304)))))))
|
|
709
|
+
: (c <= 7354 || (c < 8008
|
|
710
|
+
? (c < 7418
|
|
711
|
+
? (c < 7406
|
|
712
|
+
? (c < 7401
|
|
713
|
+
? (c >= 7357 && c <= 7359)
|
|
714
|
+
: c <= 7404)
|
|
715
|
+
: (c <= 7411 || (c >= 7413 && c <= 7414)))
|
|
716
|
+
: (c <= 7418 || (c < 7960
|
|
717
|
+
? (c < 7680
|
|
718
|
+
? (c >= 7424 && c <= 7615)
|
|
719
|
+
: c <= 7957)
|
|
720
|
+
: (c <= 7965 || (c >= 7968 && c <= 8005)))))
|
|
721
|
+
: (c <= 8013 || (c < 8031
|
|
722
|
+
? (c < 8027
|
|
723
|
+
? (c < 8025
|
|
724
|
+
? (c >= 8016 && c <= 8023)
|
|
725
|
+
: c <= 8025)
|
|
726
|
+
: (c <= 8027 || c == 8029))
|
|
727
|
+
: (c <= 8061 || (c < 8126
|
|
728
|
+
? (c < 8118
|
|
729
|
+
? (c >= 8064 && c <= 8116)
|
|
730
|
+
: c <= 8124)
|
|
731
|
+
: (c <= 8126 || (c >= 8130 && c <= 8132)))))))))))
|
|
732
|
+
: (c <= 8140 || (c < 12337
|
|
733
|
+
? (c < 8544
|
|
734
|
+
? (c < 8458
|
|
735
|
+
? (c < 8305
|
|
736
|
+
? (c < 8160
|
|
737
|
+
? (c < 8150
|
|
738
|
+
? (c >= 8144 && c <= 8147)
|
|
739
|
+
: c <= 8155)
|
|
740
|
+
: (c <= 8172 || (c < 8182
|
|
741
|
+
? (c >= 8178 && c <= 8180)
|
|
742
|
+
: c <= 8188)))
|
|
743
|
+
: (c <= 8305 || (c < 8450
|
|
744
|
+
? (c < 8336
|
|
745
|
+
? c == 8319
|
|
746
|
+
: c <= 8348)
|
|
747
|
+
: (c <= 8450 || c == 8455))))
|
|
748
|
+
: (c <= 8467 || (c < 8488
|
|
749
|
+
? (c < 8484
|
|
750
|
+
? (c < 8472
|
|
751
|
+
? c == 8469
|
|
752
|
+
: c <= 8477)
|
|
753
|
+
: (c <= 8484 || c == 8486))
|
|
754
|
+
: (c <= 8488 || (c < 8517
|
|
755
|
+
? (c < 8508
|
|
756
|
+
? (c >= 8490 && c <= 8505)
|
|
757
|
+
: c <= 8511)
|
|
758
|
+
: (c <= 8521 || c == 8526))))))
|
|
759
|
+
: (c <= 8584 || (c < 11680
|
|
760
|
+
? (c < 11559
|
|
761
|
+
? (c < 11506
|
|
762
|
+
? (c < 11499
|
|
763
|
+
? (c >= 11264 && c <= 11492)
|
|
764
|
+
: c <= 11502)
|
|
765
|
+
: (c <= 11507 || (c >= 11520 && c <= 11557)))
|
|
766
|
+
: (c <= 11559 || (c < 11631
|
|
767
|
+
? (c < 11568
|
|
768
|
+
? c == 11565
|
|
769
|
+
: c <= 11623)
|
|
770
|
+
: (c <= 11631 || (c >= 11648 && c <= 11670)))))
|
|
771
|
+
: (c <= 11686 || (c < 11720
|
|
772
|
+
? (c < 11704
|
|
773
|
+
? (c < 11696
|
|
774
|
+
? (c >= 11688 && c <= 11694)
|
|
775
|
+
: c <= 11702)
|
|
776
|
+
: (c <= 11710 || (c >= 11712 && c <= 11718)))
|
|
777
|
+
: (c <= 11726 || (c < 12293
|
|
778
|
+
? (c < 11736
|
|
779
|
+
? (c >= 11728 && c <= 11734)
|
|
780
|
+
: c <= 11742)
|
|
781
|
+
: (c <= 12295 || (c >= 12321 && c <= 12329)))))))))
|
|
782
|
+
: (c <= 12341 || (c < 42891
|
|
783
|
+
? (c < 19968
|
|
784
|
+
? (c < 12549
|
|
785
|
+
? (c < 12445
|
|
786
|
+
? (c < 12353
|
|
787
|
+
? (c >= 12344 && c <= 12348)
|
|
788
|
+
: c <= 12438)
|
|
789
|
+
: (c <= 12447 || (c < 12540
|
|
790
|
+
? (c >= 12449 && c <= 12538)
|
|
791
|
+
: c <= 12543)))
|
|
792
|
+
: (c <= 12591 || (c < 12784
|
|
793
|
+
? (c < 12704
|
|
794
|
+
? (c >= 12593 && c <= 12686)
|
|
795
|
+
: c <= 12735)
|
|
796
|
+
: (c <= 12799 || (c >= 13312 && c <= 19903)))))
|
|
797
|
+
: (c <= 42124 || (c < 42560
|
|
798
|
+
? (c < 42512
|
|
799
|
+
? (c < 42240
|
|
800
|
+
? (c >= 42192 && c <= 42237)
|
|
801
|
+
: c <= 42508)
|
|
802
|
+
: (c <= 42527 || (c >= 42538 && c <= 42539)))
|
|
803
|
+
: (c <= 42606 || (c < 42775
|
|
804
|
+
? (c < 42656
|
|
805
|
+
? (c >= 42623 && c <= 42653)
|
|
806
|
+
: c <= 42735)
|
|
807
|
+
: (c <= 42783 || (c >= 42786 && c <= 42888)))))))
|
|
808
|
+
: (c <= 42954 || (c < 43250
|
|
809
|
+
? (c < 43011
|
|
810
|
+
? (c < 42965
|
|
811
|
+
? (c < 42963
|
|
812
|
+
? (c >= 42960 && c <= 42961)
|
|
813
|
+
: c <= 42963)
|
|
814
|
+
: (c <= 42969 || (c >= 42994 && c <= 43009)))
|
|
815
|
+
: (c <= 43013 || (c < 43072
|
|
816
|
+
? (c < 43020
|
|
817
|
+
? (c >= 43015 && c <= 43018)
|
|
818
|
+
: c <= 43042)
|
|
819
|
+
: (c <= 43123 || (c >= 43138 && c <= 43187)))))
|
|
820
|
+
: (c <= 43255 || (c < 43360
|
|
821
|
+
? (c < 43274
|
|
822
|
+
? (c < 43261
|
|
823
|
+
? c == 43259
|
|
824
|
+
: c <= 43262)
|
|
825
|
+
: (c <= 43301 || (c >= 43312 && c <= 43334)))
|
|
826
|
+
: (c <= 43388 || (c < 43488
|
|
827
|
+
? (c < 43471
|
|
828
|
+
? (c >= 43396 && c <= 43442)
|
|
829
|
+
: c <= 43471)
|
|
830
|
+
: (c <= 43492 || (c >= 43494 && c <= 43503)))))))))))))))
|
|
831
|
+
: (c <= 43518 || (c < 70727
|
|
832
|
+
? (c < 66956
|
|
833
|
+
? (c < 64914
|
|
834
|
+
? (c < 43868
|
|
835
|
+
? (c < 43714
|
|
836
|
+
? (c < 43646
|
|
837
|
+
? (c < 43588
|
|
838
|
+
? (c < 43584
|
|
839
|
+
? (c >= 43520 && c <= 43560)
|
|
840
|
+
: c <= 43586)
|
|
841
|
+
: (c <= 43595 || (c < 43642
|
|
842
|
+
? (c >= 43616 && c <= 43638)
|
|
843
|
+
: c <= 43642)))
|
|
844
|
+
: (c <= 43695 || (c < 43705
|
|
845
|
+
? (c < 43701
|
|
846
|
+
? c == 43697
|
|
847
|
+
: c <= 43702)
|
|
848
|
+
: (c <= 43709 || c == 43712))))
|
|
849
|
+
: (c <= 43714 || (c < 43785
|
|
850
|
+
? (c < 43762
|
|
851
|
+
? (c < 43744
|
|
852
|
+
? (c >= 43739 && c <= 43741)
|
|
853
|
+
: c <= 43754)
|
|
854
|
+
: (c <= 43764 || (c >= 43777 && c <= 43782)))
|
|
855
|
+
: (c <= 43790 || (c < 43816
|
|
856
|
+
? (c < 43808
|
|
857
|
+
? (c >= 43793 && c <= 43798)
|
|
858
|
+
: c <= 43814)
|
|
859
|
+
: (c <= 43822 || (c >= 43824 && c <= 43866)))))))
|
|
860
|
+
: (c <= 43881 || (c < 64287
|
|
861
|
+
? (c < 63744
|
|
862
|
+
? (c < 55216
|
|
863
|
+
? (c < 44032
|
|
864
|
+
? (c >= 43888 && c <= 44002)
|
|
865
|
+
: c <= 55203)
|
|
866
|
+
: (c <= 55238 || (c >= 55243 && c <= 55291)))
|
|
867
|
+
: (c <= 64109 || (c < 64275
|
|
868
|
+
? (c < 64256
|
|
869
|
+
? (c >= 64112 && c <= 64217)
|
|
870
|
+
: c <= 64262)
|
|
871
|
+
: (c <= 64279 || c == 64285))))
|
|
872
|
+
: (c <= 64296 || (c < 64323
|
|
873
|
+
? (c < 64318
|
|
874
|
+
? (c < 64312
|
|
875
|
+
? (c >= 64298 && c <= 64310)
|
|
876
|
+
: c <= 64316)
|
|
877
|
+
: (c <= 64318 || (c >= 64320 && c <= 64321)))
|
|
878
|
+
: (c <= 64324 || (c < 64612
|
|
879
|
+
? (c < 64467
|
|
880
|
+
? (c >= 64326 && c <= 64433)
|
|
881
|
+
: c <= 64605)
|
|
882
|
+
: (c <= 64829 || (c >= 64848 && c <= 64911)))))))))
|
|
883
|
+
: (c <= 64967 || (c < 65599
|
|
884
|
+
? (c < 65382
|
|
885
|
+
? (c < 65147
|
|
886
|
+
? (c < 65139
|
|
887
|
+
? (c < 65137
|
|
888
|
+
? (c >= 65008 && c <= 65017)
|
|
889
|
+
: c <= 65137)
|
|
890
|
+
: (c <= 65139 || (c < 65145
|
|
891
|
+
? c == 65143
|
|
892
|
+
: c <= 65145)))
|
|
893
|
+
: (c <= 65147 || (c < 65313
|
|
894
|
+
? (c < 65151
|
|
895
|
+
? c == 65149
|
|
896
|
+
: c <= 65276)
|
|
897
|
+
: (c <= 65338 || (c >= 65345 && c <= 65370)))))
|
|
898
|
+
: (c <= 65437 || (c < 65498
|
|
899
|
+
? (c < 65482
|
|
900
|
+
? (c < 65474
|
|
901
|
+
? (c >= 65440 && c <= 65470)
|
|
902
|
+
: c <= 65479)
|
|
903
|
+
: (c <= 65487 || (c >= 65490 && c <= 65495)))
|
|
904
|
+
: (c <= 65500 || (c < 65576
|
|
905
|
+
? (c < 65549
|
|
906
|
+
? (c >= 65536 && c <= 65547)
|
|
907
|
+
: c <= 65574)
|
|
908
|
+
: (c <= 65594 || (c >= 65596 && c <= 65597)))))))
|
|
909
|
+
: (c <= 65613 || (c < 66464
|
|
910
|
+
? (c < 66208
|
|
911
|
+
? (c < 65856
|
|
912
|
+
? (c < 65664
|
|
913
|
+
? (c >= 65616 && c <= 65629)
|
|
914
|
+
: c <= 65786)
|
|
915
|
+
: (c <= 65908 || (c >= 66176 && c <= 66204)))
|
|
916
|
+
: (c <= 66256 || (c < 66384
|
|
917
|
+
? (c < 66349
|
|
918
|
+
? (c >= 66304 && c <= 66335)
|
|
919
|
+
: c <= 66378)
|
|
920
|
+
: (c <= 66421 || (c >= 66432 && c <= 66461)))))
|
|
921
|
+
: (c <= 66499 || (c < 66776
|
|
922
|
+
? (c < 66560
|
|
923
|
+
? (c < 66513
|
|
924
|
+
? (c >= 66504 && c <= 66511)
|
|
925
|
+
: c <= 66517)
|
|
926
|
+
: (c <= 66717 || (c >= 66736 && c <= 66771)))
|
|
927
|
+
: (c <= 66811 || (c < 66928
|
|
928
|
+
? (c < 66864
|
|
929
|
+
? (c >= 66816 && c <= 66855)
|
|
930
|
+
: c <= 66915)
|
|
931
|
+
: (c <= 66938 || (c >= 66940 && c <= 66954)))))))))))
|
|
932
|
+
: (c <= 66962 || (c < 68864
|
|
933
|
+
? (c < 67828
|
|
934
|
+
? (c < 67506
|
|
935
|
+
? (c < 67072
|
|
936
|
+
? (c < 66979
|
|
937
|
+
? (c < 66967
|
|
938
|
+
? (c >= 66964 && c <= 66965)
|
|
939
|
+
: c <= 66977)
|
|
940
|
+
: (c <= 66993 || (c < 67003
|
|
941
|
+
? (c >= 66995 && c <= 67001)
|
|
942
|
+
: c <= 67004)))
|
|
943
|
+
: (c <= 67382 || (c < 67456
|
|
944
|
+
? (c < 67424
|
|
945
|
+
? (c >= 67392 && c <= 67413)
|
|
946
|
+
: c <= 67431)
|
|
947
|
+
: (c <= 67461 || (c >= 67463 && c <= 67504)))))
|
|
948
|
+
: (c <= 67514 || (c < 67644
|
|
949
|
+
? (c < 67594
|
|
950
|
+
? (c < 67592
|
|
951
|
+
? (c >= 67584 && c <= 67589)
|
|
952
|
+
: c <= 67592)
|
|
953
|
+
: (c <= 67637 || (c >= 67639 && c <= 67640)))
|
|
954
|
+
: (c <= 67644 || (c < 67712
|
|
955
|
+
? (c < 67680
|
|
956
|
+
? (c >= 67647 && c <= 67669)
|
|
957
|
+
: c <= 67702)
|
|
958
|
+
: (c <= 67742 || (c >= 67808 && c <= 67826)))))))
|
|
959
|
+
: (c <= 67829 || (c < 68224
|
|
960
|
+
? (c < 68096
|
|
961
|
+
? (c < 67968
|
|
962
|
+
? (c < 67872
|
|
963
|
+
? (c >= 67840 && c <= 67861)
|
|
964
|
+
: c <= 67897)
|
|
965
|
+
: (c <= 68023 || (c >= 68030 && c <= 68031)))
|
|
966
|
+
: (c <= 68096 || (c < 68121
|
|
967
|
+
? (c < 68117
|
|
968
|
+
? (c >= 68112 && c <= 68115)
|
|
969
|
+
: c <= 68119)
|
|
970
|
+
: (c <= 68149 || (c >= 68192 && c <= 68220)))))
|
|
971
|
+
: (c <= 68252 || (c < 68448
|
|
972
|
+
? (c < 68352
|
|
973
|
+
? (c < 68297
|
|
974
|
+
? (c >= 68288 && c <= 68295)
|
|
975
|
+
: c <= 68324)
|
|
976
|
+
: (c <= 68405 || (c >= 68416 && c <= 68437)))
|
|
977
|
+
: (c <= 68466 || (c < 68736
|
|
978
|
+
? (c < 68608
|
|
979
|
+
? (c >= 68480 && c <= 68497)
|
|
980
|
+
: c <= 68680)
|
|
981
|
+
: (c <= 68786 || (c >= 68800 && c <= 68850)))))))))
|
|
982
|
+
: (c <= 68899 || (c < 70106
|
|
983
|
+
? (c < 69749
|
|
984
|
+
? (c < 69488
|
|
985
|
+
? (c < 69376
|
|
986
|
+
? (c < 69296
|
|
987
|
+
? (c >= 69248 && c <= 69289)
|
|
988
|
+
: c <= 69297)
|
|
989
|
+
: (c <= 69404 || (c < 69424
|
|
990
|
+
? c == 69415
|
|
991
|
+
: c <= 69445)))
|
|
992
|
+
: (c <= 69505 || (c < 69635
|
|
993
|
+
? (c < 69600
|
|
994
|
+
? (c >= 69552 && c <= 69572)
|
|
995
|
+
: c <= 69622)
|
|
996
|
+
: (c <= 69687 || (c >= 69745 && c <= 69746)))))
|
|
997
|
+
: (c <= 69749 || (c < 69959
|
|
998
|
+
? (c < 69891
|
|
999
|
+
? (c < 69840
|
|
1000
|
+
? (c >= 69763 && c <= 69807)
|
|
1001
|
+
: c <= 69864)
|
|
1002
|
+
: (c <= 69926 || c == 69956))
|
|
1003
|
+
: (c <= 69959 || (c < 70019
|
|
1004
|
+
? (c < 70006
|
|
1005
|
+
? (c >= 69968 && c <= 70002)
|
|
1006
|
+
: c <= 70006)
|
|
1007
|
+
: (c <= 70066 || (c >= 70081 && c <= 70084)))))))
|
|
1008
|
+
: (c <= 70106 || (c < 70405
|
|
1009
|
+
? (c < 70280
|
|
1010
|
+
? (c < 70163
|
|
1011
|
+
? (c < 70144
|
|
1012
|
+
? c == 70108
|
|
1013
|
+
: c <= 70161)
|
|
1014
|
+
: (c <= 70187 || (c >= 70272 && c <= 70278)))
|
|
1015
|
+
: (c <= 70280 || (c < 70303
|
|
1016
|
+
? (c < 70287
|
|
1017
|
+
? (c >= 70282 && c <= 70285)
|
|
1018
|
+
: c <= 70301)
|
|
1019
|
+
: (c <= 70312 || (c >= 70320 && c <= 70366)))))
|
|
1020
|
+
: (c <= 70412 || (c < 70453
|
|
1021
|
+
? (c < 70442
|
|
1022
|
+
? (c < 70419
|
|
1023
|
+
? (c >= 70415 && c <= 70416)
|
|
1024
|
+
: c <= 70440)
|
|
1025
|
+
: (c <= 70448 || (c >= 70450 && c <= 70451)))
|
|
1026
|
+
: (c <= 70457 || (c < 70493
|
|
1027
|
+
? (c < 70480
|
|
1028
|
+
? c == 70461
|
|
1029
|
+
: c <= 70480)
|
|
1030
|
+
: (c <= 70497 || (c >= 70656 && c <= 70708)))))))))))))
|
|
1031
|
+
: (c <= 70730 || (c < 119894
|
|
1032
|
+
? (c < 73056
|
|
1033
|
+
? (c < 72001
|
|
1034
|
+
? (c < 71424
|
|
1035
|
+
? (c < 71128
|
|
1036
|
+
? (c < 70852
|
|
1037
|
+
? (c < 70784
|
|
1038
|
+
? (c >= 70751 && c <= 70753)
|
|
1039
|
+
: c <= 70831)
|
|
1040
|
+
: (c <= 70853 || (c < 71040
|
|
1041
|
+
? c == 70855
|
|
1042
|
+
: c <= 71086)))
|
|
1043
|
+
: (c <= 71131 || (c < 71296
|
|
1044
|
+
? (c < 71236
|
|
1045
|
+
? (c >= 71168 && c <= 71215)
|
|
1046
|
+
: c <= 71236)
|
|
1047
|
+
: (c <= 71338 || c == 71352))))
|
|
1048
|
+
: (c <= 71450 || (c < 71945
|
|
1049
|
+
? (c < 71840
|
|
1050
|
+
? (c < 71680
|
|
1051
|
+
? (c >= 71488 && c <= 71494)
|
|
1052
|
+
: c <= 71723)
|
|
1053
|
+
: (c <= 71903 || (c >= 71935 && c <= 71942)))
|
|
1054
|
+
: (c <= 71945 || (c < 71960
|
|
1055
|
+
? (c < 71957
|
|
1056
|
+
? (c >= 71948 && c <= 71955)
|
|
1057
|
+
: c <= 71958)
|
|
1058
|
+
: (c <= 71983 || c == 71999))))))
|
|
1059
|
+
: (c <= 72001 || (c < 72349
|
|
1060
|
+
? (c < 72192
|
|
1061
|
+
? (c < 72161
|
|
1062
|
+
? (c < 72106
|
|
1063
|
+
? (c >= 72096 && c <= 72103)
|
|
1064
|
+
: c <= 72144)
|
|
1065
|
+
: (c <= 72161 || c == 72163))
|
|
1066
|
+
: (c <= 72192 || (c < 72272
|
|
1067
|
+
? (c < 72250
|
|
1068
|
+
? (c >= 72203 && c <= 72242)
|
|
1069
|
+
: c <= 72250)
|
|
1070
|
+
: (c <= 72272 || (c >= 72284 && c <= 72329)))))
|
|
1071
|
+
: (c <= 72349 || (c < 72818
|
|
1072
|
+
? (c < 72714
|
|
1073
|
+
? (c < 72704
|
|
1074
|
+
? (c >= 72368 && c <= 72440)
|
|
1075
|
+
: c <= 72712)
|
|
1076
|
+
: (c <= 72750 || c == 72768))
|
|
1077
|
+
: (c <= 72847 || (c < 72971
|
|
1078
|
+
? (c < 72968
|
|
1079
|
+
? (c >= 72960 && c <= 72966)
|
|
1080
|
+
: c <= 72969)
|
|
1081
|
+
: (c <= 73008 || c == 73030))))))))
|
|
1082
|
+
: (c <= 73061 || (c < 93952
|
|
1083
|
+
? (c < 82944
|
|
1084
|
+
? (c < 73728
|
|
1085
|
+
? (c < 73112
|
|
1086
|
+
? (c < 73066
|
|
1087
|
+
? (c >= 73063 && c <= 73064)
|
|
1088
|
+
: c <= 73097)
|
|
1089
|
+
: (c <= 73112 || (c < 73648
|
|
1090
|
+
? (c >= 73440 && c <= 73458)
|
|
1091
|
+
: c <= 73648)))
|
|
1092
|
+
: (c <= 74649 || (c < 77712
|
|
1093
|
+
? (c < 74880
|
|
1094
|
+
? (c >= 74752 && c <= 74862)
|
|
1095
|
+
: c <= 75075)
|
|
1096
|
+
: (c <= 77808 || (c >= 77824 && c <= 78894)))))
|
|
1097
|
+
: (c <= 83526 || (c < 92928
|
|
1098
|
+
? (c < 92784
|
|
1099
|
+
? (c < 92736
|
|
1100
|
+
? (c >= 92160 && c <= 92728)
|
|
1101
|
+
: c <= 92766)
|
|
1102
|
+
: (c <= 92862 || (c >= 92880 && c <= 92909)))
|
|
1103
|
+
: (c <= 92975 || (c < 93053
|
|
1104
|
+
? (c < 93027
|
|
1105
|
+
? (c >= 92992 && c <= 92995)
|
|
1106
|
+
: c <= 93047)
|
|
1107
|
+
: (c <= 93071 || (c >= 93760 && c <= 93823)))))))
|
|
1108
|
+
: (c <= 94026 || (c < 110589
|
|
1109
|
+
? (c < 94208
|
|
1110
|
+
? (c < 94176
|
|
1111
|
+
? (c < 94099
|
|
1112
|
+
? c == 94032
|
|
1113
|
+
: c <= 94111)
|
|
1114
|
+
: (c <= 94177 || c == 94179))
|
|
1115
|
+
: (c <= 100343 || (c < 110576
|
|
1116
|
+
? (c < 101632
|
|
1117
|
+
? (c >= 100352 && c <= 101589)
|
|
1118
|
+
: c <= 101640)
|
|
1119
|
+
: (c <= 110579 || (c >= 110581 && c <= 110587)))))
|
|
1120
|
+
: (c <= 110590 || (c < 113664
|
|
1121
|
+
? (c < 110948
|
|
1122
|
+
? (c < 110928
|
|
1123
|
+
? (c >= 110592 && c <= 110882)
|
|
1124
|
+
: c <= 110930)
|
|
1125
|
+
: (c <= 110951 || (c >= 110960 && c <= 111355)))
|
|
1126
|
+
: (c <= 113770 || (c < 113808
|
|
1127
|
+
? (c < 113792
|
|
1128
|
+
? (c >= 113776 && c <= 113788)
|
|
1129
|
+
: c <= 113800)
|
|
1130
|
+
: (c <= 113817 || (c >= 119808 && c <= 119892)))))))))))
|
|
1131
|
+
: (c <= 119964 || (c < 125259
|
|
1132
|
+
? (c < 120572
|
|
1133
|
+
? (c < 120086
|
|
1134
|
+
? (c < 119995
|
|
1135
|
+
? (c < 119973
|
|
1136
|
+
? (c < 119970
|
|
1137
|
+
? (c >= 119966 && c <= 119967)
|
|
1138
|
+
: c <= 119970)
|
|
1139
|
+
: (c <= 119974 || (c < 119982
|
|
1140
|
+
? (c >= 119977 && c <= 119980)
|
|
1141
|
+
: c <= 119993)))
|
|
1142
|
+
: (c <= 119995 || (c < 120071
|
|
1143
|
+
? (c < 120005
|
|
1144
|
+
? (c >= 119997 && c <= 120003)
|
|
1145
|
+
: c <= 120069)
|
|
1146
|
+
: (c <= 120074 || (c >= 120077 && c <= 120084)))))
|
|
1147
|
+
: (c <= 120092 || (c < 120138
|
|
1148
|
+
? (c < 120128
|
|
1149
|
+
? (c < 120123
|
|
1150
|
+
? (c >= 120094 && c <= 120121)
|
|
1151
|
+
: c <= 120126)
|
|
1152
|
+
: (c <= 120132 || c == 120134))
|
|
1153
|
+
: (c <= 120144 || (c < 120514
|
|
1154
|
+
? (c < 120488
|
|
1155
|
+
? (c >= 120146 && c <= 120485)
|
|
1156
|
+
: c <= 120512)
|
|
1157
|
+
: (c <= 120538 || (c >= 120540 && c <= 120570)))))))
|
|
1158
|
+
: (c <= 120596 || (c < 123191
|
|
1159
|
+
? (c < 120714
|
|
1160
|
+
? (c < 120656
|
|
1161
|
+
? (c < 120630
|
|
1162
|
+
? (c >= 120598 && c <= 120628)
|
|
1163
|
+
: c <= 120654)
|
|
1164
|
+
: (c <= 120686 || (c >= 120688 && c <= 120712)))
|
|
1165
|
+
: (c <= 120744 || (c < 122624
|
|
1166
|
+
? (c < 120772
|
|
1167
|
+
? (c >= 120746 && c <= 120770)
|
|
1168
|
+
: c <= 120779)
|
|
1169
|
+
: (c <= 122654 || (c >= 123136 && c <= 123180)))))
|
|
1170
|
+
: (c <= 123197 || (c < 124904
|
|
1171
|
+
? (c < 123584
|
|
1172
|
+
? (c < 123536
|
|
1173
|
+
? c == 123214
|
|
1174
|
+
: c <= 123565)
|
|
1175
|
+
: (c <= 123627 || (c >= 124896 && c <= 124902)))
|
|
1176
|
+
: (c <= 124907 || (c < 124928
|
|
1177
|
+
? (c < 124912
|
|
1178
|
+
? (c >= 124909 && c <= 124910)
|
|
1179
|
+
: c <= 124926)
|
|
1180
|
+
: (c <= 125124 || (c >= 125184 && c <= 125251)))))))))
|
|
1181
|
+
: (c <= 125259 || (c < 126559
|
|
1182
|
+
? (c < 126535
|
|
1183
|
+
? (c < 126505
|
|
1184
|
+
? (c < 126497
|
|
1185
|
+
? (c < 126469
|
|
1186
|
+
? (c >= 126464 && c <= 126467)
|
|
1187
|
+
: c <= 126495)
|
|
1188
|
+
: (c <= 126498 || (c < 126503
|
|
1189
|
+
? c == 126500
|
|
1190
|
+
: c <= 126503)))
|
|
1191
|
+
: (c <= 126514 || (c < 126523
|
|
1192
|
+
? (c < 126521
|
|
1193
|
+
? (c >= 126516 && c <= 126519)
|
|
1194
|
+
: c <= 126521)
|
|
1195
|
+
: (c <= 126523 || c == 126530))))
|
|
1196
|
+
: (c <= 126535 || (c < 126548
|
|
1197
|
+
? (c < 126541
|
|
1198
|
+
? (c < 126539
|
|
1199
|
+
? c == 126537
|
|
1200
|
+
: c <= 126539)
|
|
1201
|
+
: (c <= 126543 || (c >= 126545 && c <= 126546)))
|
|
1202
|
+
: (c <= 126548 || (c < 126555
|
|
1203
|
+
? (c < 126553
|
|
1204
|
+
? c == 126551
|
|
1205
|
+
: c <= 126553)
|
|
1206
|
+
: (c <= 126555 || c == 126557))))))
|
|
1207
|
+
: (c <= 126559 || (c < 126625
|
|
1208
|
+
? (c < 126580
|
|
1209
|
+
? (c < 126567
|
|
1210
|
+
? (c < 126564
|
|
1211
|
+
? (c >= 126561 && c <= 126562)
|
|
1212
|
+
: c <= 126564)
|
|
1213
|
+
: (c <= 126570 || (c >= 126572 && c <= 126578)))
|
|
1214
|
+
: (c <= 126583 || (c < 126592
|
|
1215
|
+
? (c < 126590
|
|
1216
|
+
? (c >= 126585 && c <= 126588)
|
|
1217
|
+
: c <= 126590)
|
|
1218
|
+
: (c <= 126601 || (c >= 126603 && c <= 126619)))))
|
|
1219
|
+
: (c <= 126627 || (c < 177984
|
|
1220
|
+
? (c < 131072
|
|
1221
|
+
? (c < 126635
|
|
1222
|
+
? (c >= 126629 && c <= 126633)
|
|
1223
|
+
: c <= 126651)
|
|
1224
|
+
: (c <= 173791 || (c >= 173824 && c <= 177976)))
|
|
1225
|
+
: (c <= 178205 || (c < 194560
|
|
1226
|
+
? (c < 183984
|
|
1227
|
+
? (c >= 178208 && c <= 183969)
|
|
1228
|
+
: c <= 191456)
|
|
1229
|
+
: (c <= 195101 || (c >= 196608 && c <= 201546)))))))))))))))));
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
static inline bool sym_identifier_character_set_2(int32_t c) {
|
|
1233
|
+
return (c < 43616
|
|
1234
|
+
? (c < 3782
|
|
1235
|
+
? (c < 2748
|
|
1236
|
+
? (c < 2045
|
|
1237
|
+
? (c < 1015
|
|
1238
|
+
? (c < 710
|
|
1239
|
+
? (c < 181
|
|
1240
|
+
? (c < '_'
|
|
1241
|
+
? (c < 'A'
|
|
1242
|
+
? (c >= '0' && c <= '9')
|
|
1243
|
+
: c <= 'Z')
|
|
1244
|
+
: (c <= '_' || (c < 170
|
|
1245
|
+
? (c >= 'a' && c <= 'z')
|
|
1246
|
+
: c <= 170)))
|
|
1247
|
+
: (c <= 181 || (c < 192
|
|
1248
|
+
? (c < 186
|
|
1249
|
+
? c == 183
|
|
1250
|
+
: c <= 186)
|
|
1251
|
+
: (c <= 214 || (c < 248
|
|
1252
|
+
? (c >= 216 && c <= 246)
|
|
1253
|
+
: c <= 705)))))
|
|
1254
|
+
: (c <= 721 || (c < 891
|
|
1255
|
+
? (c < 750
|
|
1256
|
+
? (c < 748
|
|
1257
|
+
? (c >= 736 && c <= 740)
|
|
1258
|
+
: c <= 748)
|
|
1259
|
+
: (c <= 750 || (c < 886
|
|
1260
|
+
? (c >= 768 && c <= 884)
|
|
1261
|
+
: c <= 887)))
|
|
1262
|
+
: (c <= 893 || (c < 908
|
|
1263
|
+
? (c < 902
|
|
1264
|
+
? c == 895
|
|
1265
|
+
: c <= 906)
|
|
1266
|
+
: (c <= 908 || (c < 931
|
|
1267
|
+
? (c >= 910 && c <= 929)
|
|
1268
|
+
: c <= 1013)))))))
|
|
1269
|
+
: (c <= 1153 || (c < 1519
|
|
1270
|
+
? (c < 1425
|
|
1271
|
+
? (c < 1329
|
|
1272
|
+
? (c < 1162
|
|
1273
|
+
? (c >= 1155 && c <= 1159)
|
|
1274
|
+
: c <= 1327)
|
|
1275
|
+
: (c <= 1366 || (c < 1376
|
|
1276
|
+
? c == 1369
|
|
1277
|
+
: c <= 1416)))
|
|
1278
|
+
: (c <= 1469 || (c < 1476
|
|
1279
|
+
? (c < 1473
|
|
1280
|
+
? c == 1471
|
|
1281
|
+
: c <= 1474)
|
|
1282
|
+
: (c <= 1477 || (c < 1488
|
|
1283
|
+
? c == 1479
|
|
1284
|
+
: c <= 1514)))))
|
|
1285
|
+
: (c <= 1522 || (c < 1770
|
|
1286
|
+
? (c < 1646
|
|
1287
|
+
? (c < 1568
|
|
1288
|
+
? (c >= 1552 && c <= 1562)
|
|
1289
|
+
: c <= 1641)
|
|
1290
|
+
: (c <= 1747 || (c < 1759
|
|
1291
|
+
? (c >= 1749 && c <= 1756)
|
|
1292
|
+
: c <= 1768)))
|
|
1293
|
+
: (c <= 1788 || (c < 1869
|
|
1294
|
+
? (c < 1808
|
|
1295
|
+
? c == 1791
|
|
1296
|
+
: c <= 1866)
|
|
1297
|
+
: (c <= 1969 || (c < 2042
|
|
1298
|
+
? (c >= 1984 && c <= 2037)
|
|
1299
|
+
: c <= 2042)))))))))
|
|
1300
|
+
: (c <= 2045 || (c < 2558
|
|
1301
|
+
? (c < 2451
|
|
1302
|
+
? (c < 2200
|
|
1303
|
+
? (c < 2144
|
|
1304
|
+
? (c < 2112
|
|
1305
|
+
? (c >= 2048 && c <= 2093)
|
|
1306
|
+
: c <= 2139)
|
|
1307
|
+
: (c <= 2154 || (c < 2185
|
|
1308
|
+
? (c >= 2160 && c <= 2183)
|
|
1309
|
+
: c <= 2190)))
|
|
1310
|
+
: (c <= 2273 || (c < 2417
|
|
1311
|
+
? (c < 2406
|
|
1312
|
+
? (c >= 2275 && c <= 2403)
|
|
1313
|
+
: c <= 2415)
|
|
1314
|
+
: (c <= 2435 || (c < 2447
|
|
1315
|
+
? (c >= 2437 && c <= 2444)
|
|
1316
|
+
: c <= 2448)))))
|
|
1317
|
+
: (c <= 2472 || (c < 2507
|
|
1318
|
+
? (c < 2486
|
|
1319
|
+
? (c < 2482
|
|
1320
|
+
? (c >= 2474 && c <= 2480)
|
|
1321
|
+
: c <= 2482)
|
|
1322
|
+
: (c <= 2489 || (c < 2503
|
|
1323
|
+
? (c >= 2492 && c <= 2500)
|
|
1324
|
+
: c <= 2504)))
|
|
1325
|
+
: (c <= 2510 || (c < 2527
|
|
1326
|
+
? (c < 2524
|
|
1327
|
+
? c == 2519
|
|
1328
|
+
: c <= 2525)
|
|
1329
|
+
: (c <= 2531 || (c < 2556
|
|
1330
|
+
? (c >= 2534 && c <= 2545)
|
|
1331
|
+
: c <= 2556)))))))
|
|
1332
|
+
: (c <= 2558 || (c < 2635
|
|
1333
|
+
? (c < 2610
|
|
1334
|
+
? (c < 2575
|
|
1335
|
+
? (c < 2565
|
|
1336
|
+
? (c >= 2561 && c <= 2563)
|
|
1337
|
+
: c <= 2570)
|
|
1338
|
+
: (c <= 2576 || (c < 2602
|
|
1339
|
+
? (c >= 2579 && c <= 2600)
|
|
1340
|
+
: c <= 2608)))
|
|
1341
|
+
: (c <= 2611 || (c < 2620
|
|
1342
|
+
? (c < 2616
|
|
1343
|
+
? (c >= 2613 && c <= 2614)
|
|
1344
|
+
: c <= 2617)
|
|
1345
|
+
: (c <= 2620 || (c < 2631
|
|
1346
|
+
? (c >= 2622 && c <= 2626)
|
|
1347
|
+
: c <= 2632)))))
|
|
1348
|
+
: (c <= 2637 || (c < 2693
|
|
1349
|
+
? (c < 2654
|
|
1350
|
+
? (c < 2649
|
|
1351
|
+
? c == 2641
|
|
1352
|
+
: c <= 2652)
|
|
1353
|
+
: (c <= 2654 || (c < 2689
|
|
1354
|
+
? (c >= 2662 && c <= 2677)
|
|
1355
|
+
: c <= 2691)))
|
|
1356
|
+
: (c <= 2701 || (c < 2730
|
|
1357
|
+
? (c < 2707
|
|
1358
|
+
? (c >= 2703 && c <= 2705)
|
|
1359
|
+
: c <= 2728)
|
|
1360
|
+
: (c <= 2736 || (c < 2741
|
|
1361
|
+
? (c >= 2738 && c <= 2739)
|
|
1362
|
+
: c <= 2745)))))))))))
|
|
1363
|
+
: (c <= 2757 || (c < 3168
|
|
1364
|
+
? (c < 2958
|
|
1365
|
+
? (c < 2866
|
|
1366
|
+
? (c < 2809
|
|
1367
|
+
? (c < 2768
|
|
1368
|
+
? (c < 2763
|
|
1369
|
+
? (c >= 2759 && c <= 2761)
|
|
1370
|
+
: c <= 2765)
|
|
1371
|
+
: (c <= 2768 || (c < 2790
|
|
1372
|
+
? (c >= 2784 && c <= 2787)
|
|
1373
|
+
: c <= 2799)))
|
|
1374
|
+
: (c <= 2815 || (c < 2831
|
|
1375
|
+
? (c < 2821
|
|
1376
|
+
? (c >= 2817 && c <= 2819)
|
|
1377
|
+
: c <= 2828)
|
|
1378
|
+
: (c <= 2832 || (c < 2858
|
|
1379
|
+
? (c >= 2835 && c <= 2856)
|
|
1380
|
+
: c <= 2864)))))
|
|
1381
|
+
: (c <= 2867 || (c < 2908
|
|
1382
|
+
? (c < 2887
|
|
1383
|
+
? (c < 2876
|
|
1384
|
+
? (c >= 2869 && c <= 2873)
|
|
1385
|
+
: c <= 2884)
|
|
1386
|
+
: (c <= 2888 || (c < 2901
|
|
1387
|
+
? (c >= 2891 && c <= 2893)
|
|
1388
|
+
: c <= 2903)))
|
|
1389
|
+
: (c <= 2909 || (c < 2929
|
|
1390
|
+
? (c < 2918
|
|
1391
|
+
? (c >= 2911 && c <= 2915)
|
|
1392
|
+
: c <= 2927)
|
|
1393
|
+
: (c <= 2929 || (c < 2949
|
|
1394
|
+
? (c >= 2946 && c <= 2947)
|
|
1395
|
+
: c <= 2954)))))))
|
|
1396
|
+
: (c <= 2960 || (c < 3031
|
|
1397
|
+
? (c < 2984
|
|
1398
|
+
? (c < 2972
|
|
1399
|
+
? (c < 2969
|
|
1400
|
+
? (c >= 2962 && c <= 2965)
|
|
1401
|
+
: c <= 2970)
|
|
1402
|
+
: (c <= 2972 || (c < 2979
|
|
1403
|
+
? (c >= 2974 && c <= 2975)
|
|
1404
|
+
: c <= 2980)))
|
|
1405
|
+
: (c <= 2986 || (c < 3014
|
|
1406
|
+
? (c < 3006
|
|
1407
|
+
? (c >= 2990 && c <= 3001)
|
|
1408
|
+
: c <= 3010)
|
|
1409
|
+
: (c <= 3016 || (c < 3024
|
|
1410
|
+
? (c >= 3018 && c <= 3021)
|
|
1411
|
+
: c <= 3024)))))
|
|
1412
|
+
: (c <= 3031 || (c < 3132
|
|
1413
|
+
? (c < 3086
|
|
1414
|
+
? (c < 3072
|
|
1415
|
+
? (c >= 3046 && c <= 3055)
|
|
1416
|
+
: c <= 3084)
|
|
1417
|
+
: (c <= 3088 || (c < 3114
|
|
1418
|
+
? (c >= 3090 && c <= 3112)
|
|
1419
|
+
: c <= 3129)))
|
|
1420
|
+
: (c <= 3140 || (c < 3157
|
|
1421
|
+
? (c < 3146
|
|
1422
|
+
? (c >= 3142 && c <= 3144)
|
|
1423
|
+
: c <= 3149)
|
|
1424
|
+
: (c <= 3158 || (c < 3165
|
|
1425
|
+
? (c >= 3160 && c <= 3162)
|
|
1426
|
+
: c <= 3165)))))))))
|
|
1427
|
+
: (c <= 3171 || (c < 3450
|
|
1428
|
+
? (c < 3293
|
|
1429
|
+
? (c < 3242
|
|
1430
|
+
? (c < 3205
|
|
1431
|
+
? (c < 3200
|
|
1432
|
+
? (c >= 3174 && c <= 3183)
|
|
1433
|
+
: c <= 3203)
|
|
1434
|
+
: (c <= 3212 || (c < 3218
|
|
1435
|
+
? (c >= 3214 && c <= 3216)
|
|
1436
|
+
: c <= 3240)))
|
|
1437
|
+
: (c <= 3251 || (c < 3270
|
|
1438
|
+
? (c < 3260
|
|
1439
|
+
? (c >= 3253 && c <= 3257)
|
|
1440
|
+
: c <= 3268)
|
|
1441
|
+
: (c <= 3272 || (c < 3285
|
|
1442
|
+
? (c >= 3274 && c <= 3277)
|
|
1443
|
+
: c <= 3286)))))
|
|
1444
|
+
: (c <= 3294 || (c < 3346
|
|
1445
|
+
? (c < 3313
|
|
1446
|
+
? (c < 3302
|
|
1447
|
+
? (c >= 3296 && c <= 3299)
|
|
1448
|
+
: c <= 3311)
|
|
1449
|
+
: (c <= 3314 || (c < 3342
|
|
1450
|
+
? (c >= 3328 && c <= 3340)
|
|
1451
|
+
: c <= 3344)))
|
|
1452
|
+
: (c <= 3396 || (c < 3412
|
|
1453
|
+
? (c < 3402
|
|
1454
|
+
? (c >= 3398 && c <= 3400)
|
|
1455
|
+
: c <= 3406)
|
|
1456
|
+
: (c <= 3415 || (c < 3430
|
|
1457
|
+
? (c >= 3423 && c <= 3427)
|
|
1458
|
+
: c <= 3439)))))))
|
|
1459
|
+
: (c <= 3455 || (c < 3570
|
|
1460
|
+
? (c < 3520
|
|
1461
|
+
? (c < 3482
|
|
1462
|
+
? (c < 3461
|
|
1463
|
+
? (c >= 3457 && c <= 3459)
|
|
1464
|
+
: c <= 3478)
|
|
1465
|
+
: (c <= 3505 || (c < 3517
|
|
1466
|
+
? (c >= 3507 && c <= 3515)
|
|
1467
|
+
: c <= 3517)))
|
|
1468
|
+
: (c <= 3526 || (c < 3542
|
|
1469
|
+
? (c < 3535
|
|
1470
|
+
? c == 3530
|
|
1471
|
+
: c <= 3540)
|
|
1472
|
+
: (c <= 3542 || (c < 3558
|
|
1473
|
+
? (c >= 3544 && c <= 3551)
|
|
1474
|
+
: c <= 3567)))))
|
|
1475
|
+
: (c <= 3571 || (c < 3718
|
|
1476
|
+
? (c < 3664
|
|
1477
|
+
? (c < 3648
|
|
1478
|
+
? (c >= 3585 && c <= 3642)
|
|
1479
|
+
: c <= 3662)
|
|
1480
|
+
: (c <= 3673 || (c < 3716
|
|
1481
|
+
? (c >= 3713 && c <= 3714)
|
|
1482
|
+
: c <= 3716)))
|
|
1483
|
+
: (c <= 3722 || (c < 3751
|
|
1484
|
+
? (c < 3749
|
|
1485
|
+
? (c >= 3724 && c <= 3747)
|
|
1486
|
+
: c <= 3749)
|
|
1487
|
+
: (c <= 3773 || (c >= 3776 && c <= 3780)))))))))))))
|
|
1488
|
+
: (c <= 3782 || (c < 8025
|
|
1489
|
+
? (c < 5888
|
|
1490
|
+
? (c < 4688
|
|
1491
|
+
? (c < 3953
|
|
1492
|
+
? (c < 3872
|
|
1493
|
+
? (c < 3804
|
|
1494
|
+
? (c < 3792
|
|
1495
|
+
? (c >= 3784 && c <= 3789)
|
|
1496
|
+
: c <= 3801)
|
|
1497
|
+
: (c <= 3807 || (c < 3864
|
|
1498
|
+
? c == 3840
|
|
1499
|
+
: c <= 3865)))
|
|
1500
|
+
: (c <= 3881 || (c < 3897
|
|
1501
|
+
? (c < 3895
|
|
1502
|
+
? c == 3893
|
|
1503
|
+
: c <= 3895)
|
|
1504
|
+
: (c <= 3897 || (c < 3913
|
|
1505
|
+
? (c >= 3902 && c <= 3911)
|
|
1506
|
+
: c <= 3948)))))
|
|
1507
|
+
: (c <= 3972 || (c < 4256
|
|
1508
|
+
? (c < 4038
|
|
1509
|
+
? (c < 3993
|
|
1510
|
+
? (c >= 3974 && c <= 3991)
|
|
1511
|
+
: c <= 4028)
|
|
1512
|
+
: (c <= 4038 || (c < 4176
|
|
1513
|
+
? (c >= 4096 && c <= 4169)
|
|
1514
|
+
: c <= 4253)))
|
|
1515
|
+
: (c <= 4293 || (c < 4304
|
|
1516
|
+
? (c < 4301
|
|
1517
|
+
? c == 4295
|
|
1518
|
+
: c <= 4301)
|
|
1519
|
+
: (c <= 4346 || (c < 4682
|
|
1520
|
+
? (c >= 4348 && c <= 4680)
|
|
1521
|
+
: c <= 4685)))))))
|
|
1522
|
+
: (c <= 4694 || (c < 4882
|
|
1523
|
+
? (c < 4786
|
|
1524
|
+
? (c < 4704
|
|
1525
|
+
? (c < 4698
|
|
1526
|
+
? c == 4696
|
|
1527
|
+
: c <= 4701)
|
|
1528
|
+
: (c <= 4744 || (c < 4752
|
|
1529
|
+
? (c >= 4746 && c <= 4749)
|
|
1530
|
+
: c <= 4784)))
|
|
1531
|
+
: (c <= 4789 || (c < 4802
|
|
1532
|
+
? (c < 4800
|
|
1533
|
+
? (c >= 4792 && c <= 4798)
|
|
1534
|
+
: c <= 4800)
|
|
1535
|
+
: (c <= 4805 || (c < 4824
|
|
1536
|
+
? (c >= 4808 && c <= 4822)
|
|
1537
|
+
: c <= 4880)))))
|
|
1538
|
+
: (c <= 4885 || (c < 5112
|
|
1539
|
+
? (c < 4969
|
|
1540
|
+
? (c < 4957
|
|
1541
|
+
? (c >= 4888 && c <= 4954)
|
|
1542
|
+
: c <= 4959)
|
|
1543
|
+
: (c <= 4977 || (c < 5024
|
|
1544
|
+
? (c >= 4992 && c <= 5007)
|
|
1545
|
+
: c <= 5109)))
|
|
1546
|
+
: (c <= 5117 || (c < 5761
|
|
1547
|
+
? (c < 5743
|
|
1548
|
+
? (c >= 5121 && c <= 5740)
|
|
1549
|
+
: c <= 5759)
|
|
1550
|
+
: (c <= 5786 || (c < 5870
|
|
1551
|
+
? (c >= 5792 && c <= 5866)
|
|
1552
|
+
: c <= 5880)))))))))
|
|
1553
|
+
: (c <= 5909 || (c < 6688
|
|
1554
|
+
? (c < 6176
|
|
1555
|
+
? (c < 6016
|
|
1556
|
+
? (c < 5984
|
|
1557
|
+
? (c < 5952
|
|
1558
|
+
? (c >= 5919 && c <= 5940)
|
|
1559
|
+
: c <= 5971)
|
|
1560
|
+
: (c <= 5996 || (c < 6002
|
|
1561
|
+
? (c >= 5998 && c <= 6000)
|
|
1562
|
+
: c <= 6003)))
|
|
1563
|
+
: (c <= 6099 || (c < 6112
|
|
1564
|
+
? (c < 6108
|
|
1565
|
+
? c == 6103
|
|
1566
|
+
: c <= 6109)
|
|
1567
|
+
: (c <= 6121 || (c < 6159
|
|
1568
|
+
? (c >= 6155 && c <= 6157)
|
|
1569
|
+
: c <= 6169)))))
|
|
1570
|
+
: (c <= 6264 || (c < 6470
|
|
1571
|
+
? (c < 6400
|
|
1572
|
+
? (c < 6320
|
|
1573
|
+
? (c >= 6272 && c <= 6314)
|
|
1574
|
+
: c <= 6389)
|
|
1575
|
+
: (c <= 6430 || (c < 6448
|
|
1576
|
+
? (c >= 6432 && c <= 6443)
|
|
1577
|
+
: c <= 6459)))
|
|
1578
|
+
: (c <= 6509 || (c < 6576
|
|
1579
|
+
? (c < 6528
|
|
1580
|
+
? (c >= 6512 && c <= 6516)
|
|
1581
|
+
: c <= 6571)
|
|
1582
|
+
: (c <= 6601 || (c < 6656
|
|
1583
|
+
? (c >= 6608 && c <= 6618)
|
|
1584
|
+
: c <= 6683)))))))
|
|
1585
|
+
: (c <= 6750 || (c < 7232
|
|
1586
|
+
? (c < 6847
|
|
1587
|
+
? (c < 6800
|
|
1588
|
+
? (c < 6783
|
|
1589
|
+
? (c >= 6752 && c <= 6780)
|
|
1590
|
+
: c <= 6793)
|
|
1591
|
+
: (c <= 6809 || (c < 6832
|
|
1592
|
+
? c == 6823
|
|
1593
|
+
: c <= 6845)))
|
|
1594
|
+
: (c <= 6862 || (c < 7019
|
|
1595
|
+
? (c < 6992
|
|
1596
|
+
? (c >= 6912 && c <= 6988)
|
|
1597
|
+
: c <= 7001)
|
|
1598
|
+
: (c <= 7027 || (c < 7168
|
|
1599
|
+
? (c >= 7040 && c <= 7155)
|
|
1600
|
+
: c <= 7223)))))
|
|
1601
|
+
: (c <= 7241 || (c < 7380
|
|
1602
|
+
? (c < 7312
|
|
1603
|
+
? (c < 7296
|
|
1604
|
+
? (c >= 7245 && c <= 7293)
|
|
1605
|
+
: c <= 7304)
|
|
1606
|
+
: (c <= 7354 || (c < 7376
|
|
1607
|
+
? (c >= 7357 && c <= 7359)
|
|
1608
|
+
: c <= 7378)))
|
|
1609
|
+
: (c <= 7418 || (c < 7968
|
|
1610
|
+
? (c < 7960
|
|
1611
|
+
? (c >= 7424 && c <= 7957)
|
|
1612
|
+
: c <= 7965)
|
|
1613
|
+
: (c <= 8005 || (c < 8016
|
|
1614
|
+
? (c >= 8008 && c <= 8013)
|
|
1615
|
+
: c <= 8023)))))))))))
|
|
1616
|
+
: (c <= 8025 || (c < 11720
|
|
1617
|
+
? (c < 8458
|
|
1618
|
+
? (c < 8178
|
|
1619
|
+
? (c < 8126
|
|
1620
|
+
? (c < 8031
|
|
1621
|
+
? (c < 8029
|
|
1622
|
+
? c == 8027
|
|
1623
|
+
: c <= 8029)
|
|
1624
|
+
: (c <= 8061 || (c < 8118
|
|
1625
|
+
? (c >= 8064 && c <= 8116)
|
|
1626
|
+
: c <= 8124)))
|
|
1627
|
+
: (c <= 8126 || (c < 8144
|
|
1628
|
+
? (c < 8134
|
|
1629
|
+
? (c >= 8130 && c <= 8132)
|
|
1630
|
+
: c <= 8140)
|
|
1631
|
+
: (c <= 8147 || (c < 8160
|
|
1632
|
+
? (c >= 8150 && c <= 8155)
|
|
1633
|
+
: c <= 8172)))))
|
|
1634
|
+
: (c <= 8180 || (c < 8336
|
|
1635
|
+
? (c < 8276
|
|
1636
|
+
? (c < 8255
|
|
1637
|
+
? (c >= 8182 && c <= 8188)
|
|
1638
|
+
: c <= 8256)
|
|
1639
|
+
: (c <= 8276 || (c < 8319
|
|
1640
|
+
? c == 8305
|
|
1641
|
+
: c <= 8319)))
|
|
1642
|
+
: (c <= 8348 || (c < 8421
|
|
1643
|
+
? (c < 8417
|
|
1644
|
+
? (c >= 8400 && c <= 8412)
|
|
1645
|
+
: c <= 8417)
|
|
1646
|
+
: (c <= 8432 || (c < 8455
|
|
1647
|
+
? c == 8450
|
|
1648
|
+
: c <= 8455)))))))
|
|
1649
|
+
: (c <= 8467 || (c < 11499
|
|
1650
|
+
? (c < 8490
|
|
1651
|
+
? (c < 8484
|
|
1652
|
+
? (c < 8472
|
|
1653
|
+
? c == 8469
|
|
1654
|
+
: c <= 8477)
|
|
1655
|
+
: (c <= 8484 || (c < 8488
|
|
1656
|
+
? c == 8486
|
|
1657
|
+
: c <= 8488)))
|
|
1658
|
+
: (c <= 8505 || (c < 8526
|
|
1659
|
+
? (c < 8517
|
|
1660
|
+
? (c >= 8508 && c <= 8511)
|
|
1661
|
+
: c <= 8521)
|
|
1662
|
+
: (c <= 8526 || (c < 11264
|
|
1663
|
+
? (c >= 8544 && c <= 8584)
|
|
1664
|
+
: c <= 11492)))))
|
|
1665
|
+
: (c <= 11507 || (c < 11647
|
|
1666
|
+
? (c < 11565
|
|
1667
|
+
? (c < 11559
|
|
1668
|
+
? (c >= 11520 && c <= 11557)
|
|
1669
|
+
: c <= 11559)
|
|
1670
|
+
: (c <= 11565 || (c < 11631
|
|
1671
|
+
? (c >= 11568 && c <= 11623)
|
|
1672
|
+
: c <= 11631)))
|
|
1673
|
+
: (c <= 11670 || (c < 11696
|
|
1674
|
+
? (c < 11688
|
|
1675
|
+
? (c >= 11680 && c <= 11686)
|
|
1676
|
+
: c <= 11694)
|
|
1677
|
+
: (c <= 11702 || (c < 11712
|
|
1678
|
+
? (c >= 11704 && c <= 11710)
|
|
1679
|
+
: c <= 11718)))))))))
|
|
1680
|
+
: (c <= 11726 || (c < 42623
|
|
1681
|
+
? (c < 12540
|
|
1682
|
+
? (c < 12337
|
|
1683
|
+
? (c < 11744
|
|
1684
|
+
? (c < 11736
|
|
1685
|
+
? (c >= 11728 && c <= 11734)
|
|
1686
|
+
: c <= 11742)
|
|
1687
|
+
: (c <= 11775 || (c < 12321
|
|
1688
|
+
? (c >= 12293 && c <= 12295)
|
|
1689
|
+
: c <= 12335)))
|
|
1690
|
+
: (c <= 12341 || (c < 12441
|
|
1691
|
+
? (c < 12353
|
|
1692
|
+
? (c >= 12344 && c <= 12348)
|
|
1693
|
+
: c <= 12438)
|
|
1694
|
+
: (c <= 12442 || (c < 12449
|
|
1695
|
+
? (c >= 12445 && c <= 12447)
|
|
1696
|
+
: c <= 12538)))))
|
|
1697
|
+
: (c <= 12543 || (c < 19968
|
|
1698
|
+
? (c < 12704
|
|
1699
|
+
? (c < 12593
|
|
1700
|
+
? (c >= 12549 && c <= 12591)
|
|
1701
|
+
: c <= 12686)
|
|
1702
|
+
: (c <= 12735 || (c < 13312
|
|
1703
|
+
? (c >= 12784 && c <= 12799)
|
|
1704
|
+
: c <= 19903)))
|
|
1705
|
+
: (c <= 42124 || (c < 42512
|
|
1706
|
+
? (c < 42240
|
|
1707
|
+
? (c >= 42192 && c <= 42237)
|
|
1708
|
+
: c <= 42508)
|
|
1709
|
+
: (c <= 42539 || (c < 42612
|
|
1710
|
+
? (c >= 42560 && c <= 42607)
|
|
1711
|
+
: c <= 42621)))))))
|
|
1712
|
+
: (c <= 42737 || (c < 43232
|
|
1713
|
+
? (c < 42965
|
|
1714
|
+
? (c < 42891
|
|
1715
|
+
? (c < 42786
|
|
1716
|
+
? (c >= 42775 && c <= 42783)
|
|
1717
|
+
: c <= 42888)
|
|
1718
|
+
: (c <= 42954 || (c < 42963
|
|
1719
|
+
? (c >= 42960 && c <= 42961)
|
|
1720
|
+
: c <= 42963)))
|
|
1721
|
+
: (c <= 42969 || (c < 43072
|
|
1722
|
+
? (c < 43052
|
|
1723
|
+
? (c >= 42994 && c <= 43047)
|
|
1724
|
+
: c <= 43052)
|
|
1725
|
+
: (c <= 43123 || (c < 43216
|
|
1726
|
+
? (c >= 43136 && c <= 43205)
|
|
1727
|
+
: c <= 43225)))))
|
|
1728
|
+
: (c <= 43255 || (c < 43471
|
|
1729
|
+
? (c < 43312
|
|
1730
|
+
? (c < 43261
|
|
1731
|
+
? c == 43259
|
|
1732
|
+
: c <= 43309)
|
|
1733
|
+
: (c <= 43347 || (c < 43392
|
|
1734
|
+
? (c >= 43360 && c <= 43388)
|
|
1735
|
+
: c <= 43456)))
|
|
1736
|
+
: (c <= 43481 || (c < 43584
|
|
1737
|
+
? (c < 43520
|
|
1738
|
+
? (c >= 43488 && c <= 43518)
|
|
1739
|
+
: c <= 43574)
|
|
1740
|
+
: (c <= 43597 || (c >= 43600 && c <= 43609)))))))))))))))
|
|
1741
|
+
: (c <= 43638 || (c < 71453
|
|
1742
|
+
? (c < 67639
|
|
1743
|
+
? (c < 65345
|
|
1744
|
+
? (c < 64312
|
|
1745
|
+
? (c < 43888
|
|
1746
|
+
? (c < 43785
|
|
1747
|
+
? (c < 43744
|
|
1748
|
+
? (c < 43739
|
|
1749
|
+
? (c >= 43642 && c <= 43714)
|
|
1750
|
+
: c <= 43741)
|
|
1751
|
+
: (c <= 43759 || (c < 43777
|
|
1752
|
+
? (c >= 43762 && c <= 43766)
|
|
1753
|
+
: c <= 43782)))
|
|
1754
|
+
: (c <= 43790 || (c < 43816
|
|
1755
|
+
? (c < 43808
|
|
1756
|
+
? (c >= 43793 && c <= 43798)
|
|
1757
|
+
: c <= 43814)
|
|
1758
|
+
: (c <= 43822 || (c < 43868
|
|
1759
|
+
? (c >= 43824 && c <= 43866)
|
|
1760
|
+
: c <= 43881)))))
|
|
1761
|
+
: (c <= 44010 || (c < 63744
|
|
1762
|
+
? (c < 44032
|
|
1763
|
+
? (c < 44016
|
|
1764
|
+
? (c >= 44012 && c <= 44013)
|
|
1765
|
+
: c <= 44025)
|
|
1766
|
+
: (c <= 55203 || (c < 55243
|
|
1767
|
+
? (c >= 55216 && c <= 55238)
|
|
1768
|
+
: c <= 55291)))
|
|
1769
|
+
: (c <= 64109 || (c < 64275
|
|
1770
|
+
? (c < 64256
|
|
1771
|
+
? (c >= 64112 && c <= 64217)
|
|
1772
|
+
: c <= 64262)
|
|
1773
|
+
: (c <= 64279 || (c < 64298
|
|
1774
|
+
? (c >= 64285 && c <= 64296)
|
|
1775
|
+
: c <= 64310)))))))
|
|
1776
|
+
: (c <= 64316 || (c < 65075
|
|
1777
|
+
? (c < 64612
|
|
1778
|
+
? (c < 64323
|
|
1779
|
+
? (c < 64320
|
|
1780
|
+
? c == 64318
|
|
1781
|
+
: c <= 64321)
|
|
1782
|
+
: (c <= 64324 || (c < 64467
|
|
1783
|
+
? (c >= 64326 && c <= 64433)
|
|
1784
|
+
: c <= 64605)))
|
|
1785
|
+
: (c <= 64829 || (c < 65008
|
|
1786
|
+
? (c < 64914
|
|
1787
|
+
? (c >= 64848 && c <= 64911)
|
|
1788
|
+
: c <= 64967)
|
|
1789
|
+
: (c <= 65017 || (c < 65056
|
|
1790
|
+
? (c >= 65024 && c <= 65039)
|
|
1791
|
+
: c <= 65071)))))
|
|
1792
|
+
: (c <= 65076 || (c < 65147
|
|
1793
|
+
? (c < 65139
|
|
1794
|
+
? (c < 65137
|
|
1795
|
+
? (c >= 65101 && c <= 65103)
|
|
1796
|
+
: c <= 65137)
|
|
1797
|
+
: (c <= 65139 || (c < 65145
|
|
1798
|
+
? c == 65143
|
|
1799
|
+
: c <= 65145)))
|
|
1800
|
+
: (c <= 65147 || (c < 65296
|
|
1801
|
+
? (c < 65151
|
|
1802
|
+
? c == 65149
|
|
1803
|
+
: c <= 65276)
|
|
1804
|
+
: (c <= 65305 || (c < 65343
|
|
1805
|
+
? (c >= 65313 && c <= 65338)
|
|
1806
|
+
: c <= 65343)))))))))
|
|
1807
|
+
: (c <= 65370 || (c < 66513
|
|
1808
|
+
? (c < 65664
|
|
1809
|
+
? (c < 65536
|
|
1810
|
+
? (c < 65482
|
|
1811
|
+
? (c < 65474
|
|
1812
|
+
? (c >= 65382 && c <= 65470)
|
|
1813
|
+
: c <= 65479)
|
|
1814
|
+
: (c <= 65487 || (c < 65498
|
|
1815
|
+
? (c >= 65490 && c <= 65495)
|
|
1816
|
+
: c <= 65500)))
|
|
1817
|
+
: (c <= 65547 || (c < 65596
|
|
1818
|
+
? (c < 65576
|
|
1819
|
+
? (c >= 65549 && c <= 65574)
|
|
1820
|
+
: c <= 65594)
|
|
1821
|
+
: (c <= 65597 || (c < 65616
|
|
1822
|
+
? (c >= 65599 && c <= 65613)
|
|
1823
|
+
: c <= 65629)))))
|
|
1824
|
+
: (c <= 65786 || (c < 66304
|
|
1825
|
+
? (c < 66176
|
|
1826
|
+
? (c < 66045
|
|
1827
|
+
? (c >= 65856 && c <= 65908)
|
|
1828
|
+
: c <= 66045)
|
|
1829
|
+
: (c <= 66204 || (c < 66272
|
|
1830
|
+
? (c >= 66208 && c <= 66256)
|
|
1831
|
+
: c <= 66272)))
|
|
1832
|
+
: (c <= 66335 || (c < 66432
|
|
1833
|
+
? (c < 66384
|
|
1834
|
+
? (c >= 66349 && c <= 66378)
|
|
1835
|
+
: c <= 66426)
|
|
1836
|
+
: (c <= 66461 || (c < 66504
|
|
1837
|
+
? (c >= 66464 && c <= 66499)
|
|
1838
|
+
: c <= 66511)))))))
|
|
1839
|
+
: (c <= 66517 || (c < 66979
|
|
1840
|
+
? (c < 66864
|
|
1841
|
+
? (c < 66736
|
|
1842
|
+
? (c < 66720
|
|
1843
|
+
? (c >= 66560 && c <= 66717)
|
|
1844
|
+
: c <= 66729)
|
|
1845
|
+
: (c <= 66771 || (c < 66816
|
|
1846
|
+
? (c >= 66776 && c <= 66811)
|
|
1847
|
+
: c <= 66855)))
|
|
1848
|
+
: (c <= 66915 || (c < 66956
|
|
1849
|
+
? (c < 66940
|
|
1850
|
+
? (c >= 66928 && c <= 66938)
|
|
1851
|
+
: c <= 66954)
|
|
1852
|
+
: (c <= 66962 || (c < 66967
|
|
1853
|
+
? (c >= 66964 && c <= 66965)
|
|
1854
|
+
: c <= 66977)))))
|
|
1855
|
+
: (c <= 66993 || (c < 67456
|
|
1856
|
+
? (c < 67072
|
|
1857
|
+
? (c < 67003
|
|
1858
|
+
? (c >= 66995 && c <= 67001)
|
|
1859
|
+
: c <= 67004)
|
|
1860
|
+
: (c <= 67382 || (c < 67424
|
|
1861
|
+
? (c >= 67392 && c <= 67413)
|
|
1862
|
+
: c <= 67431)))
|
|
1863
|
+
: (c <= 67461 || (c < 67584
|
|
1864
|
+
? (c < 67506
|
|
1865
|
+
? (c >= 67463 && c <= 67504)
|
|
1866
|
+
: c <= 67514)
|
|
1867
|
+
: (c <= 67589 || (c < 67594
|
|
1868
|
+
? c == 67592
|
|
1869
|
+
: c <= 67637)))))))))))
|
|
1870
|
+
: (c <= 67640 || (c < 69956
|
|
1871
|
+
? (c < 68448
|
|
1872
|
+
? (c < 68101
|
|
1873
|
+
? (c < 67828
|
|
1874
|
+
? (c < 67680
|
|
1875
|
+
? (c < 67647
|
|
1876
|
+
? c == 67644
|
|
1877
|
+
: c <= 67669)
|
|
1878
|
+
: (c <= 67702 || (c < 67808
|
|
1879
|
+
? (c >= 67712 && c <= 67742)
|
|
1880
|
+
: c <= 67826)))
|
|
1881
|
+
: (c <= 67829 || (c < 67968
|
|
1882
|
+
? (c < 67872
|
|
1883
|
+
? (c >= 67840 && c <= 67861)
|
|
1884
|
+
: c <= 67897)
|
|
1885
|
+
: (c <= 68023 || (c < 68096
|
|
1886
|
+
? (c >= 68030 && c <= 68031)
|
|
1887
|
+
: c <= 68099)))))
|
|
1888
|
+
: (c <= 68102 || (c < 68192
|
|
1889
|
+
? (c < 68121
|
|
1890
|
+
? (c < 68117
|
|
1891
|
+
? (c >= 68108 && c <= 68115)
|
|
1892
|
+
: c <= 68119)
|
|
1893
|
+
: (c <= 68149 || (c < 68159
|
|
1894
|
+
? (c >= 68152 && c <= 68154)
|
|
1895
|
+
: c <= 68159)))
|
|
1896
|
+
: (c <= 68220 || (c < 68297
|
|
1897
|
+
? (c < 68288
|
|
1898
|
+
? (c >= 68224 && c <= 68252)
|
|
1899
|
+
: c <= 68295)
|
|
1900
|
+
: (c <= 68326 || (c < 68416
|
|
1901
|
+
? (c >= 68352 && c <= 68405)
|
|
1902
|
+
: c <= 68437)))))))
|
|
1903
|
+
: (c <= 68466 || (c < 69424
|
|
1904
|
+
? (c < 68912
|
|
1905
|
+
? (c < 68736
|
|
1906
|
+
? (c < 68608
|
|
1907
|
+
? (c >= 68480 && c <= 68497)
|
|
1908
|
+
: c <= 68680)
|
|
1909
|
+
: (c <= 68786 || (c < 68864
|
|
1910
|
+
? (c >= 68800 && c <= 68850)
|
|
1911
|
+
: c <= 68903)))
|
|
1912
|
+
: (c <= 68921 || (c < 69296
|
|
1913
|
+
? (c < 69291
|
|
1914
|
+
? (c >= 69248 && c <= 69289)
|
|
1915
|
+
: c <= 69292)
|
|
1916
|
+
: (c <= 69297 || (c < 69415
|
|
1917
|
+
? (c >= 69376 && c <= 69404)
|
|
1918
|
+
: c <= 69415)))))
|
|
1919
|
+
: (c <= 69456 || (c < 69759
|
|
1920
|
+
? (c < 69600
|
|
1921
|
+
? (c < 69552
|
|
1922
|
+
? (c >= 69488 && c <= 69509)
|
|
1923
|
+
: c <= 69572)
|
|
1924
|
+
: (c <= 69622 || (c < 69734
|
|
1925
|
+
? (c >= 69632 && c <= 69702)
|
|
1926
|
+
: c <= 69749)))
|
|
1927
|
+
: (c <= 69818 || (c < 69872
|
|
1928
|
+
? (c < 69840
|
|
1929
|
+
? c == 69826
|
|
1930
|
+
: c <= 69864)
|
|
1931
|
+
: (c <= 69881 || (c < 69942
|
|
1932
|
+
? (c >= 69888 && c <= 69940)
|
|
1933
|
+
: c <= 69951)))))))))
|
|
1934
|
+
: (c <= 69959 || (c < 70459
|
|
1935
|
+
? (c < 70282
|
|
1936
|
+
? (c < 70108
|
|
1937
|
+
? (c < 70016
|
|
1938
|
+
? (c < 70006
|
|
1939
|
+
? (c >= 69968 && c <= 70003)
|
|
1940
|
+
: c <= 70006)
|
|
1941
|
+
: (c <= 70084 || (c < 70094
|
|
1942
|
+
? (c >= 70089 && c <= 70092)
|
|
1943
|
+
: c <= 70106)))
|
|
1944
|
+
: (c <= 70108 || (c < 70206
|
|
1945
|
+
? (c < 70163
|
|
1946
|
+
? (c >= 70144 && c <= 70161)
|
|
1947
|
+
: c <= 70199)
|
|
1948
|
+
: (c <= 70206 || (c < 70280
|
|
1949
|
+
? (c >= 70272 && c <= 70278)
|
|
1950
|
+
: c <= 70280)))))
|
|
1951
|
+
: (c <= 70285 || (c < 70405
|
|
1952
|
+
? (c < 70320
|
|
1953
|
+
? (c < 70303
|
|
1954
|
+
? (c >= 70287 && c <= 70301)
|
|
1955
|
+
: c <= 70312)
|
|
1956
|
+
: (c <= 70378 || (c < 70400
|
|
1957
|
+
? (c >= 70384 && c <= 70393)
|
|
1958
|
+
: c <= 70403)))
|
|
1959
|
+
: (c <= 70412 || (c < 70442
|
|
1960
|
+
? (c < 70419
|
|
1961
|
+
? (c >= 70415 && c <= 70416)
|
|
1962
|
+
: c <= 70440)
|
|
1963
|
+
: (c <= 70448 || (c < 70453
|
|
1964
|
+
? (c >= 70450 && c <= 70451)
|
|
1965
|
+
: c <= 70457)))))))
|
|
1966
|
+
: (c <= 70468 || (c < 70855
|
|
1967
|
+
? (c < 70502
|
|
1968
|
+
? (c < 70480
|
|
1969
|
+
? (c < 70475
|
|
1970
|
+
? (c >= 70471 && c <= 70472)
|
|
1971
|
+
: c <= 70477)
|
|
1972
|
+
: (c <= 70480 || (c < 70493
|
|
1973
|
+
? c == 70487
|
|
1974
|
+
: c <= 70499)))
|
|
1975
|
+
: (c <= 70508 || (c < 70736
|
|
1976
|
+
? (c < 70656
|
|
1977
|
+
? (c >= 70512 && c <= 70516)
|
|
1978
|
+
: c <= 70730)
|
|
1979
|
+
: (c <= 70745 || (c < 70784
|
|
1980
|
+
? (c >= 70750 && c <= 70753)
|
|
1981
|
+
: c <= 70853)))))
|
|
1982
|
+
: (c <= 70855 || (c < 71236
|
|
1983
|
+
? (c < 71096
|
|
1984
|
+
? (c < 71040
|
|
1985
|
+
? (c >= 70864 && c <= 70873)
|
|
1986
|
+
: c <= 71093)
|
|
1987
|
+
: (c <= 71104 || (c < 71168
|
|
1988
|
+
? (c >= 71128 && c <= 71133)
|
|
1989
|
+
: c <= 71232)))
|
|
1990
|
+
: (c <= 71236 || (c < 71360
|
|
1991
|
+
? (c < 71296
|
|
1992
|
+
? (c >= 71248 && c <= 71257)
|
|
1993
|
+
: c <= 71352)
|
|
1994
|
+
: (c <= 71369 || (c >= 71424 && c <= 71450)))))))))))))
|
|
1995
|
+
: (c <= 71467 || (c < 119973
|
|
1996
|
+
? (c < 77824
|
|
1997
|
+
? (c < 72760
|
|
1998
|
+
? (c < 72016
|
|
1999
|
+
? (c < 71945
|
|
2000
|
+
? (c < 71680
|
|
2001
|
+
? (c < 71488
|
|
2002
|
+
? (c >= 71472 && c <= 71481)
|
|
2003
|
+
: c <= 71494)
|
|
2004
|
+
: (c <= 71738 || (c < 71935
|
|
2005
|
+
? (c >= 71840 && c <= 71913)
|
|
2006
|
+
: c <= 71942)))
|
|
2007
|
+
: (c <= 71945 || (c < 71960
|
|
2008
|
+
? (c < 71957
|
|
2009
|
+
? (c >= 71948 && c <= 71955)
|
|
2010
|
+
: c <= 71958)
|
|
2011
|
+
: (c <= 71989 || (c < 71995
|
|
2012
|
+
? (c >= 71991 && c <= 71992)
|
|
2013
|
+
: c <= 72003)))))
|
|
2014
|
+
: (c <= 72025 || (c < 72263
|
|
2015
|
+
? (c < 72154
|
|
2016
|
+
? (c < 72106
|
|
2017
|
+
? (c >= 72096 && c <= 72103)
|
|
2018
|
+
: c <= 72151)
|
|
2019
|
+
: (c <= 72161 || (c < 72192
|
|
2020
|
+
? (c >= 72163 && c <= 72164)
|
|
2021
|
+
: c <= 72254)))
|
|
2022
|
+
: (c <= 72263 || (c < 72368
|
|
2023
|
+
? (c < 72349
|
|
2024
|
+
? (c >= 72272 && c <= 72345)
|
|
2025
|
+
: c <= 72349)
|
|
2026
|
+
: (c <= 72440 || (c < 72714
|
|
2027
|
+
? (c >= 72704 && c <= 72712)
|
|
2028
|
+
: c <= 72758)))))))
|
|
2029
|
+
: (c <= 72768 || (c < 73056
|
|
2030
|
+
? (c < 72968
|
|
2031
|
+
? (c < 72850
|
|
2032
|
+
? (c < 72818
|
|
2033
|
+
? (c >= 72784 && c <= 72793)
|
|
2034
|
+
: c <= 72847)
|
|
2035
|
+
: (c <= 72871 || (c < 72960
|
|
2036
|
+
? (c >= 72873 && c <= 72886)
|
|
2037
|
+
: c <= 72966)))
|
|
2038
|
+
: (c <= 72969 || (c < 73020
|
|
2039
|
+
? (c < 73018
|
|
2040
|
+
? (c >= 72971 && c <= 73014)
|
|
2041
|
+
: c <= 73018)
|
|
2042
|
+
: (c <= 73021 || (c < 73040
|
|
2043
|
+
? (c >= 73023 && c <= 73031)
|
|
2044
|
+
: c <= 73049)))))
|
|
2045
|
+
: (c <= 73061 || (c < 73440
|
|
2046
|
+
? (c < 73104
|
|
2047
|
+
? (c < 73066
|
|
2048
|
+
? (c >= 73063 && c <= 73064)
|
|
2049
|
+
: c <= 73102)
|
|
2050
|
+
: (c <= 73105 || (c < 73120
|
|
2051
|
+
? (c >= 73107 && c <= 73112)
|
|
2052
|
+
: c <= 73129)))
|
|
2053
|
+
: (c <= 73462 || (c < 74752
|
|
2054
|
+
? (c < 73728
|
|
2055
|
+
? c == 73648
|
|
2056
|
+
: c <= 74649)
|
|
2057
|
+
: (c <= 74862 || (c < 77712
|
|
2058
|
+
? (c >= 74880 && c <= 75075)
|
|
2059
|
+
: c <= 77808)))))))))
|
|
2060
|
+
: (c <= 78894 || (c < 110576
|
|
2061
|
+
? (c < 93027
|
|
2062
|
+
? (c < 92864
|
|
2063
|
+
? (c < 92736
|
|
2064
|
+
? (c < 92160
|
|
2065
|
+
? (c >= 82944 && c <= 83526)
|
|
2066
|
+
: c <= 92728)
|
|
2067
|
+
: (c <= 92766 || (c < 92784
|
|
2068
|
+
? (c >= 92768 && c <= 92777)
|
|
2069
|
+
: c <= 92862)))
|
|
2070
|
+
: (c <= 92873 || (c < 92928
|
|
2071
|
+
? (c < 92912
|
|
2072
|
+
? (c >= 92880 && c <= 92909)
|
|
2073
|
+
: c <= 92916)
|
|
2074
|
+
: (c <= 92982 || (c < 93008
|
|
2075
|
+
? (c >= 92992 && c <= 92995)
|
|
2076
|
+
: c <= 93017)))))
|
|
2077
|
+
: (c <= 93047 || (c < 94176
|
|
2078
|
+
? (c < 93952
|
|
2079
|
+
? (c < 93760
|
|
2080
|
+
? (c >= 93053 && c <= 93071)
|
|
2081
|
+
: c <= 93823)
|
|
2082
|
+
: (c <= 94026 || (c < 94095
|
|
2083
|
+
? (c >= 94031 && c <= 94087)
|
|
2084
|
+
: c <= 94111)))
|
|
2085
|
+
: (c <= 94177 || (c < 94208
|
|
2086
|
+
? (c < 94192
|
|
2087
|
+
? (c >= 94179 && c <= 94180)
|
|
2088
|
+
: c <= 94193)
|
|
2089
|
+
: (c <= 100343 || (c < 101632
|
|
2090
|
+
? (c >= 100352 && c <= 101589)
|
|
2091
|
+
: c <= 101640)))))))
|
|
2092
|
+
: (c <= 110579 || (c < 118528
|
|
2093
|
+
? (c < 110960
|
|
2094
|
+
? (c < 110592
|
|
2095
|
+
? (c < 110589
|
|
2096
|
+
? (c >= 110581 && c <= 110587)
|
|
2097
|
+
: c <= 110590)
|
|
2098
|
+
: (c <= 110882 || (c < 110948
|
|
2099
|
+
? (c >= 110928 && c <= 110930)
|
|
2100
|
+
: c <= 110951)))
|
|
2101
|
+
: (c <= 111355 || (c < 113792
|
|
2102
|
+
? (c < 113776
|
|
2103
|
+
? (c >= 113664 && c <= 113770)
|
|
2104
|
+
: c <= 113788)
|
|
2105
|
+
: (c <= 113800 || (c < 113821
|
|
2106
|
+
? (c >= 113808 && c <= 113817)
|
|
2107
|
+
: c <= 113822)))))
|
|
2108
|
+
: (c <= 118573 || (c < 119210
|
|
2109
|
+
? (c < 119149
|
|
2110
|
+
? (c < 119141
|
|
2111
|
+
? (c >= 118576 && c <= 118598)
|
|
2112
|
+
: c <= 119145)
|
|
2113
|
+
: (c <= 119154 || (c < 119173
|
|
2114
|
+
? (c >= 119163 && c <= 119170)
|
|
2115
|
+
: c <= 119179)))
|
|
2116
|
+
: (c <= 119213 || (c < 119894
|
|
2117
|
+
? (c < 119808
|
|
2118
|
+
? (c >= 119362 && c <= 119364)
|
|
2119
|
+
: c <= 119892)
|
|
2120
|
+
: (c <= 119964 || (c < 119970
|
|
2121
|
+
? (c >= 119966 && c <= 119967)
|
|
2122
|
+
: c <= 119970)))))))))))
|
|
2123
|
+
: (c <= 119974 || (c < 124912
|
|
2124
|
+
? (c < 120746
|
|
2125
|
+
? (c < 120134
|
|
2126
|
+
? (c < 120071
|
|
2127
|
+
? (c < 119995
|
|
2128
|
+
? (c < 119982
|
|
2129
|
+
? (c >= 119977 && c <= 119980)
|
|
2130
|
+
: c <= 119993)
|
|
2131
|
+
: (c <= 119995 || (c < 120005
|
|
2132
|
+
? (c >= 119997 && c <= 120003)
|
|
2133
|
+
: c <= 120069)))
|
|
2134
|
+
: (c <= 120074 || (c < 120094
|
|
2135
|
+
? (c < 120086
|
|
2136
|
+
? (c >= 120077 && c <= 120084)
|
|
2137
|
+
: c <= 120092)
|
|
2138
|
+
: (c <= 120121 || (c < 120128
|
|
2139
|
+
? (c >= 120123 && c <= 120126)
|
|
2140
|
+
: c <= 120132)))))
|
|
2141
|
+
: (c <= 120134 || (c < 120572
|
|
2142
|
+
? (c < 120488
|
|
2143
|
+
? (c < 120146
|
|
2144
|
+
? (c >= 120138 && c <= 120144)
|
|
2145
|
+
: c <= 120485)
|
|
2146
|
+
: (c <= 120512 || (c < 120540
|
|
2147
|
+
? (c >= 120514 && c <= 120538)
|
|
2148
|
+
: c <= 120570)))
|
|
2149
|
+
: (c <= 120596 || (c < 120656
|
|
2150
|
+
? (c < 120630
|
|
2151
|
+
? (c >= 120598 && c <= 120628)
|
|
2152
|
+
: c <= 120654)
|
|
2153
|
+
: (c <= 120686 || (c < 120714
|
|
2154
|
+
? (c >= 120688 && c <= 120712)
|
|
2155
|
+
: c <= 120744)))))))
|
|
2156
|
+
: (c <= 120770 || (c < 122907
|
|
2157
|
+
? (c < 121476
|
|
2158
|
+
? (c < 121344
|
|
2159
|
+
? (c < 120782
|
|
2160
|
+
? (c >= 120772 && c <= 120779)
|
|
2161
|
+
: c <= 120831)
|
|
2162
|
+
: (c <= 121398 || (c < 121461
|
|
2163
|
+
? (c >= 121403 && c <= 121452)
|
|
2164
|
+
: c <= 121461)))
|
|
2165
|
+
: (c <= 121476 || (c < 122624
|
|
2166
|
+
? (c < 121505
|
|
2167
|
+
? (c >= 121499 && c <= 121503)
|
|
2168
|
+
: c <= 121519)
|
|
2169
|
+
: (c <= 122654 || (c < 122888
|
|
2170
|
+
? (c >= 122880 && c <= 122886)
|
|
2171
|
+
: c <= 122904)))))
|
|
2172
|
+
: (c <= 122913 || (c < 123214
|
|
2173
|
+
? (c < 123136
|
|
2174
|
+
? (c < 122918
|
|
2175
|
+
? (c >= 122915 && c <= 122916)
|
|
2176
|
+
: c <= 122922)
|
|
2177
|
+
: (c <= 123180 || (c < 123200
|
|
2178
|
+
? (c >= 123184 && c <= 123197)
|
|
2179
|
+
: c <= 123209)))
|
|
2180
|
+
: (c <= 123214 || (c < 124896
|
|
2181
|
+
? (c < 123584
|
|
2182
|
+
? (c >= 123536 && c <= 123566)
|
|
2183
|
+
: c <= 123641)
|
|
2184
|
+
: (c <= 124902 || (c < 124909
|
|
2185
|
+
? (c >= 124904 && c <= 124907)
|
|
2186
|
+
: c <= 124910)))))))))
|
|
2187
|
+
: (c <= 124926 || (c < 126557
|
|
2188
|
+
? (c < 126521
|
|
2189
|
+
? (c < 126469
|
|
2190
|
+
? (c < 125184
|
|
2191
|
+
? (c < 125136
|
|
2192
|
+
? (c >= 124928 && c <= 125124)
|
|
2193
|
+
: c <= 125142)
|
|
2194
|
+
: (c <= 125259 || (c < 126464
|
|
2195
|
+
? (c >= 125264 && c <= 125273)
|
|
2196
|
+
: c <= 126467)))
|
|
2197
|
+
: (c <= 126495 || (c < 126503
|
|
2198
|
+
? (c < 126500
|
|
2199
|
+
? (c >= 126497 && c <= 126498)
|
|
2200
|
+
: c <= 126500)
|
|
2201
|
+
: (c <= 126503 || (c < 126516
|
|
2202
|
+
? (c >= 126505 && c <= 126514)
|
|
2203
|
+
: c <= 126519)))))
|
|
2204
|
+
: (c <= 126521 || (c < 126541
|
|
2205
|
+
? (c < 126535
|
|
2206
|
+
? (c < 126530
|
|
2207
|
+
? c == 126523
|
|
2208
|
+
: c <= 126530)
|
|
2209
|
+
: (c <= 126535 || (c < 126539
|
|
2210
|
+
? c == 126537
|
|
2211
|
+
: c <= 126539)))
|
|
2212
|
+
: (c <= 126543 || (c < 126551
|
|
2213
|
+
? (c < 126548
|
|
2214
|
+
? (c >= 126545 && c <= 126546)
|
|
2215
|
+
: c <= 126548)
|
|
2216
|
+
: (c <= 126551 || (c < 126555
|
|
2217
|
+
? c == 126553
|
|
2218
|
+
: c <= 126555)))))))
|
|
2219
|
+
: (c <= 126557 || (c < 126629
|
|
2220
|
+
? (c < 126580
|
|
2221
|
+
? (c < 126564
|
|
2222
|
+
? (c < 126561
|
|
2223
|
+
? c == 126559
|
|
2224
|
+
: c <= 126562)
|
|
2225
|
+
: (c <= 126564 || (c < 126572
|
|
2226
|
+
? (c >= 126567 && c <= 126570)
|
|
2227
|
+
: c <= 126578)))
|
|
2228
|
+
: (c <= 126583 || (c < 126592
|
|
2229
|
+
? (c < 126590
|
|
2230
|
+
? (c >= 126585 && c <= 126588)
|
|
2231
|
+
: c <= 126590)
|
|
2232
|
+
: (c <= 126601 || (c < 126625
|
|
2233
|
+
? (c >= 126603 && c <= 126619)
|
|
2234
|
+
: c <= 126627)))))
|
|
2235
|
+
: (c <= 126633 || (c < 178208
|
|
2236
|
+
? (c < 131072
|
|
2237
|
+
? (c < 130032
|
|
2238
|
+
? (c >= 126635 && c <= 126651)
|
|
2239
|
+
: c <= 130041)
|
|
2240
|
+
: (c <= 173791 || (c < 177984
|
|
2241
|
+
? (c >= 173824 && c <= 177976)
|
|
2242
|
+
: c <= 178205)))
|
|
2243
|
+
: (c <= 183969 || (c < 196608
|
|
2244
|
+
? (c < 194560
|
|
2245
|
+
? (c >= 183984 && c <= 191456)
|
|
2246
|
+
: c <= 195101)
|
|
2247
|
+
: (c <= 201546 || (c >= 917760 && c <= 917999)))))))))))))))));
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
2251
|
+
START_LEXER();
|
|
2252
|
+
eof = lexer->eof(lexer);
|
|
2253
|
+
switch (state) {
|
|
2254
|
+
case 0:
|
|
2255
|
+
if (eof) ADVANCE(11);
|
|
2256
|
+
if (lookahead == '(') ADVANCE(17);
|
|
2257
|
+
if (lookahead == ')') ADVANCE(18);
|
|
2258
|
+
if (lookahead == ',') ADVANCE(14);
|
|
2259
|
+
if (lookahead == '/') ADVANCE(13);
|
|
2260
|
+
if (lookahead == ':') ADVANCE(16);
|
|
2261
|
+
if (lookahead == '<') ADVANCE(19);
|
|
2262
|
+
if (lookahead == '>') ADVANCE(20);
|
|
2263
|
+
if (lookahead == ']') ADVANCE(22);
|
|
2264
|
+
if (lookahead == 'c') ADVANCE(2);
|
|
2265
|
+
if (lookahead == 'i') ADVANCE(3);
|
|
2266
|
+
if (lookahead == '}') ADVANCE(23);
|
|
2267
|
+
if (lookahead == '\t' ||
|
|
2268
|
+
lookahead == '\n' ||
|
|
2269
|
+
lookahead == '\r' ||
|
|
2270
|
+
lookahead == ' ') SKIP(0)
|
|
2271
|
+
END_STATE();
|
|
2272
|
+
case 1:
|
|
2273
|
+
if (lookahead == 'a') ADVANCE(8);
|
|
2274
|
+
END_STATE();
|
|
2275
|
+
case 2:
|
|
2276
|
+
if (lookahead == 'l') ADVANCE(1);
|
|
2277
|
+
END_STATE();
|
|
2278
|
+
case 3:
|
|
2279
|
+
if (lookahead == 'm') ADVANCE(5);
|
|
2280
|
+
END_STATE();
|
|
2281
|
+
case 4:
|
|
2282
|
+
if (lookahead == 'o') ADVANCE(6);
|
|
2283
|
+
END_STATE();
|
|
2284
|
+
case 5:
|
|
2285
|
+
if (lookahead == 'p') ADVANCE(4);
|
|
2286
|
+
END_STATE();
|
|
2287
|
+
case 6:
|
|
2288
|
+
if (lookahead == 'r') ADVANCE(9);
|
|
2289
|
+
END_STATE();
|
|
2290
|
+
case 7:
|
|
2291
|
+
if (lookahead == 's') ADVANCE(15);
|
|
2292
|
+
END_STATE();
|
|
2293
|
+
case 8:
|
|
2294
|
+
if (lookahead == 's') ADVANCE(7);
|
|
2295
|
+
END_STATE();
|
|
2296
|
+
case 9:
|
|
2297
|
+
if (lookahead == 't') ADVANCE(12);
|
|
2298
|
+
END_STATE();
|
|
2299
|
+
case 10:
|
|
2300
|
+
if (lookahead == '\t' ||
|
|
2301
|
+
lookahead == '\n' ||
|
|
2302
|
+
lookahead == '\r' ||
|
|
2303
|
+
lookahead == ' ') SKIP(10)
|
|
2304
|
+
if (sym_identifier_character_set_1(lookahead)) ADVANCE(21);
|
|
2305
|
+
END_STATE();
|
|
2306
|
+
case 11:
|
|
2307
|
+
ACCEPT_TOKEN(ts_builtin_sym_end);
|
|
2308
|
+
END_STATE();
|
|
2309
|
+
case 12:
|
|
2310
|
+
ACCEPT_TOKEN(anon_sym_import);
|
|
2311
|
+
END_STATE();
|
|
2312
|
+
case 13:
|
|
2313
|
+
ACCEPT_TOKEN(anon_sym_SLASH);
|
|
2314
|
+
END_STATE();
|
|
2315
|
+
case 14:
|
|
2316
|
+
ACCEPT_TOKEN(anon_sym_COMMA);
|
|
2317
|
+
END_STATE();
|
|
2318
|
+
case 15:
|
|
2319
|
+
ACCEPT_TOKEN(anon_sym_class);
|
|
2320
|
+
END_STATE();
|
|
2321
|
+
case 16:
|
|
2322
|
+
ACCEPT_TOKEN(anon_sym_COLON);
|
|
2323
|
+
END_STATE();
|
|
2324
|
+
case 17:
|
|
2325
|
+
ACCEPT_TOKEN(anon_sym_LPAREN);
|
|
2326
|
+
END_STATE();
|
|
2327
|
+
case 18:
|
|
2328
|
+
ACCEPT_TOKEN(anon_sym_RPAREN);
|
|
2329
|
+
END_STATE();
|
|
2330
|
+
case 19:
|
|
2331
|
+
ACCEPT_TOKEN(anon_sym_LT);
|
|
2332
|
+
END_STATE();
|
|
2333
|
+
case 20:
|
|
2334
|
+
ACCEPT_TOKEN(anon_sym_GT);
|
|
2335
|
+
END_STATE();
|
|
2336
|
+
case 21:
|
|
2337
|
+
ACCEPT_TOKEN(sym_identifier);
|
|
2338
|
+
if (sym_identifier_character_set_2(lookahead)) ADVANCE(21);
|
|
2339
|
+
END_STATE();
|
|
2340
|
+
case 22:
|
|
2341
|
+
ACCEPT_TOKEN(anon_sym_RBRACK);
|
|
2342
|
+
END_STATE();
|
|
2343
|
+
case 23:
|
|
2344
|
+
ACCEPT_TOKEN(anon_sym_RBRACE);
|
|
2345
|
+
END_STATE();
|
|
2346
|
+
default:
|
|
2347
|
+
return false;
|
|
2348
|
+
}
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
static const TSLexMode ts_lex_modes[STATE_COUNT] = {
|
|
2352
|
+
[0] = {.lex_state = 0, .external_lex_state = 1},
|
|
2353
|
+
[1] = {.lex_state = 0},
|
|
2354
|
+
[2] = {.lex_state = 0},
|
|
2355
|
+
[3] = {.lex_state = 0},
|
|
2356
|
+
[4] = {.lex_state = 0},
|
|
2357
|
+
[5] = {.lex_state = 0},
|
|
2358
|
+
[6] = {.lex_state = 0},
|
|
2359
|
+
[7] = {.lex_state = 0},
|
|
2360
|
+
[8] = {.lex_state = 0},
|
|
2361
|
+
[9] = {.lex_state = 0},
|
|
2362
|
+
[10] = {.lex_state = 0},
|
|
2363
|
+
[11] = {.lex_state = 0},
|
|
2364
|
+
[12] = {.lex_state = 0},
|
|
2365
|
+
[13] = {.lex_state = 0},
|
|
2366
|
+
[14] = {.lex_state = 10, .external_lex_state = 2},
|
|
2367
|
+
[15] = {.lex_state = 10, .external_lex_state = 2},
|
|
2368
|
+
[16] = {.lex_state = 10, .external_lex_state = 2},
|
|
2369
|
+
[17] = {.lex_state = 10, .external_lex_state = 2},
|
|
2370
|
+
[18] = {.lex_state = 10, .external_lex_state = 2},
|
|
2371
|
+
[19] = {.lex_state = 10, .external_lex_state = 2},
|
|
2372
|
+
[20] = {.lex_state = 10, .external_lex_state = 2},
|
|
2373
|
+
[21] = {.lex_state = 10, .external_lex_state = 2},
|
|
2374
|
+
[22] = {.lex_state = 10, .external_lex_state = 2},
|
|
2375
|
+
[23] = {.lex_state = 0},
|
|
2376
|
+
[24] = {.lex_state = 0, .external_lex_state = 3},
|
|
2377
|
+
[25] = {.lex_state = 0},
|
|
2378
|
+
[26] = {.lex_state = 0},
|
|
2379
|
+
[27] = {.lex_state = 0},
|
|
2380
|
+
[28] = {.lex_state = 0, .external_lex_state = 3},
|
|
2381
|
+
[29] = {.lex_state = 0},
|
|
2382
|
+
[30] = {.lex_state = 0},
|
|
2383
|
+
[31] = {.lex_state = 0},
|
|
2384
|
+
[32] = {.lex_state = 0, .external_lex_state = 3},
|
|
2385
|
+
[33] = {.lex_state = 0},
|
|
2386
|
+
[34] = {.lex_state = 0},
|
|
2387
|
+
[35] = {.lex_state = 0},
|
|
2388
|
+
[36] = {.lex_state = 0},
|
|
2389
|
+
[37] = {.lex_state = 0},
|
|
2390
|
+
[38] = {.lex_state = 0, .external_lex_state = 3},
|
|
2391
|
+
[39] = {.lex_state = 0},
|
|
2392
|
+
[40] = {.lex_state = 0},
|
|
2393
|
+
[41] = {.lex_state = 10, .external_lex_state = 2},
|
|
2394
|
+
[42] = {.lex_state = 0},
|
|
2395
|
+
[43] = {.lex_state = 0, .external_lex_state = 4},
|
|
2396
|
+
[44] = {.lex_state = 10},
|
|
2397
|
+
[45] = {.lex_state = 0},
|
|
2398
|
+
[46] = {.lex_state = 0},
|
|
2399
|
+
[47] = {.lex_state = 10},
|
|
2400
|
+
[48] = {.lex_state = 0},
|
|
2401
|
+
[49] = {.lex_state = 0},
|
|
2402
|
+
[50] = {.lex_state = 0, .external_lex_state = 4},
|
|
2403
|
+
[51] = {.lex_state = 0},
|
|
2404
|
+
[52] = {.lex_state = 10},
|
|
2405
|
+
[53] = {.lex_state = 0, .external_lex_state = 4},
|
|
2406
|
+
[54] = {.lex_state = 10},
|
|
2407
|
+
[55] = {.lex_state = 0, .external_lex_state = 4},
|
|
2408
|
+
[56] = {.lex_state = 10},
|
|
2409
|
+
[57] = {.lex_state = 10},
|
|
2410
|
+
[58] = {.lex_state = 0},
|
|
2411
|
+
[59] = {.lex_state = 10},
|
|
2412
|
+
[60] = {.lex_state = 10},
|
|
2413
|
+
[61] = {.lex_state = 10},
|
|
2414
|
+
};
|
|
2415
|
+
|
|
2416
|
+
enum {
|
|
2417
|
+
ts_external_token__newline = 0,
|
|
2418
|
+
ts_external_token__indent = 1,
|
|
2419
|
+
ts_external_token__dedent = 2,
|
|
2420
|
+
ts_external_token__string_start = 3,
|
|
2421
|
+
ts_external_token__string_content = 4,
|
|
2422
|
+
ts_external_token__string_end = 5,
|
|
2423
|
+
ts_external_token_comment = 6,
|
|
2424
|
+
ts_external_token_RBRACK = 7,
|
|
2425
|
+
ts_external_token_RPAREN = 8,
|
|
2426
|
+
ts_external_token_RBRACE = 9,
|
|
2427
|
+
};
|
|
2428
|
+
|
|
2429
|
+
static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
|
|
2430
|
+
[ts_external_token__newline] = sym__newline,
|
|
2431
|
+
[ts_external_token__indent] = sym__indent,
|
|
2432
|
+
[ts_external_token__dedent] = sym__dedent,
|
|
2433
|
+
[ts_external_token__string_start] = sym__string_start,
|
|
2434
|
+
[ts_external_token__string_content] = sym__string_content,
|
|
2435
|
+
[ts_external_token__string_end] = sym__string_end,
|
|
2436
|
+
[ts_external_token_comment] = sym_comment,
|
|
2437
|
+
[ts_external_token_RBRACK] = anon_sym_RBRACK,
|
|
2438
|
+
[ts_external_token_RPAREN] = anon_sym_RPAREN,
|
|
2439
|
+
[ts_external_token_RBRACE] = anon_sym_RBRACE,
|
|
2440
|
+
};
|
|
2441
|
+
|
|
2442
|
+
static const bool ts_external_scanner_states[5][EXTERNAL_TOKEN_COUNT] = {
|
|
2443
|
+
[1] = {
|
|
2444
|
+
[ts_external_token__newline] = true,
|
|
2445
|
+
[ts_external_token__indent] = true,
|
|
2446
|
+
[ts_external_token__dedent] = true,
|
|
2447
|
+
[ts_external_token__string_start] = true,
|
|
2448
|
+
[ts_external_token__string_content] = true,
|
|
2449
|
+
[ts_external_token__string_end] = true,
|
|
2450
|
+
[ts_external_token_comment] = true,
|
|
2451
|
+
[ts_external_token_RBRACK] = true,
|
|
2452
|
+
[ts_external_token_RPAREN] = true,
|
|
2453
|
+
[ts_external_token_RBRACE] = true,
|
|
2454
|
+
},
|
|
2455
|
+
[2] = {
|
|
2456
|
+
[ts_external_token__dedent] = true,
|
|
2457
|
+
},
|
|
2458
|
+
[3] = {
|
|
2459
|
+
[ts_external_token_RPAREN] = true,
|
|
2460
|
+
},
|
|
2461
|
+
[4] = {
|
|
2462
|
+
[ts_external_token__indent] = true,
|
|
2463
|
+
},
|
|
2464
|
+
};
|
|
2465
|
+
|
|
2466
|
+
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
|
|
2467
|
+
[0] = {
|
|
2468
|
+
[ts_builtin_sym_end] = ACTIONS(1),
|
|
2469
|
+
[anon_sym_import] = ACTIONS(1),
|
|
2470
|
+
[anon_sym_SLASH] = ACTIONS(1),
|
|
2471
|
+
[anon_sym_COMMA] = ACTIONS(1),
|
|
2472
|
+
[anon_sym_class] = ACTIONS(1),
|
|
2473
|
+
[anon_sym_COLON] = ACTIONS(1),
|
|
2474
|
+
[anon_sym_LPAREN] = ACTIONS(1),
|
|
2475
|
+
[anon_sym_RPAREN] = ACTIONS(1),
|
|
2476
|
+
[anon_sym_LT] = ACTIONS(1),
|
|
2477
|
+
[anon_sym_GT] = ACTIONS(1),
|
|
2478
|
+
[anon_sym_RBRACK] = ACTIONS(1),
|
|
2479
|
+
[anon_sym_RBRACE] = ACTIONS(1),
|
|
2480
|
+
[sym__newline] = ACTIONS(1),
|
|
2481
|
+
[sym__indent] = ACTIONS(1),
|
|
2482
|
+
[sym__dedent] = ACTIONS(1),
|
|
2483
|
+
[sym__string_start] = ACTIONS(1),
|
|
2484
|
+
[sym__string_content] = ACTIONS(1),
|
|
2485
|
+
[sym__string_end] = ACTIONS(1),
|
|
2486
|
+
[sym_comment] = ACTIONS(1),
|
|
2487
|
+
},
|
|
2488
|
+
[1] = {
|
|
2489
|
+
[sym_module] = STATE(58),
|
|
2490
|
+
[sym__definitions] = STATE(2),
|
|
2491
|
+
[sym_import_statement] = STATE(2),
|
|
2492
|
+
[sym_class_definition] = STATE(2),
|
|
2493
|
+
[aux_sym_module_repeat1] = STATE(2),
|
|
2494
|
+
[ts_builtin_sym_end] = ACTIONS(3),
|
|
2495
|
+
[anon_sym_import] = ACTIONS(5),
|
|
2496
|
+
[anon_sym_class] = ACTIONS(7),
|
|
2497
|
+
},
|
|
2498
|
+
};
|
|
2499
|
+
|
|
2500
|
+
static const uint16_t ts_small_parse_table[] = {
|
|
2501
|
+
[0] = 4,
|
|
2502
|
+
ACTIONS(5), 1,
|
|
2503
|
+
anon_sym_import,
|
|
2504
|
+
ACTIONS(7), 1,
|
|
2505
|
+
anon_sym_class,
|
|
2506
|
+
ACTIONS(9), 1,
|
|
2507
|
+
ts_builtin_sym_end,
|
|
2508
|
+
STATE(4), 4,
|
|
2509
|
+
sym__definitions,
|
|
2510
|
+
sym_import_statement,
|
|
2511
|
+
sym_class_definition,
|
|
2512
|
+
aux_sym_module_repeat1,
|
|
2513
|
+
[16] = 5,
|
|
2514
|
+
ACTIONS(13), 1,
|
|
2515
|
+
anon_sym_SLASH,
|
|
2516
|
+
ACTIONS(15), 1,
|
|
2517
|
+
anon_sym_COMMA,
|
|
2518
|
+
STATE(5), 1,
|
|
2519
|
+
aux_sym_import_statement_repeat1,
|
|
2520
|
+
STATE(13), 1,
|
|
2521
|
+
aux_sym_import_statement_repeat2,
|
|
2522
|
+
ACTIONS(11), 3,
|
|
2523
|
+
ts_builtin_sym_end,
|
|
2524
|
+
anon_sym_import,
|
|
2525
|
+
anon_sym_class,
|
|
2526
|
+
[34] = 4,
|
|
2527
|
+
ACTIONS(17), 1,
|
|
2528
|
+
ts_builtin_sym_end,
|
|
2529
|
+
ACTIONS(19), 1,
|
|
2530
|
+
anon_sym_import,
|
|
2531
|
+
ACTIONS(22), 1,
|
|
2532
|
+
anon_sym_class,
|
|
2533
|
+
STATE(4), 4,
|
|
2534
|
+
sym__definitions,
|
|
2535
|
+
sym_import_statement,
|
|
2536
|
+
sym_class_definition,
|
|
2537
|
+
aux_sym_module_repeat1,
|
|
2538
|
+
[50] = 5,
|
|
2539
|
+
ACTIONS(13), 1,
|
|
2540
|
+
anon_sym_SLASH,
|
|
2541
|
+
ACTIONS(15), 1,
|
|
2542
|
+
anon_sym_COMMA,
|
|
2543
|
+
STATE(6), 1,
|
|
2544
|
+
aux_sym_import_statement_repeat1,
|
|
2545
|
+
STATE(11), 1,
|
|
2546
|
+
aux_sym_import_statement_repeat2,
|
|
2547
|
+
ACTIONS(25), 3,
|
|
2548
|
+
ts_builtin_sym_end,
|
|
2549
|
+
anon_sym_import,
|
|
2550
|
+
anon_sym_class,
|
|
2551
|
+
[68] = 3,
|
|
2552
|
+
ACTIONS(29), 1,
|
|
2553
|
+
anon_sym_SLASH,
|
|
2554
|
+
STATE(6), 1,
|
|
2555
|
+
aux_sym_import_statement_repeat1,
|
|
2556
|
+
ACTIONS(27), 4,
|
|
2557
|
+
ts_builtin_sym_end,
|
|
2558
|
+
anon_sym_import,
|
|
2559
|
+
anon_sym_COMMA,
|
|
2560
|
+
anon_sym_class,
|
|
2561
|
+
[81] = 3,
|
|
2562
|
+
ACTIONS(13), 1,
|
|
2563
|
+
anon_sym_SLASH,
|
|
2564
|
+
STATE(8), 1,
|
|
2565
|
+
aux_sym_import_statement_repeat1,
|
|
2566
|
+
ACTIONS(32), 4,
|
|
2567
|
+
ts_builtin_sym_end,
|
|
2568
|
+
anon_sym_import,
|
|
2569
|
+
anon_sym_COMMA,
|
|
2570
|
+
anon_sym_class,
|
|
2571
|
+
[94] = 3,
|
|
2572
|
+
ACTIONS(13), 1,
|
|
2573
|
+
anon_sym_SLASH,
|
|
2574
|
+
STATE(6), 1,
|
|
2575
|
+
aux_sym_import_statement_repeat1,
|
|
2576
|
+
ACTIONS(34), 4,
|
|
2577
|
+
ts_builtin_sym_end,
|
|
2578
|
+
anon_sym_import,
|
|
2579
|
+
anon_sym_COMMA,
|
|
2580
|
+
anon_sym_class,
|
|
2581
|
+
[107] = 1,
|
|
2582
|
+
ACTIONS(27), 5,
|
|
2583
|
+
ts_builtin_sym_end,
|
|
2584
|
+
anon_sym_import,
|
|
2585
|
+
anon_sym_SLASH,
|
|
2586
|
+
anon_sym_COMMA,
|
|
2587
|
+
anon_sym_class,
|
|
2588
|
+
[115] = 3,
|
|
2589
|
+
ACTIONS(38), 1,
|
|
2590
|
+
anon_sym_COMMA,
|
|
2591
|
+
STATE(10), 1,
|
|
2592
|
+
aux_sym_import_statement_repeat2,
|
|
2593
|
+
ACTIONS(36), 3,
|
|
2594
|
+
ts_builtin_sym_end,
|
|
2595
|
+
anon_sym_import,
|
|
2596
|
+
anon_sym_class,
|
|
2597
|
+
[127] = 3,
|
|
2598
|
+
ACTIONS(15), 1,
|
|
2599
|
+
anon_sym_COMMA,
|
|
2600
|
+
STATE(10), 1,
|
|
2601
|
+
aux_sym_import_statement_repeat2,
|
|
2602
|
+
ACTIONS(41), 3,
|
|
2603
|
+
ts_builtin_sym_end,
|
|
2604
|
+
anon_sym_import,
|
|
2605
|
+
anon_sym_class,
|
|
2606
|
+
[139] = 5,
|
|
2607
|
+
ACTIONS(43), 1,
|
|
2608
|
+
anon_sym_COLON,
|
|
2609
|
+
ACTIONS(45), 1,
|
|
2610
|
+
anon_sym_LPAREN,
|
|
2611
|
+
ACTIONS(47), 1,
|
|
2612
|
+
anon_sym_LT,
|
|
2613
|
+
STATE(29), 1,
|
|
2614
|
+
sym_generic_list,
|
|
2615
|
+
STATE(51), 1,
|
|
2616
|
+
sym_trait_list,
|
|
2617
|
+
[155] = 3,
|
|
2618
|
+
ACTIONS(15), 1,
|
|
2619
|
+
anon_sym_COMMA,
|
|
2620
|
+
STATE(10), 1,
|
|
2621
|
+
aux_sym_import_statement_repeat2,
|
|
2622
|
+
ACTIONS(49), 3,
|
|
2623
|
+
ts_builtin_sym_end,
|
|
2624
|
+
anon_sym_import,
|
|
2625
|
+
anon_sym_class,
|
|
2626
|
+
[167] = 3,
|
|
2627
|
+
ACTIONS(51), 1,
|
|
2628
|
+
sym_identifier,
|
|
2629
|
+
ACTIONS(53), 1,
|
|
2630
|
+
sym__dedent,
|
|
2631
|
+
STATE(17), 2,
|
|
2632
|
+
sym_type_pair,
|
|
2633
|
+
aux_sym_class_definition_repeat1,
|
|
2634
|
+
[178] = 3,
|
|
2635
|
+
ACTIONS(51), 1,
|
|
2636
|
+
sym_identifier,
|
|
2637
|
+
ACTIONS(55), 1,
|
|
2638
|
+
sym__dedent,
|
|
2639
|
+
STATE(19), 2,
|
|
2640
|
+
sym_type_pair,
|
|
2641
|
+
aux_sym_class_definition_repeat1,
|
|
2642
|
+
[189] = 3,
|
|
2643
|
+
ACTIONS(51), 1,
|
|
2644
|
+
sym_identifier,
|
|
2645
|
+
ACTIONS(57), 1,
|
|
2646
|
+
sym__dedent,
|
|
2647
|
+
STATE(19), 2,
|
|
2648
|
+
sym_type_pair,
|
|
2649
|
+
aux_sym_class_definition_repeat1,
|
|
2650
|
+
[200] = 3,
|
|
2651
|
+
ACTIONS(51), 1,
|
|
2652
|
+
sym_identifier,
|
|
2653
|
+
ACTIONS(59), 1,
|
|
2654
|
+
sym__dedent,
|
|
2655
|
+
STATE(19), 2,
|
|
2656
|
+
sym_type_pair,
|
|
2657
|
+
aux_sym_class_definition_repeat1,
|
|
2658
|
+
[211] = 3,
|
|
2659
|
+
ACTIONS(51), 1,
|
|
2660
|
+
sym_identifier,
|
|
2661
|
+
ACTIONS(61), 1,
|
|
2662
|
+
sym__dedent,
|
|
2663
|
+
STATE(21), 2,
|
|
2664
|
+
sym_type_pair,
|
|
2665
|
+
aux_sym_class_definition_repeat1,
|
|
2666
|
+
[222] = 3,
|
|
2667
|
+
ACTIONS(63), 1,
|
|
2668
|
+
sym_identifier,
|
|
2669
|
+
ACTIONS(66), 1,
|
|
2670
|
+
sym__dedent,
|
|
2671
|
+
STATE(19), 2,
|
|
2672
|
+
sym_type_pair,
|
|
2673
|
+
aux_sym_class_definition_repeat1,
|
|
2674
|
+
[233] = 3,
|
|
2675
|
+
ACTIONS(51), 1,
|
|
2676
|
+
sym_identifier,
|
|
2677
|
+
ACTIONS(68), 1,
|
|
2678
|
+
sym__dedent,
|
|
2679
|
+
STATE(16), 2,
|
|
2680
|
+
sym_type_pair,
|
|
2681
|
+
aux_sym_class_definition_repeat1,
|
|
2682
|
+
[244] = 3,
|
|
2683
|
+
ACTIONS(51), 1,
|
|
2684
|
+
sym_identifier,
|
|
2685
|
+
ACTIONS(70), 1,
|
|
2686
|
+
sym__dedent,
|
|
2687
|
+
STATE(19), 2,
|
|
2688
|
+
sym_type_pair,
|
|
2689
|
+
aux_sym_class_definition_repeat1,
|
|
2690
|
+
[255] = 3,
|
|
2691
|
+
ACTIONS(51), 1,
|
|
2692
|
+
sym_identifier,
|
|
2693
|
+
ACTIONS(72), 1,
|
|
2694
|
+
sym__dedent,
|
|
2695
|
+
STATE(15), 2,
|
|
2696
|
+
sym_type_pair,
|
|
2697
|
+
aux_sym_class_definition_repeat1,
|
|
2698
|
+
[266] = 1,
|
|
2699
|
+
ACTIONS(74), 3,
|
|
2700
|
+
ts_builtin_sym_end,
|
|
2701
|
+
anon_sym_import,
|
|
2702
|
+
anon_sym_class,
|
|
2703
|
+
[272] = 3,
|
|
2704
|
+
ACTIONS(76), 1,
|
|
2705
|
+
anon_sym_COMMA,
|
|
2706
|
+
ACTIONS(78), 1,
|
|
2707
|
+
anon_sym_RPAREN,
|
|
2708
|
+
STATE(32), 1,
|
|
2709
|
+
aux_sym_trait_list_repeat1,
|
|
2710
|
+
[282] = 3,
|
|
2711
|
+
ACTIONS(80), 1,
|
|
2712
|
+
anon_sym_COMMA,
|
|
2713
|
+
ACTIONS(82), 1,
|
|
2714
|
+
anon_sym_GT,
|
|
2715
|
+
STATE(33), 1,
|
|
2716
|
+
aux_sym_trait_list_repeat1,
|
|
2717
|
+
[292] = 3,
|
|
2718
|
+
ACTIONS(84), 1,
|
|
2719
|
+
anon_sym_COMMA,
|
|
2720
|
+
ACTIONS(87), 1,
|
|
2721
|
+
anon_sym_GT,
|
|
2722
|
+
STATE(26), 1,
|
|
2723
|
+
aux_sym_trait_list_repeat1,
|
|
2724
|
+
[302] = 1,
|
|
2725
|
+
ACTIONS(89), 3,
|
|
2726
|
+
ts_builtin_sym_end,
|
|
2727
|
+
anon_sym_import,
|
|
2728
|
+
anon_sym_class,
|
|
2729
|
+
[308] = 3,
|
|
2730
|
+
ACTIONS(87), 1,
|
|
2731
|
+
anon_sym_RPAREN,
|
|
2732
|
+
ACTIONS(91), 1,
|
|
2733
|
+
anon_sym_COMMA,
|
|
2734
|
+
STATE(28), 1,
|
|
2735
|
+
aux_sym_trait_list_repeat1,
|
|
2736
|
+
[318] = 3,
|
|
2737
|
+
ACTIONS(45), 1,
|
|
2738
|
+
anon_sym_LPAREN,
|
|
2739
|
+
ACTIONS(94), 1,
|
|
2740
|
+
anon_sym_COLON,
|
|
2741
|
+
STATE(48), 1,
|
|
2742
|
+
sym_trait_list,
|
|
2743
|
+
[328] = 1,
|
|
2744
|
+
ACTIONS(96), 3,
|
|
2745
|
+
ts_builtin_sym_end,
|
|
2746
|
+
anon_sym_import,
|
|
2747
|
+
anon_sym_class,
|
|
2748
|
+
[334] = 1,
|
|
2749
|
+
ACTIONS(98), 3,
|
|
2750
|
+
ts_builtin_sym_end,
|
|
2751
|
+
anon_sym_import,
|
|
2752
|
+
anon_sym_class,
|
|
2753
|
+
[340] = 3,
|
|
2754
|
+
ACTIONS(76), 1,
|
|
2755
|
+
anon_sym_COMMA,
|
|
2756
|
+
ACTIONS(100), 1,
|
|
2757
|
+
anon_sym_RPAREN,
|
|
2758
|
+
STATE(28), 1,
|
|
2759
|
+
aux_sym_trait_list_repeat1,
|
|
2760
|
+
[350] = 3,
|
|
2761
|
+
ACTIONS(80), 1,
|
|
2762
|
+
anon_sym_COMMA,
|
|
2763
|
+
ACTIONS(102), 1,
|
|
2764
|
+
anon_sym_GT,
|
|
2765
|
+
STATE(26), 1,
|
|
2766
|
+
aux_sym_trait_list_repeat1,
|
|
2767
|
+
[360] = 1,
|
|
2768
|
+
ACTIONS(104), 3,
|
|
2769
|
+
ts_builtin_sym_end,
|
|
2770
|
+
anon_sym_import,
|
|
2771
|
+
anon_sym_class,
|
|
2772
|
+
[366] = 1,
|
|
2773
|
+
ACTIONS(106), 3,
|
|
2774
|
+
ts_builtin_sym_end,
|
|
2775
|
+
anon_sym_import,
|
|
2776
|
+
anon_sym_class,
|
|
2777
|
+
[372] = 1,
|
|
2778
|
+
ACTIONS(108), 3,
|
|
2779
|
+
ts_builtin_sym_end,
|
|
2780
|
+
anon_sym_import,
|
|
2781
|
+
anon_sym_class,
|
|
2782
|
+
[378] = 1,
|
|
2783
|
+
ACTIONS(110), 3,
|
|
2784
|
+
ts_builtin_sym_end,
|
|
2785
|
+
anon_sym_import,
|
|
2786
|
+
anon_sym_class,
|
|
2787
|
+
[384] = 1,
|
|
2788
|
+
ACTIONS(87), 2,
|
|
2789
|
+
anon_sym_COMMA,
|
|
2790
|
+
anon_sym_RPAREN,
|
|
2791
|
+
[389] = 1,
|
|
2792
|
+
ACTIONS(112), 2,
|
|
2793
|
+
anon_sym_COLON,
|
|
2794
|
+
anon_sym_LPAREN,
|
|
2795
|
+
[394] = 1,
|
|
2796
|
+
ACTIONS(87), 2,
|
|
2797
|
+
anon_sym_COMMA,
|
|
2798
|
+
anon_sym_GT,
|
|
2799
|
+
[399] = 1,
|
|
2800
|
+
ACTIONS(114), 2,
|
|
2801
|
+
sym__dedent,
|
|
2802
|
+
sym_identifier,
|
|
2803
|
+
[404] = 1,
|
|
2804
|
+
ACTIONS(116), 2,
|
|
2805
|
+
anon_sym_COLON,
|
|
2806
|
+
anon_sym_LPAREN,
|
|
2807
|
+
[409] = 1,
|
|
2808
|
+
ACTIONS(118), 1,
|
|
2809
|
+
sym__indent,
|
|
2810
|
+
[413] = 1,
|
|
2811
|
+
ACTIONS(120), 1,
|
|
2812
|
+
sym_identifier,
|
|
2813
|
+
[417] = 1,
|
|
2814
|
+
ACTIONS(122), 1,
|
|
2815
|
+
anon_sym_COLON,
|
|
2816
|
+
[421] = 1,
|
|
2817
|
+
ACTIONS(124), 1,
|
|
2818
|
+
anon_sym_COLON,
|
|
2819
|
+
[425] = 1,
|
|
2820
|
+
ACTIONS(126), 1,
|
|
2821
|
+
sym_identifier,
|
|
2822
|
+
[429] = 1,
|
|
2823
|
+
ACTIONS(128), 1,
|
|
2824
|
+
anon_sym_COLON,
|
|
2825
|
+
[433] = 1,
|
|
2826
|
+
ACTIONS(130), 1,
|
|
2827
|
+
anon_sym_COLON,
|
|
2828
|
+
[437] = 1,
|
|
2829
|
+
ACTIONS(132), 1,
|
|
2830
|
+
sym__indent,
|
|
2831
|
+
[441] = 1,
|
|
2832
|
+
ACTIONS(134), 1,
|
|
2833
|
+
anon_sym_COLON,
|
|
2834
|
+
[445] = 1,
|
|
2835
|
+
ACTIONS(136), 1,
|
|
2836
|
+
sym_identifier,
|
|
2837
|
+
[449] = 1,
|
|
2838
|
+
ACTIONS(138), 1,
|
|
2839
|
+
sym__indent,
|
|
2840
|
+
[453] = 1,
|
|
2841
|
+
ACTIONS(140), 1,
|
|
2842
|
+
sym_identifier,
|
|
2843
|
+
[457] = 1,
|
|
2844
|
+
ACTIONS(142), 1,
|
|
2845
|
+
sym__indent,
|
|
2846
|
+
[461] = 1,
|
|
2847
|
+
ACTIONS(144), 1,
|
|
2848
|
+
sym_identifier,
|
|
2849
|
+
[465] = 1,
|
|
2850
|
+
ACTIONS(146), 1,
|
|
2851
|
+
sym_identifier,
|
|
2852
|
+
[469] = 1,
|
|
2853
|
+
ACTIONS(148), 1,
|
|
2854
|
+
ts_builtin_sym_end,
|
|
2855
|
+
[473] = 1,
|
|
2856
|
+
ACTIONS(150), 1,
|
|
2857
|
+
sym_identifier,
|
|
2858
|
+
[477] = 1,
|
|
2859
|
+
ACTIONS(152), 1,
|
|
2860
|
+
sym_identifier,
|
|
2861
|
+
[481] = 1,
|
|
2862
|
+
ACTIONS(154), 1,
|
|
2863
|
+
sym_identifier,
|
|
2864
|
+
};
|
|
2865
|
+
|
|
2866
|
+
static const uint32_t ts_small_parse_table_map[] = {
|
|
2867
|
+
[SMALL_STATE(2)] = 0,
|
|
2868
|
+
[SMALL_STATE(3)] = 16,
|
|
2869
|
+
[SMALL_STATE(4)] = 34,
|
|
2870
|
+
[SMALL_STATE(5)] = 50,
|
|
2871
|
+
[SMALL_STATE(6)] = 68,
|
|
2872
|
+
[SMALL_STATE(7)] = 81,
|
|
2873
|
+
[SMALL_STATE(8)] = 94,
|
|
2874
|
+
[SMALL_STATE(9)] = 107,
|
|
2875
|
+
[SMALL_STATE(10)] = 115,
|
|
2876
|
+
[SMALL_STATE(11)] = 127,
|
|
2877
|
+
[SMALL_STATE(12)] = 139,
|
|
2878
|
+
[SMALL_STATE(13)] = 155,
|
|
2879
|
+
[SMALL_STATE(14)] = 167,
|
|
2880
|
+
[SMALL_STATE(15)] = 178,
|
|
2881
|
+
[SMALL_STATE(16)] = 189,
|
|
2882
|
+
[SMALL_STATE(17)] = 200,
|
|
2883
|
+
[SMALL_STATE(18)] = 211,
|
|
2884
|
+
[SMALL_STATE(19)] = 222,
|
|
2885
|
+
[SMALL_STATE(20)] = 233,
|
|
2886
|
+
[SMALL_STATE(21)] = 244,
|
|
2887
|
+
[SMALL_STATE(22)] = 255,
|
|
2888
|
+
[SMALL_STATE(23)] = 266,
|
|
2889
|
+
[SMALL_STATE(24)] = 272,
|
|
2890
|
+
[SMALL_STATE(25)] = 282,
|
|
2891
|
+
[SMALL_STATE(26)] = 292,
|
|
2892
|
+
[SMALL_STATE(27)] = 302,
|
|
2893
|
+
[SMALL_STATE(28)] = 308,
|
|
2894
|
+
[SMALL_STATE(29)] = 318,
|
|
2895
|
+
[SMALL_STATE(30)] = 328,
|
|
2896
|
+
[SMALL_STATE(31)] = 334,
|
|
2897
|
+
[SMALL_STATE(32)] = 340,
|
|
2898
|
+
[SMALL_STATE(33)] = 350,
|
|
2899
|
+
[SMALL_STATE(34)] = 360,
|
|
2900
|
+
[SMALL_STATE(35)] = 366,
|
|
2901
|
+
[SMALL_STATE(36)] = 372,
|
|
2902
|
+
[SMALL_STATE(37)] = 378,
|
|
2903
|
+
[SMALL_STATE(38)] = 384,
|
|
2904
|
+
[SMALL_STATE(39)] = 389,
|
|
2905
|
+
[SMALL_STATE(40)] = 394,
|
|
2906
|
+
[SMALL_STATE(41)] = 399,
|
|
2907
|
+
[SMALL_STATE(42)] = 404,
|
|
2908
|
+
[SMALL_STATE(43)] = 409,
|
|
2909
|
+
[SMALL_STATE(44)] = 413,
|
|
2910
|
+
[SMALL_STATE(45)] = 417,
|
|
2911
|
+
[SMALL_STATE(46)] = 421,
|
|
2912
|
+
[SMALL_STATE(47)] = 425,
|
|
2913
|
+
[SMALL_STATE(48)] = 429,
|
|
2914
|
+
[SMALL_STATE(49)] = 433,
|
|
2915
|
+
[SMALL_STATE(50)] = 437,
|
|
2916
|
+
[SMALL_STATE(51)] = 441,
|
|
2917
|
+
[SMALL_STATE(52)] = 445,
|
|
2918
|
+
[SMALL_STATE(53)] = 449,
|
|
2919
|
+
[SMALL_STATE(54)] = 453,
|
|
2920
|
+
[SMALL_STATE(55)] = 457,
|
|
2921
|
+
[SMALL_STATE(56)] = 461,
|
|
2922
|
+
[SMALL_STATE(57)] = 465,
|
|
2923
|
+
[SMALL_STATE(58)] = 469,
|
|
2924
|
+
[SMALL_STATE(59)] = 473,
|
|
2925
|
+
[SMALL_STATE(60)] = 477,
|
|
2926
|
+
[SMALL_STATE(61)] = 481,
|
|
2927
|
+
};
|
|
2928
|
+
|
|
2929
|
+
static const TSParseActionEntry ts_parse_actions[] = {
|
|
2930
|
+
[0] = {.entry = {.count = 0, .reusable = false}},
|
|
2931
|
+
[1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
|
|
2932
|
+
[3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 0),
|
|
2933
|
+
[5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
|
|
2934
|
+
[7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
|
|
2935
|
+
[9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1),
|
|
2936
|
+
[11] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, .production_id = 1),
|
|
2937
|
+
[13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
|
|
2938
|
+
[15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
|
|
2939
|
+
[17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2),
|
|
2940
|
+
[19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(47),
|
|
2941
|
+
[22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(60),
|
|
2942
|
+
[25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, .production_id = 2),
|
|
2943
|
+
[27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat1, 2),
|
|
2944
|
+
[29] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat1, 2), SHIFT_REPEAT(57),
|
|
2945
|
+
[32] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat2, 2, .production_id = 1),
|
|
2946
|
+
[34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat2, 3, .production_id = 2),
|
|
2947
|
+
[36] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat2, 2, .production_id = 5),
|
|
2948
|
+
[38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_statement_repeat2, 2, .production_id = 5), SHIFT_REPEAT(56),
|
|
2949
|
+
[41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 4, .production_id = 4),
|
|
2950
|
+
[43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
|
|
2951
|
+
[45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
|
|
2952
|
+
[47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
|
|
2953
|
+
[49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, .production_id = 3),
|
|
2954
|
+
[51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
|
|
2955
|
+
[53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
|
|
2956
|
+
[55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
|
|
2957
|
+
[57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
|
|
2958
|
+
[59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
|
|
2959
|
+
[61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
|
|
2960
|
+
[63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2), SHIFT_REPEAT(49),
|
|
2961
|
+
[66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2),
|
|
2962
|
+
[68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
|
|
2963
|
+
[70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
|
|
2964
|
+
[72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
|
|
2965
|
+
[74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 13),
|
|
2966
|
+
[76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
|
|
2967
|
+
[78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
|
|
2968
|
+
[80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
|
|
2969
|
+
[82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
|
|
2970
|
+
[84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_trait_list_repeat1, 2), SHIFT_REPEAT(61),
|
|
2971
|
+
[87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_trait_list_repeat1, 2),
|
|
2972
|
+
[89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 8),
|
|
2973
|
+
[91] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_trait_list_repeat1, 2), SHIFT_REPEAT(44),
|
|
2974
|
+
[94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
|
|
2975
|
+
[96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 6),
|
|
2976
|
+
[98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 9),
|
|
2977
|
+
[100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
|
|
2978
|
+
[102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
|
|
2979
|
+
[104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 11),
|
|
2980
|
+
[106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 12),
|
|
2981
|
+
[108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 7),
|
|
2982
|
+
[110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 8, .production_id = 14),
|
|
2983
|
+
[112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 4),
|
|
2984
|
+
[114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_pair, 3, .production_id = 10),
|
|
2985
|
+
[116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 3),
|
|
2986
|
+
[118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
|
|
2987
|
+
[120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
|
|
2988
|
+
[122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_list, 3),
|
|
2989
|
+
[124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_list, 4),
|
|
2990
|
+
[126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
|
|
2991
|
+
[128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
|
|
2992
|
+
[130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
|
|
2993
|
+
[132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
|
|
2994
|
+
[134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
|
|
2995
|
+
[136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
|
|
2996
|
+
[138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
|
|
2997
|
+
[140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
|
|
2998
|
+
[142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
|
|
2999
|
+
[144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
|
|
3000
|
+
[146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
|
|
3001
|
+
[148] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
|
|
3002
|
+
[150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
|
|
3003
|
+
[152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
|
|
3004
|
+
[154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
|
|
3005
|
+
};
|
|
3006
|
+
|
|
3007
|
+
#ifdef __cplusplus
|
|
3008
|
+
extern "C" {
|
|
3009
|
+
#endif
|
|
3010
|
+
void *tree_sitter_pine_external_scanner_create(void);
|
|
3011
|
+
void tree_sitter_pine_external_scanner_destroy(void *);
|
|
3012
|
+
bool tree_sitter_pine_external_scanner_scan(void *, TSLexer *, const bool *);
|
|
3013
|
+
unsigned tree_sitter_pine_external_scanner_serialize(void *, char *);
|
|
3014
|
+
void tree_sitter_pine_external_scanner_deserialize(void *, const char *, unsigned);
|
|
3015
|
+
|
|
3016
|
+
#ifdef _WIN32
|
|
3017
|
+
#define extern __declspec(dllexport)
|
|
3018
|
+
#endif
|
|
3019
|
+
|
|
3020
|
+
extern const TSLanguage *tree_sitter_pine(void) {
|
|
3021
|
+
static const TSLanguage language = {
|
|
3022
|
+
.version = LANGUAGE_VERSION,
|
|
3023
|
+
.symbol_count = SYMBOL_COUNT,
|
|
3024
|
+
.alias_count = ALIAS_COUNT,
|
|
3025
|
+
.token_count = TOKEN_COUNT,
|
|
3026
|
+
.external_token_count = EXTERNAL_TOKEN_COUNT,
|
|
3027
|
+
.state_count = STATE_COUNT,
|
|
3028
|
+
.large_state_count = LARGE_STATE_COUNT,
|
|
3029
|
+
.production_id_count = PRODUCTION_ID_COUNT,
|
|
3030
|
+
.field_count = FIELD_COUNT,
|
|
3031
|
+
.max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
|
|
3032
|
+
.parse_table = &ts_parse_table[0][0],
|
|
3033
|
+
.small_parse_table = ts_small_parse_table,
|
|
3034
|
+
.small_parse_table_map = ts_small_parse_table_map,
|
|
3035
|
+
.parse_actions = ts_parse_actions,
|
|
3036
|
+
.symbol_names = ts_symbol_names,
|
|
3037
|
+
.field_names = ts_field_names,
|
|
3038
|
+
.field_map_slices = ts_field_map_slices,
|
|
3039
|
+
.field_map_entries = ts_field_map_entries,
|
|
3040
|
+
.symbol_metadata = ts_symbol_metadata,
|
|
3041
|
+
.public_symbol_map = ts_symbol_map,
|
|
3042
|
+
.alias_map = ts_non_terminal_alias_map,
|
|
3043
|
+
.alias_sequences = &ts_alias_sequences[0][0],
|
|
3044
|
+
.lex_modes = ts_lex_modes,
|
|
3045
|
+
.lex_fn = ts_lex,
|
|
3046
|
+
.external_scanner = {
|
|
3047
|
+
&ts_external_scanner_states[0][0],
|
|
3048
|
+
ts_external_scanner_symbol_map,
|
|
3049
|
+
tree_sitter_pine_external_scanner_create,
|
|
3050
|
+
tree_sitter_pine_external_scanner_destroy,
|
|
3051
|
+
tree_sitter_pine_external_scanner_scan,
|
|
3052
|
+
tree_sitter_pine_external_scanner_serialize,
|
|
3053
|
+
tree_sitter_pine_external_scanner_deserialize,
|
|
3054
|
+
},
|
|
3055
|
+
.primary_state_ids = ts_primary_state_ids,
|
|
3056
|
+
};
|
|
3057
|
+
return &language;
|
|
3058
|
+
}
|
|
3059
|
+
#ifdef __cplusplus
|
|
3060
|
+
}
|
|
3061
|
+
#endif
|
src/scanner.cc
ADDED
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
#include <tree_sitter/parser.h>
|
|
2
|
+
#include <vector>
|
|
3
|
+
#include <cwctype>
|
|
4
|
+
#include <cstring>
|
|
5
|
+
#include <cassert>
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
namespace {
|
|
8
|
+
|
|
9
|
+
using std::vector;
|
|
10
|
+
using std::iswspace;
|
|
11
|
+
using std::memcpy;
|
|
12
|
+
|
|
13
|
+
enum TokenType {
|
|
14
|
+
NEWLINE,
|
|
15
|
+
INDENT,
|
|
16
|
+
DEDENT,
|
|
17
|
+
STRING_START,
|
|
18
|
+
STRING_CONTENT,
|
|
19
|
+
STRING_END,
|
|
20
|
+
COMMENT,
|
|
21
|
+
CLOSE_PAREN,
|
|
22
|
+
CLOSE_BRACKET,
|
|
23
|
+
CLOSE_BRACE,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
struct Delimiter {
|
|
27
|
+
enum {
|
|
28
|
+
SingleQuote = 1 << 0,
|
|
29
|
+
DoubleQuote = 1 << 1,
|
|
30
|
+
BackQuote = 1 << 2,
|
|
31
|
+
Raw = 1 << 3,
|
|
32
|
+
Format = 1 << 4,
|
|
33
|
+
Triple = 1 << 5,
|
|
34
|
+
Bytes = 1 << 6,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
Delimiter() : flags(0) {}
|
|
38
|
+
|
|
39
|
+
bool is_format() const {
|
|
40
|
+
return flags & Format;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
bool is_raw() const {
|
|
44
|
+
return flags & Raw;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
bool is_triple() const {
|
|
48
|
+
return flags & Triple;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
bool is_bytes() const {
|
|
52
|
+
return flags & Bytes;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
int32_t end_character() const {
|
|
56
|
+
if (flags & SingleQuote) return '\'';
|
|
57
|
+
if (flags & DoubleQuote) return '"';
|
|
58
|
+
if (flags & BackQuote) return '`';
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
void set_format() {
|
|
63
|
+
flags |= Format;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void set_raw() {
|
|
67
|
+
flags |= Raw;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
void set_triple() {
|
|
71
|
+
flags |= Triple;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void set_bytes() {
|
|
75
|
+
flags |= Bytes;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
void set_end_character(int32_t character) {
|
|
79
|
+
switch (character) {
|
|
80
|
+
case '\'':
|
|
81
|
+
flags |= SingleQuote;
|
|
82
|
+
break;
|
|
83
|
+
case '"':
|
|
84
|
+
flags |= DoubleQuote;
|
|
85
|
+
break;
|
|
86
|
+
case '`':
|
|
87
|
+
flags |= BackQuote;
|
|
88
|
+
break;
|
|
89
|
+
default:
|
|
90
|
+
assert(false);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
char flags;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
struct Scanner {
|
|
98
|
+
Scanner() {
|
|
99
|
+
assert(sizeof(Delimiter) == sizeof(char));
|
|
100
|
+
deserialize(NULL, 0);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
unsigned serialize(char *buffer) {
|
|
104
|
+
size_t i = 0;
|
|
105
|
+
|
|
106
|
+
size_t delimiter_count = delimiter_stack.size();
|
|
107
|
+
if (delimiter_count > UINT8_MAX) delimiter_count = UINT8_MAX;
|
|
108
|
+
buffer[i++] = delimiter_count;
|
|
109
|
+
|
|
110
|
+
if (delimiter_count > 0) {
|
|
111
|
+
memcpy(&buffer[i], delimiter_stack.data(), delimiter_count);
|
|
112
|
+
}
|
|
113
|
+
i += delimiter_count;
|
|
114
|
+
|
|
115
|
+
vector<uint16_t>::iterator
|
|
116
|
+
iter = indent_length_stack.begin() + 1,
|
|
117
|
+
end = indent_length_stack.end();
|
|
118
|
+
|
|
119
|
+
for (; iter != end && i < TREE_SITTER_SERIALIZATION_BUFFER_SIZE; ++iter) {
|
|
120
|
+
buffer[i++] = *iter;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return i;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
void deserialize(const char *buffer, unsigned length) {
|
|
127
|
+
delimiter_stack.clear();
|
|
128
|
+
indent_length_stack.clear();
|
|
129
|
+
indent_length_stack.push_back(0);
|
|
130
|
+
|
|
131
|
+
if (length > 0) {
|
|
132
|
+
size_t i = 0;
|
|
133
|
+
|
|
134
|
+
size_t delimiter_count = (uint8_t)buffer[i++];
|
|
135
|
+
delimiter_stack.resize(delimiter_count);
|
|
136
|
+
if (delimiter_count > 0) {
|
|
137
|
+
memcpy(delimiter_stack.data(), &buffer[i], delimiter_count);
|
|
138
|
+
}
|
|
139
|
+
i += delimiter_count;
|
|
140
|
+
|
|
141
|
+
for (; i < length; i++) {
|
|
142
|
+
indent_length_stack.push_back(buffer[i]);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
void advance(TSLexer *lexer) {
|
|
148
|
+
lexer->advance(lexer, false);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
void skip(TSLexer *lexer) {
|
|
152
|
+
lexer->advance(lexer, true);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
bool scan(TSLexer *lexer, const bool *valid_symbols) {
|
|
156
|
+
bool error_recovery_mode = valid_symbols[STRING_CONTENT] && valid_symbols[INDENT];
|
|
157
|
+
bool within_brackets = valid_symbols[CLOSE_BRACE] || valid_symbols[CLOSE_PAREN] || valid_symbols[CLOSE_BRACKET];
|
|
158
|
+
|
|
159
|
+
if (valid_symbols[STRING_CONTENT] && !delimiter_stack.empty() && !error_recovery_mode) {
|
|
160
|
+
Delimiter delimiter = delimiter_stack.back();
|
|
161
|
+
int32_t end_character = delimiter.end_character();
|
|
162
|
+
bool has_content = false;
|
|
163
|
+
while (lexer->lookahead) {
|
|
164
|
+
if ((lexer->lookahead == '{' || lexer->lookahead == '}') && delimiter.is_format()) {
|
|
165
|
+
lexer->mark_end(lexer);
|
|
166
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
167
|
+
return has_content;
|
|
168
|
+
} else if (lexer->lookahead == '\\') {
|
|
169
|
+
if (delimiter.is_raw()) {
|
|
170
|
+
lexer->advance(lexer, false);
|
|
171
|
+
} else if (delimiter.is_bytes()) {
|
|
172
|
+
lexer->mark_end(lexer);
|
|
173
|
+
lexer->advance(lexer, false);
|
|
174
|
+
if (lexer->lookahead == 'N' || lexer->lookahead == 'u' || lexer->lookahead == 'U') {
|
|
175
|
+
// In bytes string, \N{...}, \uXXXX and \UXXXXXXXX are not escape sequences
|
|
176
|
+
// https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals
|
|
177
|
+
lexer->advance(lexer, false);
|
|
178
|
+
} else {
|
|
179
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
180
|
+
return has_content;
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
lexer->mark_end(lexer);
|
|
184
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
185
|
+
return has_content;
|
|
186
|
+
}
|
|
187
|
+
} else if (lexer->lookahead == end_character) {
|
|
188
|
+
if (delimiter.is_triple()) {
|
|
189
|
+
lexer->mark_end(lexer);
|
|
190
|
+
lexer->advance(lexer, false);
|
|
191
|
+
if (lexer->lookahead == end_character) {
|
|
192
|
+
lexer->advance(lexer, false);
|
|
193
|
+
if (lexer->lookahead == end_character) {
|
|
194
|
+
if (has_content) {
|
|
195
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
196
|
+
} else {
|
|
197
|
+
lexer->advance(lexer, false);
|
|
198
|
+
lexer->mark_end(lexer);
|
|
199
|
+
delimiter_stack.pop_back();
|
|
200
|
+
lexer->result_symbol = STRING_END;
|
|
201
|
+
}
|
|
202
|
+
return true;
|
|
203
|
+
} else {
|
|
204
|
+
lexer->mark_end(lexer);
|
|
205
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
} else {
|
|
209
|
+
lexer->mark_end(lexer);
|
|
210
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
} else {
|
|
214
|
+
if (has_content) {
|
|
215
|
+
lexer->result_symbol = STRING_CONTENT;
|
|
216
|
+
} else {
|
|
217
|
+
lexer->advance(lexer, false);
|
|
218
|
+
delimiter_stack.pop_back();
|
|
219
|
+
lexer->result_symbol = STRING_END;
|
|
220
|
+
}
|
|
221
|
+
lexer->mark_end(lexer);
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
} else if (lexer->lookahead == '\n' && has_content && !delimiter.is_triple()) {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
advance(lexer);
|
|
228
|
+
has_content = true;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
lexer->mark_end(lexer);
|
|
233
|
+
|
|
234
|
+
bool found_end_of_line = false;
|
|
235
|
+
uint32_t indent_length = 0;
|
|
236
|
+
int32_t first_comment_indent_length = -1;
|
|
237
|
+
for (;;) {
|
|
238
|
+
if (lexer->lookahead == '\n') {
|
|
239
|
+
found_end_of_line = true;
|
|
240
|
+
indent_length = 0;
|
|
241
|
+
skip(lexer);
|
|
242
|
+
} else if (lexer->lookahead == ' ') {
|
|
243
|
+
indent_length++;
|
|
244
|
+
skip(lexer);
|
|
245
|
+
} else if (lexer->lookahead == '\r') {
|
|
246
|
+
indent_length = 0;
|
|
247
|
+
skip(lexer);
|
|
248
|
+
} else if (lexer->lookahead == '\t') {
|
|
249
|
+
indent_length += 8;
|
|
250
|
+
skip(lexer);
|
|
251
|
+
} else if (lexer->lookahead == '#') {
|
|
252
|
+
if (first_comment_indent_length == -1) {
|
|
253
|
+
first_comment_indent_length = (int32_t)indent_length;
|
|
254
|
+
}
|
|
255
|
+
while (lexer->lookahead && lexer->lookahead != '\n') {
|
|
256
|
+
skip(lexer);
|
|
257
|
+
}
|
|
258
|
+
skip(lexer);
|
|
259
|
+
indent_length = 0;
|
|
260
|
+
} else if (lexer->lookahead == '\\') {
|
|
261
|
+
skip(lexer);
|
|
262
|
+
if (lexer->lookahead == '\r') {
|
|
263
|
+
skip(lexer);
|
|
264
|
+
}
|
|
265
|
+
if (lexer->lookahead == '\n') {
|
|
266
|
+
skip(lexer);
|
|
267
|
+
} else {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
} else if (lexer->lookahead == '\f') {
|
|
271
|
+
indent_length = 0;
|
|
272
|
+
skip(lexer);
|
|
273
|
+
} else if (lexer->lookahead == 0) {
|
|
274
|
+
indent_length = 0;
|
|
275
|
+
found_end_of_line = true;
|
|
276
|
+
break;
|
|
277
|
+
} else {
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (found_end_of_line) {
|
|
283
|
+
if (!indent_length_stack.empty()) {
|
|
284
|
+
uint16_t current_indent_length = indent_length_stack.back();
|
|
285
|
+
|
|
286
|
+
if (
|
|
287
|
+
valid_symbols[INDENT] &&
|
|
288
|
+
indent_length > current_indent_length
|
|
289
|
+
) {
|
|
290
|
+
indent_length_stack.push_back(indent_length);
|
|
291
|
+
lexer->result_symbol = INDENT;
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
if (
|
|
296
|
+
(valid_symbols[DEDENT] || (!valid_symbols[NEWLINE] && !within_brackets)) &&
|
|
297
|
+
indent_length < current_indent_length &&
|
|
298
|
+
|
|
299
|
+
// Wait to create a dedent token until we've consumed any comments
|
|
300
|
+
// whose indentation matches the current block.
|
|
301
|
+
first_comment_indent_length < (int32_t)current_indent_length
|
|
302
|
+
) {
|
|
303
|
+
indent_length_stack.pop_back();
|
|
304
|
+
lexer->result_symbol = DEDENT;
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
if (valid_symbols[NEWLINE] && !error_recovery_mode) {
|
|
310
|
+
lexer->result_symbol = NEWLINE;
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (first_comment_indent_length == -1 && valid_symbols[STRING_START]) {
|
|
316
|
+
Delimiter delimiter;
|
|
317
|
+
|
|
318
|
+
bool has_flags = false;
|
|
319
|
+
while (lexer->lookahead) {
|
|
320
|
+
if (lexer->lookahead == 'f' || lexer->lookahead == 'F') {
|
|
321
|
+
delimiter.set_format();
|
|
322
|
+
} else if (lexer->lookahead == 'r' || lexer->lookahead == 'R') {
|
|
323
|
+
delimiter.set_raw();
|
|
324
|
+
} else if (lexer->lookahead == 'b' || lexer->lookahead == 'B') {
|
|
325
|
+
delimiter.set_bytes();
|
|
326
|
+
} else if (lexer->lookahead != 'u' && lexer->lookahead != 'U') {
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
has_flags = true;
|
|
330
|
+
advance(lexer);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (lexer->lookahead == '`') {
|
|
334
|
+
delimiter.set_end_character('`');
|
|
335
|
+
advance(lexer);
|
|
336
|
+
lexer->mark_end(lexer);
|
|
337
|
+
} else if (lexer->lookahead == '\'') {
|
|
338
|
+
delimiter.set_end_character('\'');
|
|
339
|
+
advance(lexer);
|
|
340
|
+
lexer->mark_end(lexer);
|
|
341
|
+
if (lexer->lookahead == '\'') {
|
|
342
|
+
advance(lexer);
|
|
343
|
+
if (lexer->lookahead == '\'') {
|
|
344
|
+
advance(lexer);
|
|
345
|
+
lexer->mark_end(lexer);
|
|
346
|
+
delimiter.set_triple();
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
} else if (lexer->lookahead == '"') {
|
|
350
|
+
delimiter.set_end_character('"');
|
|
351
|
+
advance(lexer);
|
|
352
|
+
lexer->mark_end(lexer);
|
|
353
|
+
if (lexer->lookahead == '"') {
|
|
354
|
+
advance(lexer);
|
|
355
|
+
if (lexer->lookahead == '"') {
|
|
356
|
+
advance(lexer);
|
|
357
|
+
lexer->mark_end(lexer);
|
|
358
|
+
delimiter.set_triple();
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (delimiter.end_character()) {
|
|
364
|
+
delimiter_stack.push_back(delimiter);
|
|
365
|
+
lexer->result_symbol = STRING_START;
|
|
366
|
+
return true;
|
|
367
|
+
} else if (has_flags) {
|
|
368
|
+
return false;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
vector<uint16_t> indent_length_stack;
|
|
376
|
+
vector<Delimiter> delimiter_stack;
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
extern "C" {
|
|
382
|
+
|
|
383
|
+
void *tree_sitter_pine_external_scanner_create() {
|
|
384
|
+
return new Scanner();
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
bool tree_sitter_pine_external_scanner_scan(void *payload, TSLexer *lexer,
|
|
388
|
+
const bool *valid_symbols) {
|
|
389
|
+
Scanner *scanner = static_cast<Scanner *>(payload);
|
|
390
|
+
return scanner->scan(lexer, valid_symbols);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
unsigned tree_sitter_pine_external_scanner_serialize(void *payload, char *buffer) {
|
|
394
|
+
Scanner *scanner = static_cast<Scanner *>(payload);
|
|
395
|
+
return scanner->serialize(buffer);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
void tree_sitter_pine_external_scanner_deserialize(void *payload, const char *buffer, unsigned length) {
|
|
399
|
+
Scanner *scanner = static_cast<Scanner *>(payload);
|
|
400
|
+
scanner->deserialize(buffer, length);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
void tree_sitter_pine_external_scanner_destroy(void *payload) {
|
|
404
|
+
Scanner *scanner = static_cast<Scanner *>(payload);
|
|
405
|
+
delete scanner;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
}
|
src/tree_sitter/parser.h
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
#ifndef TREE_SITTER_PARSER_H_
|
|
2
|
+
#define TREE_SITTER_PARSER_H_
|
|
3
|
+
|
|
4
|
+
#ifdef __cplusplus
|
|
5
|
+
extern "C" {
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
#include <stdbool.h>
|
|
9
|
+
#include <stdint.h>
|
|
10
|
+
#include <stdlib.h>
|
|
11
|
+
|
|
12
|
+
#define ts_builtin_sym_error ((TSSymbol)-1)
|
|
13
|
+
#define ts_builtin_sym_end 0
|
|
14
|
+
#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024
|
|
15
|
+
|
|
16
|
+
typedef uint16_t TSStateId;
|
|
17
|
+
|
|
18
|
+
#ifndef TREE_SITTER_API_H_
|
|
19
|
+
typedef uint16_t TSSymbol;
|
|
20
|
+
typedef uint16_t TSFieldId;
|
|
21
|
+
typedef struct TSLanguage TSLanguage;
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
typedef struct {
|
|
25
|
+
TSFieldId field_id;
|
|
26
|
+
uint8_t child_index;
|
|
27
|
+
bool inherited;
|
|
28
|
+
} TSFieldMapEntry;
|
|
29
|
+
|
|
30
|
+
typedef struct {
|
|
31
|
+
uint16_t index;
|
|
32
|
+
uint16_t length;
|
|
33
|
+
} TSFieldMapSlice;
|
|
34
|
+
|
|
35
|
+
typedef struct {
|
|
36
|
+
bool visible;
|
|
37
|
+
bool named;
|
|
38
|
+
bool supertype;
|
|
39
|
+
} TSSymbolMetadata;
|
|
40
|
+
|
|
41
|
+
typedef struct TSLexer TSLexer;
|
|
42
|
+
|
|
43
|
+
struct TSLexer {
|
|
44
|
+
int32_t lookahead;
|
|
45
|
+
TSSymbol result_symbol;
|
|
46
|
+
void (*advance)(TSLexer *, bool);
|
|
47
|
+
void (*mark_end)(TSLexer *);
|
|
48
|
+
uint32_t (*get_column)(TSLexer *);
|
|
49
|
+
bool (*is_at_included_range_start)(const TSLexer *);
|
|
50
|
+
bool (*eof)(const TSLexer *);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
typedef enum {
|
|
54
|
+
TSParseActionTypeShift,
|
|
55
|
+
TSParseActionTypeReduce,
|
|
56
|
+
TSParseActionTypeAccept,
|
|
57
|
+
TSParseActionTypeRecover,
|
|
58
|
+
} TSParseActionType;
|
|
59
|
+
|
|
60
|
+
typedef union {
|
|
61
|
+
struct {
|
|
62
|
+
uint8_t type;
|
|
63
|
+
TSStateId state;
|
|
64
|
+
bool extra;
|
|
65
|
+
bool repetition;
|
|
66
|
+
} shift;
|
|
67
|
+
struct {
|
|
68
|
+
uint8_t type;
|
|
69
|
+
uint8_t child_count;
|
|
70
|
+
TSSymbol symbol;
|
|
71
|
+
int16_t dynamic_precedence;
|
|
72
|
+
uint16_t production_id;
|
|
73
|
+
} reduce;
|
|
74
|
+
uint8_t type;
|
|
75
|
+
} TSParseAction;
|
|
76
|
+
|
|
77
|
+
typedef struct {
|
|
78
|
+
uint16_t lex_state;
|
|
79
|
+
uint16_t external_lex_state;
|
|
80
|
+
} TSLexMode;
|
|
81
|
+
|
|
82
|
+
typedef union {
|
|
83
|
+
TSParseAction action;
|
|
84
|
+
struct {
|
|
85
|
+
uint8_t count;
|
|
86
|
+
bool reusable;
|
|
87
|
+
} entry;
|
|
88
|
+
} TSParseActionEntry;
|
|
89
|
+
|
|
90
|
+
struct TSLanguage {
|
|
91
|
+
uint32_t version;
|
|
92
|
+
uint32_t symbol_count;
|
|
93
|
+
uint32_t alias_count;
|
|
94
|
+
uint32_t token_count;
|
|
95
|
+
uint32_t external_token_count;
|
|
96
|
+
uint32_t state_count;
|
|
97
|
+
uint32_t large_state_count;
|
|
98
|
+
uint32_t production_id_count;
|
|
99
|
+
uint32_t field_count;
|
|
100
|
+
uint16_t max_alias_sequence_length;
|
|
101
|
+
const uint16_t *parse_table;
|
|
102
|
+
const uint16_t *small_parse_table;
|
|
103
|
+
const uint32_t *small_parse_table_map;
|
|
104
|
+
const TSParseActionEntry *parse_actions;
|
|
105
|
+
const char * const *symbol_names;
|
|
106
|
+
const char * const *field_names;
|
|
107
|
+
const TSFieldMapSlice *field_map_slices;
|
|
108
|
+
const TSFieldMapEntry *field_map_entries;
|
|
109
|
+
const TSSymbolMetadata *symbol_metadata;
|
|
110
|
+
const TSSymbol *public_symbol_map;
|
|
111
|
+
const uint16_t *alias_map;
|
|
112
|
+
const TSSymbol *alias_sequences;
|
|
113
|
+
const TSLexMode *lex_modes;
|
|
114
|
+
bool (*lex_fn)(TSLexer *, TSStateId);
|
|
115
|
+
bool (*keyword_lex_fn)(TSLexer *, TSStateId);
|
|
116
|
+
TSSymbol keyword_capture_token;
|
|
117
|
+
struct {
|
|
118
|
+
const bool *states;
|
|
119
|
+
const TSSymbol *symbol_map;
|
|
120
|
+
void *(*create)(void);
|
|
121
|
+
void (*destroy)(void *);
|
|
122
|
+
bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist);
|
|
123
|
+
unsigned (*serialize)(void *, char *);
|
|
124
|
+
void (*deserialize)(void *, const char *, unsigned);
|
|
125
|
+
} external_scanner;
|
|
126
|
+
const TSStateId *primary_state_ids;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/*
|
|
130
|
+
* Lexer Macros
|
|
131
|
+
*/
|
|
132
|
+
|
|
133
|
+
#define START_LEXER() \
|
|
134
|
+
bool result = false; \
|
|
135
|
+
bool skip = false; \
|
|
136
|
+
bool eof = false; \
|
|
137
|
+
int32_t lookahead; \
|
|
138
|
+
goto start; \
|
|
139
|
+
next_state: \
|
|
140
|
+
lexer->advance(lexer, skip); \
|
|
141
|
+
start: \
|
|
142
|
+
skip = false; \
|
|
143
|
+
lookahead = lexer->lookahead;
|
|
144
|
+
|
|
145
|
+
#define ADVANCE(state_value) \
|
|
146
|
+
{ \
|
|
147
|
+
state = state_value; \
|
|
148
|
+
goto next_state; \
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
#define SKIP(state_value) \
|
|
152
|
+
{ \
|
|
153
|
+
skip = true; \
|
|
154
|
+
state = state_value; \
|
|
155
|
+
goto next_state; \
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
#define ACCEPT_TOKEN(symbol_value) \
|
|
159
|
+
result = true; \
|
|
160
|
+
lexer->result_symbol = symbol_value; \
|
|
161
|
+
lexer->mark_end(lexer);
|
|
162
|
+
|
|
163
|
+
#define END_STATE() return result;
|
|
164
|
+
|
|
165
|
+
/*
|
|
166
|
+
* Parse Table Macros
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
#define SMALL_STATE(id) id - LARGE_STATE_COUNT
|
|
170
|
+
|
|
171
|
+
#define STATE(id) id
|
|
172
|
+
|
|
173
|
+
#define ACTIONS(id) id
|
|
174
|
+
|
|
175
|
+
#define SHIFT(state_value) \
|
|
176
|
+
{{ \
|
|
177
|
+
.shift = { \
|
|
178
|
+
.type = TSParseActionTypeShift, \
|
|
179
|
+
.state = state_value \
|
|
180
|
+
} \
|
|
181
|
+
}}
|
|
182
|
+
|
|
183
|
+
#define SHIFT_REPEAT(state_value) \
|
|
184
|
+
{{ \
|
|
185
|
+
.shift = { \
|
|
186
|
+
.type = TSParseActionTypeShift, \
|
|
187
|
+
.state = state_value, \
|
|
188
|
+
.repetition = true \
|
|
189
|
+
} \
|
|
190
|
+
}}
|
|
191
|
+
|
|
192
|
+
#define SHIFT_EXTRA() \
|
|
193
|
+
{{ \
|
|
194
|
+
.shift = { \
|
|
195
|
+
.type = TSParseActionTypeShift, \
|
|
196
|
+
.extra = true \
|
|
197
|
+
} \
|
|
198
|
+
}}
|
|
199
|
+
|
|
200
|
+
#define REDUCE(symbol_val, child_count_val, ...) \
|
|
201
|
+
{{ \
|
|
202
|
+
.reduce = { \
|
|
203
|
+
.type = TSParseActionTypeReduce, \
|
|
204
|
+
.symbol = symbol_val, \
|
|
205
|
+
.child_count = child_count_val, \
|
|
206
|
+
__VA_ARGS__ \
|
|
207
|
+
}, \
|
|
208
|
+
}}
|
|
209
|
+
|
|
210
|
+
#define RECOVER() \
|
|
211
|
+
{{ \
|
|
212
|
+
.type = TSParseActionTypeRecover \
|
|
213
|
+
}}
|
|
214
|
+
|
|
215
|
+
#define ACCEPT_INPUT() \
|
|
216
|
+
{{ \
|
|
217
|
+
.type = TSParseActionTypeAccept \
|
|
218
|
+
}}
|
|
219
|
+
|
|
220
|
+
#ifdef __cplusplus
|
|
221
|
+
}
|
|
222
|
+
#endif
|
|
223
|
+
|
|
224
|
+
#endif // TREE_SITTER_PARSER_H_
|
test/corpus/class_definitions.txt
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
================================================================================
|
|
2
|
+
Class definitions
|
|
3
|
+
================================================================================
|
|
4
|
+
|
|
5
|
+
class A:
|
|
6
|
+
a: String
|
|
7
|
+
b: Int
|
|
8
|
+
|
|
9
|
+
class B<S, T>:
|
|
10
|
+
a: S
|
|
11
|
+
b: T
|
|
12
|
+
|
|
13
|
+
class A(B, C):
|
|
14
|
+
a: String
|
|
15
|
+
b: Float
|
|
16
|
+
|
|
17
|
+
class A<S, T>(B, C):
|
|
18
|
+
a: S
|
|
19
|
+
b: T
|
|
20
|
+
|
|
21
|
+
--------------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
(module
|
|
24
|
+
(class_definition
|
|
25
|
+
(identifier)
|
|
26
|
+
(type_pair
|
|
27
|
+
(identifier)
|
|
28
|
+
(identifier))
|
|
29
|
+
(type_pair
|
|
30
|
+
(identifier)
|
|
31
|
+
(identifier)))
|
|
32
|
+
(class_definition
|
|
33
|
+
(identifier)
|
|
34
|
+
(generic_list
|
|
35
|
+
(identifier)
|
|
36
|
+
(identifier))
|
|
37
|
+
(type_pair
|
|
38
|
+
(identifier)
|
|
39
|
+
(identifier))
|
|
40
|
+
(type_pair
|
|
41
|
+
(identifier)
|
|
42
|
+
(identifier)))
|
|
43
|
+
(class_definition
|
|
44
|
+
(identifier)
|
|
45
|
+
(trait_list
|
|
46
|
+
(identifier)
|
|
47
|
+
(identifier))
|
|
48
|
+
(type_pair
|
|
49
|
+
(identifier)
|
|
50
|
+
(identifier))
|
|
51
|
+
(type_pair
|
|
52
|
+
(identifier)
|
|
53
|
+
(identifier)))
|
|
54
|
+
(class_definition
|
|
55
|
+
(identifier)
|
|
56
|
+
(generic_list
|
|
57
|
+
(identifier)
|
|
58
|
+
(identifier))
|
|
59
|
+
(trait_list
|
|
60
|
+
(identifier)
|
|
61
|
+
(identifier))
|
|
62
|
+
(type_pair
|
|
63
|
+
(identifier)
|
|
64
|
+
(identifier))
|
|
65
|
+
(type_pair
|
|
66
|
+
(identifier)
|
|
67
|
+
(identifier))))
|
test/corpus/import_statements.txt
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
================================================================================
|
|
2
|
+
Import statements
|
|
3
|
+
================================================================================
|
|
4
|
+
|
|
5
|
+
import github/pyros2097/std
|
|
6
|
+
|
|
7
|
+
--------------------------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
(module
|
|
10
|
+
(import_statement
|
|
11
|
+
(identifier)
|
|
12
|
+
(identifier)
|
|
13
|
+
(identifier)))
|