add gpsl bin

This commit is contained in:
mii
2022-04-21 22:49:47 +09:00
parent aeaebaae8d
commit 8805271801
4 changed files with 36 additions and 1 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
target/

29
src/bin/gpsl.rs Normal file
View File

@ -0,0 +1,29 @@
use gpsl::{
gpsl::GPSL,
source::Source,
std::*,
tokenizer::Tokenizer,
parser::Parser
};
use std::{fs, env, collections::HashMap};
fn main() {
env::set_var("RUST_LOG", "info");
env_logger::init();
let args: Vec<String> = env::args().collect();
let mut source = Source::new(fs::read_to_string(&(args.last().unwrap())).expect("Cannot read file."));
let mut tokenizer = Tokenizer::new();
tokenizer.tokenize(&mut source);
let mut parser = Parser {
tokenizer,
local_vars: HashMap::new()
};
let mut gpsl = GPSL::new(source, Some(parser.functions().unwrap()), vec![STD_FUNC]);
let res = gpsl.run("main".to_string(), vec![]);
if let Err(err) = res {
println!("Error: {:?}", err);
}
}

5
test.gpsl Normal file
View File

@ -0,0 +1,5 @@
fn main() {
let a: String;
a = "test";
println(a);
}