For the complete documentation index, see llms.txt. This page is also available as Markdown.

Lexer errors (GPC11xx)

GPC1100 — Unterminated Block Comment

Unterminated block comment.

Severity: Error

A /* block comment is never closed with */ before the end of the file. Everything after the /* was consumed as comment text. Check for a missing */.

Watch out for the nesting trap: block comments do not nest. In /* outer /* inner */ text */ the comment ends at the first */, so text */ is suddenly parsed as code — which typically produces confusing, unrelated-looking errors (undefined identifiers and the like) rather than GPC1100 itself. GPC1100 only appears when the file ends while still inside a comment. If you need to comment out code that already contains a block comment, use // line comments for that region instead.


GPC1102 — Unterminated String (End of File)

Unterminated string detected. The leading '"' character will be ignored: {text}

Or:

Unterminated string: {text}

Severity: Error

Error-severity variant of GPC1006: the file ended inside a string literal. Add the missing closing ".


GPC1103 — Unterminated String (Newline)

Unterminated string detected. The leading '"' character will be ignored: {text}

Or:

Unterminated string: {text}

Severity: Error

Error-severity variant of GPC1007: a line break occurred inside a string literal. GPC strings must open and close on the same line.


GPC1104 — Invalid Hex Escape Sequence

Severity: Error

A \x escape inside a string literal is not followed by exactly two hexadecimal digits. Write \x0A, not \xA.


GPC1105 — Unrecognized Escape Sequence

Severity: Error

A backslash inside a string literal is followed by a character that is not a recognized escape. The backslash is kept literally and scanning continues. If you want a literal backslash, write \\.


GPC1106 — Trailing Backslash in String

Severity: Error

A string literal ends with a lone \ — the backslash starts an escape sequence but nothing follows it before the string terminates.


GPC1107 — Hex Number Out of Range (16-bit)

Severity: Error

A hexadecimal literal (0x...) in a 16-bit script is larger than 0xFFFF. In 16-bit mode every number is stored in 16 bits, and a hex literal may use the full unsigned range 0x00000xFFFF — values above 0x7FFF are accepted and wrap to negative when read as a signed number, which is exactly what you want for bit masks. A value that needs more than four hex digits simply cannot be stored. Use a value within 0xFFFF, or switch the script to 32-bit mode if you genuinely need larger constants.


GPC1108 — Binary Number Out of Range (16-bit)

Severity: Error

A binary literal (0b...) in a 16-bit script does not fit in 16 bits. In 16-bit mode every number is stored in 16 bits, and a binary literal may use the full unsigned range — at most 16 significant bits (0b1111111111111111 = 65535); values with the top bit set are accepted and wrap to negative when read as a signed number. A literal whose value needs more than 16 bits cannot be stored. Shorten the literal to at most 16 significant bits, or switch the script to 32-bit mode if you genuinely need larger constants.


GPC1109 — Decimal Number Out of Range (16-bit)

Severity: Error

A decimal integer literal in a 16-bit script is larger than 32767. In 16-bit mode numbers are signed 16-bit values, and a decimal literal itself must be in 032767 — negative constants are formed by applying unary minus to a positive literal, so the literal part must fit that range on its own. If you meant a bit pattern rather than a quantity (e.g. 65535 as "all bits set"), write it in hexadecimal instead — hex literals accept the full unsigned range 0x00000xFFFF. If you genuinely need a larger quantity, switch the script to 32-bit mode.


GPC1110 — Float Number Out of Range (16-bit)

Severity: Error

A numeric literal in a 16-bit script could not be parsed as a number at all. In practice this fires for scientific notation with a missing exponent — 1.0e+, 2.5e, or 3.0E — where the e/E announces an exponent but no digits follow it. Complete the exponent (1.0e+3) or write the value out as a plain literal. Remember that GPC has no floating-point type: a valid decimal-point literal is rounded to the nearest integer anyway.


GPC1111 — Hex Number Out of Range (32-bit)

Severity: Error

A hexadecimal literal (0x...) in a 32-bit script is larger than 0xFFFFFFFF. Numbers are stored in 32 bits, and a hex literal may use the full unsigned range 0x000000000xFFFFFFFF — values above 0x7FFFFFFF are accepted and wrap to negative when read as a signed number, which is exactly what you want for bit masks. GPC has no larger integer type, so a value that needs more than eight hex digits cannot be represented at all — the constant must be reworked (e.g. split into parts).


GPC1112 — Binary Number Out of Range (32-bit)

Severity: Error

A binary literal (0b...) in a 32-bit script does not fit in 32 bits. Numbers are stored in 32 bits, and a binary literal may use the full unsigned range — at most 32 significant bits; values with the top bit set are accepted and wrap to negative when read as a signed number. GPC has no larger integer type, so a literal whose value needs more than 32 bits cannot be represented at all — shorten it or rework the constant.


GPC1113 — Decimal Number Out of Range (32-bit)

Severity: Error

A decimal integer literal in a 32-bit script is larger than 2147483647. Numbers are signed 32-bit values, and a decimal literal itself must be in 02147483647 — negative constants are formed by applying unary minus to a positive literal, so the literal part must fit that range on its own. If you meant a bit pattern rather than a quantity (e.g. 4294967295 as "all bits set"), write it in hexadecimal instead — hex literals accept the full unsigned range up to 0xFFFFFFFF. GPC has no larger integer type, so a genuinely larger quantity cannot be represented.


GPC1114 — Float Number Out of Range (32-bit)

Severity: Error

A numeric literal in a 32-bit script could not be parsed as a number at all. In practice this fires for scientific notation with a missing exponent — 1.0e+, 2.5e, or 3.0E — where the e/E announces an exponent but no digits follow it. Complete the exponent (1.0e+3) or write the value out as a plain literal. Remember that GPC has no floating-point type: a valid decimal-point literal is rounded to the nearest integer anyway.


GPC1115 — String Character Out of Range

Severity: Error

A character inside a string literal is outside the range the target can store.

Last updated