From b802bf7a9e918cea45edd161f58a4f55b04277b9 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Thu, 23 Jan 2020 17:46:58 +0100 Subject: [PATCH] add rules for lexer --- specification.rex | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/specification.rex b/specification.rex index 4c11083..f0b3375 100644 --- a/specification.rex +++ b/specification.rex @@ -1,9 +1,27 @@ class Query macro + L_BRACKET \( + R_BRACKET \) + SPACE \ + # Space char + OPERATOR_OR (?i)or + OPERATOR_AND (?i)and + OPERATOR_NOT (?i)not + TERM_WITH_QUOTES "([^"]*)" + TERM_WITHOUT_QUOTES [a-zA-Z0-9-_|]+ + COLON \: + rule - . + {SPACE} # No action + {L_BRACKET} { return [:L_BRACKET, text] } + {R_BRACKET} { return [:R_BRACKET, text] } + {OPERATOR_OR} { return [:OPERATOR_OR, text] } + {OPERATOR_AND} { return [:OPERATOR_AND, text] } + {OPERATOR_NOT} { return [:OPERATOR_NOT, text] } + {TERM_WITH_QUOTES} { return [:TERM_WITH_QUOTES, text] } + {TERM_WITHOUT_QUOTES} { return [:TERM_WITHOUT_QUOTES, text] } + {COLON} { return [:COLON, text] } inner def tokenize(code)