compiler
compiler copied to clipboard
Pawn compiler for SA-MP with bug fixes and new features - runs on Windows, Linux, macOS
**What this PR does / why we need it**: This PR does the following: * Introduces warning 252 for operators `++`, `--`, and compound assignment operators (`+=`, `-=`, `*=` etc,)...
### Issue description: `-Z` was added to fix one single breaking change, namely that of `_inc_` auto-generated include guards. However, the need for this is long past; includes have been...
### Issue description: IMHO it should just read `user error:` like a fourth class of errors, but still fatal. The long prefix just obfuscates the message. ### Minimal complete verifiable...
### Issue description: When an enum contains an array (including but not limited to another enum), copying from this array to either a normal array or an array inside another...
### Issue description: I don’t know exactly how it is related is for the compiler or not. If you divide one INTEGER number by another INTEGER, then in some cases...
### Issue description: ### Minimal complete verifiable example (MCVE): This works (`tag` is `tagof (b:)`): ```pawn Func({a, b, c}:arg, tag = tagof (arg)) { } main() { Func(b:0); } ```...
A *simple* `sizeof`/`tagof` expression works when referencing a parameter at the same or greater position, i.e.: ```pawn native n1(tag = tagof(val), {_,Float}:val); // works native n2(size = sizeof(val), val[]); //...
### Issue description: `sizeof` when used as a default argument to get the size of an array should always return a size of an array, never the size of a...
### Issue description: The `_inc_file` automatic include guards don't seem to prevent including files any mode ### Minimal complete verifiable example (MCVE): ```pawn #pragma compat 1 #define _inc_console #include main()...
### Issue description: Me, Cheaterman, and $Michael$ discussed about pawn and encountered the bug that should not happen when trying to assigning the `enum tag` for global 2d array, since...