diff options
Diffstat (limited to 'subex/subexast.go')
-rw-r--r-- | subex/subexast.go | 14 |
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 { |