From: Oleg Broytman Date: Sun, 16 Jun 2024 12:01:39 +0000 (+0300) Subject: Feat(parser): Операторы И, ИЛИ, НЕ X-Git-Tag: v0.8~6 X-Git-Url: https://git.phdru.name/?a=commitdiff_plain;h=4a84f5ebbe2d04c0e4127f9694fce33602f99327;p=phdru.name%2Fcgi-bin%2Fblog-ru%2Fsearch-tags.git Feat(parser): Операторы И, ИЛИ, НЕ --- diff --git a/parser/grammar.ebnf b/parser/grammar.ebnf index ccfe6eb..2877e8f 100644 --- a/parser/grammar.ebnf +++ b/parser/grammar.ebnf @@ -57,12 +57,18 @@ name : /[A-Za-z ?and_word : "AND" | "and" + | "é" + | "É" ?or_word : "OR" | "or" + | "éìé" + | "ÉÌÉ" ?not_word : "NOT" | "not" + | "îå" + | "ÎÅ" %import common.WS %ignore WS diff --git a/parser/parser.py b/parser/parser.py index 0d9351b..da5c6e5 100755 --- a/parser/parser.py +++ b/parser/parser.py @@ -1,4 +1,5 @@ #! /usr/bin/env python3 +# coding: koi8-r import os from lark import Lark, Transformer @@ -58,9 +59,10 @@ if __name__ == '__main__': print(parse('not test')) print(parse('foo or bar')) print(parse('foo && bar')) - print(parse('foo && bar && baz')) + print(parse('Foo && bar && baz')) print(parse('!foo && bar && baz')) print(parse('(test)')) print(parse('(foo || bar)')) print(parse('(foo and !bar)')) + print(parse(u'(ôÅÓÔ ÉÌÉ ÔÅÓÔ)')) print('----------')