Clean up
This commit is contained in:
parent
12d34d6354
commit
0c758c9768
@ -1185,65 +1185,13 @@ impl<'src> Parser<'src> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn expect_expression(&mut self, _: Allowed) -> Result<(), ParseError> {
|
fn expect_expression(&mut self, _: Allowed) -> Result<(), ParseError> {
|
||||||
match self.current_token {
|
if self.current_token.is_expression() {
|
||||||
Token::Boolean(_)
|
Ok(())
|
||||||
| Token::Byte(_)
|
} else {
|
||||||
| Token::Character(_)
|
Err(ParseError::ExpectedExpression {
|
||||||
| Token::Float(_)
|
|
||||||
| Token::Identifier(_)
|
|
||||||
| Token::Integer(_)
|
|
||||||
| Token::String(_)
|
|
||||||
| Token::Break
|
|
||||||
| Token::If
|
|
||||||
| Token::Return
|
|
||||||
| Token::Map
|
|
||||||
| Token::Loop
|
|
||||||
| Token::Struct
|
|
||||||
| Token::BangEqual
|
|
||||||
| Token::DoubleAmpersand
|
|
||||||
| Token::DoubleEqual
|
|
||||||
| Token::DoublePipe
|
|
||||||
| Token::Equal
|
|
||||||
| Token::Greater
|
|
||||||
| Token::GreaterEqual
|
|
||||||
| Token::LeftCurlyBrace
|
|
||||||
| Token::LeftParenthesis
|
|
||||||
| Token::LeftSquareBrace
|
|
||||||
| Token::Less
|
|
||||||
| Token::LessEqual
|
|
||||||
| Token::Minus
|
|
||||||
| Token::MinusEqual
|
|
||||||
| Token::Percent
|
|
||||||
| Token::PercentEqual
|
|
||||||
| Token::Plus
|
|
||||||
| Token::PlusEqual
|
|
||||||
| Token::Slash
|
|
||||||
| Token::SlashEqual
|
|
||||||
| Token::Star
|
|
||||||
| Token::StarEqual => Ok(()),
|
|
||||||
Token::Eof
|
|
||||||
| Token::Async
|
|
||||||
| Token::Bool
|
|
||||||
| Token::Else
|
|
||||||
| Token::FloatKeyword
|
|
||||||
| Token::Fn
|
|
||||||
| Token::Int
|
|
||||||
| Token::Let
|
|
||||||
| Token::Mut
|
|
||||||
| Token::Str
|
|
||||||
| Token::While
|
|
||||||
| Token::Bang
|
|
||||||
| Token::Colon
|
|
||||||
| Token::Comma
|
|
||||||
| Token::Dot
|
|
||||||
| Token::DoubleDot
|
|
||||||
| Token::RightCurlyBrace
|
|
||||||
| Token::RightParenthesis
|
|
||||||
| Token::RightSquareBrace
|
|
||||||
| Token::Semicolon => Err(ParseError::ExpectedExpression {
|
|
||||||
found: self.current_token.to_owned(),
|
found: self.current_token.to_owned(),
|
||||||
position: self.current_position,
|
position: self.current_position,
|
||||||
}),
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,6 +311,48 @@ impl<'src> Token<'src> {
|
|||||||
Token::While => TokenKind::While,
|
Token::While => TokenKind::While,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns true if the token yields a value, begins an expression or is an expression operator.
|
||||||
|
pub fn is_expression(&self) -> bool {
|
||||||
|
matches!(
|
||||||
|
self,
|
||||||
|
Token::Boolean(_)
|
||||||
|
| Token::Byte(_)
|
||||||
|
| Token::Character(_)
|
||||||
|
| Token::Float(_)
|
||||||
|
| Token::Identifier(_)
|
||||||
|
| Token::Integer(_)
|
||||||
|
| Token::String(_)
|
||||||
|
| Token::Break
|
||||||
|
| Token::If
|
||||||
|
| Token::Return
|
||||||
|
| Token::Map
|
||||||
|
| Token::Loop
|
||||||
|
| Token::Struct
|
||||||
|
| Token::BangEqual
|
||||||
|
| Token::DoubleAmpersand
|
||||||
|
| Token::DoubleEqual
|
||||||
|
| Token::DoublePipe
|
||||||
|
| Token::Equal
|
||||||
|
| Token::Greater
|
||||||
|
| Token::GreaterEqual
|
||||||
|
| Token::LeftCurlyBrace
|
||||||
|
| Token::LeftParenthesis
|
||||||
|
| Token::LeftSquareBrace
|
||||||
|
| Token::Less
|
||||||
|
| Token::LessEqual
|
||||||
|
| Token::Minus
|
||||||
|
| Token::MinusEqual
|
||||||
|
| Token::Percent
|
||||||
|
| Token::PercentEqual
|
||||||
|
| Token::Plus
|
||||||
|
| Token::PlusEqual
|
||||||
|
| Token::Slash
|
||||||
|
| Token::SlashEqual
|
||||||
|
| Token::Star
|
||||||
|
| Token::StarEqual
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'src> Display for Token<'src> {
|
impl<'src> Display for Token<'src> {
|
||||||
|
Loading…
Reference in New Issue
Block a user