Skip to content

Commit

Permalink
chore(deps-dev): bump tree-sitter-cli to 0.19.0
Browse files Browse the repository at this point in the history
  • Loading branch information
alexlafroscia committed Mar 2, 2021
1 parent c83cd18 commit c5cc746
Show file tree
Hide file tree
Showing 12 changed files with 245 additions and 133 deletions.
25 changes: 25 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[package]
name = "tree-sitter-glimmer"
description = "glimmer grammar for the tree-sitter parsing library"
version = "0.0.1"
keywords = ["incremental", "parsing", "glimmer"]
categories = ["parsing", "text-editors"]
repository = "https://github.com/tree-sitter/tree-sitter-javascript"
edition = "2018"

build = "bindings/rust/build.rs"
include = [
"bindings/rust/*",
"grammar.js",
"queries/*",
"src/*",
]

[lib]
path = "bindings/rust/lib.rs"

[dependencies]
tree-sitter = "0.17"

[build-dependencies]
cc = "1.0"
2 changes: 1 addition & 1 deletion binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"src"
],
"sources": [
"src/binding.cc",
"bindings/node/binding.cc",
"src/parser.c",
"src/scanner.c"
],
Expand Down
File renamed without changes.
19 changes: 19 additions & 0 deletions bindings/node/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
try {
module.exports = require("../../build/Release/tree_sitter_glimmer_binding");
} catch (error1) {
if (error1.code !== "MODULE_NOT_FOUND") {
throw error1;
}
try {
module.exports = require("../../build/Debug/tree_sitter_glimmer_binding");
} catch (error2) {
if (error2.code !== "MODULE_NOT_FOUND") {
throw error2;
}
throw error1;
}
}

try {
module.exports.nodeTypeInfo = require("../../src/node-types.json");
} catch (_) {}
40 changes: 40 additions & 0 deletions bindings/rust/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
fn main() {
let src_dir = std::path::Path::new("src");

let mut c_config = cc::Build::new();
c_config.include(&src_dir);
c_config
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable")
.flag_if_supported("-Wno-trigraphs");
let parser_path = src_dir.join("parser.c");
c_config.file(&parser_path);

// If your language uses an external scanner written in C,
// then include this block of code:

/*
let scanner_path = src_dir.join("scanner.c");
c_config.file(&scanner_path);
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
*/

println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
c_config.compile("parser");

// If your language uses an external scanner written in C++,
// then include this block of code:

/*
let mut cpp_config = cc::Build::new();
cpp_config.cpp(true);
cpp_config.include(&src_dir);
cpp_config
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable");
let scanner_path = src_dir.join("scanner.cc");
cpp_config.file(&scanner_path);
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
cpp_config.compile("scanner");
*/
}
52 changes: 52 additions & 0 deletions bindings/rust/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//! This crate provides glimmer language support for the [tree-sitter][] parsing library.
//!
//! Typically, you will use the [language][language func] function to add this language to a
//! tree-sitter [Parser][], and then use the parser to parse some code:
//!
//! ```
//! let code = "";
//! let mut parser = tree_sitter::Parser::new();
//! parser.set_language(tree_sitter_javascript::language()).expect("Error loading glimmer grammar");
//! let tree = parser.parse(code, None).unwrap();
//! ```
//!
//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
//! [language func]: fn.language.html
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
//! [tree-sitter]: https://tree-sitter.github.io/
use tree_sitter::Language;

extern "C" {
fn tree_sitter_glimmer() -> Language;
}

/// Get the tree-sitter [Language][] for this grammar.
///
/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
pub fn language() -> Language {
unsafe { tree_sitter_glimmer() }
}

/// The content of the [`node-types.json`][] file for this grammar.
///
/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types
pub const NODE_TYPES: &'static str = include_str!("../../src/node-types.json");

// Uncomment these to include any queries that this grammar contains

// pub const HIGHLIGHTS_QUERY: &'static str = include_str!("../../queries/highlights.scm");
// pub const INJECTIONS_QUERY: &'static str = include_str!("../../queries/injections.scm");
// pub const LOCALS_QUERY: &'static str = include_str!("../../queries/locals.scm");
// pub const TAGS_QUERY: &'static str = include_str!("../../queries/tags.scm");

#[cfg(test)]
mod tests {
#[test]
fn test_can_load_grammar() {
let mut parser = tree_sitter::Parser::new();
parser
.set_language(super::language())
.expect("Error loading glimmer language");
}
}
13 changes: 0 additions & 13 deletions index.js

