We have blocks & scopes
This commit is contained in:
@@ -3,6 +3,7 @@ use super::{ whitespace_chars, Token };
|
||||
#[derive(Debug)]
|
||||
pub enum Keyword {
|
||||
Let,
|
||||
Fn,
|
||||
}
|
||||
|
||||
macro_rules! match_keyword {
|
||||
@@ -15,5 +16,6 @@ macro_rules! match_keyword {
|
||||
|
||||
pub fn parse_keyword(input: &str) -> Option<(Token, &str)> {
|
||||
match_keyword!("let", Token::Kw(Keyword::Let), input);
|
||||
match_keyword!("fn", Token::Kw(Keyword::Fn), input);
|
||||
None
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ use super::Token;
|
||||
pub enum Symbol {
|
||||
EqualSign,
|
||||
Semicolon,
|
||||
OpenBrace,
|
||||
CloseBrace,
|
||||
}
|
||||
|
||||
pub fn parse_symbol(input: &str) -> Option<(Token, &str)> {
|
||||
@@ -12,6 +14,8 @@ pub fn parse_symbol(input: &str) -> Option<(Token, &str)> {
|
||||
match c {
|
||||
'=' => Some((Token::Sym(Symbol::EqualSign), input)),
|
||||
';' => Some((Token::Sym(Symbol::Semicolon), input)),
|
||||
'{' => Some((Token::Sym(Symbol::OpenBrace), input)),
|
||||
'}' => Some((Token::Sym(Symbol::CloseBrace), input)),
|
||||
_ => None
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user