21 lines
388 B
Rust
21 lines
388 B
Rust
|
use crate::token::{self, Token};
|
||
|
|
||
|
#[derive(Debug, Clone, PartialEq)]
|
||
|
pub enum Expression {
|
||
|
Binary {
|
||
|
left: Box<Expression>,
|
||
|
operator: Token,
|
||
|
right: Box<Expression>,
|
||
|
},
|
||
|
Grouping {
|
||
|
expression: Box<Expression>,
|
||
|
},
|
||
|
Literal {
|
||
|
value: token::Literal,
|
||
|
},
|
||
|
Unary {
|
||
|
operator: Token,
|
||
|
right: Box<Expression>,
|
||
|
},
|
||
|
}
|