aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-08 21:25:13 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-08 21:25:13 +0100
commitb018be7fb57e79b62e727c1fb00bfd474888ddf8 (patch)
treeec24476f86e7d79a2ea23b49c8726fd94780fa6d /src/main/java
parentf8bcf996119e07114b191b54bc01444bd602804a (diff)
Parse inequality
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Parser.java1
-rw-r--r--src/main/java/org/shedlang/compiler/parser/TokenType.java1
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Tokeniser.java1
3 files changed, 3 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java
index f163236b..bfb756db 100644
--- a/src/main/java/org/shedlang/compiler/parser/Parser.java
+++ b/src/main/java/org/shedlang/compiler/parser/Parser.java
@@ -155,6 +155,7 @@ public class Parser {
private static final Map<TokenType, OperationParser> OPERATION_PARSERS = Stream.of(
new BinaryOperationParser(TokenType.SYMBOL_EQUALS_EQUALS, OperatorPrecedence.EQUALS, UntypedBinaryOperator.EQUALS),
+ new BinaryOperationParser(TokenType.SYMBOL_BANG_EQUALS, OperatorPrecedence.EQUALS, UntypedBinaryOperator.NOT_EQUAL),
new BinaryOperationParser(TokenType.SYMBOL_PLUS, OperatorPrecedence.ADD, UntypedBinaryOperator.ADD),
new BinaryOperationParser(TokenType.SYMBOL_MINUS, OperatorPrecedence.ADD, UntypedBinaryOperator.SUB),
new CallParser()
diff --git a/src/main/java/org/shedlang/compiler/parser/TokenType.java b/src/main/java/org/shedlang/compiler/parser/TokenType.java
index 2b810988..a7df78ff 100644
--- a/src/main/java/org/shedlang/compiler/parser/TokenType.java
+++ b/src/main/java/org/shedlang/compiler/parser/TokenType.java
@@ -14,6 +14,7 @@ public enum TokenType {
KEYWORD_VAL,
SYMBOL_BANG,
+ SYMBOL_BANG_EQUALS,
SYMBOL_BRACE_OPEN,
SYMBOL_BRACE_CLOSE,
SYMBOL_COLON,
diff --git a/src/main/java/org/shedlang/compiler/parser/Tokeniser.java b/src/main/java/org/shedlang/compiler/parser/Tokeniser.java
index e06109b1..3a2f3e11 100644
--- a/src/main/java/org/shedlang/compiler/parser/Tokeniser.java
+++ b/src/main/java/org/shedlang/compiler/parser/Tokeniser.java
@@ -27,6 +27,7 @@ public class Tokeniser {
RegexTokeniser.rule(TokenType.STRING, "\"(?:[^\\\\\"\n\r]|\\\\.)*\""),
RegexTokeniser.rule(TokenType.WHITESPACE, "[\r\n\t ]+"),
+ RegexTokeniser.rule(TokenType.SYMBOL_BANG_EQUALS, "!="),
RegexTokeniser.rule(TokenType.SYMBOL_EQUALS_EQUALS, "=="),
RegexTokeniser.rule(TokenType.SYMBOL_THIN_ARROW, "->"),