ISSOtm
c20ac35074
Refactor readString
...
Much more readable, and avoids `peek(nz)`
2020-12-19 13:02:05 +01:00
Rangi
255b8bf9ba
Implement """triple-quoted""" multi-line strings
...
Fixes #589
2020-12-19 12:34:32 +01:00
Rangi
ad6f17cd93
Support SOURCE_DATE_EPOCH for reproducible builds
...
See https://reproducible-builds.org/docs/source-date-epoch/
Fixes #286
2020-12-19 01:09:45 +01:00
Rangi
063a22ddf9
LOAD blocks cannot create a ROM section
...
Fixes #576
2020-12-19 00:58:54 +01:00
Rangi
1d9cc01ae1
Macro arguments within a string literal are read into the string, not expanded
...
Fixes #643
2020-12-15 21:28:15 +01:00
Rangi
f31deb5010
Fix STRUPR and STRLWR after 5aabb915ec
...
Fixes #647
2020-12-15 20:18:45 +01:00
Rangi
0956d300c4
Document \#
2020-12-14 10:48:03 +01:00
ISSOtm
4ef490f3cb
Avoid interpreting Liquid in doc pages
...
They are auto-generated, so they wouldn't normally contain Liquid
(The post-processor may insert some, but it has control over the `raw` tags)
Some code introduced as examples contains `{{` due to nested brace expansions,
which was interpreted as (invalid) Liquid. This fixes such problems.
Additionally, Jekyll generates warnings about excerpts being part of a Liquid
block (the `{% raw %}`). This is fine, since doc pages don't use excerpts.
2020-12-14 10:35:30 +01:00
ISSOtm
8f2a894b88
Add anonymous labels
...
Fix #497
2020-12-14 10:14:40 +01:00
Rangi
0e40543757
Implement \# to expand to all unshifted macro arguments
...
Fixes #596
2020-12-14 00:12:36 +01:00
Rangi
ce58f6d6be
Allow {symbol} interpolation outside of strings
...
Fixes #629
Closes #631
2020-12-13 23:53:16 +01:00
ISSOtm
5aabb915ec
Allow STRCAT to take any number of args
...
Fixes bullet point 1 of #625
2020-12-12 23:46:32 +01:00
ISSOtm
0d9de01f9d
Make charmap-converting a non-UTF8 string non-fatal
2020-12-12 14:16:50 +01:00
ISSOtm
f5b0eae9cd
Remove custom action code when equivalent to default
...
Enables Bison to better reason about it, and should improve performance
2020-12-12 12:22:36 +01:00
Rangi
e6552064bf
Specify rgbfix --mbc-type by name
...
This supports the names listed in Pan Docs:
https://gbdev.io/pandocs/#_0147-cartridge-type
Spaces may be replaced with underscores.
It also supports "ROM" for "ROM ONLY".
2020-12-12 01:53:42 +01:00
Rangi
861cb552c4
discardBlockComment sets lexerState->disableMacroArgs = true, like discardComment
2020-12-12 01:34:01 +01:00
ISSOtm
417cceb0de
Document dw and dl with strings
2020-12-11 11:02:20 +01:00
Rangi
165bd8cb71
Allow 'dw' and 'dl' to apply to characters of strings
...
Fixes #568
The old behavior of `dw "string"` can be replicated with `dw ("string")`; likewise for dl
2020-12-11 11:02:20 +01:00
ISSOtm
e54e02dc77
Correct underscore-in-number documentation
...
No radix actually allows underscores at the beginning of a literal
2020-12-10 16:01:18 +01:00
ISSOtm
2bf3b08d76
Document underscores in numeric literals
2020-12-10 15:40:59 +01:00
ISSOtm
21b58b08b8
Fix not shifting CRLF at end of raw lines
...
Fixes line reporting errors on Windows
2020-12-10 15:37:50 +01:00
Rangi
af530859f0
Allow underscores in numeric literals
...
Fixes #539
Changes \@'s output to start with "_u", not "_", so it will be valid within labels but not numerics
2020-12-10 15:34:21 +01:00
Rangi
58739b0bf2
Implement STRRIN, like STRIN but searching from the right
2020-12-10 15:32:17 +01:00
ISSOtm
3e4c2fe712
Avoid error with old Bison versions
...
`api.token.raw` is only defined starting with Bison 3.5
Since it's not essential, define it on the command-line iff the Bison
version is sufficient.
2020-12-10 15:13:45 +01:00
ISSOtm
bdfce25db0
Avoid running version test when git describe fails
...
Can happen when not enough history has been fetched, notably in our CI
2020-12-10 13:43:22 +01:00
ISSOtm
2b6d9cd1e0
Avoid using yytoken_kind_t
...
Apparently it was added in a fairly recent Bison version...
2020-12-10 13:32:18 +01:00
ISSOtm
bf789dd7b3
Add automated test for version consistency
...
Automatically check that the version number constants
(__RGBDS_MAJOR__ etc.) match `rgbasm -V`
Should avoid the problem with 0.4.2's release...
2020-12-10 12:22:29 +01:00
ISSOtm
9b6f01047c
Enable raw token types
...
Removes one layer of indirection for the parser, and helps remove all literals from the grammar
The latter preparing the next change
2020-12-09 21:22:05 +01:00
ISSOtm
3fe2fa43bb
Switch to GNU Bison as a dependency
...
First step for #595
2020-12-09 20:30:31 +01:00
ISSOtm
ede982b50a
Bump patch level appropriately
...
*HEADDESK*
v0.4.2
2020-12-09 20:30:31 +01:00
ISSOtm
319d775c13
Add CI script to create docs on new releases
2020-12-09 16:08:43 +01:00
ISSOtm
44124319a6
Work around old Bison versions not forward-declaring yyparse
...
Notably, macOS still ships 2.3 (from 2008)...
Should fix #214
2020-12-09 16:00:22 +01:00
ISSOtm
462fd7539c
Prohibit nested macros
...
After discussion (starting there:
https://github.com/gbdev/rgbds/pull/594#issuecomment-706437458
), it was decided that plain nested macros should not be
allowed.
Since #590 is fixed, EQUS can be used as a workaround;
multiline strings (#589 ) will make that easier on the
user when implemented.
Fixes #588 , supersedes and closes #594 .
Additionally, closes #388 .
2020-12-09 10:44:39 +01:00
ISSOtm
f16e34b804
Fix captures beginning in expansions
...
Fixes #590
2020-12-09 09:54:55 +01:00
ISSOtm
c3ccdc548e
Remove unnecessary flex dep from Dockerfile
2020-12-09 09:42:19 +01:00
ISSOtm
fd721ca480
Document optional RB/RW/RL argument
2020-12-09 09:39:46 +01:00
ISSOtm
eac365aef0
Allow argument to rb, rw and rl to be optional
...
Fixes #617
2020-12-09 09:31:47 +01:00
ISSOtm
4de6266442
Add explanation of how EXPORT works
...
Fixes #608
2020-12-08 21:07:24 +01:00
ISSOtm
213d985e17
Fix incorrect "sliced" INCBIN causing memory leaks
...
Oh, how I miss RAII...
2020-11-29 12:47:53 +01:00
ISSOtm
de76dcb8fb
Fix possible segfault from -MT and -MQ
...
Happened only if `malloc` failed, so...
2020-11-29 12:47:53 +01:00
Eldred Habert
30fb6bde5e
Merge pull request #615 from ISSOtm/find-sym
...
Create specialized symbol finder functions
2020-11-25 15:17:34 +01:00
ISSOtm
4f842a1248
Create specialized symbol finder functions
...
The old "find symbol with auto scope" function is now three:
- One finds the exact name passed to it, skipping any checks
This is useful e.g. if such checks were already performed.
- One checks that the name is not scoped, and calls the first.
This is useful for names that cannot be scoped, such as checking for EQUS.
Doing this instead of the third should improve performance somehwat, since
this specific case is hit by the lexer each time an identifier is read.
- The last one checks if the name should be expanded (`.loc` → `Glob.loc`),
and that the local part is not scoped. This is essentially the old function.
2020-11-21 01:06:17 +01:00
ISSOtm
cc4d455b8a
Add test for empty local label component
2020-11-21 00:58:40 +01:00
Eldred Habert
0bb5efebfd
Merge pull request #610 from daid/stdin
...
Allow rgbasm and rgblink to use stdout and stdin as input and output
2020-11-08 01:20:44 +01:00
ISSOtm
b6bf7ae620
Fix RGBLINK incorrectly reading file stack nodes
...
This caused node IDs to mismatch, yielding possibly corrupted file stacks
Worst part is, the docs mentioned the reading order had to be reversed...
2020-11-04 02:52:06 +01:00
ISSOtm
dc96cc6d1e
Add zsh completion scripts
...
Can't get bash ones to work, but these do.
2020-11-03 23:29:47 +01:00
daid
642daf1a76
Update main.c
2020-11-03 13:33:57 +01:00
daid
84edfb3d88
Update output.c
2020-11-03 13:33:02 +01:00
Daid
7e620bff81
Allow rgbasm and rgblink to use stdout and stdin as input and output
2020-10-26 20:28:15 +01:00
ISSOtm
0c55703438
Improve helpers.h
...
Use C11 standard _Noreturn instead of attributes (except, of course, MSVC)
Remove unused helpers
Avoid trapping in release builds, in favor of just unreachability
Improve shim when __builtin_* are not available
2020-10-26 15:19:31 +01:00