summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/d5/tengo/compiler/bytecode.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2020-01-09 21:52:19 +0100
committerGitHub <noreply@github.com>2020-01-09 21:52:19 +0100
commit9d84d6dd643c4017074e81465671cd9b25f9539a (patch)
tree8a767f91d655a6cf21d476e4fb7aa6fd8a952df8 /vendor/github.com/d5/tengo/compiler/bytecode.go
parent0f708daf2d14dcca261ef98cc698a1b1f2a6aa74 (diff)
downloadmatterbridge-msglm-9d84d6dd643c4017074e81465671cd9b25f9539a.tar.gz
matterbridge-msglm-9d84d6dd643c4017074e81465671cd9b25f9539a.tar.bz2
matterbridge-msglm-9d84d6dd643c4017074e81465671cd9b25f9539a.zip
Update to tengo v2 (#976)
Diffstat (limited to 'vendor/github.com/d5/tengo/compiler/bytecode.go')
-rw-r--r--vendor/github.com/d5/tengo/compiler/bytecode.go90
1 files changed, 0 insertions, 90 deletions
diff --git a/vendor/github.com/d5/tengo/compiler/bytecode.go b/vendor/github.com/d5/tengo/compiler/bytecode.go
deleted file mode 100644
index 35f36c0a..00000000
--- a/vendor/github.com/d5/tengo/compiler/bytecode.go
+++ /dev/null
@@ -1,90 +0,0 @@
-package compiler
-
-import (
- "encoding/gob"
- "fmt"
- "io"
- "reflect"
-
- "github.com/d5/tengo/compiler/source"
- "github.com/d5/tengo/objects"
-)
-
-// Bytecode is a compiled instructions and constants.
-type Bytecode struct {
- FileSet *source.FileSet
- MainFunction *objects.CompiledFunction
- Constants []objects.Object
-}
-
-// Encode writes Bytecode data to the writer.
-func (b *Bytecode) Encode(w io.Writer) error {
- enc := gob.NewEncoder(w)
-
- if err := enc.Encode(b.FileSet); err != nil {
- return err
- }
-
- if err := enc.Encode(b.MainFunction); err != nil {
- return err
- }
-
- // constants
- return enc.Encode(b.Constants)
-}
-
-// CountObjects returns the number of objects found in Constants.
-func (b *Bytecode) CountObjects() int {
- n := 0
-
- for _, c := range b.Constants {
- n += objects.CountObjects(c)
- }
-
- return n
-}
-
-// FormatInstructions returns human readable string representations of
-// compiled instructions.
-func (b *Bytecode) FormatInstructions() []string {
- return FormatInstructions(b.MainFunction.Instructions, 0)
-}
-
-// FormatConstants returns human readable string representations of
-// compiled constants.
-func (b *Bytecode) FormatConstants() (output []string) {
- for cidx, cn := range b.Constants {
- switch cn := cn.(type) {
- case *objects.CompiledFunction:
- output = append(output, fmt.Sprintf("[% 3d] (Compiled Function|%p)", cidx, &cn))
- for _, l := range FormatInstructions(cn.Instructions, 0) {
- output = append(output, fmt.Sprintf(" %s", l))
- }
- default:
- output = append(output, fmt.Sprintf("[% 3d] %s (%s|%p)", cidx, cn, reflect.TypeOf(cn).Elem().Name(), &cn))
- }
- }
-
- return
-}
-
-func init() {
- gob.Register(&source.FileSet{})
- gob.Register(&source.File{})
- gob.Register(&objects.Array{})
- gob.Register(&objects.Bool{})
- gob.Register(&objects.Bytes{})
- gob.Register(&objects.Char{})
- gob.Register(&objects.Closure{})
- gob.Register(&objects.CompiledFunction{})
- gob.Register(&objects.Error{})
- gob.Register(&objects.Float{})
- gob.Register(&objects.ImmutableArray{})
- gob.Register(&objects.ImmutableMap{})
- gob.Register(&objects.Int{})
- gob.Register(&objects.Map{})
- gob.Register(&objects.String{})
- gob.Register(&objects.Time{})
- gob.Register(&objects.Undefined{})
- gob.Register(&objects.UserFunction{})
-}