Connor Olding
2143128628
split Preproc expansion into Expander class
2016-11-27 15:14:51 -08:00
Connor Olding
3aa5d01a21
refactor some utility functions
2016-11-27 14:02:28 -08:00
Connor Olding
f851540b24
various fixes, mostly for labels
...
reimplement modulo by 0x80000000 for labels.
allow numeric label values ("REL") to be "fixed" to bypass label calculation.
add offsets after label calculation instead of before.
properly check for EOL after all expected arguments have been exhausted.
finally, add token properties to debug dumps.
2016-04-24 03:55:12 -07:00
Connor Olding
694f09c9e0
clean up some of my mess
2016-04-21 03:35:17 -07:00
Connor Olding
bf439cafb3
cleanup some dead code
2016-04-21 02:10:12 -07:00
Connor Olding
c8f28bbbfb
reimplement Dumper; lips is mostly working again
2016-04-21 01:54:04 -07:00
Connor Olding
14e397a7a8
get a bunch of overrides working again
2016-04-21 00:28:50 -07:00
Connor Olding
acb5a3a6df
assemble some arguments that aren't registers again
2016-04-20 21:23:32 -07:00
Connor Olding
027485543c
assemble basic instructions again
2016-04-20 20:55:28 -07:00
Connor Olding
433d25a457
reimplement variables and relative labels
2016-04-20 18:26:18 -07:00
Connor Olding
486ccb99af
begin refactor; add statement collection
2016-04-20 16:23:44 -07:00
Connor Olding
c47136442e
don't use coroutines for lexing
...
this turned out to be unnecessary,
and some flavors of Lua don't even have coroutines!
2016-04-20 13:15:17 -07:00
Connor Olding
a655e67bd3
fix align/skip fill value overflow
2016-04-20 13:15:17 -07:00
Connor Olding
d10c0f0ee9
use Base class pattern; extend off existing classes
2016-04-20 13:15:17 -07:00
Connor Olding
e593ea0c68
add comments and such
2016-04-20 13:15:14 -07:00
Connor Olding
59994cd15d
fix binary lexing; add comments
2016-04-20 01:12:18 -07:00
Connor Olding
071169df48
redo internal paths/requires
2016-04-14 07:33:33 -07:00
Connor Olding
a9b702114a
allow importing/exporting of labels
2016-04-10 06:52:20 -07:00
Connor Olding
a58ad83c92
implement incbin directive
2016-04-10 04:03:00 -07:00
Connor Olding
311b1e362f
implement offsets for constants
2016-04-10 03:25:11 -07:00
Connor Olding
4b8af13e78
fix align directive with arguments
2016-04-02 08:05:05 -07:00
Connor Olding
260db0ba9e
fix a couple regressions
2016-01-16 10:51:13 -08:00
Connor Olding
07c68b6229
implement basic specials; more refactoring
2016-01-15 20:34:37 -08:00
Connor Olding
195236a52c
begin work on specials; big refactor
2016-01-15 11:15:02 -08:00
Connor Olding
c0c4d81b5a
handle parenthesis after lexing instead
2016-01-15 07:49:43 -08:00
Connor Olding
659bec36f8
reimplement defines
...
defines now resolve to the previous definition, rather than the lastmost.
also, defines are invisible to the parser now.
2016-01-14 17:29:45 -08:00
Connor Olding
61cd69004f
split out token-handling and preprocessing
2016-01-14 16:31:24 -08:00
Connor Olding
1eed93f2e7
add filenames to Dumper errors
2016-01-14 11:33:53 -08:00
Connor Olding
fffe542d10
fix most line numbers in errors
...
this might be a bit of a hack;
i feel like nextc() should always happen after yield(),
not a mix of before and after.
2016-01-14 10:32:08 -08:00
Connor Olding
996d148ed5
fix usage of fpu/sys registers
2016-01-13 14:45:55 -08:00
Connor Olding
e21dbc72e6
reimplement addressing modes
...
this allows labels as offsets
and implied offsets of 0
2016-01-13 14:31:58 -08:00
Connor Olding
bf3f86e568
allow labels in WORD directives
2016-01-13 13:07:00 -08:00
Connor Olding
a47c924e75
implement ascii/asciiz directives, basic string lexing
2016-01-13 11:18:36 -08:00
Connor Olding
9fd46b571f
set up as a proper module; fix some stuff
2016-01-13 07:40:14 -08:00