Commit Graph

1188 Commits

Author SHA1 Message Date
ISSOtm
ffdb1fbfe5 Split macro arg management into its own file
It has no relation to symbols, and helps a tiny bit deflate `symbol.c`
2020-03-11 02:39:36 +01:00
ISSOtm
8fcdcb1731 Implement ISCONST, reporting compile-time constness 2020-03-11 02:15:31 +01:00
ISSOtm
55b911654c Get rid of obsoleted function 2020-03-11 01:46:26 +01:00
ISSOtm
7c8eba9fd2 Remove error message causing segfault
This was utterly stupid. The check right above ensured that `sym` was NULL,
ergo that the argument to `yyerror` *would* segfault.

The only two call sites cannot pass a non-NULL pointer anyways, which I'm
betting is why this went unnoticed.
I did what an optimizing compiler would do anyways: remove the dead code.
2020-03-11 00:39:57 +01:00
ISSOtm
23effcc3f0 Fix error messages in sym_GetConstantValue 2020-03-11 00:16:35 +01:00
ISSOtm
ea0c5581a5 Prevent deletion of built-in symbols 2020-03-10 23:25:33 +01:00
ISSOtm
2ea329c920 Make symbol creation funcs return ptr to symbol 2020-03-10 16:36:02 +01:00
ISSOtm
3948795d49 Remove deprecated section types 2020-03-10 16:08:09 +01:00
ISSOtm
13e4920122 Get rid of comma token 2020-03-10 16:08:09 +01:00
ISSOtm
88b1121037 Uniformize style in asmy.y 2020-03-10 16:08:02 +01:00
ISSOtm
d2a97e934b Remove obsolete instruction forms 2020-03-10 15:50:11 +01:00
ISSOtm
cb3997d8c9 Fix org location being undefined when incorrect 2020-03-10 15:37:33 +01:00
ISSOtm
c7320a49a9 Deprecate GLOBAL and XDEF
They're basically synonyms for `EXPORT`, and the latter isn't
even documented!
2020-03-10 13:49:55 +01:00
ISSOtm
8d9a896166 Remove deprecated IMPORT symbol
It had a warning that it had no effect for a long while now; removing it so
the name can be re-used
2020-03-10 13:43:15 +01:00
ISSOtm
81a057416f Remove typing for operators that don't need it 2020-03-08 16:26:09 +01:00
ISSOtm
361326e06c Allow inlining of two simple RPN functions 2020-03-07 18:18:57 +01:00
ISSOtm
0d31afaff8 Correct four code style issues 2020-03-07 18:09:00 +01:00
ISSOtm
48ad3973a9 Tell the user about "label"s instead of "relocatable"s
That's the common term, and even the manual uses it.
2020-03-07 18:04:13 +01:00
ISSOtm
f6f25296a0 Fix passing constant label to BANK() causing an error 2020-03-07 18:02:06 +01:00
ISSOtm
fa10ee4356 Deprecate colon-less non-local labels 2020-02-29 16:30:47 +01:00
ISSOtm
5bc8d51a9e Ignore unused arguments in a more standard way 2020-02-29 16:25:54 +01:00
Eldred Habert
361d6cf517 Merge pull request #437 from rednex/locals
Prevent local symbols that are not labels
2020-02-26 02:56:35 +01:00
ISSOtm
dac13ba4bb Add string format checking to err.h functions
And fix all problems this detected... oops
2020-02-24 16:58:55 +01:00
ISSOtm
4cc24f4369 Add ds cnt, byte syntax
As suggested by https://github.com/rednex/rgbds/issues/350#issuecomment-498030458
The order `count` then `byte` was decided after some discussion:
- First argument consistent with single-arg syntax
- Intuitive at least to some people other than myself
- Consistent with other assemblers, at least ca65
2020-02-23 22:43:50 +01:00
ISSOtm
cfe21876e5 Make writing patches not affect the expression
This also removes one int member from the struct that shouldn't be there
2020-02-23 22:29:01 +01:00
ISSOtm
ef2bfe4ea0 Store patch file line in the file name
It's more consistent with how it's stored for all other entries in the stack
2020-02-19 09:51:40 +01:00
ISSOtm
76efd26da0 Prevent local symbols that are not labels
Fixes errors brought up in #423
2020-02-19 00:20:58 +01:00
ISSOtm
cf2001de5f Allow compiling parser in debug mode with -DYYDEBUG=1 2020-02-19 00:01:51 +01:00
ISSOtm
6d00877231 Prevent infinite loop with line continuations without newlines 2020-02-18 20:58:20 +01:00
ISSOtm
e941cafedb Make locals in main scope a non-fatal error 2020-02-18 20:07:44 +01:00
ISSOtm
03fe077b41 Make locals without parent a non-fatal error 2020-02-18 20:07:44 +01:00
ISSOtm
9e99db9a8e Allow \r in strings
Fixes #484
2020-02-17 13:52:38 +01:00
ISSOtm
03ed914714 Give reason to why writing the object file fails 2020-02-14 00:29:24 +01:00
ISSOtm
bc80e910ed Fix two code style errors 2020-02-13 20:43:47 +01:00
ISSOtm
f01a227470 Fix non-const labels with callbacks having incorrect values when diffed
Basically, this broke PC, which is currently the only label-typed symbol
with a callback.
2020-02-13 20:16:59 +01:00
ISSOtm
ed4a613473 Rename productions to "reloc" when not really constant 2020-02-11 19:04:35 +01:00
ISSOtm
112098514d Fix 1 s/r and 1 r/r conflict
Implements the fix suggested [here](https://github.com/rednex/rgbds/issues/44#issuecomment-69360499), which performed better than expected!
I'm not \*too\* fond of this but this seems like the right way
2020-02-11 18:59:55 +01:00
ISSOtm
96b6e4a76e Add forgotten semicolon in grammar 2020-02-11 11:36:50 +01:00
ISSOtm
001b95d12a Add SHIFT with numeric argument
Fixes #442.
2020-02-11 11:25:38 +01:00
ISSOtm
3b2c862320 Make more RGBASM errors print their line number
Fixes #379.
2020-02-11 09:35:19 +01:00
Eldred Habert
c37253fe5a Merge pull request #480 from ISSOtm/section
Improve section management
2020-02-11 08:51:00 +01:00
Eldred Habert
0ed8d3859d Merge pull request #481 from rednex/revert-451-atomic_output
Revert "Make RGBASM overwrite output files atomically"
2020-02-11 08:32:27 +01:00
ISSOtm
6963d77f8a Add documentation for LOAD blocks 2020-02-10 09:30:33 +01:00
ISSOtm
cdabc057a0 Allow unseekable files with INCBIN
Go figure the use case, but the feature is there now
2020-02-10 03:39:09 +01:00
ISSOtm
eb0d75711a Implement LOAD/ENDL blocks
Basically implements and closes rednex#274.
2020-02-10 03:39:09 +01:00
ISSOtm
f121119283 Use section's offset instead of general one
That's more future-proof and makes more sense
2020-02-10 03:37:44 +01:00
ISSOtm
d9c1b66931 Deduplicate value output function code 2020-02-10 03:37:43 +01:00
ISSOtm
2f60e0a59e Use meaningful types for byte output functions 2020-02-10 03:36:51 +01:00
ISSOtm
ffe9e92b48 Skip double-checking overflow in byte output 2020-02-10 03:36:51 +01:00
ISSOtm
aa90a53f34 Move 1-byte overflow check to out_AbsByte
This check is already performed in bulk by all functions calling it except
`out_AbsByte`, adding extra overhead to those.
2020-02-10 03:36:51 +01:00