assets/classDiagram
classDiagram
LNumber <|-- LBigInteger
LNumber <|-- LRational
LNumber <|-- LFloat
LNumber <|-- LComplex
InputPort <|-- InputStringPort
InputStringPort <|-- InputFilePort
OutputPort <|-- OutputStringPort
OutputPort <|-- OutputFilePort
OutputPort <|-- OutputByteVectorPort
InputPort <|-- InputByteVectorPort
InputByteVectorPort <|-- InputBinaryFilePort
OutputFilePort <|-- OutputBinaryFilePort
Parser *-- Lexer
Macro <|-- Syntax
String <|-- LString
Formatter *-- Ahead
Formatter *-- Pattern
Interpreter *-- Environment
class LRational {
LNumber __num__
LNumber __denom__
pow()
abs()
cmp()
mul()
div()
sub()
add()
valueOf()
toString()
}
class LBigInteger {
BigInt __value__
sqrt()
gcd()
sqrt()
}
class LFloat {
Number __value__
toRational()
toString()
}
class LNumber {
Number __value__
isFloat()
isNumber()
isComplex()
isRational()
isNative()
isBigInteger()
isBN()
getType()
coerce()
op()
sqrt()
pow()
abs()
isOdd()
isEven()
cmp()
}
class LComplex {
LNumber __im__
LNumber __re__
sqrt()
toRational()
add()
factor()
modulus()
sqrt()
div()
sub()
mul()
cmp()
toString()
}
class InputPort {
Parser __parser__
read_char()
skip_char()
read_line()
read()
char_ready()
is_open()
close()
toString()
}
class OutputPort {
symbol __type__
write()
is_open()
close()
toString()
}
class OutputStringPort {
string[] __buffer__
symbol __type__
write()
valueOf()
toString()
}
class InputBinaryFilePort {
string __filename__
toString()
}
class InputStringPort {
symbol __type__
char_ready()
toString()
}
class InputFilePort {
string __filename__
toStgring()
}
class OutputFilePort {
string __filename__
symbol __type__
fs()
internal()
close()
toString()
}
class InputByteVectorPort {
symbol __type__
Uint8Array __vector__
integer __index__
toString()
u8_ready()
peek_u8()
skip()
read_u8()
read_u8_vector(integer)
}
class OutputByteVectorPort {
Uin8Array __buffer__
symbol __type__
write(any)
close()
write_u8(byte)
write_u8_vector(Uint8Array)
toString()
valueOf()
}
class InputByteVectorPort {
string __filename__
toString()
}
class OutputBinaryFilePort {
string __filename__
symbol __type__
write(any)
write_u8(byte)
write_u8_vector(Uint8Array)
}
class Formatter {
string __code__
indent(object): number
exception_shift(token, object): number
break(): Formatter
format(): string
}
class Pattern {
rule pattern
string flag
}
class LString {
string __string__
number length
toString(): string
get(number): string
cmp(string): boolean
lower(): LString
upper(): LString
set(number, LCharacter)
clone(): LString
fill(LCharacter)
}
class Worker {
string url
Worker worker
rpc(method, params): Promise
exec(code, [dynamic]): Promise
}
class LCharacter {
string __name__
string __char__
toUpperCase(): LCharacter
toLowerCase(): LCharacter
toString(): string
valueOf(): string
}
class Lexer {
string __input__
token(meta)
peek(meta)
skip()
read_line()
read_rest()
read_string(num)
peek_char()
read_char()
skip_char()
match_rule()
next_token()
static rules
}
class Parser {
Lexer __lexer__
Environment __env__
resolve()
peek()
skip()
read()
is_special(token)
is_builtin(token)
is_open(token)
is_close(token)
read_list()
read_value()
read_object()
is_ccomment(token)
evaluate(code)
}
class LSymbol {
string __name__
}
class Environment {
string __name__
Map __docs__
Object __env__
Environment __parent__
list(): string[]
uset(name)
inherit(name, object): Environment
doc(name, value = null)
get(symbol, options)
set(symbol, value, doc = null)
constant(name, value)
has(string): boolean
ref(string): Environment
parents(): Environment[]
newFrame(Function, args)
clone(): Environment
merge(): Environment
toString(): string
}
class Values {
any[] __values__
valueOf()
toString()
}
class Macro {
string __doc__
string __name__
boolean __defmacro__
Function __fn__
defmacro()
invoke()
toString()
}
class Syntax {
invoke()
toString()
}
class QuotedPromise {
Promise __promise__
then()
catch()
valueOf()
}
class Pair {
any car
any cdr
flatten()
length()
find(any)
clone()
last_pair()
to_array()
to_object()
reduce(Function)
reverse(): Pair
transform(Function)
map(Function)
}
class Interpreter {
Environment __env__
get(symbol)
set(symbol, value)
constant(name, value)
exec(code, dynamic = false, env = null)
}