Summary Files Commits Branches @commit @diff @stats
path: root / src / StringConsumer / BaseConsumers
diff options
context:
space:
mode:
diff --git a/src/StringConsumer/BaseConsumers/BinaryOperatorConsumer.cl b/src/StringConsumer/BaseConsumers/BinaryOperatorConsumer.cl
new file mode 100644
index 0000000..8e7288c
--- /dev/null
+++ b/src/StringConsumer/BaseConsumers/BinaryOperatorConsumer.cl
@@ -0,0 +1,18 @@
+class BinaryOperatorConsumer inherits IWordsConsumer {
+ init() : IStringConsumer {{
+ matched_words <- matched_words
+ .push("+")
+ .push("-")
+ .push("*")
+ .push("/")
+ .push("<")
+ .push("<=")
+ .push("=")
+ ;
+ self;
+ }};
+
+ token() : IToken {
+ new BinaryOperatorToken
+ };
+};
diff --git a/src/StringConsumer/BaseConsumers/IntegerConsumer.cl b/src/StringConsumer/BaseConsumers/IntegerConsumer.cl
new file mode 100644
index 0000000..5b4cd82
--- /dev/null
+++ b/src/StringConsumer/BaseConsumers/IntegerConsumer.cl
@@ -0,0 +1,21 @@
+class IntegerConsumer inherits IWordsConsumer {
+ init() : IStringConsumer {{
+ matched_words <- matched_words
+ .push("0")
+ .push("1")
+ .push("2")
+ .push("3")
+ .push("4")
+ .push("5")
+ .push("6")
+ .push("7")
+ .push("8")
+ .push("9")
+ ;
+ self;
+ }};
+
+ token() : IToken {
+ new IntegerToken
+ };
+};
diff --git a/src/StringConsumer/BaseConsumers/KeywordsIfConsumer.cl b/src/StringConsumer/BaseConsumers/KeywordsIfConsumer.cl
new file mode 100644
index 0000000..9bd76e9
--- /dev/null
+++ b/src/StringConsumer/BaseConsumers/KeywordsIfConsumer.cl
@@ -0,0 +1,15 @@
+class KeywordsIfConsumer inherits IWordsConsumer {
+ init() : IStringConsumer {{
+ matched_words <- matched_words
+ .push("if")
+ .push("then")
+ .push("else")
+ .push("fi")
+ ;
+ self;
+ }};
+
+ token() : IToken {
+ new KeywordToken
+ };
+};
diff --git a/src/StringConsumer/BaseConsumers/WhitespaceConsumer.cl b/src/StringConsumer/BaseConsumers/WhitespaceConsumer.cl
new file mode 100644
index 0000000..3a8c4dc
--- /dev/null
+++ b/src/StringConsumer/BaseConsumers/WhitespaceConsumer.cl
@@ -0,0 +1,13 @@
+class WhitespaceConsumer inherits IWordsConsumer {
+ init() : IStringConsumer {{
+ matched_words <- matched_words
+ .push(" ")
+ .push("\t")
+ ;
+ self;
+ }};
+
+ token() : IToken {
+ new WhitespaceToken
+ };
+};