Rangi42
80df858ee3
Clarify comment
2025-07-14 00:02:25 -04:00
Rangi42
eafc32fd68
Simplify switch with one case to if
2025-07-13 23:48:01 -04:00
Rangi42
2adeda0318
Use std::tie for sort comparator functions
2025-07-13 14:47:10 -04:00
Rangi42
21a6d35b8b
Simplify readString
2025-07-13 13:26:59 -04:00
Rangi42
ce78280af3
Simplify appendCharInLiteral
2025-07-13 13:22:40 -04:00
Rangi42
041b86b8dd
Use Defer instead of relying on a "Don't return before this" comment
2025-07-13 12:52:45 -04:00
Rangi42
da133baf17
Reduce nesting depth in lexer.cpp
2025-07-12 07:54:16 -04:00
Rangi42
d32b1912ed
Use verbosePrint in rgbasm as well as rgblink
2025-07-12 01:38:19 -04:00
Rangi42
82513e5255
Simplify appendCharInLiteral
2025-07-11 23:52:52 -04:00
Rangi42
f2708ce967
Consolidate readString and appendStringLiteral
2025-07-11 23:43:36 -04:00
Rangi42
01a5c94c7e
Factor out common code from readString and appendStringLiteral
2025-07-11 22:37:28 -04:00
Rangi
510a4aa99d
Add RGBASM -MC flag to continue -MG after missing dependency files ( #1687 )
2025-07-10 13:25:36 -04:00
Rangi42
276a200590
A few miscellaneous edits
2025-07-10 00:33:03 -04:00
Rangi
a40109e4e4
Update the UTF-8 decoder ( #1741 )
2025-07-09 23:13:30 -04:00
Rangi
34cf959c9d
Refactor to reduce nesting depth some more ( #1740 )
2025-07-09 22:46:40 -04:00
Rangi
44f5b47bf0
Reduce nesting depth in some functions ( #1739 )
2025-07-09 16:20:33 -04:00
Rangi
41ab5dff5a
Implement [[ fragment literals ]] ( #1614 )
...
This feature is referred to as "code/data literals" in ASMotor,
and simply as "literals" in some older assemblers like MIDAS
for the PDP-10. RGBASM already had the "section fragments"
feature for keeping disparate contents together when linked,
so these worked naturally as "fragment literals".
2025-07-09 12:13:01 -04:00
Rangi
5e43ece578
Remove errx and errors.hpp ( #1737 )
2025-07-09 11:04:23 -04:00
Rangi42
8c50839109
Miscellaneous updates
2025-07-08 17:45:13 -04:00
Rangi
fda54fd0c3
Replace Either with std::variant ( #1731 )
2025-07-08 13:59:03 -04:00
Rangi
35962dedc4
Refactor warnings and errors ( #1728 )
...
* Remove `err` and `warn`, keep `errx` and `warnx`, using them in RGBGFX too
* Separate RGBGFX and RGBLINK warnings/errors from main options
* Separate `report` function into `error` and `fatal` messages
* Implicit newlines for most RGBASM errors
2025-07-08 12:58:23 -04:00
Rangi
c9765ec158
Factor out program-independent warning diagnostic code ( #1725 )
2025-07-07 18:34:34 -04:00
Rangi42
202c91471c
Fix alignment compatibility with current lower alignment
2025-07-07 22:43:19 +02:00
Rangi
e14f68d1d7
Improve error message for align failure ( #1721 )
2025-07-06 08:36:11 -04:00
Rangi
5942117ac3
Avoid generating phony dependencies for files that don't exist ( #1708 )
2025-06-29 16:42:24 -04:00
Rangi42
612cf3b7dd
Fix some formatting
2025-06-12 17:27:08 -04:00
Rangi
089e366ddc
Implement CHARVAL function ( #1701 )
2025-06-12 17:21:12 -04:00
Rangi
fa9e29e4ce
Implement ++ operator for string concatenation ( #1698 )
2025-06-12 22:52:00 +02:00
Rangi
5d998ef483
Restrict custom binary and graphics digits ( #1693 )
...
* Restrict custom binary and graphics digits
* Update documentation
* Fix build error
2025-05-22 10:52:51 +02:00
Rangi
126b1e5726
Reuse startsIdentifier and continuesIdentifier functions ( #1695 )
2025-05-19 15:31:26 -04:00
Rangi
4f2400c15b
Hint to {interpolate} names when EQUS expanding does not occur ( #1692 )
2025-05-18 17:53:34 +02:00
Rangi
d413870e6d
.sym file sorting accounts for local labels' parents' addresses and names ( #1684 )
2025-05-05 13:57:25 -04:00
Rangi
e95ac6fb06
Recover from errors even inside REPT/FOR loops ( #1683 )
2025-05-04 17:51:53 -04:00
Rangi
e1ae92709c
Fix STRSLICE with no stop index argument ( #1682 )
2025-05-04 16:56:25 -04:00
Rangi
2e6e1ccf06
Show specific messages for some more invalid instructions, not just "syntax error" ( #1679 )
2025-05-03 12:31:00 -04:00
Rangi
e45b9625ca
Group sequences of garbage characters ( #1672 )
2025-04-30 23:31:41 -04:00
Rangi
0b7cda9e0c
Allow negative values to count macro arguments from the end ( #1670 )
2025-04-20 00:37:50 -04:00
Rangi42
2cdbb145da
Avoid use of goto in shiftChar
2025-02-27 14:17:01 -05:00
Rangi42
d8192560b0
Avoid use of goto in FormatSpec::useCharacter
2025-02-27 13:45:13 -05:00
Rangi
632342b254
Use LCOV_EXCL comments to exclude some lines from test coverage ( #1662 )
2025-02-16 13:56:55 -05:00
Rangi
c9060c7f2d
Increase test coverage ( #1661 )
2025-02-16 09:29:16 -05:00
Rangi
b2e865ee2a
Disable EQUS expansion for raw symbols (by parsing them as strings) ( #1648 )
2025-02-15 10:44:51 +01:00
Rangi
3feb75f84f
Implement new string functions ( #1655 )
...
`STRFIND`, `STRRFIND`, `STRCHAR`, `STRSLICE`, `CHARCMP`, `CHARSIZE`, and `REVCHAR`
2025-02-14 23:09:45 +01:00
Rangi42
ad4d9da4cf
Remove unnecessary default constructor definitions
2025-02-14 18:58:34 +01:00
Rangi42
1489854932
Use more const references when possible
2025-02-14 18:58:34 +01:00
Rangi
2aef09c8d9
Allow the bit/res/set bit index to be determined at link time ( #1654 )
...
This increments the object file revision number from 11 to 12
since it adds a new `RPN_BIT_INDEX` command.
2025-02-12 17:14:10 +01:00
Rangi42
48412e9c56
Some miscellaneous refactoring and copy-editing
2025-02-10 16:51:51 +01:00
Rangi
177a3abfac
Fix bug where macro names can be treated as numeric symbols ( #1653 )
2025-02-08 23:03:21 +01:00
Rangi
4c916b8da8
Parser refers to "symbol"s, "label"s, and "local label"s, not "identifier"s ( #1652 )
...
This better matches how the lexed tokens are discussed in rgbasm(5)
2025-02-06 18:01:33 +01:00
Rangi42
d9d381cb62
Refactor the parser to have fewer *_no_str intermediate rules
2025-02-04 18:59:11 +01:00