Skip to content

Documented RFASM#32

Open
atom-dispencer wants to merge 130 commits intogamesmaster3000x:masterfrom
atom-dispencer:master
Open

Documented RFASM#32
atom-dispencer wants to merge 130 commits intogamesmaster3000x:masterfrom
atom-dispencer:master

Conversation

@atom-dispencer
Copy link
Contributor

Also some updates to Crimson but they don't work rn so ignore them (the documentation is why im pulling) xoxoxx

- Added CB and updated RFASM statements in Crimson ANTLR
- More verbose error handling in Flattener and JumpEqualBStatement
- FunctionCStatement Name property now correctly gets and sets backing property in Header
- Converted NotImplementedException stubs to CommentBStatement stubs
- Removed HeapBStatement
- Added Size to SetBStatement
- Fixed AssemblyCStatement
- Fixed BasicCStatement
- Created ArbitraryBStatement
- Updated CB formatting
- RegisterBStatement
- StackBStatement
+ Push/PopSfBStatement
+ RegSetBStatement
+ FunctionCallCStatement target now linked correctly
- Outdated Crimson.md
Scopes work now yay!
(At least I think they do and the compilation spits out a .CBA which looks kinda like what I had before all these scope shenanigans)

+ IHasScope (Function, If, Else, While)
> More readable ToStrings for Library, Scope
> More verbose error handling for LinkerHelper
+ LinkerHelper now delegates finding functions to the Scope.
+ Scope can search UP its family tree for functions
+ ScopeVisitor now adds imports to Scopes
+ Structure Fraction
Doesn't do much right now but will be nice to deal with
+ structure keyword
- package keyword
- background colour for numbers
> Corrected void to null in console.crm
> Added scopes to Stack.md
+ Structure/Rawtype/ArrayCrimsonType
> Overhauled all ValueCTokens
+ Scope.FindStructure(structureName)
+ DataWidth option
> Currently overhauling FunctionCallCStatement
> FunctionCStatement.ReturnType moved to Header
This is now the same as in Crimson.
> Corrected missing brackets and wrong name type in grammar parameter rule
> Corrected syntax errors in heap.crm and utils.crm
> Lots of variable assignment
> Maybe added <size> syntax i dont rememver
> '<' and '>' are making the Notepad ++ highlight things it shouldn't, so they've temporarily been replaced by '<<>' and '<>>'
> Implemented ScopeVariableCStatement
> ScopeVisitor.VisitScopeVariableStatement/Declaration now returns non-null
+ Null-checking for Scope.AddStatement (why wasn't this checked before?)
Don't worry, I have a plan...
I think that I'll need to ship a migrated database with the product?
Trying to adhere to Clean Architecture
- Replaced Structures with Masks (although the examples have some memory/pointer-management errors in them)
- Replaced old class hierarchy for Values and Statement with interfaces (the classes were adding nothing and getting in the way of adding new features)
+ Berry
+ FunctionEntry
+ FunctionEntry.Converter
+ GlobalVariableEntry
> Moved Compiler readme.md to Compiler/API/Berry because it only talked about Berries anyway
+ Documentation for compilation stages in Compiler/readme.md
> General documentation update
+ BigBadExample.crm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant