From 8d4849ad769053905ba86cc1be4c0008e63efc0f Mon Sep 17 00:00:00 2001
From: Tamazouzt AIT ELDJOUDI <tamazouzt.ait-eldjoudi@etu.univ-amu.fr>
Date: Wed, 13 Jul 2022 13:34:36 +0200
Subject: [PATCH] added the possibility to parse [ and {

---
 __pycache__/image_maker.cpython-39.pyc | Bin 7393 -> 0 bytes
 __pycache__/logic.cpython-39.pyc       | Bin 13002 -> 0 bytes
 __pycache__/parsing.cpython-39.pyc     | Bin 5320 -> 0 bytes
 parsing.py                             |  44 ++++++++++++++-----------
 tests.py                               |   4 ++-
 5 files changed, 27 insertions(+), 21 deletions(-)
 delete mode 100644 __pycache__/image_maker.cpython-39.pyc
 delete mode 100644 __pycache__/logic.cpython-39.pyc
 delete mode 100644 __pycache__/parsing.cpython-39.pyc

diff --git a/__pycache__/image_maker.cpython-39.pyc b/__pycache__/image_maker.cpython-39.pyc
deleted file mode 100644
index f8e8cdcd60249af089db19df421c4166cf98156a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 7393
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

diff --git a/__pycache__/logic.cpython-39.pyc b/__pycache__/logic.cpython-39.pyc
deleted file mode 100644
index 0e5a612df66d64a7a7f7804140de1d3b781e7477..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13002
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

diff --git a/__pycache__/parsing.cpython-39.pyc b/__pycache__/parsing.cpython-39.pyc
deleted file mode 100644
index d916578212688390b3b2924be2927dea4a3e1c27..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5320
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

diff --git a/parsing.py b/parsing.py
index e9b7229..5ea15e9 100644
--- a/parsing.py
+++ b/parsing.py
@@ -9,16 +9,18 @@ def open_parantheses_counter(terme):
     counter = 0
     indexes = []
     for i in range(len(terme)):
-        if terme[i] == '(':
+        if terme[i] == '(' or terme[i]=='[' or terme[i]=='{':
             counter += 1
             indexes.append(i)
     return (counter, indexes)
+
+
 # comme celle d avant 
 def close_parantheses_counter(terme):
     counter = 0
     indexes = []
     for i in range(len(terme)):
-        if terme[i] == ')':
+        if terme[i] == ')' or terme[i]==']' or terme[i]=='}':
             counter += 1
             indexes.append(i)
     return (counter, indexes)
@@ -48,15 +50,17 @@ def parantheses_couples(terme):
 
 def findOpeningParanthesesIndex(terme, closeParentheseIndex):
     assert balancedParantheses(terme), "Not balanced Terme"
-    openParantheseIndex = closeParentheseIndex
-    counter = 1
-    while (counter > 0 ):
-        openParantheseIndex -=1
-        c = terme[openParantheseIndex]
-        if c == "(":
+    if terme[closeParentheseIndex]== ')':
+      openParantheseIndex = closeParentheseIndex
+      counter = 1
+      while (counter > 0 ):
+         openParantheseIndex -=1
+         c = terme[openParantheseIndex]
+         if c in open_list:
             counter -= 1
-        elif c == ")":
+         elif c in close_list:
             counter += 1
+    
     return openParantheseIndex
 
 
@@ -68,9 +72,9 @@ def findClosingParanthesesIndex(terme, openParentheseIndex):
     while (counter > 0 ):
         closeParantheseIndex +=1
         c = terme[closeParantheseIndex]
-        if c == "(":
+        if c == "(" or c=='{' or c=='[':
             counter += 1
-        elif c == ")":
+        elif c == ")" or c==']' or c=='}':
             counter -= 1
     return closeParantheseIndex
 
@@ -86,7 +90,7 @@ def getTermsFromParantheses(terme):
     #         terms.append(getTermFromParantheses(terme,indexes_of_open_parantheses[i]))
     i = 0
     while i < len(terme):
-        if terme[i] == '(':
+        if terme[i] == '(' or terme[i]=='{' or terme[i]=='[':
             terms.append(getTermFromParantheses(terme,i))
             i = findClosingParanthesesIndex(terme,i)
         else:
@@ -110,13 +114,13 @@ def remove_multiple_spaces(terme):
 def checkType(terme):
     if "#" == terme[0]:
         return ABS
-    elif  terme[0] == '(':
+    elif  terme[0] == '(' or terme[0]=='{' or terme[0]=='[':
         l = getTermsFromParantheses(terme)
-        if len(l) == 1 and terme[-1] == ')':
+        if len(l) == 1 and ( (terme[-1] == ')' or terme[-1]==']' or terme[-1]=='}')):
             return checkType(getTermFromParantheses(terme,0))
         else:
             return APP
-    elif not(any(charac in (terme) for charac in ['(',')',' ','#','.'])):
+    elif not(any(charac in (terme) for charac in ['(',')',' ','#','.', '[', ']','{','}'])):
         return VAR
     else:
         return APP
@@ -149,7 +153,7 @@ def extractOutputFromAbs(terme):
 def buildVar(terme):
     assert (checkType(terme) == VAR)
     # print(terme)
-    if terme[0]!='(':
+    if terme[0]!='(' and terme[0]!='{' and terme[0]!='[':
         if terme in variables:
             return variables[terme]
         else:
@@ -163,7 +167,7 @@ def buildAbs(terme):
     input = extractInputFromAbs(terme)
     output = extractOutputFromAbs(terme)
     # print(terme,"INPUT:", input,'OUTPUT:', output)
-    if terme [0]!= '(':
+    if not(terme [0] in open_list):
         return new_abs((buildTerm(input)),buildTerm(output))
     else:
         return buildTerm(getTermFromParantheses(terme,0))
@@ -173,13 +177,13 @@ def extract_terms(text):
     current_term = ""
     paranthesis_level = 0
     for i in range(len(text)):
-        if text[i] == "(":
+        if text[i] == "(" or text[i]=='{' or text[i]=='[' :
             if paranthesis_level == 0:
                 current_term = ""
             else:
               current_term += text[i]
             paranthesis_level += 1
-        elif text[i] == ")":
+        elif text[i] == ")" or text[i]==']' or text[i]=='}':
             paranthesis_level -= 1
             if paranthesis_level > 0:
                 current_term += text[i]
@@ -196,7 +200,7 @@ def extract_terms(text):
 def buildApp(terme):
     assert (checkType(terme) == APP)
     liste_de_termes = extract_terms(terme)
-    if terme[0]!='(':
+    if terme[0]!='(' and terme[0]!='{' and terme[0]!='[':
         n = len(liste_de_termes)
         if n == 0:
             return None
diff --git a/tests.py b/tests.py
index 46e35b5..59a6155 100644
--- a/tests.py
+++ b/tests.py
@@ -85,4 +85,6 @@ import parsing
 #beta_reduction_interactive_totale(parsing.parseTerm(input("Enter a term: ")))
 # beta_reduction_interactive_totale(parsing.parseTerm(input("Enter a term: ")))
 
-### ADD SAVE IMAGE CHOICE FOR BETA REDUCTION!!!!
\ No newline at end of file
+### ADD SAVE IMAGE CHOICE FOR BETA REDUCTION!!!!
+#print(parsing.buildTerm("(#x.[#y.(y n)])"))
+#print(parsing.buildTerm("(#x.[#y.(y n)])"))
\ No newline at end of file
-- 
GitLab