- Program
- Functiions
- Function
- Main
- Statements
- Conditionals
- Loops
- Declaration Statements
- Arithmetic Statements
- Assignment Statements
- Number
- Boolean
- Identifier
- Functiions
- Remove resursion in grammar
- Initialization
- Expressions
- Conditonals
- Loops
- Functions
- Test functions
- Define keywords array
- Token enum
- main.c
- Accept File
- Maybe Check extension
- Load the parser.c and call the parser function
- Parser
- Load lexer
- Run lexer when non EOF
- Phase 2 of assignment
- Lexer
- Load lexer state
- Variable Indentifier
- Function Identifier
- Integer Literal Identifier
- Float Literal Identifier
- Operator Identifier
- Skip Empty lines
- Skip Comments
- Change while loop to loop on SEARCHING state.
- Add string data type
- Fix String RE : Gives error when "Hello worl\d"
- O(n^2) -> O(n)
- Lexer errors:
- Incomplete Float. Eg: (0|[1-9][0-9]*)".",
- Incorrect integers. Eg: 0[1-9]+,
- Seeing the characters: [`$^:"'?]
- Not matching double quotes for strings or invalid excape sequences
- Token
- Define tokens
- functions for operators
- functions for variable identifier
- functions for function identifier
- Error Correction of Code
Check ./tests/examples/
directory for the examples.
- Simple Example
- Initialization Example
- Conditonals Example
- Loops Example
- Function Example
- Recursion Example
- Complex example 1
- Check indentation
- References:
-
Add Assignment_Numeric_Expr for FOR LOOP
-
Remove left and right shift operator
-
Remove recursions
-
Add Prod rule reader
-
Add first set computing function
-
Add follow set computing function
-
Parse table generation
-
Print Parse Table
-
Parser
-
Skip Errors
-
SYNCH Errors
-
Test with multiple programs and create test suite
- Init
- Expression
- Conditionals
- Loops
- Funtion
- Recursion
- Complex
- Errors