diff options
| author | Joel Martin <github@martintribe.org> | 2014-10-25 12:41:24 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2015-01-06 21:58:57 -0600 |
| commit | 0ab374bc261f871ab8fbbc13e0096f44225e2a3f (patch) | |
| tree | 18bf694e55ee767e5d55edf73819affa3f0214b5 /rust/src/reader.rs | |
| parent | abdd56ebc0e01cd92f694ef2bcafcc394453d055 (diff) | |
| download | mal-0ab374bc261f871ab8fbbc13e0096f44225e2a3f.tar.gz mal-0ab374bc261f871ab8fbbc13e0096f44225e2a3f.zip | |
rust: add step2_eval.
Diffstat (limited to 'rust/src/reader.rs')
| -rw-r--r-- | rust/src/reader.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/rust/src/reader.rs b/rust/src/reader.rs index 9ad129b..035cfde 100644 --- a/rust/src/reader.rs +++ b/rust/src/reader.rs @@ -6,7 +6,7 @@ extern crate pcre; use std::rc::Rc; -use types::{MalVal,Nil,True,False,Int,Strn,Sym,List}; +use types::{MalVal,MalRet,Nil,True,False,Int,Strn,Sym,List}; use self::pcre::Pcre; use super::printer::unescape_str; @@ -54,7 +54,7 @@ fn tokenize(str :String) -> Vec<String> { results } -fn read_atom(rdr : &mut Reader) -> Result<MalVal,String> { +fn read_atom(rdr : &mut Reader) -> MalRet { let otoken = rdr.next(); //println!("read_atom: {}", otoken); if otoken.is_none() { return Err("read_atom underflow".to_string()); } @@ -77,7 +77,7 @@ fn read_atom(rdr : &mut Reader) -> Result<MalVal,String> { } } -fn read_list(rdr : &mut Reader) -> Result<MalVal,String> { +fn read_list(rdr : &mut Reader) -> MalRet { let otoken = rdr.next(); if otoken.is_none() { return Err("read_atom underflow".to_string()); } let stoken = otoken.unwrap(); @@ -103,7 +103,7 @@ fn read_list(rdr : &mut Reader) -> Result<MalVal,String> { Ok(Rc::new(List(ast_vec))) } -fn read_form(rdr : &mut Reader) -> Result<MalVal,String> { +fn read_form(rdr : &mut Reader) -> MalRet { let otoken = rdr.peek(); //println!("read_form: {}", otoken); let stoken = otoken.unwrap(); @@ -115,7 +115,7 @@ fn read_form(rdr : &mut Reader) -> Result<MalVal,String> { } } -pub fn read_str(str :String) -> Result<MalVal,String> { +pub fn read_str(str :String) -> MalRet { let tokens = tokenize(str); if tokens.len() == 0 { return Err("<empty line>".to_string()); |
