summaryrefslogtreecommitdiff
path: root/src/ast.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast.rs')
-rw-r--r--src/ast.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ast.rs b/src/ast.rs
index 2814ef9..97ed91d 100644
--- a/src/ast.rs
+++ b/src/ast.rs
@@ -35,6 +35,12 @@ impl<T> WithLocation<T> {
pub struct Program(pub Box<WithLocation<Expression>>);
#[derive(Debug)]
+pub enum UnaryOp {
+ Pos,
+ Neg,
+}
+
+#[derive(Debug)]
pub enum BinOp {
Add,
Sub,
@@ -45,6 +51,7 @@ pub enum BinOp {
#[derive(Debug)]
pub enum Expression {
+ UnaryOp(UnaryOp, Box<WithLocation<Expression>>),
BinOp(BinOp, Box<WithLocation<Expression>>, Box<WithLocation<Expression>>),
Number(u64),
Nil,