From 209721963888dd0d2ad9c22daf8692c6c32c8c7b Mon Sep 17 00:00:00 2001 From: "alexandre.aboulin" Date: Wed, 25 Jan 2023 14:48:18 +0100 Subject: [PATCH] =?UTF-8?q?=E1=8A=83=E1=8C=A2=E1=8A=A0=E1=89=B0=E1=8A=9B?= =?UTF-8?q?=20=E1=8A=90=E1=8D=8D=E1=88=B5=E1=88=85=20=E1=8A=A8=E1=88=98?= =?UTF-8?q?=E1=8B=B3=E1=8A=95=20=E1=89=A0=E1=88=8B=E1=8B=AD=20=E1=8A=93?= =?UTF-8?q?=E1=89=B5=20=E1=8A=A5=E1=8A=93=E1=88=9D=20=E1=88=B0=E1=88=8B?= =?UTF-8?q?=E1=88=9D=E1=8A=95=20=E1=8B=88=E1=8B=AD=E1=88=9D=20=E1=88=A5?= =?UTF-8?q?=E1=89=83=E1=8B=AD=E1=8A=95=20=E1=8A=A0=E1=89=B3=E1=8B=8D?= =?UTF-8?q?=E1=89=85=E1=88=9D=20=E1=8D=A3=20=E1=8B=A8=E1=8A=95=E1=88=B5?= =?UTF-8?q?=E1=88=90=20=E1=89=85=E1=8B=9D=E1=89=83=E1=8B=9C=20=E1=89=A5?= =?UTF-8?q?=E1=89=BB=20=E1=8A=A0=E1=89=A5=E1=89=85=E1=89=B7=E1=88=8D=20?= =?UTF-8?q?=E1=8D=A3=20=E1=88=9D=E1=8A=AD=E1=8A=95=E1=8B=AB=E1=89=B1?= =?UTF-8?q?=E1=88=9D=20=E1=8A=83=E1=8C=A2=E1=8A=A0=E1=89=B6=E1=89=BD?= =?UTF-8?q?=E1=88=85=20=E1=8A=A8=E1=88=9B=E1=8A=95=E1=8A=9B=E1=8B=8D?= =?UTF-8?q?=E1=88=9D=20=E1=89=B0=E1=88=8D=E1=8A=A5=E1=8A=AE=20=E1=8B=A8?= =?UTF-8?q?=E1=88=8B=E1=89=80=20=E1=88=B5=E1=88=88=E1=88=86=E1=8A=90=20?= =?UTF-8?q?=E1=8D=A3=20=E1=88=98=E1=8C=A8=E1=88=A8=E1=88=BB=E1=8B=8D=20?= =?UTF-8?q?=E1=89=80=E1=88=AD=E1=89=A7=E1=88=8D=20=E1=8D=A3=20=E1=8B=A8?= =?UTF-8?q?=E1=8A=83=E1=8C=A2=E1=8A=A0=E1=89=B5=20=E1=88=98=E1=88=AD?= =?UTF-8?q?=E1=8A=A8=E1=89=A6=E1=89=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- expression.py | 23 ++++------------------- lexer.py | 6 ++++++ 2 files changed, 10 insertions(+), 19 deletions(-) create mode 100644 lexer.py diff --git a/expression.py b/expression.py index 186c43e..9c4361d 100644 --- a/expression.py +++ b/expression.py @@ -1,9 +1,4 @@ -import re - -class Token: - OPERAND_ADDITION = "+" - OPERAND_MULTIPLICATION = "*" - NUMBER = re.compile(r'\d+') #CHANGER +from lexer import Token class Expression: @@ -23,16 +18,6 @@ class Expression: return int(self.val) def __str__(self): - if Token.NUMBER.match(string=self.val) is not None: - return self.val - return "(" + self.gauche.__str__() + self.val + self.droite.__str__() + ")" - - -exp = Expression('*', -Expression(6, None, None), -Expression('+', -Expression(4, None, None), -Expression(3, None, None) -)) -print(exp.evalue()) -print(str(exp)) \ No newline at end of file + if Token.NUMBER.match(str(self.val)) != None: + return str(self.val) + return "(" + str(self.gauche.__str__()) + str(self.val) + str(self.droite.__str__()) + ")" diff --git a/lexer.py b/lexer.py new file mode 100644 index 0000000..34a8e71 --- /dev/null +++ b/lexer.py @@ -0,0 +1,6 @@ +import re + +class Token: + OPERAND_ADDITION = "+" + OPERAND_MULTIPLICATION = "*" + NUMBER = re.compile(r'\d+') #CHANGER