Summary Files Commits Branches @commit @diff @stats
path: root / src / StringConsumer / IWordConsumer.cl
diff options
context:
space:
mode:
Commit6a3e6aa5cc863f43c49e95d336b99dcf6713a640 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-11-01 16:48:01 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-11-01 16:48:01 +0200
Files4cbdfe9fe92f233499da8948f9db6d0a2a40d2be /src/StringConsumer/IWordConsumer.cl
cool-self-hosted-6a3e6aa5cc863f43c49e95d336b99dcf6713a640.tar
cool-self-hosted-6a3e6aa5cc863f43c49e95d336b99dcf6713a640.tar.gz
cool-self-hosted-6a3e6aa5cc863f43c49e95d336b99dcf6713a640.zip
Parentac5b073138ed3cd8073eed8eea053a1f4799fc25 (diff)
feat(StringConsumer)!: Rename IWordConsumer to IWordsConsumer
1 files changed, 0 insertions, 63 deletions
-rw-r--r--src/StringConsumer/IWordConsumer.cl63
diff --git a/src/StringConsumer/IWordConsumer.cl b/src/StringConsumer/IWordConsumer.cl
deleted file mode 100644
index 1146710..0000000
--- a/src/StringConsumer/IWordConsumer.cl
+++ /dev/null
@@ -1,63 +0,0 @@
-class WordList inherits System {
- word: String;
- next: WordList;
-
- init(value: String, tail: Object) : WordList {{
- assert(not (isvoid value), "init", "value argument cannot be void!");
- assert(isvoid word, "init", "List has already been initialised!");
-
- word <- value;
- if isvoid tail then
- void
- else
- case tail of
- wl: WordList => next <- wl;
- o: Object => assert(false, "init", "tail argument can be either a ConsumerList or void!");
- esac
- fi;
-
- self;
- }};
-
- push(value: String) : WordList {{
- assert(not (isvoid value), "push", "value argument cannot be void!");
-
- if isvoid word
- then
- word <- value
- else if isvoid next
- then
- next <- (new WordList).init(value, void)
- else
- next.push(value)
- fi
- fi;
- self;
- }};
-
- any_starts(s: String, start: Int) : Bool {
- if isvoid word
- then false
- else if s.substr(start, word.length()) = word
- then true
- else if isvoid next
- then false
- else next.any_starts(s, start)
- fi
- fi
- fi
- };
-};
-
-class IWordConsumer inherits IStringConsumer {
- matched_words: WordList <- new WordList;
-
- consume(s: String) : Int {{
- consumed_length <- 0;
- while matched_words.any_starts(s, consumed_length)
- loop
- consumed_length <- consumed_length + 1
- pool;
- consumed_length;
- }};
-};