This file was deleted.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "tree-sitter-glimmer",
"version": "1.0.0",
"main": "index.js",
"main": "bindings/node",
"license": "MIT",
"private": true,
"scripts": {
Expand All @@ -17,7 +17,7 @@
"husky": "^5.1.1",
"lint-staged": "^10.5.4",
"prettier": "^2.2.1",
"tree-sitter-cli": "^0.18.0"
"tree-sitter-cli": "^0.19.0"
},
"tree-sitter": [
{
Expand Down
1 change: 1 addition & 0 deletions src/grammar.json
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,7 @@
}
],
"conflicts": [],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
Expand Down
55 changes: 29 additions & 26 deletions src/parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#define LANGUAGE_VERSION 12
#define LANGUAGE_VERSION 13
#define STATE_COUNT 67
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 47
Expand All @@ -14,6 +14,7 @@
#define EXTERNAL_TOKEN_COUNT 1
#define FIELD_COUNT 0
#define MAX_ALIAS_SEQUENCE_LENGTH 5
#define PRODUCTION_ID_COUNT 1

enum {
sym_text_node = 1,
Expand Down Expand Up @@ -355,27 +356,28 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
},
};

static TSSymbol ts_alias_sequences[1][MAX_ALIAS_SEQUENCE_LENGTH] = {
static TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
[0] = {0},
};

static uint16_t ts_non_terminal_alias_map[] = {
0,
};

static inline bool sym_attribute_name_character_set_1(int32_t lookahead) {
return
lookahead == 0 ||
lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ' ||
lookahead == '"' ||
lookahead == '\'' ||
lookahead == '/' ||
('<' <= lookahead && lookahead <= '>') ||
lookahead == '{' ||
lookahead == '}';
static inline bool sym_attribute_name_character_set_1(int32_t c) {
return (c < '\''
? (c < '\r'
? (c < '\t'
? c == 0
: c <= '\n')
: (c <= '\r' || (c < '"'
? c == ' '
: c <= '"')))
: (c <= '\'' || (c < '{'
? (c < '<'
? c == '/'
: c <= '>')
: (c <= '{' || c == '}'))));
}

static bool ts_lex(TSLexer *lexer, TSStateId state) {
Expand Down Expand Up @@ -1777,13 +1779,21 @@ extern const TSLanguage *tree_sitter_glimmer(void) {
.alias_count = ALIAS_COUNT,
.token_count = TOKEN_COUNT,
.external_token_count = EXTERNAL_TOKEN_COUNT,
.symbol_names = ts_symbol_names,
.symbol_metadata = ts_symbol_metadata,
.state_count = STATE_COUNT,
.large_state_count = LARGE_STATE_COUNT,
.production_id_count = PRODUCTION_ID_COUNT,
.field_count = FIELD_COUNT,
.max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
.parse_table = (const uint16_t *)ts_parse_table,
.small_parse_table = (const uint16_t *)ts_small_parse_table,
.small_parse_table_map = (const uint32_t *)ts_small_parse_table_map,
.parse_actions = ts_parse_actions,
.lex_modes = ts_lex_modes,
.symbol_names = ts_symbol_names,
.symbol_metadata = ts_symbol_metadata,
.public_symbol_map = ts_symbol_map,
.alias_map = ts_non_terminal_alias_map,
.alias_sequences = (const TSSymbol *)ts_alias_sequences,
.max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
.lex_modes = ts_lex_modes,
.lex_fn = ts_lex,
.external_scanner = {
(const bool *)ts_external_scanner_states,
Expand All @@ -1794,13 +1804,6 @@ extern const TSLanguage *tree_sitter_glimmer(void) {
tree_sitter_glimmer_external_scanner_serialize,
tree_sitter_glimmer_external_scanner_deserialize,
},
.field_count = FIELD_COUNT,
.large_state_count = LARGE_STATE_COUNT,
.small_parse_table = (const uint16_t *)ts_small_parse_table,
.small_parse_table_map = (const uint32_t *)ts_small_parse_table_map,
.public_symbol_map = ts_symbol_map,
.alias_map = ts_non_terminal_alias_map,
.state_count = STATE_COUNT,
};
return &language;
}
Expand Down
Loading

0 comments on commit c5cc746

Please sign in to comment.