diff --git a/src/lib.rs b/src/lib.rs index e69de29..76ada1a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -0,0 +1,2 @@ +pub mod parser; +pub mod runtime; diff --git a/src/parser/ast.rs b/src/parser/ast.rs new file mode 100644 index 0000000..2dc1543 --- /dev/null +++ b/src/parser/ast.rs @@ -0,0 +1,21 @@ +pub struct Program { + pub functions: Vec, +} + +pub struct Function { + pub name: String, + pub params: Vec, + pub body: Vec, +} + +pub struct Instruction { + pub opcode: String, + pub operands: Vec, +} + +pub enum Operand { + Global(String), + Local(String), + Number(i64), + Pointer(Box), +} \ No newline at end of file diff --git a/src/grammar.pest b/src/parser/grammar.pest similarity index 100% rename from src/grammar.pest rename to src/parser/grammar.pest diff --git a/src/parser/mod.rs b/src/parser/mod.rs new file mode 100644 index 0000000..851c0bc --- /dev/null +++ b/src/parser/mod.rs @@ -0,0 +1 @@ +pub mod ast; diff --git a/src/runtime.rs b/src/runtime.rs new file mode 100644 index 0000000..e69de29