Have the extract function create the TS parser object

This commit is contained in:
Nick Rolfe
2021-01-07 10:56:23 +00:00
parent bf4eac5113
commit bb2bdc01b5
2 changed files with 5 additions and 6 deletions

View File

@@ -4,7 +4,7 @@ use std::collections::BTreeSet as Set;
use std::fmt;
use std::path::Path;
use tracing::{error, info, span, Level};
use tree_sitter::{Node, Parser, Tree};
use tree_sitter::{Language, Node, Parser, Tree};
struct TrapWriter {
/// The accumulated trap entries
@@ -149,7 +149,7 @@ impl TrapWriter {
}
/// Extracts the source file at `path`, which is assumed to be canonicalized.
pub fn extract(parser: &mut Parser, schema: &NodeTypeMap, path: &Path) -> std::io::Result<Program> {
pub fn extract(language: Language, schema: &NodeTypeMap, path: &Path) -> std::io::Result<Program> {
let span = span!(
Level::TRACE,
"extract",
@@ -160,6 +160,8 @@ pub fn extract(parser: &mut Parser, schema: &NodeTypeMap, path: &Path) -> std::i
info!("extracting: {}", path.display());
let mut parser = Parser::new();
parser.set_language(language).unwrap();
let source = std::fs::read(&path)?;
let tree = parser.parse(&source, None).expect("Failed to parse file");
let mut trap_writer = new_trap_writer();