feat(parser): add operators to annotations lexer
This commit is contained in:
@@ -14,6 +14,23 @@ class AnnotationLexer(Lexer):
|
|||||||
self.add_token(TokenType.LEFT_BRACKET)
|
self.add_token(TokenType.LEFT_BRACKET)
|
||||||
case "]":
|
case "]":
|
||||||
self.add_token(TokenType.RIGHT_BRACKET)
|
self.add_token(TokenType.RIGHT_BRACKET)
|
||||||
|
case "<":
|
||||||
|
self.add_token(
|
||||||
|
TokenType.LESS_EQUAL if self.match("=") else TokenType.LESS
|
||||||
|
)
|
||||||
|
case ">":
|
||||||
|
self.add_token(
|
||||||
|
TokenType.GREATER_EQUAL if self.match("=") else TokenType.GREATER
|
||||||
|
)
|
||||||
|
case "=":
|
||||||
|
self.add_token(
|
||||||
|
TokenType.EQUAL_EQUAL if self.match("=") else TokenType.EQUAL
|
||||||
|
)
|
||||||
|
case "!":
|
||||||
|
if self.peek() == "=":
|
||||||
|
self.add_token(TokenType.BANG_EQUAL)
|
||||||
|
else:
|
||||||
|
self.error("Unexpected single bang. Did you mean '!=' ?")
|
||||||
case ":":
|
case ":":
|
||||||
self.add_token(TokenType.COLON)
|
self.add_token(TokenType.COLON)
|
||||||
case ",":
|
case ",":
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ class MidasLexer(Lexer):
|
|||||||
self.add_token(
|
self.add_token(
|
||||||
TokenType.EQUAL_EQUAL if self.match("=") else TokenType.EQUAL
|
TokenType.EQUAL_EQUAL if self.match("=") else TokenType.EQUAL
|
||||||
)
|
)
|
||||||
|
case "!":
|
||||||
|
if self.peek() == "=":
|
||||||
|
self.add_token(TokenType.BANG_EQUAL)
|
||||||
|
else:
|
||||||
|
self.error("Unexpected single bang. Did you mean '!=' ?")
|
||||||
case ":":
|
case ":":
|
||||||
self.add_token(TokenType.COLON)
|
self.add_token(TokenType.COLON)
|
||||||
case ",":
|
case ",":
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class TokenType(Enum):
|
|||||||
LESS_EQUAL = auto()
|
LESS_EQUAL = auto()
|
||||||
EQUAL = auto()
|
EQUAL = auto()
|
||||||
EQUAL_EQUAL = auto()
|
EQUAL_EQUAL = auto()
|
||||||
|
BANG_EQUAL = auto()
|
||||||
|
|
||||||
# Literals
|
# Literals
|
||||||
IDENTIFIER = auto()
|
IDENTIFIER = auto()
|
||||||
|
|||||||
Reference in New Issue
Block a user