aboutsummaryrefslogtreecommitdiff
path: root/src/lex
diff options
context:
space:
mode:
Diffstat (limited to 'src/lex')
-rw-r--r--src/lex/lexer.rs14
-rw-r--r--src/lex/token.rs3
2 files changed, 17 insertions, 0 deletions
diff --git a/src/lex/lexer.rs b/src/lex/lexer.rs
index edd1ff0..1d46ce7 100644
--- a/src/lex/lexer.rs
+++ b/src/lex/lexer.rs
@@ -79,6 +79,20 @@ impl Iterator for Lexer<'_> {
OpGt
}
}
+ '&' => {
+ if self.advance_if('&') {
+ OpAnd
+ } else {
+ Unknown('&')
+ }
+ }
+ '|' => {
+ if self.advance_if('|') {
+ OpOr
+ } else {
+ Unknown('|')
+ }
+ }
'(' => GroupOpen,
')' => GroupClose,
'{' => BlockOpen,
diff --git a/src/lex/token.rs b/src/lex/token.rs
index 3c6d5c6..77b0df6 100644
--- a/src/lex/token.rs
+++ b/src/lex/token.rs
@@ -25,6 +25,9 @@ pub enum TokenVariant {
OpGt,
OpLte,
OpGte,
+ // Short-circuting boolean operators
+ OpAnd,
+ OpOr,
// Statement symbols
Dot,