about summary refs log tree commit diff
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,