mirror of
https://github.com/Open-Argon/argon-v3.git
synced 2025-12-06 08:56:07 +00:00
31 lines
765 B
Go
31 lines
765 B
Go
package main
|
|
|
|
var vars = scope{}
|
|
|
|
func init() {
|
|
vars["vars"] = vars
|
|
vars["term"] = ArTerm
|
|
vars["true"] = true
|
|
vars["false"] = false
|
|
vars["null"] = nil
|
|
vars["input"] = builtinFunc{"input", ArgonInput}
|
|
vars["number"] = builtinFunc{"number", ArgonNumber}
|
|
vars["string"] = builtinFunc{"string", ArgonString}
|
|
vars["infinity"] = infinity
|
|
vars["length"] = builtinFunc{"length", func(a ...any) (any, ArErr) {
|
|
switch x := a[0].(type) {
|
|
case string:
|
|
return len(x), ArErr{}
|
|
case ArMap:
|
|
return len(x), ArErr{}
|
|
}
|
|
return nil, ArErr{TYPE: "TypeError", message: "Cannot get length of " + typeof(a[0]), EXISTS: true}
|
|
}}
|
|
vars["time"] = ArTime
|
|
vars["PI"] = PI
|
|
vars["π"] = PI
|
|
vars["e"] = e
|
|
sqrt := builtinFunc{"sqrt", ArgonSqrt}
|
|
vars["sqrt"] = sqrt
|
|
}
|