<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/subex/subexast.go
diff options
context:
space:
mode:
Diffstat (limited to 'subex/subexast.go')
-rw-r--r--subex/subexast.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/subex/subexast.go b/subex/subexast.go
index b1ac931..e02091d 100644
--- a/subex/subexast.go
+++ b/subex/subexast.go
@@ -395,6 +395,20 @@ func (ast SubexASTNot) String() string {
return fmt.Sprintf("(%v)!", ast.Content)
}
+// Runs the content Subex and collects the output
+// Replaces it with true if all output values are equal and false otherwise
+type SubexASTEqual struct {
+ Content SubexAST
+}
+func (ast SubexASTEqual) compileWith(next SubexState, slotMap *SlotMap, runic bool) SubexState {
+ return &SubexCaptureBeginState {
+ next: ast.Content.compileWith(&SubexArithmeticEndState {
+ next: next,
+ calculate: equalValues,
+ }, slotMap, runic),
+ }
+}
+
// Does nothing
type SubexASTEmpty struct {}
func (ast SubexASTEmpty) compileWith(next SubexState, slotMap *SlotMap, runic bool) SubexState {