Class Rouge::Lexers::Go
In: lib/rouge/lexers/go.rb
Parent: RegexLexer

Methods

Constants

WHITE_SPACE = /[\s\t\r\n]+/   Characters
NEWLINE = /\n/
UNICODE_CHAR = /[^\n]/
UNICODE_LETTER = /[[:alpha:]]/
UNICODE_DIGIT = /[[:digit:]]/
LETTER = /#{UNICODE_LETTER}|_/   Letters and digits
DECIMAL_DIGIT = /[0-9]/
OCTAL_DIGIT = /[0-7]/
HEX_DIGIT = /[0-9A-Fa-f]/
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
DECIMAL_LIT = /[0-9]#{DECIMAL_DIGIT}*/   Integer literals
OCTAL_LIT = /0#{OCTAL_DIGIT}*/
HEX_LIT = /0[xX]#{HEX_DIGIT}+/
INT_LIT = /#{HEX_LIT}|#{DECIMAL_LIT}|#{OCTAL_LIT}/
DECIMALS = /#{DECIMAL_DIGIT}+/   Floating-point literals
EXPONENT = /[eE][+\-]?#{DECIMALS}/
FLOAT_LIT = / #{DECIMALS} \. #{DECIMALS}? #{EXPONENT}? | #{DECIMALS} #{EXPONENT} | \. #{DECIMALS} #{EXPONENT}? /x
IMAGINARY_LIT = /(?:#{DECIMALS}|#{FLOAT_LIT})i/   Imaginary literals
ESCAPED_CHAR = /\\[abfnrtv\\'"]/   Rune literals
LITTLE_U_VALUE = /\\u#{HEX_DIGIT}{4}/
BIG_U_VALUE = /\\U#{HEX_DIGIT}{8}/
UNICODE_VALUE = / #{UNICODE_CHAR} | #{LITTLE_U_VALUE} | #{BIG_U_VALUE} | #{ESCAPED_CHAR} /x
OCTAL_BYTE_VALUE = /\\#{OCTAL_DIGIT}{3}/
HEX_BYTE_VALUE = /\\x#{HEX_DIGIT}{2}/
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

Public Class methods

[Validate]