Programming language is optional with no restrictions Standard Compiler Components:
- Lexer (Tokenizer)
- Parser
- Semantic Analyzer
- Code Generator (IR, probably going to use LLVM)
- Current using Python for implementation
Libraries being used as a learning tool: rPLY, LLVM/liteNot using rPLY for Lexer and ParserrPLY for Lexer & Parser- LLVM for generating machine code [?] Need to read up on LLVM after the other parts
- Current language input:
Unknown because the professor hasn't told us yet. So thats cool. Will assume Pascal as input for nowPascal is the input language.
Features:
- Pascal Program
- Variable
- Assignments**(Required)** (Required)
- Writeln (done for strings)
- Addition/Subtraction
- Multiplication/Division
- TypeChecking
- Begin/End
- Symbol Table
- If/Else (Required)
- While (Required)
- And (Required)
- Procedures (Kind of) (Required)
- Declarations (Required)
- Repeat (Required)
- Goto (Required)
- Case (Required)
- Tokenizer (Kind of done?)
- Lexer ^
- Parser ^
- Code Generator/Stack Machine: I have no idea how to approach this atm. Finishing some functions before I move on to this.