Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Alligators-python
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Benjamin Monmege
Alligators-python
Commits
426d9c34
Commit
426d9c34
authored
Jun 9, 2022
by
Antonio MATTAR
Browse files
Options
Downloads
Patches
Plain Diff
-Fixed bugs and added image capture at each reduction.
parent
00c56e32
No related branches found
No related tags found
No related merge requests found
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
image_maker.py
+13
-16
13 additions, 16 deletions
image_maker.py
logic.py
+8
-1
8 additions, 1 deletion
logic.py
main.py
+5
-8
5 additions, 8 deletions
main.py
parser.py
+1
-2
1 addition, 2 deletions
parser.py
terme.png
+0
-0
0 additions, 0 deletions
terme.png
with
27 additions
and
27 deletions
image_maker.py
+
13
−
16
View file @
426d9c34
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
This diff is collapsed.
Click to expand it.
processor
.py
→
logic
.py
+
8
−
1
View file @
426d9c34
...
...
@@ -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
):
...
...
This diff is collapsed.
Click to expand it.
main.py
+
5
−
8
View file @
426d9c34
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
This diff is collapsed.
Click to expand it.
parser.py
+
1
−
2
View file @
426d9c34
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)
...
...
This diff is collapsed.
Click to expand it.
terme.png
deleted
100644 → 0
+
0
−
0
View file @
00c56e32
141 KiB
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment