This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
cs330_f2016:labw [2018/02/07 23:30] morse |
cs330_f2016:labw [2018/09/17 23:23] morse |
||
---|---|---|---|
Line 6: | Line 6: | ||
====Pre-requisite:==== | ====Pre-requisite:==== | ||
- | For this lab, you should have Julia 0.6+ installed, the same as for the rudimentary interpreter. You will need both the Lexer and Error modules. | + | For this lab, you should have Julia 1.0 installed, the same as for the rudimentary interpreter. You will need both the Lexer and Error modules. |
---- | ---- | ||
Line 131: | Line 131: | ||
abstract type AE end | abstract type AE end | ||
- | type NumNode <: AE | + | struct NumNode <: AE |
n::Real | n::Real | ||
end | end | ||
- | type BinopNode <: AE | + | struct BinopNode <: AE |
op::Function | op::Function | ||
lhs::AE | lhs::AE | ||
Line 141: | Line 141: | ||
end | end | ||
- | type If0Node <: AE | + | struct If0Node <: AE |
condition::AE | condition::AE | ||
zero_branch::AE | zero_branch::AE | ||
Line 147: | Line 147: | ||
end | end | ||
- | type WithNode <: AE | + | struct WithNode <: AE |
sym::Symbol | sym::Symbol | ||
binding_expr::AE | binding_expr::AE | ||
Line 153: | Line 153: | ||
end | end | ||
- | type VarRefNode <: AE | + | struct VarRefNode <: AE |
sym::Symbol | sym::Symbol | ||
end | end | ||
- | type FunDefNode <: AE | + | struct FunDefNode <: AE |
formal::Symbol | formal::Symbol | ||
fun_body::AE | fun_body::AE | ||
end | end | ||
- | type FunAppNode <: AE | + | struct FunAppNode <: AE |
fun_expr::AE | fun_expr::AE | ||
arg_expr::AE | arg_expr::AE | ||
Line 171: | Line 171: | ||
abstract type Environment end | abstract type Environment end | ||
- | type NumVal <: RetVal | + | struct NumVal <: RetVal |
n::Real | n::Real | ||
end | end | ||
- | type ClosureVal <: RetVal | + | struct ClosureVal <: RetVal |
formal::Symbol | formal::Symbol | ||
body::AE | body::AE | ||
Line 181: | Line 181: | ||
end | end | ||
- | type EmptyEnv <: Environment | + | struct EmptyEnv <: Environment |
end | end | ||
- | type ExtendedEnv <: Environment | + | struct ExtendedEnv <: Environment |
sym::Symbol | sym::Symbol | ||
val::RetVal | val::RetVal |