v0.3.0 #1
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "v0.3.0"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
New
Expressions!
The new expression engine can do wrapping arithmetic on immediate values and absolute addresses!
a * b
: Multiplicationa / b
: Divisiona % b
: Remainder/Modulusa + b
: Additiona - b
: Subtractiona << b
: Left bit-shifta >> b
: Right bit-shifta & b
: Bitwise anda | b
: Bitwise ora ^ b
: Bitwise xor-a
: Two's complement negation!a
: Bitwise not (Inversion)*a
: *.org
-based address dereference&ident
: *Resolves the absolute address of an identifier(a)
: Sub-expression grouping* Operations on the assembled binary are deferred until the late evaluation stage
Licensing
Relicensed the project under the MIT license, except those parts already licensed under the GPL.
Updated
The vast majority of the application has been rewritten
regex
: lexer is now fully manualunicode-ident
to accept valid unicode identifiersanes
has been removed - it manages to make ANSI escapes more clunky than they usually are for no material benefit. It has been replaced with a couple hand-rolled macros and constants.Lexer
90
|0d90
|090
: Decimal (90)0xf0
: Hexadecimal (240)0o70
: Octal (56)0b10
: Binary (2)Preprocessor
-Rewritten from the ground up. It does pretty much the same thing as the previous iterator implementation, but in a simpler way, without all the iterator nonsense.
.define
statementsParser
Canonicalizer
nop
=>mov cg, cg
,tst.b r15
=>cmp.b #0, r15
Assembler
Questions and Todos
greater
. Now emitsRsh
tokens~! af89541af1Parsable
to align withassembler::Assemble
860c9d4a97Span
, so rename module tospan.rs
a63a4b7ece