aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/llgcode/ps/operators.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/llgcode/ps/operators.go')
-rw-r--r--vendor/github.com/llgcode/ps/operators.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/github.com/llgcode/ps/operators.go b/vendor/github.com/llgcode/ps/operators.go
new file mode 100644
index 0000000..8b8babe
--- /dev/null
+++ b/vendor/github.com/llgcode/ps/operators.go
@@ -0,0 +1,41 @@
+// Copyright 2010 The postscript-go Authors. All rights reserved.
+// created: 13/12/2010 by Laurent Le Goff
+
+package ps
+
+type OperatorFunc func(interpreter *Interpreter)
+
+type PrimitiveOperator struct {
+ f OperatorFunc
+}
+
+func NewOperator(f OperatorFunc) *PrimitiveOperator {
+ return &PrimitiveOperator{f}
+}
+
+func (o *PrimitiveOperator) Execute(interpreter *Interpreter) {
+ o.f(interpreter)
+}
+
+func save(interpreter *Interpreter) {
+ interpreter.Push("VM Snapshot")
+}
+
+func restore(interpreter *Interpreter) {
+ interpreter.Pop()
+}
+
+func initSystemOperators(interpreter *Interpreter) {
+ interpreter.SystemDefine("save", NewOperator(save))
+ interpreter.SystemDefine("restore", NewOperator(restore))
+ initStackOperator(interpreter)
+ initMathOperators(interpreter)
+ initArrayOperators(interpreter)
+ initDictionaryOperators(interpreter)
+ initRelationalOperators(interpreter)
+ initControlOperators(interpreter)
+ initMiscellaneousOperators(interpreter)
+ initDrawingOperators(interpreter)
+
+ initConflictingOperators(interpreter)
+}