Connor Olding
e1ae1fdd64
optimize incbin via string passthru
2016-11-23 12:22:31 -08: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
bfbe2845e6
actually implement path handling for .incasm
2016-05-14 03:27:30 -07:00
Connor Olding
f3765a0300
fix incbin directive
2016-04-24 13:19:18 -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
91e028ef6a
rename internal DEF to VAR
2016-04-20 16:28:59 -07:00
Connor Olding
d10c0f0ee9
use Base class pattern; extend off existing classes
2016-04-20 13:15:17 -07:00
Connor Olding
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
Connor Olding
7af890c3b5
add 0o and 0b prefixes for lexing octal and binary
2016-04-20 01:16:19 -07:00
Connor Olding
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
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
b8601031f3
add named relative labels
2016-04-10 05:09:38 -07:00
Connor Olding
a58ad83c92
implement incbin directive
2016-04-10 04:03:00 -07:00
Connor Olding
b7831b49c3
be smarter about lexing spaces
2016-04-10 03:26:23 -07:00
Connor Olding
311b1e362f
implement offsets for constants
2016-04-10 03:25:11 -07:00
Connor Olding
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
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
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
bf3f86e568
allow labels in WORD directives
2016-01-13 13:07:00 -08:00
Connor Olding
f8805e6deb
implement SPACE,HALF directive aliases
2016-01-13 11:41: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