BF code is now Vec<u8>

This commit is contained in:
Erin 2021-06-11 18:10:11 +02:00 committed by ondra05
parent 711ad27e00
commit 3bcef28843
2 changed files with 18 additions and 20 deletions

View file

@ -66,7 +66,7 @@ pub enum StmtKind {
BfFunctio { BfFunctio {
iden: Iden, iden: Iden,
tape_len: Option<Expr>, tape_len: Option<Expr>,
code: String, code: Vec<u8>,
}, },
Call { Call {
iden: Iden, iden: Iden,

View file

@ -402,26 +402,24 @@ impl<'source> Parser<'source> {
_ => todo!(), _ => todo!(),
}; };
let mut code = String::new(); let mut code: Vec<u8> = vec![];
loop { loop {
code.push_str( match self
match self .lexer
.lexer .next()
.next() .ok_or(Error::unexpected_eof(self.lexer.span().start))?
.ok_or(Error::unexpected_eof(self.lexer.span().start))? {
{ Token::Plus
Token::Plus | Token::Minus
| Token::Minus | Token::Dot
| Token::Dot | Token::Comma
| Token::Comma | Token::LeftBracket
| Token::LeftBracket | Token::RightBracket
| Token::RightBracket | Token::LessThan
| Token::LessThan | Token::GreaterThan => code.push(self.lexer.slice().as_bytes()[0]),
| Token::GreaterThan => self.lexer.slice(), Token::RightCurly => break,
Token::RightCurly => break, _ => (),
_ => "", }
},
);
} }
Ok(StmtKind::BfFunctio { Ok(StmtKind::BfFunctio {