The language ERPLAG is a strongly typed language with primitive data types as integer and floating point. It also supports two other data types: boolean and arrays. The language supports arithmetic and boolean expressions. The language supports assignment statements, input/output statements, declarative, conditional, iterative and function call statements. The language supports modular implementation of the functionalities. Functions can return multiple values. The function may or may not return a value as well. The scope of the variables is static and the variable is visible only in the block where it is declared. The language is designed for the course CS F363. The language has been evolving to provide a minimal feature set for the project in Compiler Construction course.
The Project is fully executable and testcases have been added for reference.
The Modules implemented are:
- Lexer
- Parser
- Abstract Syntax Tree
- Symbol Table
- TypeChecking and Semantic Analysis