Rangi
46e67ee078
Remove deprecated RGBASM features ( #1215 )
...
- Escaped commas "\," inside strings
- `name: MACRO` syntax
- `__FILE__` and `__LINE__`
- `-H/--nop-after-halt` and `-l/--auto-ldh` on by default
2023-11-04 23:22:46 +01:00
Rangi
181512ad9d
Implement INCHARMAP function ( #1184 )
2023-11-02 20:14:54 +01:00
Rangi42
a64f28de5c
Avoid using %# printf specifier
2023-11-02 17:38:10 +01:00
Rangi
bb7c34db65
Deprecate DEF-less definitions ( #1193 )
2023-11-02 10:18:59 +01:00
Rangi
84f3cb4075
ENDL restores the label scope from before LOAD ( #1180 )
2023-10-26 22:58:36 +02:00
Quinn
944c5f0cd0
Implement order-independent purge ( #1173 )
...
Each symbol passed to purge is collected in a list before mass removal.
Fixes the issue described in gbdev/rgbds issue #1152 .
---------
Co-authored-by: Rangi42 <remy.oukaour+rangi42@gmail.com >
2023-10-25 22:34:56 +02:00
Damian Yerrick
e1f0a13e5a
Allow defining local labels for another scope ( #1159 )
...
fix #1157 for the following source code
```
section "hSAVE_locals",HRAM
func3.hSpam: ds 1 ; no longer produces an error
;.hEggs: ds 1 ; uncomment this to see the new error
section "demo",ROM0
func3:
ldh a, [.hSpam]
ret
```
Remove two errors:
- `Not currently in the scope of 'func3'`
- `Local label 'func3.hSpam' in main scope`
Add one error:
- `Relative local label '.hSpam' in main scope`
Co-authored-by: Rangi <35663410+Rangi42@users.noreply.github.com >
2023-08-20 02:29:53 +02:00
Rangi
01f1703dfb
Preserve \@ through INCLUDE
...
Fixes #1112
2022-12-11 18:56:03 +01:00
Rangi
3c049983f1
Fixed-point functions can take specific precision ( #1086 )
2022-10-02 16:56:08 +02:00
Rangi
8553b61a94
Fixed-point values can use all 32-Q magnitude bits ( #1085 )
2022-10-02 11:08:38 +02:00
Rangi
106ad30e5a
Allow fixed-point constants to have unsigned range ( #1084 )
...
For example with Q.4, $F0 is 15.0, which no longer warns
2022-10-01 23:32:34 +02: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
Rangi
f88968ec20
Fix rgbasm -b and rgbasm -g ( #1052 )
...
Fixes #1051
2022-09-25 10:22:55 +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
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
dca24a6d50
Test that OPT r fails immediately if the recursion depth is already exceeded
...
Fixes #1034
2022-08-28 22:21:24 +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
DaKnig
34bc650341
Fix shebangs ( #992 )
2022-07-01 22:59:41 +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
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
ISSOtm
eb5af70d79
Add unsigned right shift operator
2022-02-05 20:12:15 +01:00
ISSOtm
acc31feaa1
Fix "shift" test to actually test RGBLINK
2022-02-05 11:39:10 +01:00
Rangi
ec6d63bce3
Allow underscores in gfx literals ( #951 )
...
Fixes #950
2021-11-21 16:18:23 -05:00
ISSOtm
54293a9184
Remove unused "MAX_PATH" header
...
The header's name was also quite misleading.
Also remove an unused define in `asm/symbol.h`.
2021-11-21 18:32:29 +01:00
Rangi
f82603f196
Lowercase "error:" in -Werror output
2021-11-20 11:21:46 +01:00
Rangi
c7322258fc
Refactor readGfxConstant for consistency, and edit warning message
2021-11-19 21:36:56 -05:00
Rangi
8e2a164a32
Implement compound assignment operators for mutable constants
...
Fixes #943
2021-11-19 08:50:00 +01:00
Rangi
b76819792d
Deprecate SET in favor of =
...
`SET` is redundant with `=`, and is already the name of an instruction.
2021-11-19 00:05:49 +01:00
Rangi
0bb815edc0
Implement -Wnumeric-string[=0|1|2] ( #935 )
...
Fixes #934
2021-11-12 23:09:35 +01:00
Rangi
47442941b6
Support ! operator for condition codes ( #720 )
...
Fixes #719
2021-11-02 00:16:52 +01:00
Rangi
11a6a81169
Implement -Wtruncation=level ( #931 )
...
* Implement -Wtruncation=level
-Wtruncation=0 is the same as the current -Wno-truncation.
-Wtruncation=2 is the same as the current -Wtruncation.
-Wtruncation=1 is the new default; it's less strict, allowing
N-bit values to be between -2**N and 2**N (exclusive).
* Implement generic "parametrized warning" system
* Test more `Wtruncation` variants
Co-authored-by: ISSOtm <eldredhabert0@gmail.com >
2021-10-31 17:47:31 -04:00
Rangi
b002d95459
Fix precison of fixed-point formatting
...
Fixes #908
2021-10-28 23:29:16 +02:00
martendo
0f321bc797
Fix section merge alignment error message ( #919 )
...
Co-authored-by: Eldred Habert <eldredhabert0@gmail.com >
2021-08-17 18:03:46 -04:00
Rangi
26ddf1ff4d
Prevent defining invalid local labels
...
Fixes #913
2021-07-30 15:21:47 +02:00
Rangi
695dfe9dbd
Add missing file line-continuation-string.asm
...
Also make some minor formatting corrections
2021-07-04 16:12:34 -04:00
Rangi
1b5648bb06
Line continuations *do* work inside strings
...
The rgbasm.5(5) documentation was outdated here
2021-07-01 17:56:49 -04:00
Rangi
a67f5d6e01
SIZEOF("Section") and STARTOF("Section") can be known
...
Fixes #890
2021-06-27 21:03:06 +02:00
Rangi
80a376f045
Syntax errors resets the lexer right away
...
`DEF`, `REDEF`, etc disable EQUS expansion, and reading
macro or OPT arguments sets the lexer to raw mode.
Syntax errors resume normal parsing at the line's end,
but should resume normal tokenization even before that.
2021-05-22 16:08:55 -04:00
Rangi
0068c1375c
Syntax error message hints to indent macro invocations
...
This message is only printed for identifiers parsed as
`T_LABEL` (since they're at the start of a line) but
already defined as macros. Otherwise it may not be
relevant, e.g. for `MyLabel;:` or `My Label::`.
2021-05-22 14:58:26 +02:00