diff --git a/src/grammar.rs b/src/grammar.rs index 7eb1ac8..bf63666 100644 --- a/src/grammar.rs +++ b/src/grammar.rs @@ -1,5 +1,5 @@ -#[derive(Show)] +#[derive(Debug)] #[derive(Clone)] #[derive(PartialEq)] pub enum AddOp { @@ -7,7 +7,7 @@ pub enum AddOp { Subtract, } -#[derive(Show)] +#[derive(Debug)] #[derive(Clone)] #[derive(PartialEq)] pub enum MultOp { @@ -17,16 +17,16 @@ pub enum MultOp { } #[derive(Clone)] -#[derive(Show)] +#[derive(Debug)] #[derive(PartialEq)] pub struct AddTerm(pub AddOp, pub Expr); #[derive(Clone)] -#[derive(Show)] +#[derive(Debug)] #[derive(PartialEq)] pub struct MultTerm(pub MultOp, pub Expr); -#[derive(Show)] +#[derive(Debug)] #[derive(Clone)] #[derive(PartialEq)] pub enum Expr { @@ -38,12 +38,12 @@ pub enum Expr { //for now this is it's own type and not a statement -#[derive(Show)] +#[derive(Debug)] #[derive(Clone)] #[derive(PartialEq)] pub struct Block(pub Vec); -#[derive(Show)] +#[derive(Debug)] #[derive(Clone)] #[derive(PartialEq)] pub enum Statement { @@ -53,7 +53,7 @@ pub enum Statement { While(Expr, Comparator, Expr, Block), } -#[derive(Show)] +#[derive(Debug)] #[derive(Clone)] #[derive(Eq)] #[derive(PartialEq)] @@ -68,7 +68,7 @@ pub enum Comparator { -#[derive(Show)] +#[derive(Debug)] #[derive(Eq)] #[derive(PartialEq)] #[derive(Clone)] diff --git a/src/lexer.rs b/src/lexer.rs index 80a1369..e186f4a 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -11,10 +11,10 @@ use std::str::FromStr; pub fn token() -> Box>> { fn lt(s: &str, t: Token) -> RegexLiteralParser { - str_lit((String::from_str(r"^[ \t]*") + s).as_str(), t) + str_lit((String::from_str(r"^[ \t]*").unwrap() + s).as_str(), t) } - let ident = capture(r"^[ \t]*([a-zA-Z]\w*)[ \t]*", |caps| Token::Ident(String::from_str(caps.at(1).unwrap()))); + let ident = capture(r"^[ \t]*([a-zA-Z]\w*)[ \t]*", |caps| Token::Ident(String::from_str(caps.at(1).unwrap()).unwrap())); let number = capture(r"^[ \t]*(\d+)[ \t]*", |caps| Token::Number(FromStr::from_str(caps.at(1).unwrap()).unwrap())); diff --git a/src/main.rs b/src/main.rs index 67caf2f..26cb820 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +#![feature(custom_derive)] #![feature(unboxed_closures)] #![feature(collections)] #![feature(convert)]