Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

Commit

Permalink
Update readme and report
Browse files Browse the repository at this point in the history
  • Loading branch information
GabDug committed Jan 5, 2018
1 parent c88fa20 commit 46891f3
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 22 deletions.
24 changes: 16 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
![Project Calculator](https://i.imgur.com/VW49Ez0.png)
=========================================================================================================================================================================================
By Thibault LEPEZ and Gabriel DUGNY. [![Build Status](https://travis-ci.com/SoFolichon/ProjectCalculator.svg?token=p5pFoFaqAiLRDSEHnrdp&branch=master)](https://travis-ci.com/SoFolichon/ProjectCalculator) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
======================================================

[![Build Status](https://travis-ci.com/SoFolichon/ProjectCalculator.svg?token=p5pFoFaqAiLRDSEHnrdp&branch=master)](https://travis-ci.com/SoFolichon/ProjectCalculator) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)

This project is licensed under the terms of the GNU AGPLv3 license.
A simple expression evaluator in Python. Works with integers, booleans, strings and with variables.
Built as a project for the Efrei Paris ingenering school by Thibault LEPEZ and Gabriel DUGNY.


Usage
-----
Launch `main.py` for the console version. Require Python 3.6+.

Technical Notes
---
For this project, we used [f-strings](https://www.python.org/dev/peps/pep-0498/), only available with Python 3.6+.
The project and the exercices won't work on a previous version of Python.
Launch `test.py` to test the evaluator.


License
-------
This project is licensed under the terms of the GNU AGPLv3 license.


TODO
Expand All @@ -17,4 +25,4 @@ TODO
- 2.1.4. Promoting to String Types
- 2.2. Variables (Assignment, Substitution)
- 2.3. Error Handling (Incomplete)
- 3. Bonus Features (Conf File?)
- \3. Bonus Features (Conf File?)
36 changes: 22 additions & 14 deletions REPORT.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
Project Calculator [![Build Status](https://travis-ci.com/SoFolichon/ProjectCalculator.svg?token=p5pFoFaqAiLRDSEHnrdp&branch=master)](https://travis-ci.com/SoFolichon/ProjectCalculator)
===============
![Project Calculator](https://i.imgur.com/VW49Ez0.png)
======================================================

[![Build Status](https://travis-ci.com/SoFolichon/ProjectCalculator.svg?token=p5pFoFaqAiLRDSEHnrdp&branch=master)](https://travis-ci.com/SoFolichon/ProjectCalculator) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)

*By Gabriel DUGNY and Thibault LEPEZ, Efrei Paris Promo 2022, December 2017.*


Expand All @@ -12,30 +15,35 @@ Architecture of the calculator
------------------------------
- Modules and their purpose
- Parse.py:
- Function parse: calls alls the needed functions, to get a tokens
- Function parse: calls all the needed functions, to get a token
list from a string expression.
- Function expression to list: does the work! Handle every type of
token to be parsed, negative integers, parenthesis (parenthesis stack).
Based on the example given.
- Function remove parenthesis: second function used by others files,
to remove useless parenthesis recursively.
token to be parsed, negative integers, parenthesis (use of parenthesis stack).
Parser based on the example given.
- Function remove parenthesis: used by others modules,
to remove useless parenthesis recursively when they aren't needed.
- Main data structures
- Tokens list: TODO bc we'll probably change the tuple way
- Main algorithms
- Search operator: this algorithms searches for the operator where to split
an expression into 2 expressions. It searches for operators, from lowest to highest priority,
from the end of the expression to its beggining.


Achievements and difficulties
-----------------------------
- Achievements with respect to the requirements
- Problems you faces
- Regressions
- Problems you faced
- Regressions: it's quite easy to break the code by changing only one line in another module.

- What we have earned
- Test to avoid regressions: automaticaly ran localy, and also at each commit
- Collaboration: make the best use of free tools like Git, Github.com...
- Types of operators: betetr understanding of the syntax and rules of langyuages.
Unary operators (not, - on an int), infix binary....
- What we have earned (unit test, collaboration...)
- Unit test to avoid regressions
- Better understanding of maths, algorithmic:
- We have to understand the way each expression works, term by term (factors, atoms...)
(Precedence, associativity...)
- Better understanding of maths, algorithmic:
- We have to understand the way each expression works, term by term (factors, atoms...)
(Precedence, associativity...)


Conclusion
Expand Down

0 comments on commit 46891f3

Please sign in to comment.