From a1b4d190ab6b574f93225d0701c20139f8f0c705 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Mon, 24 Sep 2018 11:13:53 -0700 Subject: [PATCH] Remove calls to the mk macro on final returns in parser.rs --- Cargo.lock | 2 +- src/bin/bin.rs | 3 ++- src/lib/syntax/parser.rs | 14 ++++++++++++-- tests/js/defineVar.js | 4 +++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a7d3c09d72..1736f44bcc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,4 +1,4 @@ [[package]] name = "Boa" -version = "0.1.2" +version = "0.1.3" diff --git a/src/bin/bin.rs b/src/bin/bin.rs index adb04000ba..4635196a11 100644 --- a/src/bin/bin.rs +++ b/src/bin/bin.rs @@ -5,7 +5,8 @@ use std::fs::read_to_string; pub fn main() { let buffer = read_to_string("tests/js/defineVar.js").unwrap(); - let lexer = Lexer::new(&buffer); + let mut lexer = Lexer::new(&buffer); + lexer.lex().unwrap(); let tokens = lexer.tokens; match Parser::new(tokens).parse_all() { Ok(e) => println!("{}", e), diff --git a/src/lib/syntax/parser.rs b/src/lib/syntax/parser.rs index 467455ae4e..8eb65b0230 100644 --- a/src/lib/syntax/parser.rs +++ b/src/lib/syntax/parser.rs @@ -5,6 +5,7 @@ use syntax::ast::keyword::Keyword; use syntax::ast::op::{BinOp, BitOp, CompOp, LogOp, NumOp, Operator, UnaryOp}; use syntax::ast::punc::Punctuator; use syntax::ast::token::{Token, TokenData}; +use syntax::ast::pos::Position; macro_rules! mk ( ($this:expr, $def:expr) => { @@ -55,7 +56,16 @@ impl Parser { let result = try!(self.parse()); exprs.push(result); } - Ok(mk!(self, ExprDef::BlockExpr(exprs))) + + // In the case of `BlockExpr` the Positions seem unnecessary + // TODO: refactor this or the `mk!` perhaps? + Ok( + Expr::new( + ExprDef::BlockExpr(exprs), + Position::new(1, 1), + Position::new(1, 1) + ) + ) } fn get_token(&self, pos: usize) -> Result { @@ -120,7 +130,7 @@ impl Parser { } } } - Ok(mk!(self, ExprDef::VarDeclExpr(vars))) + Ok(Expr::new(ExprDef::VarDeclExpr(vars), Position::new(1, 16), Position::new(1, 16))) } Keyword::Return => Ok(mk!( self, diff --git a/tests/js/defineVar.js b/tests/js/defineVar.js index 4a9a312b05..910bd2a504 100644 --- a/tests/js/defineVar.js +++ b/tests/js/defineVar.js @@ -1 +1,3 @@ -var a = 'Jason'; \ No newline at end of file +var a = 'Jason'; +var b = 'boa'; +console.log(a, b);