diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..aea591a Binary files /dev/null and b/.DS_Store differ diff --git a/src/lang/token.rs b/src/lang/token.rs index 3a52950..2ffe466 100644 --- a/src/lang/token.rs +++ b/src/lang/token.rs @@ -43,7 +43,7 @@ pub enum TokenKind { While, End, Function, - + True, False, And, @@ -51,7 +51,7 @@ pub enum TokenKind { Or, Eof -} +} //token class #[derive(Debug, PartialEq, Clone, Copy)] pub struct Location { diff --git a/src/main.rs b/src/main.rs index e7a11a9..d09cc62 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,19 @@ +use std::{fs,env}; +use rua::lang::{lexer,parser,compiler,vm}; + fn main() { - println!("Hello, world!"); + + let args:Vec = env::args().collect(); + let path = &args[1]; + let content = fs::read_to_string(path).expect("error"); + + let mut lexer = lexer::Lexer::new(&content); + let mut compiler = compiler::Compiler::new(); + let mut parse = parser::Parser::new(lexer.analyze()); + + let res = compiler.compile(&parse.parse()); + + let mut vm = vm::VirtualMachine::new(res); + vm.run(); + }