<- Back to shtanton's homepage
summaryrefslogtreecommitdiff
path: root/main/regexast.go
diff options
context:
space:
mode:
Diffstat (limited to 'main/regexast.go')
-rw-r--r--main/regexast.go92
1 files changed, 0 insertions, 92 deletions
diff --git a/main/regexast.go b/main/regexast.go
deleted file mode 100644
index a5a60c4..0000000
--- a/main/regexast.go
+++ /dev/null
@@ -1,92 +0,0 @@
-package main
-
-import (
- "fmt"
-)
-
-type RegexAST interface {
- compileWith(next RegexState) RegexState
-}
-
-type RegexASTRune rune
-func (ast RegexASTRune) compileWith(next RegexState) RegexState {
- return RegexRuneState{
- rune: rune(ast),
- next: next,
- }
-}
-func (ast RegexASTRune) String() string {
- return string(rune(ast))
-}
-
-type RegexASTAny struct {}
-func (ast RegexASTAny) compileWith(next RegexState) RegexState {
- return RegexAnyState{next}
-}
-func (ast RegexASTAny) String() string {
- return "."
-}
-
-type RegexASTConcat struct {
- first, second RegexAST
-}
-func (ast RegexASTConcat) compileWith(next RegexState) RegexState {
- return ast.first.compileWith(ast.second.compileWith(next))
-}
-func (ast RegexASTConcat) String() string {
- return fmt.Sprintf("Concat{%v, %v}", ast.first, ast.second)
-}
-
-type RegexASTOr struct {
- first, second RegexAST
-}
-func (ast RegexASTOr) compileWith(next RegexState) RegexState {
- return RegexGroupState{
- ast.first.compileWith(next),
- ast.second.compileWith(next),
- }
-}
-
-type RegexASTMaximise struct {
- content RegexAST
-}
-func (ast RegexASTMaximise) compileWith(next RegexState) RegexState {
- state := &RegexGroupState{
- nil,
- next,
- }
- state.first = ast.content.compileWith(state)
- return state
-}
-
-type RegexASTMinimise struct {
- content RegexAST
-}
-func (ast RegexASTMinimise) compileWith(next RegexState) RegexState {
- state := &RegexGroupState{
- next,
- nil,
- }
- state.second = ast.content.compileWith(state)
- return state
-}
-
-type RegexASTTry struct {
- content RegexAST
-}
-func (ast RegexASTTry) compileWith(next RegexState) RegexState {
- return RegexGroupState{
- ast.content.compileWith(next),
- next,
- }
-}
-
-type RegexASTMaybe struct {
- content RegexAST
-}
-func (ast RegexASTMaybe) compileWith(next RegexState) RegexState {
- return RegexGroupState {
- next,
- ast.content.compileWith(next),
- }
-}