Some basic parsing, with interned strings.
This commit is contained in:
@@ -1,12 +1,19 @@
|
||||
pub enum Stmt {
|
||||
Binding(String, Expr),
|
||||
Expr(Expr),
|
||||
use crate::syntax::token_stream::Location;
|
||||
|
||||
pub struct Program {
|
||||
pub statements: Vec<Statement>,
|
||||
pub result: Expression,
|
||||
}
|
||||
|
||||
pub enum Expr {
|
||||
Value(Value),
|
||||
Reference(String),
|
||||
Primitive(String, Vec<Expr>),
|
||||
pub enum Statement {
|
||||
Binding(Location, String, Expression),
|
||||
Expr(Location, Expression),
|
||||
}
|
||||
|
||||
pub enum Expression {
|
||||
Value(Location, Value),
|
||||
Reference(Location, String),
|
||||
Primitive(Location, String, Vec<Expression>),
|
||||
}
|
||||
|
||||
pub enum Value {
|
||||
|
||||
Reference in New Issue
Block a user