Initial WIP code

This commit is contained in:
greg 2019-09-25 18:41:07 -07:00
parent ae65455374
commit 39bb175722
2 changed files with 34 additions and 0 deletions

View File

@ -2,6 +2,7 @@ use std::rc::Rc;
use crate::derivative::Derivative;
mod visitor;
mod operators;
pub use operators::*;

View File

@ -0,0 +1,33 @@
use std::error::Error;
use crate::ast::*;
pub trait ASTVisitor {
fn visit(&mut self, ast: &mut AST) {
self.block(&ast.statements);
}
fn block(&mut self, statements: &Vec<Statement>) {
for statement in statements {
self.statement(statement);
}
}
fn statement(&mut self, statement: &Statement) {
use StatementKind::*;
match statement.kind {
Expression(ref expr) => self.expression(expr),
Declaration(ref decl) => self.declaration(decl),
Import(ref import_spec) => self.import(import_spec),
}
}
fn expression(&mut self, expression: &Expression) {
}
fn declaration(&mut self, declaration: &Declaration) {
}
fn import(&mut self, import: &ImportSpecifier) {
}
}