Compiler object #90

Closed
opened 2023-01-20 13:04:32 +00:00 by deavmi · 3 comments
Owner

What is this?

We want to encapsulate a single run of the compiler into a Compiler object. So far we have had good success but face following issues:

  • Bug when multiple compilers run, symbol lookups fail? Maybe an issue with some static entity in a typechecker somewhere? See issue #88
  • Make Lexer throw exceptions instead of having performLex() return a boolean
  • Flags sub-system (compiler configuration system)
    • This has been completed via a string -> string mapping with runtime conversion based on compile time methods requested. Maybe later it can be more complex, perhaps string -> Object mapping with downcasting dependent on who is calling.
  • Make the compiler object have seperate doLex(), doParse() calls
## What is this? We want to encapsulate a single run of the compiler into a `Compiler` object. So far we have had good success but face following issues: - [ ] ~~Bug when multiple compilers run, symbol lookups fail? Maybe an issue with some `static` entity in a typechecker somewhere? See issue #88~~ - [x] Make `Lexer` throw exceptions instead of having `performLex()` return a boolean - [x] Flags sub-system (compiler configuration system) * This has been completed via a `string` -> `string` mapping with runtime conversion based on compile time methods requested. Maybe later it can be more complex, perhaps `string` -> `Object` mapping with downcasting dependent on who is calling. - [x] Make the compiler object have seperate `doLex()`, `doParse()` calls
deavmi added reference compiler_object 2023-01-20 13:04:40 +00:00
deavmi added the
qol
label 2023-01-20 13:06:03 +00:00
deavmi added this to the Basics milestone 2023-01-20 13:06:24 +00:00
deavmi self-assigned this 2023-01-20 13:06:27 +00:00
deavmi added the due date 2023-01-31 2023-01-20 13:06:37 +00:00
Author
Owner

The lexer now throws exceptions instead of returning a bool in commit e1e554d6bae99bfe64f22bca6bf68620d577c9ff on the branch of this issue.

The lexer now throws exceptions instead of returning a `bool` in commit `e1e554d6bae99bfe64f22bca6bf68620d577c9ff` on the branch of this issue.
deavmi added this to the Compiler project 2023-01-22 13:14:26 +00:00
deavmi added a new dependency 2023-01-22 13:22:29 +00:00
Author
Owner

We have completed most of these, just the todo at the top.

We have completed most of these, just the todo at the top.
Author
Owner

With commit d548a066a63add60c2d587a8ad42ef04cd685e5c we reworked the configuration sub system

With commit `d548a066a63add60c2d587a8ad42ef04cd685e5c` we reworked the configuration sub system ✅
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

2023-01-31

Blocks
Reference: tlang/tlang#90
No description provided.