<- 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.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/subex/subexast.go b/subex/subexast.go
index 3c807ee..78c9aff 100644
--- a/subex/subexast.go
+++ b/subex/subexast.go
@@ -223,3 +223,18 @@ func (ast SubexASTNegate) compileWith(next SubexState) SubexState {
}),
}
}
+
+// Runs the content Subex and collects the output
+// If it is a list of atoms castable to numbers, it takes the reciprocal of them all and outputs them
+// Else it rejects
+type SubexASTReciprocal struct {
+ content SubexAST
+}
+func (ast SubexASTReciprocal) compileWith(next SubexState) SubexState {
+ return &SubexCaptureBeginState {
+ next: ast.content.compileWith(&SubexArithmeticEndState {
+ next: next,
+ calculate: reciprocalValues,
+ }),
+ }
+}