LINE_COMMENT |
= |
/\/\/(?:(?!#{NEWLINE}).)*/ |
|
Comments
|
GENERAL_COMMENT |
= |
/\/\*(?:(?!\*\/).)*\*\//m |
COMMENT |
= |
/#{LINE_COMMENT}|#{GENERAL_COMMENT}/ |
KEYWORD |
= |
/\b(?: break | default | func | interface | select | case | defer | go | map | struct | chan | else | goto | package | switch | const | fallthrough | if | range | type | continue | for | import | return | var )\b/x |
|
Keywords
|
IDENTIFIER |
= |
/ (?!#{KEYWORD}) #{LETTER}(?:#{LETTER}|#{UNICODE_DIGIT})* /x |
|
Identifiers
|
OPERATOR |
= |
/ \+= | \+\+ | \+ | &\^= | &\^ | &= | && | & | == | = | \!= | \! | -= | -- | - | \|= | \|\| | \| | <= | <- | <<= | << | < | \*= | \* | \^= | \^ | >>= | >> | >= | > | \/ | \/= | := | % | %= | \.\.\. | \. | : /x |
|
Operators and delimiters
|
SEPARATOR |
= |
/ \( | \) | \[ | \] | \{ | \} | , | ; /x |
INT_LIT |
= |
/#{HEX_LIT}|#{DECIMAL_LIT}|#{OCTAL_LIT}/ |
FLOAT_LIT |
= |
/ #{DECIMALS} \. #{DECIMALS}? #{EXPONENT}? | #{DECIMALS} #{EXPONENT} | \. #{DECIMALS} #{EXPONENT}? /x |
IMAGINARY_LIT |
= |
/(?:#{DECIMALS}|#{FLOAT_LIT})i/ |
|
Imaginary literals
|
UNICODE_VALUE |
= |
/ #{UNICODE_CHAR} | #{LITTLE_U_VALUE} | #{BIG_U_VALUE} | #{ESCAPED_CHAR} /x |
BYTE_VALUE |
= |
/#{OCTAL_BYTE_VALUE}|#{HEX_BYTE_VALUE}/ |
CHAR_LIT |
= |
/'(?:#{UNICODE_VALUE}|#{BYTE_VALUE})'/ |
ESCAPE_SEQUENCE |
= |
/ #{ESCAPED_CHAR} | #{LITTLE_U_VALUE} | #{BIG_U_VALUE} | #{HEX_BYTE_VALUE} /x |
RAW_STRING_LIT |
= |
/`(?:#{UNICODE_CHAR}|#{NEWLINE})*`/ |
|
String literals
|
INTERPRETED_STRING_LIT |
= |
/ "(?: (?!") (?: #{UNICODE_VALUE} | #{BYTE_VALUE} ) )*" /x |
STRING_LIT |
= |
/#{RAW_STRING_LIT}|#{INTERPRETED_STRING_LIT}/ |
PREDECLARED_TYPES |
= |
/\b(?: bool | byte | complex64 | complex128 | error | float32 | float64 | int8 | int16 | int32 | int64 | int | rune | string | uint8 | uint16 | uint32 | uint64 | uintptr | uint )\b/x |
|
Predeclared identifiers
|
PREDECLARED_CONSTANTS |
= |
/\b(?:true|false|iota|nil)\b/ |
PREDECLARED_FUNCTIONS |
= |
/\b(?: append | cap | close | complex | copy | delete | imag | len | make | new | panic | print | println | real | recover )\b/x |