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
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
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
632342b254
Use LCOV_EXCL comments to exclude some lines from test coverage ( #1662 )
2025-02-16 13:56:55 -05:00
Rangi42
48412e9c56
Some miscellaneous refactoring and copy-editing
2025-02-10 16:51:51 +01:00
Rangi42
cae31005f8
Always use braces with InsertBraces: true in .clang-format
2025-01-27 20:12:12 -05:00
Rangi42
25c9f8f383
Add more rules to .clang-format
2025-01-27 20:12:12 -05:00
Rangi42
b8b60207f5
Use // line comments not /* block comments
2025-01-27 20:12:12 -05:00
Rangi42
b18cfe6bdb
Consistently use UINT32_MAX, not -1, for uint32_t values
2024-12-10 19:47:23 -05:00
Sylvie
b877c81c32
Use C++-style casts ( #1576 )
2024-12-09 21:56:54 -05:00
Rangi42
8037b9e10a
Run clang-format
2024-09-25 13:15:58 -04:00
Sylvie
9ef2e43bf7
Track local label scope, string equated as .. ( #1504 )
2024-09-18 09:52:30 -04:00
Sylvie
122ef95d9c
Implement . string constant for the current label scope ( #1499 )
2024-09-13 21:20:01 +02:00
Sylvie
bfb96b038d
Make error messages for "undefined" built-ins more accurate ( #1501 )
2024-09-11 17:54:23 +02:00
Rangi42
1adf68d018
Refer to "label scope", not "symbol scope"
2024-09-10 21:38:50 +02:00
Rangi42
750e69c5a6
More asserts like the one in addLabel
2024-09-10 21:38:50 +02:00
Rangi42
6e83a14143
Consistently handle auto-scoping of local symbols
2024-09-10 21:38:50 +02:00
Rangi42
cff05435ad
Remove redundant and sometimes inaccurate comments
2024-09-10 21:38:50 +02:00
Rangi42
3b59e8963e
Rename variables to avoid C++ reserved "_[A-Z]" prefix
2024-09-10 21:38:50 +02:00
Rangi42
56af572bfd
Refactor symbol value getters for less redundancy
2024-09-10 21:38:50 +02:00
Rangi42
6bc2446966
Rephrase error messages for consistency
2024-09-10 21:38:50 +02:00
Rangi42
155e7287db
Store a pointer to the scoped label, not just its name
2024-09-10 21:38:50 +02:00
Sylvie
7435630d6a
Error messages note when a symbol has been purged ( #1453 )
2024-08-06 15:35:06 -04:00
Sylvie
2f8f99bd94
Implement -Wpurge= ( #1443 )
2024-08-05 12:50:48 -04:00
Sylvie
f304e1dd7f
Implement state file output for RGBASM ( #1435 )
2024-08-05 12:41:40 -04:00
Sylvie
a234da42a6
Replace assert with assume for release build optimization ( #1390 )
2024-04-02 11:09:31 -04:00
ISSOtm
e5078aba3b
Clean up #includes
...
Remove unused headers, and avoid relying on transitive inclusions
`include-what-you-use` has been very useful for this!
2024-03-28 01:25:38 +01:00
Rangi42
912a1504ec
Defer closing of depend file
2024-03-27 11:44:26 -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
cb59119881
Use automatically-allocated std::string_view for macros
2024-03-25 11:33:17 -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
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
ISSOtm
9f239f6dcc
Use std::shared_ptr<std::string> for lexed/parsed strings
2024-03-22 14:25:36 -04:00
Sylvie
04405fb444
Use std::shared_ptr for fstack nodes ( #1371 )
2024-03-22 13:27:21 -04:00
Sylvie
0300971a17
Fix some header #includes with clangd LSP ( #1370 )
...
Co-authored-by: ISSOtm <eldredhabert0@gmail.com >
2024-03-21 15:13:10 -04:00
Sylvie
0af1e512c2
Use std::get_if instead of std::visit ( #1367 )
...
`std::visit` is (arguably) cleaner code, but older versions of gcc
and clang (not very old; the ones packaged with Ubuntu 22.04 LTS)
compile them as tables of function pointers, instead of efficient
jump tables.
2024-03-20 22:37:54 -04:00
Sylvie
554778da5b
Built-in symbols are "<builtin>", not "<command-line>" ( #1362 )
2024-03-19 16:01:45 -04:00
Rangi42
472d1bde06
Pass std::string references to symbol functions
2024-03-18 14:42:05 -04:00
Rangi42
cefc4f4aa3
Use std::unordered_map for symbols
2024-03-16 11:19:19 -04:00
Sylvie
820f6b5b3c
Consistently format type qualifiers like const on the right ( #1347 )
2024-03-10 12:21:52 -04:00
Sylvie
17444e825a
Reduce the header declarations ( #1342 )
...
- Since we have style rules to include foo.hpp at the top of its
corresponding foo.cpp, this takes any headers included by foo.hpp
as being also guaranteed for foo.cpp.
- Use C-style <foo.h> instead of <cfoo>, since the latter only
guarantees putting symbols in the `std` namespace, which we are
not using for C functions (e.g. `printf` not `std::printf`).
- Remove now-unused `__PRETTY_FUNCTION__` reporting
2024-03-09 14:55:39 -05:00
Rangi42
563d699394
Avoid an extra operation if !labelScope (thanks, ISSOtm)
2024-03-07 17:33:33 -05:00
Rangi42
aed172071b
Replace some macros with static functions or constants
2024-03-07 16:10:05 -05:00
Rangi42
097b7c3baf
Use std::string for symbol names
2024-03-07 12:40:33 -05:00
Rangi42
e5b7e65e91
Use std::nothrow from <new> with every new allocation
2024-03-07 09:56:15 -05:00
Sylvie
e74073e480
Run clang-format on everything ( #1332 )
2024-03-04 14:22:49 -05:00