* Compiler
- Re-enabled compilation tests (partially)
* Dependency
- Fixed comment
- Implemented `clearFuncDefs()`
* TypeChecker
- Clear the `FunctionData[string]` table after a batch of typechecking/codegen such that we don't have lingering data from previous compilations which gets reliniearzed resulting in an exception being thrown as it was marked as linearized from its first time from a previous compilation
* Compiler
- Re-enabled unit tests for compilation
- Added TODO relating to adding failing test cases as well
* Compiler
- Added unit test for failing tests
* TypeCheck
- Use a scopre guard to call `clearFuncDefs()` such that it is called even when exceptions are thrown during depgen, typecheck/codegen ensuring we have it cleared for the next run
* Compiler
- Added `gibeFileData(string)` to easily read the source text
- Added all `typecheck` (good and bad) tests
* Pipelines
- Updated name
* Compiler (unittests)
- Re-ordered the test cases
- Commented them out
* Compiler
- Added documentation for `gibFileData(string)`
- Made `gibFileData(string)` private
* Compiler (unit tests)
- Documented unit test
* Compiler
- Cleaned up imports
* Compiler (unit tests)
- Added TODO
- Added spacing
- Lookup the value of `dgen:compiler` from the config and use that as the C compiler
Configuration
- Set default value of `dgen:compiler` to `"clang"`
Commands
- Added a command to specify the C compile to use
- Transfer `-cccompiler`/`-cc` over to a config entry
- Use `tackon(string)` in `FunctionCall` instruction
- Added `isStatementLevel(Instruction)`
- In the exit scope guard call `yankPreinliner()` if `isStatementLevel(Instruction)` is `true`
- Now lookup `dgen:mapper` instead of `emit:mapper`
Configuration
- Now set `dgen:mapper` to `hashmapper` instead of `emit:mapper`
- Added `dgen_preinline_args` and set it to `false`
Commands
- Updated description for `symbol-mapper`/`sm` flag
- The `symbol-mapper`/`sm` flag now affects the `dgen:mapper` entry instead of the `emit:mapper` entry
- Transfer the flag value of `preinlineArguments`/`pia` to the `dgen:preinline_args` entry
* Dependency
- Removed crap for `VariableExpression` dependency node generation
- This is a work-in-progress clean up
* Dependency
- Added some comments
* Dependency
- Avoid path hopping by making this beanch constantly `true`
* Dependency
- Cleaned up some more, added link to issue regarding context sets
* Dependency
- Don't fetch-and-set context for `bruh` (the entity being referenced)
* Dependency
- Removed path-hopper code
* Dependency
- Checking iets
* Dependency
- Undid checking-iets
* Dependency
- Checking iets (fr)
* Revert "Dependency"
This reverts commit 5ddab9dd3d.
* Dependency
- No need to set it here if set above
* Dependency
- Removed no-op branch
* Dependency
- Cleaned up some more
* Dependency
- Refactored code
* Dependency
- Cleaned up
- Switch to `TypedEntity` and support both `Variable` and `StructVariableInstance` when applying cloning process
- Added some debug prints along with this too
- Switched to using `StorageDeclaration`
- WHen processing a `StaticVariableDeclaration`-kind of `DNode` apply special rule for `VariableDeclaration` (despite parser most likely finding this error before we do at this later stage)
- Allow symbol mapping to be based on whether the `symbolMapping` variable is `true` or `false` when processing a `StructInstantiateInstruction`
- When processing a `StructTypeDeclareInstruction` use the `StorageDeclaration` instead of `VariableDeclaration` now
- Now use `TypedEntity` instead of `Variable` for the members array so that we can also store not only `Variable`-based members but also `StructInstance`-based members
- Implemented `MCloneable` (cloneability) support
- Now use `StorageDeclaration` instead of `VariableDeclaration`
StructTypeDeclareInstruction
- Now use `StorageDeclaration` instead of `VariableDeclaration`