ISSOtm
4d1333e124
Fix incorrect error reporting of INCLUDEd files
2020-10-04 04:45:59 +02:00
ISSOtm
35396e6410
Fix files being unmapped when still referenced by macros
2020-10-04 04:45:59 +02:00
ISSOtm
8d18b39eee
Support missing register tokens
...
Made possible by #491
2020-10-04 04:45:59 +02:00
ISSOtm
ae77893021
Fix file name reporting
...
As noted in the function's code, this is very error-prone, but
will do the job; this needs rewriting due to #491 anyways, so, temporary.
2020-10-04 04:45:59 +02:00
ISSOtm
baeb180acd
Apply error reporting changes to tests
2020-10-04 04:45:58 +02:00
ISSOtm
fd02ffb7bd
Implement __FILE__ symbol
...
Also clean up built-in symbol creation
This is not great, but currently okay.
Should be fixed later, like the rest...
2020-10-04 04:45:58 +02:00
ISSOtm
62ecdce0b0
Fix line-continuation-macro test
2020-10-04 04:45:58 +02:00
ISSOtm
e4f2fad215
Support line continuations in main scope
2020-10-04 04:45:58 +02:00
ISSOtm
3f5f9bcaf0
Fix numeric constant overflow checks
2020-10-04 04:45:58 +02:00
ISSOtm
08867b3cec
Enable catching invalid macro arg 0
2020-10-04 04:45:55 +02:00
ISSOtm
9081feab51
Reinstate macro arg scan distance
...
Used to be broken, so it was removed, but doing so prevents escaping them.
So it was instead put back in, but with corrected behavior
2020-10-04 04:39:27 +02:00
ISSOtm
cf992164f7
Fix lexer capture sometimes not being reset
2020-10-04 04:39:27 +02:00
ISSOtm
b27b821e7f
Fix RAW lexer length underflow
...
Also added an assertion to check against more such overflows
2020-10-04 04:39:26 +02:00
ISSOtm
d9ecaabac1
Add debug tracing code to lexer
...
Hidden behind a #define, like YYDEBUG
2020-10-04 04:39:26 +02:00
ISSOtm
cd747d8175
Fix many lexer bugs
...
More to come...
2020-10-04 04:39:25 +02:00
ISSOtm
df75fd2ec2
Fix expansion reporting being incorrect
2020-10-04 04:38:53 +02:00
ISSOtm
adcaf4cd46
Fix crash when no macro args are being used
2020-10-04 04:38:53 +02:00
ISSOtm
81a77a9b88
Re-implement block copy to avoid expanding macro args
...
They were expanded during the capture, and there was no easy way to
avoid expanding them (believe me, after three hours and somehow an OOM, I
gave up trying).
2020-10-04 04:38:53 +02:00
ISSOtm
6e805cd318
Implement macro args
...
This finally allows running 90% of the test suite, debugging time!
2020-10-04 04:38:53 +02:00
ISSOtm
e11f25024e
Add test for built-in file symbol
...
It's currently defined in fstack.c, making it more prone to accidental
dropping. Let's not repeat the 0.3.9 scenario...
2020-10-04 04:38:53 +02:00
ISSOtm
7c895f8a1b
Fix diagnostic formatting
...
Missing colon and space after the file stack
2020-10-04 04:38:53 +02:00
ISSOtm
38bda7e1bb
Fix string expansion reporting
...
More expansions were allowed than the limit specified, and reporting code
did not account for the extra one that caused overflow
2020-10-04 04:38:52 +02:00
ISSOtm
149db9a022
Fix incorrect freeing of expansions
...
Freeing an expansion should free its children, not its siblings...
Fixes a use-after-free reported by scan-build. Nice catch!
2020-10-04 04:38:52 +02:00
ISSOtm
fed252bc49
Fix nested expansions being incorrectly handled
...
The biggest problem was simply that the length of children expansions was
not accounted for when skipping over the parent... this took a lot of
arduous debugging, but it finally works!
2020-10-04 04:38:52 +02:00
ISSOtm
61b2fd9816
Add string expansion reporting
...
And fix line counting with expansion-made newlines.
This has the same bug as the old lexer (equs-newline's output does not
print the second warning as being part of the expansion).
Additionally, we regress equs-recursion, as we are no longer able to
catch this specific EQUS recursion. Simply enough, the new expansion
begins **after** the old one ends! I have found no way to handle that.
2020-10-04 04:38:52 +02:00
ISSOtm
5ad7a93750
Add EQUS expansion
2020-10-04 04:38:52 +02:00
ISSOtm
2ec10012b6
Fix mmap read offset not being initialized
2020-10-04 04:38:52 +02:00
ISSOtm
e56c6cc291
Fix PC's name not being passed to parser
2020-10-04 04:38:52 +02:00
ISSOtm
4c9a929a14
Implement almost all functionality
...
Add keywords and identifiers
Add comments
Add number literals
Add strings
Add a lot of new tokens
Add (and clean up) IF etc.
Improve reporting of unexpected chars / garbage bytes
Fix bug with and improved error messages when failing to open file
Add verbose-level messages about how files are opened
Enforce that files finish with a newline
Fix chars returned not being cast to unsigned char (may conflict w/ EOF)
Return null path when no file is open, rather than crash
Unify and improve error printing slightly
Known to be missing: macro expansion, REPT blocks, EQUS expansions
2020-10-04 04:38:50 +02:00
ISSOtm
71f8871702
Implement more functionality
...
Macro arg detection, first emitted tokens, primitive (bad) column counting
2020-10-04 04:37:58 +02:00
ISSOtm
6dc4ce6599
Implement infrastructure around new lexer
...
The lexer itself is very much incomplete, but this is intended to be a
safe point to revert to should further implementation go south.
2020-10-04 04:37:58 +02:00
Eldred Habert
3a44cc7722
Merge pull request #582 from ISSOtm/rewrite-charmap
...
Rewrite charmap system
2020-10-04 04:37:06 +02:00
ISSOtm
4cfed3c98f
Rewrite charmap system
...
Avoid allocating a *ton* of data per charmap
Stop relying on uninitialized data in charmap nodes
Only initialize charmap nodes lazily
2020-10-04 04:31:10 +02:00
Eldred Habert
6af57ff026
Merge pull request #581 from JL2210/cmake-docs
...
Install manpages with CMake
2020-10-03 22:15:17 +02:00
ISSOtm
2e3db9d56a
Clean up label generation
...
Only check for localness when we already know we have a local
2020-10-03 21:33:30 +02:00
James Larrowe
f8d9fa87ed
Install manpages with CMake
2020-10-03 12:37:56 -04:00
ISSOtm
f53ad359a6
Remove whoami step from Windows CI
...
A carry-over from testing
2020-10-03 02:17:18 +02:00
ISSOtm
84de86beb5
Enable make develop on Ubuntu 20.04 CI as well
2020-10-03 01:05:09 +02:00
Eldred Habert
04e7af2675
Merge pull request #579 from ISSOtm/cmake-ci
...
Enable CMake in CI
2020-10-02 23:30:26 +02:00
Eldred Habert
4f13a336b9
Merge pull request #578 from JL2210/cmake-pkgconfig
...
Use pkg-config to detect libpng
2020-10-02 22:30:30 +02:00
ISSOtm
03508119e5
Use CMake in CI as well
2020-10-02 22:24:02 +02:00
James Larrowe
03e20138d3
Use pkg-config to detect libpng
...
Only fall back to findpng
2020-10-01 18:58:36 -04:00
Antonio Niño Díaz
dfcba36448
test: Update commit of uCity used for testing
...
This one updates the code to fix all warnings introduced in the last few
months because of updates to RGBDS.
2020-09-27 22:47:56 +01:00
ISSOtm
8e4a9a5c21
Remove assertions from release builds
...
I believe the CMakeLists already did that, but the Makefile did not.
2020-09-27 17:05:52 +02:00
ISSOtm
a1286e6f0e
Make newlines explicit in error messages
...
In preparation for a change a PR is about to make
2020-09-27 10:54:06 +02:00
ISSOtm
c0808246e5
Silence the mingw test
...
Use "quiet" instead of "count"...
2020-09-27 10:51:52 +02:00
ISSOtm
ba051e10fb
Factor printing assert failures into functions
...
Saves some code duplication
2020-09-27 09:24:24 +02:00
ISSOtm
9fee0603b1
Fix typo in object file format doc
...
Thanks @ax6!
2020-09-24 16:43:13 +02:00
ISSOtm
be8ebe6db9
Fix master docs update CI script
...
GitHub documentation about the syntax is unclear, this should be right
according to the examples I saw.
2020-09-24 16:41:23 +02:00
ISSOtm
548e3dc31c
Correct previously-introduced test being a no-op
...
Forgot to invoke the macro due to a copy-paste error
2020-09-24 16:35:45 +02:00