Module scmi_types
May 12, 2014 ยท View on GitHub
Scheme interpreter types (for Erlang types and specs)
. __Authors:__ Joseph Wayne Norton ([`norton@alum.mit.edu`](mailto:norton@alum.mit.edu)).Data Types
arg()
arg() = exp()
body()
body() = dexec()
denv()
denv() = scmi_env:env()
dexec()
dexec() = fun((denv(), dok(), dng()) -> exp())
dng()
dng() = fun((exp()) -> no_return())
dok()
dok() = fun((exp(), dng()) -> exp())
eof()
eof() = '?EOF'
?EOF
error()
error() = error_user() | error_read() | error_file()
error_file()
error_file() = #error_file{val = exp()}
error_read()
error_read() = #error_read{val = exp()}
error_user()
error_user() = #error_user{val = [exp(), ...]}
exception()
exception() = #exception{val = [signal()]} | #cexception{val = [signal()]}
exp()
exp() = scm_any()
expander()
expander() = #expander{val = sexec()}
f()
f() = f0() | fn() | fv() | fnv()
f0()
f0() = fun(() -> exp())
fn()
fn() = fun((...) -> exp())
fun((arg(),...) -> exp()).
fnv()
fnv() = fun((...) -> exp())
fun((arg(),...,vargs()) -> exp()).
fv()
fv() = fun((vargs()) -> exp())
iodev()
iodev() = scmi_iodev:iodev()
l()
l() = l0() | ln() | lv() | lnv()
l0()
l0() = #l0{body = body(), env = denv(), src = src()}
lip()
lip() = lip0() | lipn() | lipv() | lipnv()
lip0()
lip0() = #lip0{val = l0()}
lipn()
lipn() = #lipn{val = ln() | [ln()]}
lipnv()
lipnv() = #lipnv{val = lnv()}
lipv()
lipv() = #lipv{val = lv()}
ln()
ln() = #ln{params = params(), body = body(), env = denv(), src = src()}
lnv()
lnv() = #lnv{n = pos_integer(), params = params(), body = body(), env = denv(), src = src()}
lv()
lv() = #lv{param = param(), body = body(), env = denv(), src = src()}
nip()
nip() = nip0() | nipn() | nipv() | nipnv()
nip0()
nip0() = #nip0{val = f0()}
nipn()
nipn() = #nipn{val = fn() | [fn()]}
nipnv()
nipnv() = #nipnv{val = fnv()}
nipv()
nipv() = #nipv{val = fv()}
param()
param() = var()
params()
params() = [param()]
proc()
proc() = nip() | xnip() | lip()
senv()
senv() = scmi_analyze:senv()
sexec()
sexec() = fun((exp(), senv()) -> expander() | dexec())
signal()
signal() = #signal{obj = exp(), env = denv(), ok = dok(), ng = dng()}
src()
src() = fun(() -> [exp()])
thunk()
thunk() = nip0() | xnip0() | lip0()
var()
var() = scm_symbol() | reference()
vargs()
vargs() = [arg()]
xf()
xf() = xf0() | xfn() | xfv() | xfnv()
xf0()
xf0() = fun((denv(), dok(), dng()) -> exp())
xfn()
xfn() = fun((...) -> exp())
fun((arg(),... ,denv(), dok(), dng()) -> exp()).
xfnv()
xfnv() = fun((...) -> exp())
fun((arg(),... ,vargs(), denv(), dok(), dng()) -> exp()).
xfv()
xfv() = fun((vargs(), denv(), dok(), dng()) -> exp())
xnip()
xnip() = xnip0() | xnipn() | xnipv() | xnipnv()
xnip0()
xnip0() = #xnip0{val = xf0()}
xnipn()
xnipn() = #xnipn{val = xfn() | [xfn()]}
xnipnv()
xnipnv() = #xnipnv{val = xfnv()}
xnipv()
xnipv() = #xnipv{val = xfv()}