| English | Português (Brasil) |
Diagnostic codes are part of the compiler’s public API. Once retired, a code must never be assigned to a different diagnostic. Future diagnostics must use the range reserved for their category.
| Range | Category | Details |
|---|---|---|
| E1000-E1999 | Lexical Analysis | Lexical diagnostics |
| E2000-E2999 | Parser / Syntax | Syntax diagnostics |
| E3000-E3999 | Semantic Analysis | Semantic diagnostics |
| E4000-E4999 | Type System | Type-system diagnostics |
| E5000-E5999 | Code Generation | Code-generation diagnostics |
| E6000-E6999 | Runtime Validation | Runtime-validation diagnostics |
| W1000-W1999 | Warnings | Reserved; no warnings are emitted |
| I1000-I1999 | Informational Messages | Reserved; no informational messages are emitted |
| Code | Category | Description |
|---|---|---|
| E1000 | Lexical Analysis | Unexpected character |
| E1002 | Lexical Analysis | Malformed hexadecimal literal |
| E2101 | Parser / Syntax | Unknown command |
| E2102 | Parser / Syntax | Invalid syntax |
| E3001 | Semantic Analysis | Missing nes.run |
| E3002 | Semantic Analysis | Statement after nes.run |
| E3003 | Semantic Analysis | Invalid background-color call count |
| E3004 | Semantic Analysis | Duplicate symbol |
| E3005 | Semantic Analysis | Unknown identifier |
| E3006 | Semantic Analysis | Assignment to constant |
| E3007 | Semantic Analysis | Unknown assignment target |
| E3008 | Semantic Analysis | Variable read before assignment |
| E3009 | Semantic Analysis | Runtime command inside conditional |
| E3010 | Semantic Analysis | Loop control outside loop |
| E3011 | Semantic Analysis | Runtime command inside loop |
| E3012 | Semantic Analysis | For control variable modification |
| E3013 | Semantic Analysis | Unknown procedure |
| E3014 | Semantic Analysis | Recursive callable cycle |
| E3015 | Semantic Analysis | Runtime command inside callable |
| E3016 | Semantic Analysis | Incorrect procedure argument count |
| E3017 | Semantic Analysis | Frame wait before runtime start |
| E3018 | Semantic Analysis | Unknown callback procedure |
| E3019 | Semantic Analysis | Invalid callback signature |
| E3020 | Semantic Analysis | Duplicate update callback |
| E3021 | Semantic Analysis | Duplicate VBlank callback |
| E3022 | Semantic Analysis | Invalid callback registration context |
| E3023 | Semantic Analysis | VBlank-unsafe operation |
| E3024 | Semantic Analysis | Invalid callback call graph |
| E3025 | Semantic Analysis | Conflicting callback registration |
| E3026 | Semantic Analysis | Invalid controller index |
| E3027 | Semantic Analysis | Dynamic controller index |
| E3028 | Semantic Analysis | Invalid controller button |
| E3029 | Semantic Analysis | Invalid controller argument count |
| E3030 | Semantic Analysis | Invalid sprite-zero argument count |
| E3031 | Semantic Analysis | Invalid background palette index |
| E3032 | Semantic Analysis | Invalid sprite palette index |
| E3033 | Semantic Analysis | Invalid palette color index |
| E3034 | Semantic Analysis | Invalid palette argument count |
| E3035 | Semantic Analysis | Invalid background-load argument count |
| E3036 | Semantic Analysis | Background load after runtime start |
| E3037 | Semantic Analysis | Duplicate background load |
| E3038 | Semantic Analysis | Invalid set-tile argument count |
| E3039 | Semantic Analysis | Invalid get-tile argument count |
| E3040 | Semantic Analysis | Invalid set-attribute argument count |
| E3041 | Semantic Analysis | Invalid clear-background-updates argument count |
| E3042 | Semantic Analysis | Invalid tile coordinate |
| E3043 | Semantic Analysis | Invalid attribute coordinate |
| E3044 | Semantic Analysis | Invalid background-overflow query argument count |
| E3045 | Semantic Analysis | Invalid background-overflow clear argument count |
| E3046 | Semantic Analysis | Invalid set-scroll argument count |
| E3047 | Semantic Analysis | Invalid sprite API argument count |
| E3048 | Semantic Analysis | Invalid hardware sprite palette |
| E3049 | Semantic Analysis | Invalid sprite-create argument count |
| E3050 | Semantic Analysis | OAM hardware-sprite capacity exhausted |
| E3051 | Semantic Analysis | Invalid metasprite import |
| E3052 | Semantic Analysis | Duplicate metasprite import |
| E3053 | Semantic Analysis | Invalid metasprite creation |
| E3054 | Semantic Analysis | Invalid metasprite API argument count |
| E3055 | Semantic Analysis | Incompatible metasprite frame |
| E3056 | Semantic Analysis | Invalid metasprite animation |
| E3057 | Semantic Analysis | Invalid builtin context |
| E3058 | Semantic Analysis | Invalid builtin argument count |
| E3059 | Semantic Analysis | Unknown function |
| E3060 | Semantic Analysis | Incorrect function argument count |
| E3061 | Semantic Analysis | Function used as statement |
| E3062 | Semantic Analysis | Procedure used as expression |
| E3063 | Semantic Analysis | Undefined function result |
| E3064 | Semantic Analysis | Invalid random range |
| E4001 | Type System | Unknown type |
| E4002 | Type System | Invalid nes_color value |
| E4003 | Type System | Invalid byte value |
| E4004 | Type System | Incompatible types |
| E4005 | Type System | Unsupported parameter type |
| E4006 | Type System | Invalid controller argument type |
| E4007 | Type System | Invalid palette argument type |
| E4008 | Type System | Invalid sprite value |
| E4009 | Type System | Invalid metasprite value |
| E4010 | Type System | Invalid array element type |
| E4011 | Type System | Invalid array index type |
| E4012 | Type System | Array index out of bounds |
| E4013 | Type System | Invalid array usage |
| E4014 | Type System | Invalid array bounds |
| E4015 | Type System | Duplicate enumeration member |
| E4016 | Type System | Too many enumeration members |
| E4017 | Type System | Invalid enumeration comparison |
| E4018 | Type System | Unknown enumeration member |
| E4019 | Type System | Duplicate record field |
| E4020 | Type System | Unknown record field |
| E4021 | Type System | Field access on non-record |
| E4022 | Type System | Unsupported record field type |
| E4023 | Type System | Recursive record definition |
| E4024 | Type System | Invalid record layout or indexed offset |
| E4025 | Type System | Invalid record usage |
| E4026 | Type System | Unsupported function return type |
| E5001 | Code Generation | Missing toolchain |
| E5002 | Code Generation | Toolchain failure |
| E5003 | Code Generation | User RAM exhausted |
| E5004 | Code Generation | Temporary RAM exhausted |
| E5005 | Code Generation | Invalid memory layout |
| E5006 | Code Generation | RAM segment overflow |
| E5007 | Code Generation | Hardware stack call depth exhausted |
| E6001 | Runtime Validation | File access failure |
| E6002 | Runtime Validation | CHR-ROM asset not found |
| E6003 | Runtime Validation | CHR-ROM asset read failure |
| E6004 | Runtime Validation | Invalid CHR-ROM size |
| E6005 | Runtime Validation | Invalid background asset configuration |
| E6006 | Runtime Validation | Background asset not found |
| E6007 | Runtime Validation | Background asset read failure |
| E6008 | Runtime Validation | Invalid background asset size |
| E6009 | Runtime Validation | Background asset required |
| E6010 | Runtime Validation | Invalid mirroring configuration |
| E6011 | Runtime Validation | Metasprite asset not found |
| E6012 | Runtime Validation | Metasprite asset read failure |
| E6013 | Runtime Validation | Malformed metasprite JSON metadata |
| E6014 | Runtime Validation | Unsupported metasprite metadata format |
| E6015 | Runtime Validation | Unsupported metasprite metadata version |
| E6016 | Runtime Validation | Invalid metasprite metadata |
| E6017 | Runtime Validation | Incompatible metasprite CHR data |
| E6018 | Runtime Validation | Invalid metasprite asset configuration |
The W1000-W1999 range is reserved for future non-fatal compiler warnings. The compiler currently emits no warnings.
The I1000-I1999 range is reserved for future informational diagnostics. The compiler currently emits no informational messages.