Skip to content
Snippets Groups Projects
Commit 8bf22911 authored by Antonio MATTAR's avatar Antonio MATTAR
Browse files

-Fixed the buildVar so that we deal with numbers instead of strings

parent 4bb2a1fe
No related branches found
No related tags found
No related merge requests found
from PIL import Image
img = Image.new("RGB", (1280, 800), (255, 255, 255))
img.save("terme.png", "PNG")
from main import * from main import *
# TERME = input('Please enter a Lambda-Term: ') # TERME = input('Please enter a Lambda-Term: ')
#renvoie conteur le nombre de parentheses ouvertes et indexes la liste des indices des parenthese) #renvoie conteur le nombre de parentheses ouvertes et indexes la liste des indices des parenthese)
variables_counter = 0
variables = {}
def open_parantheses_counter(terme): def open_parantheses_counter(terme):
counter = 0 counter = 0
indexes = [] indexes = []
...@@ -68,6 +72,7 @@ def getTermsFromParantheses(terme): ...@@ -68,6 +72,7 @@ def getTermsFromParantheses(terme):
#fonction qui enleve les espaces successifs et laisse un seul espace #fonction qui enleve les espaces successifs et laisse un seul espace
def remove_multiple_spaces(terme): def remove_multiple_spaces(terme):
terme = terme.strip()
new_term='' new_term=''
i=0 i=0
while i<len(terme): while i<len(terme):
...@@ -104,7 +109,7 @@ def isApplication(terme): ...@@ -104,7 +109,7 @@ def isApplication(terme):
#on prend l input de labs en chaine de caractères #on prend l input de labs en chaine de caractères
def parseInputFromAbs(terme): def extractInputFromAbs(terme):
input = '' input = ''
if checkType(terme) == ABS: if checkType(terme) == ABS:
i = 1 i = 1
...@@ -113,7 +118,7 @@ def parseInputFromAbs(terme): ...@@ -113,7 +118,7 @@ def parseInputFromAbs(terme):
i+=1 i+=1
return input return input
# on prend l output en chaine de caractères # on prend l output en chaine de caractères
def parseOutputFromAbs(terme): def extractOutputFromAbs(terme):
index_of_point = terme.find('.') index_of_point = terme.find('.')
if checkType(terme) == ABS: if checkType(terme) == ABS:
return terme[index_of_point+1:] return terme[index_of_point+1:]
...@@ -122,14 +127,18 @@ def buildVar(terme): ...@@ -122,14 +127,18 @@ def buildVar(terme):
assert (checkType(terme) == VAR) assert (checkType(terme) == VAR)
# print(terme) # print(terme)
if terme[0]!='(': if terme[0]!='(':
return new_var(terme) if terme in variables:
return variables[terme]
else:
variables[terme] = new_var(freshVar())
return variables[terme]
else : else :
return buildTerm(getTermFromParantheses(terme,0)) return buildTerm(getTermFromParantheses(terme,0))
def buildAbs(terme): def buildAbs(terme):
assert (checkType(terme) == ABS) assert (checkType(terme) == ABS)
input = parseInputFromAbs(terme) input = extractInputFromAbs(terme)
output = parseOutputFromAbs(terme) output = extractOutputFromAbs(terme)
# print(terme,"INPUT:", input,'OUTPUT:', output) # print(terme,"INPUT:", input,'OUTPUT:', output)
if terme [0]!= '(': if terme [0]!= '(':
return new_abs((buildTerm(input)),buildTerm(output)) return new_abs((buildTerm(input)),buildTerm(output))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment