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
6433227c26
rewrite overrides, reimplement ROL/ROR
2016-04-23 19:36:26 -07:00
43e08af5c5
fix some branch pseudo-instructions; fix example
2016-04-23 16:43:43 -07:00
1188543cd2
more verbose errors
2016-04-23 16:24:46 -07:00
5f74f178d3
actually fix hex and inc directives
2016-04-23 15:51:29 -07:00
33ea629309
fix data collection, expect EOLs for all directives
2016-04-23 02:10:38 -07:00
87c210d617
add .push/.pop directives for basic states
2016-04-23 02:06:43 -07:00
515a5f7635
fix and deprecate options.offset
2016-04-21 12:56:13 -07:00
1266dfd18f
add .base directive; PC calculation
2016-04-21 11:46:29 -07:00
e25ee2013c
fix some pseudo-branch instructions
2016-04-21 10:55:49 -07:00
6eac36584f
properly compute offsets
2016-04-21 04:10:40 -07:00
694f09c9e0
clean up some of my mess
2016-04-21 03:35:17 -07:00
fc153d5191
fix label importing; cache data lengths
2016-04-21 02:56:56 -07:00
901d7ceac5
fix .align directive and data measurement
2016-04-21 02:32:49 -07:00
bf439cafb3
cleanup some dead code
2016-04-21 02:10:12 -07:00
c8f28bbbfb
reimplement Dumper; lips is mostly working again
2016-04-21 01:54:04 -07:00
14e397a7a8
get a bunch of overrides working again
2016-04-21 00:28:50 -07:00
acb5a3a6df
assemble some arguments that aren't registers again
2016-04-20 21:23:32 -07:00
027485543c
assemble basic instructions again
2016-04-20 20:55:28 -07:00
433d25a457
reimplement variables and relative labels
2016-04-20 18:26:18 -07:00
91e028ef6a
rename internal DEF to VAR
2016-04-20 16:28:59 -07:00
486ccb99af
begin refactor; add statement collection
2016-04-20 16:23:44 -07:00
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
a655e67bd3
fix align/skip fill value overflow
2016-04-20 13:15:17 -07:00
d10c0f0ee9
use Base class pattern; extend off existing classes
2016-04-20 13:15:17 -07:00
e593ea0c68
add comments and such
2016-04-20 13:15:14 -07:00
7ccc2b180f
rename "defines" to "variables"
...
this follows bass' terminology:
constants don't care where they're defined, but can never be changed.
variables must be defined before use, but can be redefined.
defines aren't necessarily numbers.
bass: https://github.com/ARM9/bass
2016-04-20 01:41:44 -07:00
7af890c3b5
add 0o and 0b prefixes for lexing octal and binary
2016-04-20 01:16:19 -07:00
67ce15feee
fail to lex 0X hex prefix in favor of lowercase 0x
...
you are a terrible person if you do this
2016-04-20 01:12:57 -07:00
59994cd15d
fix binary lexing; add comments
2016-04-20 01:12:18 -07:00
54d0ea0378
fix example paths
2016-04-14 07:54:41 -07:00
071169df48
redo internal paths/requires
2016-04-14 07:33:33 -07:00
3290735c8f
pass numbers to writer instead of hex strings
2016-04-10 08:56:00 -07:00
5c91e09151
fix backwards relative labels
2016-04-10 08:41:52 -07:00
a9b702114a
allow importing/exporting of labels
2016-04-10 06:52:20 -07:00
b8601031f3
add named relative labels
2016-04-10 05:09:38 -07:00
a58ad83c92
implement incbin directive
2016-04-10 04:03:00 -07:00
5afb743977
fix unary preprocessing
2016-04-10 03:39:50 -07:00
b7831b49c3
be smarter about lexing spaces
2016-04-10 03:26:23 -07:00
311b1e362f
implement offsets for constants
2016-04-10 03:25:11 -07:00
356aee5e9f
add branch-likely pseudo-instructions
2016-04-07 07:56:46 -07:00
da1c49cbfb
fix trunc.w.s instruction
2016-04-07 04:00:42 -07:00
4220509be5
expect addresses in literal immediates of branches
...
this is more useful than letting the immediate number simply pass through
2016-04-02 08:38:22 -07:00
fdb4b351a6
fix labels in word directives
2016-04-02 08:05:07 -07:00
4b8af13e78
fix align directive with arguments
2016-04-02 08:05:05 -07:00
3febafef02
fix parsing of files lacking a trailing newline
...
ensures files yield an EOL token before EOF
2016-03-13 20:27:13 -07:00
54f28dc333
don't strip 0x80 prefix from .ORG addresses
...
the rest of the code seems to handle this fine,
since setting options.offset was bypassing it anyway
2016-03-13 20:24:43 -07:00
0b5331ff5c
use ; comments to fix github highlighting
2016-01-24 20:18:52 -08:00
9e4167e04a
add something resembling documentation
2016-01-24 20:03:07 -08:00
e7fe9d972c
fix shift-variable argument order
2016-01-18 20:28:11 -08:00