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

-fixed to_string

parent 5a6574ad
Branches
No related tags found
No related merge requests found
0.png

440 KiB

1.png

373 KiB

2.png

354 KiB

3.png

276 KiB

4.png

232 KiB

from ast import Raise
from logging import exception
from pprint import pprint
from PIL import Image
import logic
import parsing
......@@ -94,4 +93,4 @@ def createImage(terme):
raise Exception("Unsupported term type")
def saveImage(image,name):
image.save( name+".png", "PNG")
\ No newline at end of file
image.image.save( name+".png", "PNG")
\ No newline at end of file
......@@ -195,7 +195,7 @@ import image_maker
image_counter = 0
def captureImage(terme):
global image_counter
image_maker.saveImage(image_maker.createImage(terme).image,str(image_counter))
image_maker.saveImage(image_maker.createImage(terme),str(image_counter))
image_counter += 1
def beta_reduction_totale(terme):
......@@ -213,8 +213,23 @@ def to_string_abs(terme):
return "#"+to_string(getInputFromAbs(terme))+"."+to_string(getOutputFromAbs(terme))
def to_string_app(terme):
assert (isApplication(terme)), 'The argument is not an application'
return "("+to_string(getFirstTerm(terme))+")"+' '+"("+to_string(getSecondTerm(terme))+")"
assert (isApplication(terme)), 'The argument is not an application' #() ons econd term if application / no () over variable/ if ABS inside APP ()
premier_terme = ''
deuxieme_terme = ''
if isVariable(getFirstTerm(terme)):
premier_terme += to_string(getFirstTerm(terme))
elif isAbstraction(getFirstTerm(terme)):
premier_terme += "("+to_string(getFirstTerm(terme))+")"
elif isApplication(getFirstTerm(terme)):
premier_terme += to_string(getFirstTerm(terme))
if isVariable(getSecondTerm(terme)):
deuxieme_terme += to_string(getSecondTerm(terme))
elif isAbstraction(getSecondTerm(terme)):
deuxieme_terme += "("+to_string(getSecondTerm(terme))+")"
elif isApplication(getSecondTerm(terme)):
deuxieme_terme += "("+to_string(getSecondTerm(terme))+")"
return premier_terme + ' ' + deuxieme_terme
def to_string(terme):
if isVariable(terme):
return to_string_var(terme)
......
......@@ -7,6 +7,9 @@ def run():
# image_maker.saveImage(x, "terme")
# x.show()
logic.beta_reduction_totale(parsing.parseTerm(input("Enter a term: ")))
# x = logic.new_var(logic.freshVar())
# y = logic.new_var(logic.freshVar())
# print(logic.to_string(logic.new_app(x,logic.new_app(x,x))))
run()
\ No newline at end of file
......@@ -58,15 +58,15 @@ print(to_string([APP, [APP, [ABS, x, y], y] , z]))
#############################################################################################################################
import parser
A = "#x.(x)(y)"
print(getTermsFromParantheses("(AAAAAA)(BBBBBBBBB)(CCCCCCCCC)"))
print(buildTerm(A))
print(remove_first_and_last_spaces('ll'))
print(isAbstraction(A))
print(isApplication("(x)(y)(z)"))
print(checkType("(#x.x)"))
print(buildTerm('(#x.x)(#y.y)'))
print(remove_inutile_spaces('(#x.x)(#y.y)'))
# A = "#x.(x)(y)"
# print(getTermsFromParantheses("(AAAAAA)(BBBBBBBBB)(CCCCCCCCC)"))
# print(buildTerm(A))
# print(remove_first_and_last_spaces('ll'))
# print(isAbstraction(A))
# print(isApplication("(x)(y)(z)"))
# print(checkType("(#x.x)"))
# print(buildTerm('(#x.x)(#y.y)'))
# print(remove_inutile_spaces('(#x.x)(#y.y)'))
# print(open_parantheses_counter('((((((((((('))
# print(close_parantheses_counter('((((((((((()'))
# print(buildAbs("#x.ABC"))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment