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

-Fixed bugs and added image capture at each reduction.

parent 00c56e32
No related branches found
No related tags found
No related merge requests found
from ast import Raise
from email.mime import application
from logging import exception
from PIL import Image
import processor
import logic
import parser
......@@ -10,7 +9,7 @@ colors = ['black','blue','green','orange','pink','purple','red','yellow']
variables_colors_couple = {}
def associateVariableWithColor(variable):
assert (processor.isVariable(variable))
assert (logic.isVariable(variable))
if len(colors) == 0:
raise Exception ("Not enough colors for variables! (Maximum of 9 different Variables)")
if str(variable) not in variables_colors_couple:
......@@ -18,21 +17,21 @@ def associateVariableWithColor(variable):
colors.pop()
def createVarImage(variable):
assert (processor.isVariable(variable))
assert (logic.isVariable(variable))
associateVariableWithColor(variable)
egg_img = Image.open("figures/egg_"+variables_colors_couple[str(variable)]+".png")
return egg_img
def createAlligator(terme):
assert (processor.isVariable(terme))
assert (logic.isVariable(terme))
associateVariableWithColor(terme)
alligator_img = Image.open("figures/alligator_"+variables_colors_couple[str(terme)]+".png")
return alligator_img
def createAbsImage(terme):
assert (processor.isAbstraction(terme))
input = processor.getInputFromAbs(terme)
output = processor.getOutputFromAbs(terme)
assert (logic.isAbstraction(terme))
input = logic.getInputFromAbs(terme)
output = logic.getOutputFromAbs(terme)
im1 =createAlligator(input)
im2 = createImage(output)
abstraction = Image.new('RGB', (max(im1.width, im2.width), im1.height + im2.height), (255, 255, 255))
......@@ -53,9 +52,9 @@ def get_concat_h_multi_resize(im_list, resample=Image.BICUBIC):
return dst
def createAppImage(terme):
assert (processor.isApplication(terme))
left = processor.getFirstTerm(terme)
right = processor.getSecondTerm(terme)
assert (logic.isApplication(terme))
left = logic.getFirstTerm(terme)
right = logic.getSecondTerm(terme)
im1 = createImage(left)
im2 = createImage(right)
space = Image.open("figures/space.png")
......@@ -63,16 +62,14 @@ def createAppImage(terme):
return application
def createImage(terme):
if processor.isVariable(terme):
if logic.isVariable(terme):
return createVarImage(terme)
if processor.isAbstraction(terme):
if logic.isAbstraction(terme):
return createAbsImage(terme)
if processor.isApplication(terme):
if logic.isApplication(terme):
return createAppImage(terme)
else:
raise Exception("Unsupported term type")
def saveImage(image,name):
image.save( name+".png", "PNG")
saveImage(createImage(parser.parseTerm(input("Enter a term: "))), "terme")
\ No newline at end of file
......@@ -191,10 +191,17 @@ def beta_reduction(t):
else:
return None
import image_maker
image_counter = 0
def captureImage(terme):
global image_counter
image_maker.saveImage(image_maker.createImage(terme),str(image_counter))
image_counter += 1
def beta_reduction_totale(terme):
captureImage(terme)
if beta_reduction(terme) != None:
return beta_reduction_totale(beta_reduction(terme))
print('test')
return (terme)
def to_string_var(terme):
......
import processor
import logic
import parser
import image_maker
def run():
print(processor.to_string(parser.parseTerm(input("Enter a term: "))))
# image_maker.associateVariablesWithColors(parser.variables)
# print(parser.variables)
# print(image_maker.variables_colors_couple)
# image_maker.createVarsImages(parser.variables)
# image_maker.createAlligator(parser.parseTerm(input("Enter a term: ")))
# x = image_maker.createImage(parser.parseTerm(input("Enter a term: ")))
# image_maker.saveImage(x, "terme")
# x.show()
logic.beta_reduction_totale(parser.parseTerm(input("Enter a term: ")))
run()
\ No newline at end of file
from processor import *
import processor
from logic import *
# TERME = input('Please enter a Lambda-Term: ')
#renvoie conteur le nombre de parentheses ouvertes et indexes la liste des indices des parenthese)
......
terme.png

141 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment