Rangi42
c07371c9fc
Revert "Show test issues as annotations in the GitHub Actions job summary"
...
This reverts commit 3a5ff35928 .
Annotations were not actually appearing.
<https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions >
2024-08-27 14:07:35 -04:00
Rangi42
15f0871683
Update some names and comments
2024-08-27 14:04:52 -04:00
Rangi42
26fcff831d
Run clang-format
2024-08-27 01:49:05 -04:00
Rangi42
3a5ff35928
Show test issues as annotations in the GitHub Actions job summary
2024-08-27 01:02:53 -04:00
Rangi42
38a90890fb
A few more rgbasm documentation tweaks
2024-08-27 01:02:06 -04:00
Rangi42
de84e3ea8b
Rewrite and rearrange some rgbasm docs
2024-08-27 00:48:49 -04:00
Rangi42
b77ba1d87d
Forward declare struct Section to avoid a nested header include
2024-08-26 22:58:38 -04:00
Rangi42
fbe28e0def
Remove outdated "absolute data" terminology in function names
2024-08-26 22:58:38 -04:00
Rangi42
7bc9a24bf0
Edit some documentation of unions and macros
2024-08-22 00:41:07 -04:00
Rangi42
b7290366cb
Reword some RGBASM docs
2024-08-18 21:38:45 -04:00
Rangi42
731715ff36
Refactor test.sh scripts for consistency
2024-08-18 21:38:45 -04:00
Rangi42
7cf4156003
Add some more tests, and fix some existing ones
2024-08-18 21:38:45 -04:00
Rangi42
ee3a93a442
Test macro args \0 and \<0>
2024-08-18 21:38:45 -04:00
Rangi42
c42e856efb
Fix charmap state output for inherited characters
2024-08-09 22:13:43 -04:00
Rangi42
0adff57e2c
Sync warning flags between Makefile and CMakeLists.txt
2024-08-08 16:02:11 -04:00
Rangi42
e4ffcf7153
Update the 'ucity' commit used for testing
...
This removes our need to patch it for compatibility
2024-08-04 21:52:57 -04:00
Rangi42
436580a649
Consistently use "palette spec" not "color spec"
...
Fixes #1436
2024-08-04 16:24:14 -04:00
Rangi42
3bd35a8848
"Write" to files, "print" to console
2024-08-02 16:26:42 -04:00
Rangi42
0ed846c773
Remove outdated RGBASM options from man page
2024-07-27 09:57:52 -04:00
Rangi42
4e0f794c23
More refactoring and renaming
2024-07-26 20:12:51 -04:00
Rangi42
556c8a968a
Release 0.8.0
2024-06-28 14:53:17 -04:00
Rangi42
39e9315e8a
Use a smaller size for the lexer buffer
...
Large sizes are more efficient when it's actually buffered,
but most of the time `mmap` is used instead, and the extra size
just slows down allocation of lexer states.
2024-05-17 20:59:42 -04:00
Rangi42
b8387427a6
Use consistent RGBDS_<PROG>_<NAME>_HPP header guard convention
2024-04-14 21:50:05 -04:00
Rangi42
6b5248f15b
Add a build target for include-what-you-use
2024-03-29 20:49:09 -04:00
Rangi42
eb708ebee5
Rename some variables left from the C parser (e.g. yylval)
2024-03-29 19:42:23 -04:00
Rangi42
cf3e5e15f8
Update the 'ucity' commit used for testing
...
This reduces our need to patch it for compatibility
2024-03-29 14:42:23 -04:00
Rangi42
17afe611fd
Update the 'libbet' commit used for testing
...
This reduces our need to patch it for compatibility
2024-03-29 13:35:12 -04:00
Rangi42
9dac583e45
Patch test projects so they build without deprecated features
...
Also ensure the test scripts pass shellcheck
2024-03-28 17:26:42 -04:00
Rangi42
ccfd3b6af8
Remove documentation of already-removed RGBGFX options
2024-03-28 17:26:42 -04:00
Rangi42
4a4656af1b
Remove the deprecated RGBGFX --output-* options (use --auto-*)
2024-03-28 17:26:42 -04:00
Rangi42
b021090e7f
Remove deprecated -i for --include (use -I)
2024-03-28 17:26:42 -04:00
Rangi42
230b1db438
Remove deprecated DEF-less definitions
2024-03-28 17:26:42 -04:00
Rangi42
14b72222b1
Remove the deprecated -H/-h/-L/-l options
2024-03-28 17:26:42 -04:00
Rangi42
106e516962
Split the .peek() method into its next-char and lookahead cases
2024-03-28 15:37:25 -04:00
Rangi42
6f74e4fb9c
Remove the suboptimal .canPeek() and .peek() methods
2024-03-28 14:49:36 -04:00
Rangi42
83c0634f15
Refactor peekInternal to be a LexerState method
2024-03-28 13:21:28 -04:00
Rangi42
4172d330b9
Refactor BufferedContent and Expansion to have methods
...
Use a buffer size that is a power of two for fast modulus
2024-03-28 12:57:23 -04:00
Rangi42
cf7bdb19b6
Run clang-format 14 on everything
...
Later versions may need some proprties added or changed to not
format closing braces weirdly.
2024-03-28 09:17:27 -04:00
Rangi42
506911d7d0
Refactor to avoid redundant obj_CheckAssertions function
2024-03-27 16:19:01 -04:00
Rangi42
dcb4e40388
Use QUOTEDSTRLEN macro instead of sizeof or strlen
2024-03-27 11:50:48 -04:00
Rangi42
912a1504ec
Defer closing of depend file
2024-03-27 11:44:26 -04:00
Rangi42
2ef5e807f8
No more memory leaks!
2024-03-27 11:27:34 -04:00
Rangi42
b6039870e5
Remove now-redundant MmappedContent struct
2024-03-27 11:27:34 -04:00
Rangi42
78801e324c
Group pointer and size as a ContentSpan struct
2024-03-27 11:27:34 -04:00
Rangi42
bf0cabb3ea
Use std::shared_ptr for lexer capture buffers
2024-03-27 11:27:34 -04:00
Rangi42
32db0a0f18
Rename CaptureBody to Capture, and refactor its methods
2024-03-26 12:29:59 -04:00
Rangi42
a167d23d01
Use content-specific destructors for lexer state
...
Also rename `LexerState` content structs from `*LexerState` to `*Content`
2024-03-26 12:29:59 -04:00
Rangi42
8b6ae994b1
Use STR and CAT macros for # and ##
2024-03-25 14:22:43 -04:00
Rangi42
2b44672873
Rename a few variables
2024-03-25 14:22:38 -04:00
Rangi42
3568418c5d
Remove RGBLINK's unimplemented '-s' "smart linking" placeholder flag
2024-03-25 11:36:23 -04:00
Rangi42
cb59119881
Use automatically-allocated std::string_view for macros
2024-03-25 11:33:17 -04:00
Rangi42
d9e5e57e27
Make CaptureBufs be parser values instead of a single static global
2024-03-23 19:44:54 -04:00
Rangi42
e9e8915725
Refactor to keep lexerState and lexerStateEOL static
...
Also run `clang-format` on everything
2024-03-23 19:14:46 -04:00
Rangi42
6a5518e0c5
Use RAII to unmap or close the lexer states' files automatically
2024-03-22 14:25:36 -04:00
Rangi42
507439bc25
Refactor macro args to be owned collectively by their fstack contexts
2024-03-22 14:25:36 -04:00
Rangi42
b85c5cde8f
Use std::shared_ptr for MacroArgs
2024-03-22 14:25:36 -04:00
Rangi42
de667c8afb
Remove unused Visitor template
2024-03-22 03:29:56 -04:00
Rangi42
32b4a6f284
Use "snake_case" consistently in parsers
2024-03-21 11:44:07 -04:00
Rangi42
6560b7819d
Add make profile, optimized for callgrind
2024-03-21 11:42:12 -04:00
Rangi42
a862c7b17b
Use sed instead of awk to extract Bison version
2024-03-18 15:36:45 -04:00
Rangi42
40db9d5cef
Use std::string for lexer state paths
2024-03-18 14:42:05 -04:00
Rangi42
05d79d87f6
Pass std::string references to RPN functions
2024-03-18 14:42:05 -04:00
Rangi42
e96675be03
Pass std::string references to fstack functions
2024-03-18 14:42:05 -04:00
Rangi42
472d1bde06
Pass std::string references to symbol functions
2024-03-18 14:42:05 -04:00
Rangi42
6cabb8c9af
Pass std::string references to output functions
2024-03-18 14:42:05 -04:00
Rangi42
7b11c528ef
Pass std::string references to section functions
2024-03-18 14:42:05 -04:00
Rangi42
91164ac1b0
Pass std::string references to charmap functions
2024-03-18 14:42:05 -04:00
Rangi42
04899a21cd
Pass std::string references to parser semantic functions instead of .c_str() pointers
...
This also refactors some semantic functions to be more efficient
2024-03-18 14:42:05 -04:00
Rangi42
8f77518406
Use std::string for most intermediate parsed strings
...
This is a work in progress: its performance is unacceptably slow,
and it is obviously not a complete refactoring:
- The parser's semantic functions are still written for C-style
strings, taking `.c_str()` pointers instead of `std::string`
references (and using their methods, `<algorithm>`s, etc).
- Quoted string literals from the lexer still use our `String`
struct, which wraps around a fixed-size char array.
- Symbol values, macro arguments, and so forth are still pointers
to C-style strings with unclear ownership semantics (i.e. we
still have "leaks as a feature").
2024-03-18 14:42:05 -04:00
Rangi42
b76e196c89
Run clang-format on everything
2024-03-18 14:08:57 -04:00
Rangi42
d06376c170
Use std::unordered_map and std::vector for sections
...
This allows us to control the order in which sections are iterated,
instead of it depending on the internals of `std::map`. (This order
is arbitrary, but should be deterministic regardless.)
2024-03-16 11:51:47 -04:00
Rangi42
cefc4f4aa3
Use std::unordered_map for symbols
2024-03-16 11:19:19 -04:00
Rangi42
a14de10e28
Use std::unordered_map for charmaps
2024-03-16 11:13:14 -04:00
Rangi42
188fcfdd64
Add license header to test/CMakeLists.tst like the rest
2024-03-13 11:55:17 -04:00
Rangi42
846a9411b9
Refactor FileStackNode::dump to not need a helper function
2024-03-10 14:14:34 -04:00
Rangi42
58fdaa8747
Avoid a couple of clang-format quirks
2024-03-10 12:31:03 -04:00
Rangi42
d982d47c56
Use move semantics for more parsed values
2024-03-09 20:05:09 -05:00
Rangi42
569b940b82
No need to manually do the Expression destructor's job
2024-03-09 19:33:53 -05:00
Rangi42
ba104baf3e
Refactor mapFile for Windows
2024-03-09 19:22:06 -05:00
Rangi42
cce7f51235
Remove RPN symbol name length limit
2024-03-09 17:56:30 -05:00
Rangi42
9f5bf5e285
Remove an unnecessary .close() call that the destructor handles
2024-03-08 22:29:37 -05:00
Rangi42
0bfade4435
Fix enum: REG_SP == REG_AF == 3
2024-03-08 20:00:29 -05:00
Rangi42
40704b5055
Remove unused yyerror declaration
...
Also reformat some `enum`s
2024-03-08 19:47:57 -05:00
Rangi42
1b97297d63
Fix a typo bug in sdas_obj.cpp
...
This was introduced in commit 447c561 , PR #1330
2024-03-08 18:30:30 -05:00
Rangi42
75cc12bb3d
Use std::optional for fstack paths
2024-03-07 21:41:02 -05:00
Rangi42
563d699394
Avoid an extra operation if !labelScope (thanks, ISSOtm)
2024-03-07 17:33:33 -05:00
Rangi42
e701faa1bc
Print summaries at the end of test.sh scripts
2024-03-07 16:45:53 -05:00
Rangi42
aed172071b
Replace some macros with static functions or constants
2024-03-07 16:10:05 -05:00
Rangi42
90356ee669
Remove unused #define
2024-03-07 15:07:16 -05:00
Rangi42
0a4a01c5e5
Ignore callgrind output files
2024-03-07 14:56:32 -05:00
Rangi42
0f52cd0bab
Use std::reverse for binary digits
2024-03-07 14:48:23 -05:00
Rangi42
2fd95381a6
Get rid of some fixed-size char buffers
2024-03-07 14:36:30 -05:00
Rangi42
184957c0ed
Use fwrite and fputs instead of multiple putc
2024-03-07 12:40:37 -05:00
Rangi42
7663a777d5
Remove 255-character limit on symbol names
2024-03-07 12:40:37 -05:00
Rangi42
097b7c3baf
Use std::string for symbol names
2024-03-07 12:40:33 -05:00
Rangi42
bf45ebb178
Run clang-format to fix some inconsistent style
2024-03-07 11:52:53 -05:00
Rangi42
84bedc7bbe
Use automatic allocation for RPN reasons
2024-03-07 09:58:45 -05:00
Rangi42
e5b7e65e91
Use std::nothrow from <new> with every new allocation
2024-03-07 09:56:15 -05:00
Rangi42
104fd6c70d
Use automatic allocation for some parser values
2024-03-06 22:17:35 -05:00
Rangi42
35ec190664
Update Windows libpng to 1.6.43
2024-03-06 21:02:13 -05:00