diff --git a/examples/lex.rs b/examples/lex.rs
index 9640c15bb6d01802b905d9e6108a5ae4a7391644..51f416eda6fcdb5acb2d55035a04b9a28732898f 100644
--- a/examples/lex.rs
+++ b/examples/lex.rs
@@ -11,6 +11,9 @@ fn main() {
let tokens = lexer.lex(source);
match tokens {
Ok(tokens) => {
+ for token in &tokens.tokens {
+ info!("{:?}", token);
+ }
println!("Keywords:\n{}", tokens.get_keywords());
println!("Identifiers:\n{}", tokens.get_identifiers());
println!("Integers:\n{}", tokens.get_integer_literals());
diff --git a/src/ast/mod.rs b/src/ast/mod.rs
index 274142d3454fd9b31ddfd33c173ca3e96400a812..e17b2c070c98048c34f72aa4b2d5f345ae87a523 100644
--- a/src/ast/mod.rs
+++ b/src/ast/mod.rs
@@ -1 +1,21 @@
-mod node;
+// mod node;
+//
+// pub enum Program {
+// VarList(Vec<Var>),
+// FunList(Vec<Fun>),
+// }
+//
+// pub struct ID {
+// pub name: String,
+// }
+//
+// pub struct Var {
+// pub name: String,
+// pub value: Option<Expr>,
+// }
+//
+// pub struct Fun {
+// pub name: String,
+// pub params: Vec<ID>,
+// pub body: Vec<Stmt>,
+// }
\ No newline at end of file
diff --git a/src/ast/node.rs b/src/ast/node.rs
index 188a0ef9ec3d32baa833d104293c9709331de8ec..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/src/ast/node.rs
+++ b/src/ast/node.rs
@@ -1,12 +0,0 @@
-pub struct Node<'a> {
- pub op: i32,
- pub val: String,
- pub sym: IdList,
- pub fnum: i32,
- pub line_no: i32,
- pub left: &'a Node<'a>,
- pub right: &'a Node<'a>,
- pub next: &'a Node<'a>,
-}
-
-pub struct IdList {}
diff --git a/src/lib.rs b/src/lib.rs
index 22310259fb2e7cd29f98462485b37639a228060f..f0bf18cab1e0a46804c1d0ef7e4c15c03e033492 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,5 +1,6 @@
mod ast;
pub mod lex;
+mod parser;
extern crate pretty_env_logger;
#[macro_use] extern crate log;
\ No newline at end of file
diff --git a/src/parser/mod.rs b/src/parser/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..44d0bbf2e9d0bc7dd8d84963c4d909942ca0e561
--- /dev/null
+++ b/src/parser/mod.rs
@@ -0,0 +1,12 @@
+use crate::lex::lexer::TokenStream;
+
+pub struct Parser {
+ tokens: TokenStream,
+}
+
+impl Parser {
+ // This should parse a token stream into an AST.
+ pub fn parse(tokens: TokenStream) {
+ todo!("Implement parser");
+ }
+}
\ No newline at end of file