This is a simple C-based interpreter that executes instructions and print the result of execution. The program accepts a text file as source code, parses it, and prints the value of each variable. For example:
Src.txt
X = 12.5
Y = X*4/5
Z = X*Y/5
M = Z*-2
K = 10.5+ (Z-2.5)/(X+Y)
First, the output of the process should be the display of all variables each one with its value, sorted by the variable name:
K = 11.5
M = -50
X = 12.5
Y = 10
Z = 25
Second, all variables are displayed each one with its value sorted by value, such as:
M = -50
Y = 10
K = 11.5
X = 12.5
Z = 25
- Expression evaluation was done by converting the expression from infix to postfix notation, using stacks.
- Variables are stored in a BST each node having a key/value:
- Key as the variable name
- Value is the value of the variable
- Insertion of a new item is done by calling a function put(k,v) where k is key and v is value:
- If the key already exists update the value
- If not, insert a new key/value pair.
- Sorting by variable name is done using inorder traversal for BST.
- Sorting by value is done using the heapsort algorithm.
- Data Structures used:
- Arrays
- Stacks
- Binary Search Trees
- Heaps
This project was developed as the final project of the course Data Structures I in the Spring 2020 semester at the Faculty of Engineering, Alexandria University, under the Computer and Communications Engineering department, supervised by Dr. Mohamed Salama.
This project was developed using the Code::Blocks IDE as a C console application.
1- Clone the repository to your local machine:
git clone https://github.com/MohEsmail143/simple-interpreter.git
2- Open the project using the Code::Blocks IDE.
3- Run the project by clicking on the button Build and run
. The following window should appear:
This project is licensed under the MIT License - see the LICENSE.md file for details