Some basic parsing works (fixing order of operations), and one test case.
This commit is contained in:
@@ -1,21 +1,25 @@
|
||||
use crate::syntax::token_stream::Location;
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub struct Program {
|
||||
pub statements: Vec<Statement>,
|
||||
pub result: Expression,
|
||||
pub statements: Vec<Statement>,
|
||||
pub result: Expression,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub enum Statement {
|
||||
Binding(Location, String, Expression),
|
||||
Expr(Location, Expression),
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub enum Expression {
|
||||
Value(Location, Value),
|
||||
Reference(Location, String),
|
||||
Primitive(Location, String, Vec<Expression>),
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub enum Value {
|
||||
Number(Option<u8>, i128)
|
||||
Number(Option<u8>, i128),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user