Rust编写的JavaScript引擎,该项目是一个试验性质的项目。
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
extern crate boa;
|
|
|
|
use boa::exec::{Executor, Interpreter};
|
|
|
|
use boa::syntax::lexer::Lexer;
|
|
|
|
use boa::syntax::parser::Parser;
|
|
|
|
use std::fs::read_to_string;
|
|
|
|
|
|
|
|
pub fn main() {
|
|
|
|
let buffer = read_to_string("tests/js/test.js").unwrap();
|
|
|
|
let mut lexer = Lexer::new(&buffer);
|
|
|
|
lexer.lex().unwrap();
|
|
|
|
let tokens = lexer.tokens;
|
|
|
|
|
|
|
|
// Setup executor
|
|
|
|
let expr = Parser::new(tokens).parse_all().unwrap();
|
|
|
|
|
|
|
|
let mut engine: Interpreter = Executor::new();
|
|
|
|
let result = engine.run(&expr);
|
|
|
|
match result {
|
|
|
|
Ok(v) => print!("{}", v),
|
|
|
|
Err(v) => print!("Error: {}", v),
|
|
|
|
}
|
|
|
|
}
|