server
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Abs ...
|
||||
func Abs(args ...object.Object) object.Object {
|
||||
func Abs(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"abs", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Accept ...
|
||||
func Accept(args ...object.Object) object.Object {
|
||||
func Accept(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"accept", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Args ...
|
||||
func args(args ...object.Object) object.Object {
|
||||
func args(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"args", args,
|
||||
typing.ExactArgs(0),
|
||||
@@ -14,8 +15,8 @@ func args(args ...object.Object) object.Object {
|
||||
return newError(err.Error())
|
||||
}
|
||||
|
||||
elements := make([]object.Object, len(object.Args))
|
||||
for i, arg := range object.Args {
|
||||
elements := make([]object.Object, len(ctx.Args()))
|
||||
for i, arg := range ctx.Args() {
|
||||
elements[i] = object.String{Value: arg}
|
||||
}
|
||||
return &object.Array{Elements: elements}
|
||||
|
||||
@@ -2,13 +2,14 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Assert ...
|
||||
func Assert(args ...object.Object) object.Object {
|
||||
func Assert(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"assert", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -2,13 +2,14 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Bin ...
|
||||
func Bin(args ...object.Object) object.Object {
|
||||
func Bin(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"bin", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Bind ...
|
||||
func Bind(args ...object.Object) object.Object {
|
||||
func Bind(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"bind", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Bool ...
|
||||
func Bool(args ...object.Object) object.Object {
|
||||
func Bool(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"bool", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -2,12 +2,13 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Chr ...
|
||||
func Chr(args ...object.Object) object.Object {
|
||||
func Chr(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"chr", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Close ...
|
||||
func Close(args ...object.Object) object.Object {
|
||||
func Close(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"close", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Connect ...
|
||||
func Connect(args ...object.Object) object.Object {
|
||||
func Connect(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"connect", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Divmod ...
|
||||
func Divmod(args ...object.Object) object.Object {
|
||||
func Divmod(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"divmod", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Exit ...
|
||||
func Exit(args ...object.Object) object.Object {
|
||||
func Exit(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"exit", args,
|
||||
typing.RangeOfArgs(0, 1),
|
||||
@@ -20,7 +21,7 @@ func Exit(args ...object.Object) object.Object {
|
||||
status = int(args[0].(object.Integer).Value)
|
||||
}
|
||||
|
||||
object.ExitFunction(status)
|
||||
ctx.Exit(status)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
@@ -11,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
// FFI ...
|
||||
func FFI(args ...object.Object) object.Object {
|
||||
func FFI(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"ffi", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"sort"
|
||||
@@ -11,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
// Find ...
|
||||
func Find(args ...object.Object) object.Object {
|
||||
func Find(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"find", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// First ...
|
||||
func First(args ...object.Object) object.Object {
|
||||
func First(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"first", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// HashOf ...
|
||||
func HashOf(args ...object.Object) object.Object {
|
||||
func HashOf(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"hash", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -2,13 +2,14 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Hex ...
|
||||
func Hex(args ...object.Object) object.Object {
|
||||
func Hex(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"hex", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -2,12 +2,13 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// IdOf ...
|
||||
func IdOf(args ...object.Object) object.Object {
|
||||
func IdOf(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"id", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -4,13 +4,14 @@ import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Input ...
|
||||
func Input(args ...object.Object) object.Object {
|
||||
func Input(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"input", args,
|
||||
typing.RangeOfArgs(0, 1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Int ...
|
||||
func Int(args ...object.Object) object.Object {
|
||||
func Int(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"int", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Join ...
|
||||
func Join(args ...object.Object) object.Object {
|
||||
func Join(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"join", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Last ...
|
||||
func Last(args ...object.Object) object.Object {
|
||||
func Last(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"last", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Len ...
|
||||
func Len(args ...object.Object) object.Object {
|
||||
func Len(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"len", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Listen ...
|
||||
func Listen(args ...object.Object) object.Object {
|
||||
func Listen(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"listen", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Lower ...
|
||||
func Lower(args ...object.Object) object.Object {
|
||||
func Lower(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"lower", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// Max ...
|
||||
func Max(args ...object.Object) object.Object {
|
||||
func Max(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"max", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// Min ...
|
||||
func Min(args ...object.Object) object.Object {
|
||||
func Min(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"min", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -2,13 +2,14 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Oct ...
|
||||
func Oct(args ...object.Object) object.Object {
|
||||
func Oct(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"oct", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -3,6 +3,7 @@ package builtins
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"os"
|
||||
@@ -51,7 +52,7 @@ func parseMode(mode string) (int, error) {
|
||||
}
|
||||
|
||||
// Open ...
|
||||
func Open(args ...object.Object) object.Object {
|
||||
func Open(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"open", args,
|
||||
typing.RangeOfArgs(1, 2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Ord ...
|
||||
func Ord(args ...object.Object) object.Object {
|
||||
func Ord(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"ord", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Pop ...
|
||||
func Pop(args ...object.Object) object.Object {
|
||||
func Pop(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"pop", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
@@ -18,7 +19,7 @@ func pow(x, y int64) int64 {
|
||||
}
|
||||
|
||||
// Pow ...
|
||||
func Pow(args ...object.Object) object.Object {
|
||||
func Pow(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"pow", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -2,12 +2,13 @@ package builtins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Print ...
|
||||
func Print(args ...object.Object) object.Object {
|
||||
func Print(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"print", args,
|
||||
typing.MinimumArgs(1),
|
||||
@@ -16,13 +17,13 @@ func Print(args ...object.Object) object.Object {
|
||||
return newError(err.Error())
|
||||
}
|
||||
|
||||
fmt.Fprint(object.Stdout, args[0].String())
|
||||
fmt.Fprint(ctx.Stdout(), args[0].String())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Println ...
|
||||
func Println(args ...object.Object) object.Object {
|
||||
func Println(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"println", args,
|
||||
typing.MinimumArgs(1),
|
||||
@@ -30,7 +31,7 @@ func Println(args ...object.Object) object.Object {
|
||||
return newError(err.Error())
|
||||
}
|
||||
|
||||
fmt.Fprintln(object.Stdout, args[0].String())
|
||||
fmt.Fprintln(ctx.Stdout(), args[0].String())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Push ...
|
||||
func Push(args ...object.Object) object.Object {
|
||||
func Push(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"push", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
@@ -10,7 +11,7 @@ import (
|
||||
const DefaultBufferSize = 4096
|
||||
|
||||
// Read ...
|
||||
func Read(args ...object.Object) object.Object {
|
||||
func Read(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"read", args,
|
||||
typing.RangeOfArgs(1, 2),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"os"
|
||||
)
|
||||
|
||||
// ReadFile ...
|
||||
func ReadFile(args ...object.Object) object.Object {
|
||||
func ReadFile(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"readfile", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Rest ...
|
||||
func Rest(args ...object.Object) object.Object {
|
||||
func Rest(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"rest", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Reversed ...
|
||||
func Reversed(args ...object.Object) object.Object {
|
||||
func Reversed(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"reversed", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Seek ...
|
||||
func Seek(args ...object.Object) object.Object {
|
||||
func Seek(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"seek", args,
|
||||
typing.RangeOfArgs(1, 3),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strings"
|
||||
@@ -8,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
// Socket ...
|
||||
func Socket(args ...object.Object) object.Object {
|
||||
func Socket(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"socket", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// Sorted ...
|
||||
func Sorted(args ...object.Object) object.Object {
|
||||
func Sorted(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"sort", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Split ...
|
||||
func Split(args ...object.Object) object.Object {
|
||||
func Split(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"split", args,
|
||||
typing.RangeOfArgs(1, 2),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// Str ...
|
||||
func Str(args ...object.Object) object.Object {
|
||||
func Str(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"str", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
)
|
||||
|
||||
// TypeOf ...
|
||||
func TypeOf(args ...object.Object) object.Object {
|
||||
func TypeOf(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"type", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Upper ...
|
||||
func Upper(args ...object.Object) object.Object {
|
||||
func Upper(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"upper", args,
|
||||
typing.ExactArgs(1),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Write ...
|
||||
func Write(args ...object.Object) object.Object {
|
||||
func Write(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"write", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package builtins
|
||||
|
||||
import (
|
||||
"monkey/internal/context"
|
||||
"monkey/internal/object"
|
||||
"monkey/internal/typing"
|
||||
"os"
|
||||
)
|
||||
|
||||
// WriteFile ...
|
||||
func WriteFile(args ...object.Object) object.Object {
|
||||
func WriteFile(ctx context.Context, args ...object.Object) object.Object {
|
||||
if err := typing.Check(
|
||||
"writefile", args,
|
||||
typing.ExactArgs(2),
|
||||
|
||||
Reference in New Issue
Block a user