Rangi
a1107fc5cf
Refactor !!x to x != 0
...
Also limit comments and docs to single "!"s
2022-10-01 14:09:02 -04:00
Rangi
08545643cf
Only define @ and _NARG when they have values ( #1073 )
...
Fixes #1069
Co-authored-by: Eldred Habert <eldredhabert0@gmail.com >
2022-10-01 01:04:03 +02:00
Rangi
a47da5f71f
Deprecate __FILE__ and __LINE__ ( #1072 )
...
Unlike C, these constants are not convenient for logging in macros,
since they always report the same data (their location in the macro).
Fixes #1068
2022-09-30 19:48:30 +02:00
Rangi
dec4133e84
SECTION(symbol) returns the name of a symbol's section (#1066 )
...
Fixes #963
Co-authored-by: Eldred Habert <eldredhabert0@gmail.com >
2022-09-30 01:59:33 +02:00
Rangi
c35cb6ac32
Warning levels -Wunmapped-char=0/1/2 ( #1061 )
...
Fixes #1058
2022-09-29 18:14:04 -04:00
Rangi
023884d2b0
Redefine the trig functions to divide circles into 1.0 turns ( #1060 )
...
This makes their behavior consistent across Q settings
Fixes #1059
2022-09-29 10:57:29 +02:00
Eldred Habert
6502ed3919
Add -I as an alias for -i in rgbasm ( #1056 )
...
Co-authored-by: Rangi <35663410+Rangi42@users.noreply.github.com >
2022-09-26 03:42:30 -04:00
Rangi
f88968ec20
Fix rgbasm -b and rgbasm -g ( #1052 )
...
Fixes #1051
2022-09-25 10:22:55 +02:00
Rangi
5ad8a8c958
Warn when a duplicate CLI argument overrides a previous one ( #1053 )
...
Fixes #1050
2022-09-25 10:04:30 +02:00
Rangi
2827374505
Use STD*_FILENO constants ( #1055 )
...
These are defined in platform.h, but not consistently used
Co-authored-by: Eldred Habert <eldredhabert0@gmail.com >
2022-09-25 10:02:53 +02:00
Rangi
b8385a50e3
Support -P/--preinclude to pre-INCLUDE a file ( #1043 )
...
Fixes #1041
Co-authored-by: ISSOtm <eldredhabert0@gmail.com >
2022-09-24 12:37:16 -04:00
Rangi
98a6dffbca
Implement opt Q for fixed-point precision, and q literals (e.g. 12.34q8) ( #958 )
...
Fixes #957
Co-authored-by: ISSOtm <eldredhabert0@gmail.com >
2022-09-05 00:47:32 +02:00
Rangi
889302a9e2
Document the -H and -l flags
...
Fixes #1042
2022-09-02 08:43:41 +02:00
Rangi
c01317e08d
Only increment the unique \@ ID when it is first used per context ( #1030 )
...
This avoids changes to generated `\@` labels just by adding or
removing macros or loops which do not actually use `\@`.
Fixes #1019
2022-08-31 17:45:21 -04:00
Rangi
a52a00a9ca
macro_UndefUniqueID uses 0 to mean \@ is undefined
2022-08-30 16:50:34 -04:00
Rangi
fa13611bbf
Make comments more consistent
...
- Changes most `/* comments */` to `// comments`
- Changes `/**` block comments consistently to `/*`
- Adds consistent license comments to all files
Also renames `T_POP_SET` to `T_Z80_SET`
2022-08-30 07:51:32 +02:00
Rangi
14e6a79adc
Deprecate the old macro syntax ( #1025 )
...
Fixes #1011
2022-08-28 15:22:21 -04:00
Rangi
7a2ee26792
rgbasm -r sets the maximum recursion depth (#1026 )
...
Previously it set the minimum failure depth (off by one)
Fixes #978
2022-08-28 15:21:29 -04:00
Rangi
425339ccf6
Implement FMOD function for fixed-point modulo
...
Fixes #1021
2022-08-28 21:21:10 +02:00
Rangi
8207dc57b7
Add a -Wunmapped-char warning for characters not in the charmap ( #1023 )
...
Fixes #1022
2022-08-28 15:12:43 -04:00
ISSOtm
9ec8186ac6
Switch linkdefs from scattered arrays to an array of structs
...
The info is better organized this way
2022-07-19 19:11:02 +02:00
ISSOtm
ab9945c1ee
Avoid using fscanf to detect RGBDS object files
...
This function is made for text, e.g. accepts spaces, leading zeros, etc. before `%u`.
This way checks that the correct amount of bytes are read instead.
2022-07-19 19:10:58 +02:00
ISSOtm
43ba7d0efb
Explain to static analyzer that initial symbol creation cannot fail
2022-06-12 16:49:06 +02:00
ISSOtm
f5ac268989
Fix unchecked realloc in makeUnknown
2022-06-12 16:36:35 +02:00
ISSOtm
d51ab35203
Trim macro arg whitespace after line continuations
2022-06-09 00:07:27 +02:00
ISSOtm
97c326942f
Warn about automatic instruction alterations
...
Step 1 of #986
2022-05-21 21:49:07 +02:00
ISSOtm
b037d54f64
Remove deprecated symbols
...
Fixes #896
2022-05-21 21:45:06 +02:00
ISSOtm
7e94ecbfe6
Move all man pages to a separate directory
...
Simplifies processing all around, and makes more sense
2022-05-15 13:34:35 +02:00
ISSOtm
af70d555fc
Remove signed check on unsigned variable
2022-03-09 08:40:49 +01:00
Eldred Habert
e07bd92314
Have the eqn preprocessor run on rgbasm(5)
...
This is required for the built-in functions (L315-337), otherwise the math syntax doesn't get processed.
This magic line is detected by most `man` impls:
https://www.gnu.org/software/groff/manual/html_node/Preprocessors-in-man-pages.html
2022-03-08 22:11:49 +01:00
ISSOtm
7dd8ba37f1
Allow changing recursion depth limit at runtime
2022-02-05 20:32:56 +01:00
Eldred Habert
6842c831fd
Allow binary AND to be sometimes constant ( #976 )
2022-02-05 14:17:57 -05:00
Eldred Habert
6b903059fe
Document endianness of dw and dl ( #972 )
2022-02-05 14:12:35 -05:00
ISSOtm
eb5af70d79
Add unsigned right shift operator
2022-02-05 20:12:15 +01:00
ISSOtm
ac59ecf3c0
Enable -Wsign-compare and fix the warnings
2022-02-05 20:11:25 +01:00
ISSOtm
bbae9966e9
Fix string constness issues in RGBASM
2022-02-05 20:11:25 +01:00
Rangi
4ed5ba7508
Finish using time_utc before initializing time_local
...
gmtime and localtime may share the same static internal struct tm,
so they cannot both be initialized and then used.
2022-01-27 22:32:34 -05:00
Rangi
20a26599a3
Simplify allocating multiple ds args
...
Dealing with indexes is only necessary for `strfmt`
2021-12-01 20:24:31 -05:00
Rangi
7bdfc9da23
Really don't use new as a variable name
2021-11-30 17:06:36 -05:00
Rangi
d073cffa74
Don't use new as a variable name
...
It conflicts with the C++ keyword
2021-11-24 22:48:28 -05:00
Rangi
8435a29c4e
Turn the readChars macro into a readInternal function
...
This macro was only used twice, and the second usage did
some unnecessary work.
2021-11-25 00:26:23 +01:00
Rangi
c2ca46c27d
Remove TRACE_PARSER support
...
Attempting to build with this gave an "undefined reference to `yydebug'"
error (maybe a version issue with bison?), and I don't think it's been
used for recent parser debugging either.
2021-11-22 23:49:59 +01:00
Rangi
aac839f389
Remove dbgPrint and TRACE_LEXER support
...
I have not found `TRACE_LEXER` to be useful in debugging
actual lexer issues.
2021-11-22 23:49:59 +01:00
Rangi
9d9febe1d3
Consistent title case for rgbasm.5 headings
2021-11-22 17:12:16 -05:00
Rangi
b9fd85470e
Reword docs now that SET is deprecated ( #946 )
...
- '=' constants are "variables" (not "mutable constants")
- EQU constants are "numeric constants" (not "immutable constants")
- EQUS constants are "string constants" (not "string equates")
- DS declarations are "static allocations" (not "variables")
2021-11-22 17:08:29 -05:00
Rangi
ec6d63bce3
Allow underscores in gfx literals ( #951 )
...
Fixes #950
2021-11-21 16:18:23 -05:00
Rangi
bdcef6f252
Refactor error reporting to simplify BSD-style err ( #949 )
2021-11-21 16:16:54 -05:00
ISSOtm
b04e71ed34
Use correct length type for Abs*Group
2021-11-21 18:28:42 +01:00
Rangi
f82603f196
Lowercase "error:" in -Werror output
2021-11-20 11:21:46 +01:00
Rangi
cedfd2582a
Move more statements into for loop clauses
2021-11-19 22:55:20 -05:00