|
@@ -42,6 +42,15 @@ func eq(_a interface{}, _b interface{}) bool {
|
|
var b int32 = int32Of(_b)
|
|
var b int32 = int32Of(_b)
|
|
return a == b
|
|
return a == b
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+func lss(_a interface{}, _b interface{}) bool {
|
|
|
|
+ assert.For(_a != nil, 20)
|
|
|
|
+ assert.For(_b != nil, 21)
|
|
|
|
+ var a int32 = int32Of(_a)
|
|
|
|
+ var b int32 = int32Of(_b)
|
|
|
|
+ return a < b
|
|
|
|
+}
|
|
|
|
+
|
|
func mopSeq(f frame.Frame) (seq frame.Sequence, ret frame.WAIT) {
|
|
func mopSeq(f frame.Frame) (seq frame.Sequence, ret frame.WAIT) {
|
|
var fu nodeframe.FrameUtils
|
|
var fu nodeframe.FrameUtils
|
|
n := fu.NodeOf(f).(node.MonadicNode)
|
|
n := fu.NodeOf(f).(node.MonadicNode)
|
|
@@ -86,6 +95,9 @@ func dopSeq(f frame.Frame) (seq frame.Sequence, ret frame.WAIT) {
|
|
case operation.EQUAL:
|
|
case operation.EQUAL:
|
|
fu.DataOf(f.Parent())[n] = eq(fu.DataOf(f)[n.Left()], fu.DataOf(f)[n.Right()])
|
|
fu.DataOf(f.Parent())[n] = eq(fu.DataOf(f)[n.Left()], fu.DataOf(f)[n.Right()])
|
|
return frame.End()
|
|
return frame.End()
|
|
|
|
+ case operation.LESSER:
|
|
|
|
+ fu.DataOf(f.Parent())[n] = lss(fu.DataOf(f)[n.Left()], fu.DataOf(f)[n.Right()])
|
|
|
|
+ return frame.End()
|
|
default:
|
|
default:
|
|
panic("unknown operation")
|
|
panic("unknown operation")
|
|
}
|
|
}
|