summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/GenericTree.hs
Commit message (Collapse)AuthorAge
* Added syntax for skip_to and buffer.Josh Rahm2024-11-26
| | | | | | | buffer tells fiddle to create a buffer of a number of bytes. skip_to tells fiddle to skip to some new offset. It's essentially an unnamed buffer
* Provide more data during qualification about how a path is qualified.Josh Rahm2024-10-19
| | | | | | Now it includes information about the package a symobl is in. The object its in and the register its in. This allows better code generation in the backend that's somewhat more organized.
* Add ContExpression syntax tree.Josh Rahm2024-10-17
| | | | This is for expressions which must be calculatable at compile time.
* Start implementing a bunch of the C backend.Josh Rahm2024-10-13
| | | | | Have basic implementations down for coarse registers. Working on getting bitfields supported.
* Change 'Expression' to use numbers with units.Josh Rahm2024-10-11
| | | | | This helps to catch bugs in the compiler, specifically ones related to mixing up bits and bytes.
* Replace all the qualification metadata with 'When (s .>= Qualified)'Josh Rahm2024-10-11
| | | | | This makes deriving much easier and cleans up the messy contexts in GenericTree and elsewhere at the cost of slightly more obtuse syntax.
* Prefer GADT's over typ families for some SyntaxTree elements.Josh Rahm2024-10-11
|
* Change syntax trees to include the names of the records.Josh Rahm2024-10-08
|
* Add offset information to some AST elements.wipJosh Rahm2024-10-07
|
* Much better handling for the generic syntax tree.Josh Rahm2024-10-05
| | | | It now converts normal data into JSON rather than using "show".
* Implement qualification.Josh Rahm2024-10-05
| | | | | | | Big change. Implements qualification, which separates the qualification concerns from the ConsistencyCheck phase. I'm getting close to implementing a backend.
* Clean up warnings and remove unused files.Josh Rahm2024-10-03
|
* Make changes to AST for qualification step.Josh Rahm2024-10-03
|
* Another monolithic change. Not good git ettiquite.Josh Rahm2024-10-03
| | | | | Import statements are fully implemented including compiling to an interface file for faster compilations.
* Add import resolution phase and also add a more abstractions aroundJosh Rahm2024-09-27
| | | | compliation phases.
* feat: Add AdvanceStage typeclass and refactor code to use itJosh Rahm2024-09-25
| | | | | | | Introduced the `AdvanceStage` typeclass, which provides a mechanism to transition AST elements between different compilation stages. This abstraction facilitates easier traversal and modification of the syntax tree as it progresses through various compilation phases.
* Split the Ast file into multiple sub files.Josh Rahm2024-09-25
| | | | Make some more changes to the generic implementation of EasySwitchStage.
* Add import statements, add using statements, properly cross-packageJosh Rahm2024-09-22
| | | | symbols.
* More major changes to the grammer.Josh Rahm2024-09-22
| | | | | | Added annotation sublanguage for defining compiler directives. Also added the syntax for import statements. Imports are not implemented, but I'm currently working on that.
* Some major changes to the structure of the language.Josh Rahm2024-09-20
| | | | | | | | | Added structures and unions to better define the layout and model overlapping concerns. renamed objtype -> type and object -> instance. added reserved statements for types.
* Add Stage3 compliation.Josh Rahm2024-08-24
| | | | | I think this is the last phase before sending the refined AST to the backend compiler to be processed.
* Fleshed out stage2 and made some big changes.Josh Rahm2024-08-21
| | | | | Delegated behavior of Compile monad to monad transformers MaybeT and RWS.
* Parser is able to parse the goal file.Josh Rahm2023-01-08