1
0
Fork 0
mirror of https://github.com/notwa/lips synced 2024-05-05 02:43:24 -07:00
Commit Graph

33 Commits

Author SHA1 Message Date
Connor Olding ec76e37014 add \x escapes to strings...
also adds the plain \e escape and allows escapes in filenames.
2016-12-28 04:04:05 -08:00
Connor Olding 9f6252117e allow comments after filenames
this is hack city but it will do until i refactor this crap
2016-11-29 09:58:08 -08:00
Connor Olding 8546411e14 handle ; comments in variable definitions again
this is hacky but i don't wanna break existing code.
if you used // comments, then you'll have to change.
2016-11-27 22:16:32 -08:00
Connor Olding e5cc5fd068 improve variable name checks 2016-11-27 22:01:15 -08:00
Connor Olding 63ddf558df parse variable definitions as expressions 2016-11-27 21:37:57 -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 ad0269cc61 fix incbin parsing again 2016-11-27 20:03:26 -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 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