Compiler Project  with  two phases  lexical & Syntax Analysis
    
    
  
📌Lexical analysis :
Lexical analysis is the first phase of a compiler. It takes the modified source code from language preprocessors that are written in the form of sentences. The lexical analyzer breaks these syntax's into a series of tokens, by removing any whitespace or comments in the source code.
- Tokenization: Start by creating a lexer that will take the source code and break it into tokens.
 - Regular Expressions: We will use regular expressions to match the tokens.
 - Symbol Table: We will use a symbol table to store the tokens.
 
📌Syntax analysis :
Syntax analysis is the second phase of a compiler. It takes the token produced by lexical analysis as input and generates a parse tree (or syntax tree). Syntax analysis checks the tokens for any syntax errors. It also adds the additional information to the parse tree.
- Grammar: We will use a grammar to define the syntax of our language.
 - Parser: We will use a parser to parse the tokens.
 - Abstract Syntax Tree: We will use an abstract syntax tree to store the tokens.
 - Error Handling: We will use error handling to handle any syntax errors.
 
Any contributions you make are greatly appreciated.
- If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
 - Please make sure you check your spelling and grammar.
 - Create individual PR for each suggestion.
 - Make sure to add a meaningful description
 
- Fork the Project
 - Create your Feature Branch (
git checkout -b feature/GoalFeature) - Commit your Changes (
git commit -m 'Add some GoalFeature') - Push to the Branch (
git push origin feature/GoalFeature) - Open a Pull Request
 
- Ziad Shalaby - Computer Science Student - Ziad Shalaby
 - Salma Hamdy - Computer Science Student - Salma Hamdy
 - Said Sharaf - Computer Science Student - Said Sharaf
 - Rowyda Ehab - Computer Science Student - Rowyda Ehab