Connor Olding
ab493693a9
add support for variables in expressions
2016-11-27 21:17:42 -08:00
Connor Olding
64ef102183
disallow variable names beginning with a number
...
this makes lexing easier.
i don't think this worked properly anyway.
2016-11-27 21:16:38 -08:00
Connor Olding
de2618bb61
allow expressions in variable definitions
2016-11-27 21:01:30 -08:00
Connor Olding
067267c313
allow Preproc to throw errors again
2016-11-27 20:28:53 -08:00
Connor Olding
8aa3c58f8f
allow expressions in instructions (whoops)
2016-11-27 20:14:36 -08:00
Connor Olding
ad0269cc61
fix incbin parsing again
2016-11-27 20:03:26 -08:00
Connor Olding
3c1cbf0901
remove defunct comments
2016-11-27 20:03:26 -08:00
Connor Olding
437b816f85
refactor label resolution into its own method
2016-11-27 20:03:23 -08:00
Connor Olding
29ae63ed34
update notes
2016-11-27 15:34:52 -08:00
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
fb2e588f79
move arg_types to TokenIter
2016-11-27 06:06:48 -08:00
Connor Olding
0d1527a773
refactor Muncher into separate TokenIter class
...
this also fixes lexing the EOL after an include directive.
2016-11-27 05:58:08 -08:00
Connor Olding
e1ae1fdd64
optimize incbin via string passthru
2016-11-23 12:22:31 -08:00
Connor Olding
3d301d0a20
tweak notes a little more
2016-11-23 00:14:18 -08:00
Connor Olding
15bba61aae
write notes on internal workings and potential improvements
2016-10-19 08:24:57 -07:00
Connor Olding
cdc0f8edb2
add a barebones expression parser
...
at the moment, this probably only works in directives.
some of the operators are still unimplemented, and the errors are poor.
there will be support for accessing variables in the future.
2016-10-14 09:27:19 -07:00
Connor Olding
575af689b5
fix loading labels with overflowed PC
2016-10-14 04:50:14 -07:00
Connor Olding
11b62bf9de
fix a typo that broke table unpacking
2016-10-14 04:19:11 -07:00
Connor Olding
dfd925e70f
use the proper term for this (memoizing)
2016-10-14 03:34:00 -07:00
Connor Olding
ef07b5b18e
fix link to writers
2016-10-14 03:33:46 -07:00
Connor Olding
6548bd3e5b
fix typos
2016-10-11 15:45:44 -07:00
Connor Olding
115bae0689
use LI for remaining CALL functionality
2016-05-18 03:07:08 -07:00
Connor Olding
dcdfc22f0a
implement basic CALL pseudo-instruction
2016-05-18 01:48:15 -07:00
Connor Olding
6a29dcd38d
add TODO list
2016-05-14 03:55:33 -07:00
Connor Olding
bfbe2845e6
actually implement path handling for .incasm
2016-05-14 03:27:30 -07:00
Connor Olding
1540062a6f
clean up informat parsing a little
2016-05-13 07:57:39 -07:00
Connor
8c1537a650
Merge pull request #1 from CloudMax94/patch-1
...
Update README.md
2016-05-13 07:26:09 -07:00
Max Persson
0040292378
Update README.md
2016-05-13 16:23:05 +02:00
Connor Olding
0ec6b24531
use R# instead of REG# for registers
2016-05-10 17:18:17 -07:00
Connor Olding
e4e8e16ea5
implement all branch pseudo-instructions
2016-05-08 15:21:16 -07:00
Connor Olding
8375eaff08
reimplement branch pseudos, remove branch-immediates for now
2016-05-01 16:31:09 -07:00
Connor Olding
51820234a8
allow VARSYMs in directives
2016-05-01 03:56:56 -07:00
Connor Olding
b596405e76
add basic branch pseudos, add REG(REG) addressing
2016-05-01 02:04:27 -07:00
Connor Olding
03eb1b9ed5
pedanticism
2016-04-28 15:46:47 -07:00
Connor Olding
792bb63996
update readme
2016-04-27 16:10:50 -07:00
Connor Olding
16cb504443
add DMOV L.D L.S S.D S.S pseudo-instructions
2016-04-27 16:04:43 -07:00
Connor Olding
9192a655f7
add a really basic test
2016-04-26 21:38:29 -07:00
Connor Olding
0678d3eb58
move word_writer to lips.writers, add others
2016-04-26 21:34:05 -07:00
Connor Olding
027b5d9deb
fix options.origin (obvious typo)
2016-04-26 15:15:00 -07:00
Connor Olding
6b0d27ba6d
allow 1 register in place of 2, pseudo stuff…
...
allow CL to take more than one argument.
implement pseudo-instructions NEGU, SGT, and SGTU.
2016-04-26 02:36:19 -07:00
Connor Olding
f3765a0300
fix incbin directive
2016-04-24 13:19:18 -07:00
Connor Olding
693294bef2
fix labels and variables in data directives
2016-04-24 04:41:30 -07: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
6433227c26
rewrite overrides, reimplement ROL/ROR
2016-04-23 19:36:26 -07:00
Connor Olding
43e08af5c5
fix some branch pseudo-instructions; fix example
2016-04-23 16:43:43 -07:00
Connor Olding
1188543cd2
more verbose errors
2016-04-23 16:24:46 -07:00
Connor Olding
5f74f178d3
actually fix hex and inc directives
2016-04-23 15:51:29 -07:00
Connor Olding
33ea629309
fix data collection, expect EOLs for all directives
2016-04-23 02:10:38 -07:00
Connor Olding
87c210d617
add .push/.pop directives for basic states
2016-04-23 02:06:43 -07:00