Merge remote-tracking branch 'origin/main' into ql_gen

This commit is contained in:
Nick Rolfe
2020-10-28 10:30:36 +00:00
11 changed files with 25 additions and 54 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
Cargo.lock -diff -whitespace

View File

@@ -20,8 +20,6 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Build
run: cargo build --verbose
- name: Run tests

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "tree-sitter-ruby"]
path = tree-sitter-ruby
url = https://github.com/tree-sitter/tree-sitter-ruby.git

21
Cargo.lock generated
View File

@@ -132,9 +132,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.79"
version = "0.2.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743"
checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614"
[[package]]
name = "log"
@@ -256,12 +256,12 @@ checksum = "8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c"
name = "ruby-extractor"
version = "0.1.0"
dependencies = [
"cc",
"clap",
"node-types",
"tracing",
"tracing-subscriber",
"tree-sitter",
"tree-sitter-ruby",
]
[[package]]
@@ -271,6 +271,7 @@ dependencies = [
"node-types",
"tracing",
"tracing-subscriber",
"tree-sitter-ruby",
]
[[package]]
@@ -364,9 +365,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "syn"
version = "1.0.46"
version = "1.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ad5de3220ea04da322618ded2c42233d02baca219d6f160a3e9c87cda16c942"
checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac"
dependencies = [
"proc-macro2",
"quote",
@@ -487,6 +488,16 @@ dependencies = [
"regex",
]
[[package]]
name = "tree-sitter-ruby"
version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50dfb5eb364529287bc6007e1d0f2908b831b1102db3082398ae03da0f35d617"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "unicode-width"
version = "0.1.8"

View File

@@ -9,9 +9,7 @@ edition = "2018"
[dependencies]
node-types = { path = "../node-types" }
tree-sitter = "0.17.0"
tree-sitter-ruby = "0.16"
clap = "2.33"
tracing = "0.1"
tracing-subscriber = { version = "0.2", features = ["env-filter"] }
[build-dependencies]
cc="*"

View File

@@ -1,27 +0,0 @@
use std::path::PathBuf;
fn main() {
let src_dir: PathBuf = ["..", "tree-sitter-ruby", "src"].iter().collect();
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);
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
c_config.compile("parser");
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");
}

View File

@@ -4,15 +4,8 @@ use clap;
use std::fs;
use std::io::BufRead;
use std::path::{Path, PathBuf};
use tree_sitter::Language;
const NODE_TYPES: &'static str = include_str!("../../tree-sitter-ruby/src/node-types.json");
fn main() -> std::io::Result<()> {
extern "C" {
fn tree_sitter_ruby() -> Language;
}
tracing_subscriber::fmt()
.with_target(false)
.without_time()
@@ -43,8 +36,8 @@ fn main() -> std::io::Result<()> {
let file_list = matches.value_of("file-list").expect("missing --file-list");
let file_list = fs::File::open(file_list)?;
let language = unsafe { tree_sitter_ruby() };
let schema = node_types::read_node_types_str(NODE_TYPES)?;
let language = tree_sitter_ruby::language();
let schema = node_types::read_node_types_str(tree_sitter_ruby::NODE_TYPES)?;
let mut extractor = extractor::create(language, schema);
for line in std::io::BufReader::new(file_list).lines() {
let path = PathBuf::from(line?);

View File

@@ -10,3 +10,4 @@ edition = "2018"
node-types = { path = "../node-types" }
tracing = "0.1"
tracing-subscriber = { version = "0.2", features = ["env-filter"] }
tree-sitter-ruby = "0.16"

View File

@@ -2,7 +2,7 @@ use std::path::PathBuf;
pub struct Language {
pub name: String,
pub node_types_path: PathBuf,
pub node_types: &'static str,
pub dbscheme_path: PathBuf,
pub ql_library_path: PathBuf,
}

View File

@@ -288,13 +288,13 @@ fn main() {
// command line.
let ruby = Language {
name: "Ruby".to_string(),
node_types_path: PathBuf::from("tree-sitter-ruby/src/node-types.json"),
node_types: tree_sitter_ruby::NODE_TYPES,
dbscheme_path: PathBuf::from("ruby.dbscheme"),
ql_library_path: PathBuf::from("ruby_ast.qll"),
};
match node_types::read_node_types(&ruby.node_types_path) {
match node_types::read_node_types_str(&ruby.node_types) {
Err(e) => {
error!("Failed to read '{}': {}", ruby.node_types_path.display(), e);
error!("Failed to read node-types JSON for {}: {}", ruby.name, e);
std::process::exit(1);
}
Ok(nodes) => {

Submodule tree-sitter-ruby deleted from 724eedf253