| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
This sychronizes multiple processes so fiddle files can be effectively
complied in parallel.
|
|
|
|
| |
directly on a register
|
| |
|
|
|
|
| |
structs
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Fixed the issues where the output C code did not use correct register
sizes.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
This is to make anonymous expansion better and cleaner. It gets rid of
the hash-mark hack introduced earlier.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The compiler reset the offset to 0 in bitfield substructures.
|
|
|
|
| |
This is for expressions which must be calculatable at compile time.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Have basic implementations down for coarse registers. Working on getting
bitfields supported.
|
|
|
|
|
| |
This helps to catch bugs in the compiler, specifically ones related to
mixing up bits and bytes.
|
|
|
|
|
| |
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.
|
|
|
|
| |
This remove the burden of generating names from the backend.
|
|
|
|
|
| |
This makes deriving much easier and cleans up the messy contexts in
GenericTree and elsewhere at the cost of slightly more obtuse syntax.
|
| |
|
| |
|
|
|
|
|
|
| |
This is primarily done by making more things json and by instrumenting
which stage in compilation to dump and others. This means I can make
bash scripts for end to end testing.
|
| |
|
| |
|
|
|
|
| |
It now converts normal data into JSON rather than using "show".
|
|
|
|
|
|
|
| |
Big change. Implements qualification, which separates the qualification
concerns from the ConsistencyCheck phase.
I'm getting close to implementing a backend.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This stage will be responsible for qualifying all types and attaching
necessary metadata to make the job of later stages much easier.
|
| |
|
|
|
|
| |
As opposed to the original 'Annotated' data type.
|
|
|
|
|
| |
Import statements are fully implemented including compiling to an
interface file for faster compilations.
|
| |
|
| |
|
|
|
|
| |
compliation phases.
|
|
|
|
|
|
| |
Stage1 -> Parsed
Stage2 -> Expanded
Stage3 -> Checked
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Make some more changes to the generic implementation of EasySwitchStage.
|
|
|
|
| |
symbols.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
Added structures and unions to better define the layout and model
overlapping concerns.
renamed objtype -> type and object -> instance.
added reserved statements for types.
|
|
|
|
|
| |
I think this is the last phase before sending the refined AST to the
backend compiler to be processed.
|
|
|
|
|
| |
Delegated behavior of Compile monad to monad transformers MaybeT and
RWS.
|
| |
|