aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/ast/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/src/ast/mod.rs')
-rw-r--r--compiler/src/ast/mod.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/compiler/src/ast/mod.rs b/compiler/src/ast/mod.rs
new file mode 100644
index 0000000..4587ea7
--- /dev/null
+++ b/compiler/src/ast/mod.rs
@@ -0,0 +1,27 @@
1mod error;
2mod parser;
3
4use std::rc::Rc;
5
6use crate::span::Spanned;
7pub use error::Error;
8pub use parser::Parser;
9
10#[derive(Clone, Debug)]
11pub enum Atom {
12 Float(f64),
13 Integer(i64),
14 String(Rc<str>),
15 Symbol(Rc<str>),
16 Bool(bool),
17 Nil,
18}
19
20#[derive(Clone, Debug)]
21pub enum Expr {
22 Atom(Atom),
23 List(Vec<Spanned<Expr>>),
24}
25
26#[derive(Clone, Debug)]
27pub struct Program(pub Vec<Spanned<Expr>>);