summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Compiler/Backend
Commit message (Collapse)AuthorAge
* Add metadata information to the BitsSubStructure and compile it correctly.Josh Rahm2024-11-27
|
* 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
* Fix bug where superfluous index argument was added to getters.Josh Rahm2024-10-29
|
* Enforce that registers are either 8, 16, 32, or 64 bits.Josh Rahm2024-10-27
| | | | | Fixed the issues where the output C code did not use correct register sizes.
* Finish implementing alpha-version of the C-backend.Josh Rahm2024-10-27
| | | | | | This produces valid C code in a header file and also provides an INTF macro which makes it much less obtuse to call the various functions to set and unset bitfields.
* C backend now implmeents some enumsJosh Rahm2024-10-24
|
* Implement bitfield arrays.Josh Rahm2024-10-22
|
* Change the AST to use Names instead of Identifiers for ObjDecls and BitsDeclsJosh Rahm2024-10-19
| | | | | This is to make anonymous expansion better and cleaner. It gets rid of the hash-mark hack introduced earlier.
* 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.
* Add framework for more easily editing files.Josh Rahm2024-10-16
| | | | | | | | This introduces the FilesM monad, which allows for monadic and fragmented writing to files in a filesystem. This provides an abstraction over writing to different "fragments" of files so implementation, headers and declarations can all be written using just one pass of the compiler.
* Start implementing a bunch of the C backend.Josh Rahm2024-10-13
| | | | | Have basic implementations down for coarse registers. Working on getting bitfields supported.
* Further implement C backend.Josh Rahm2024-10-11
| | | | | There is a problem where I'm mixing up bits and bytes. I think I'll try to resolve that using more type-level constraints.
* 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.
* Add backend support and start implementing a C backend.oJosh Rahm2024-10-10