Class: Rouge::Lexers::Go
- Inherits:
-
RegexLexer
- Object
- Rouge::Lexer
- RegexLexer
- Rouge::Lexers::Go
- Defined in:
- lib/rouge/lexers/go.rb
Constant Summary collapse
- WHITE_SPACE =
Characters
/\s+/- NEWLINE =
/\n/- UNICODE_CHAR =
/[^\n]/- UNICODE_LETTER =
/[[:alpha:]]/- UNICODE_DIGIT =
/[[:digit:]]/- LETTER =
Letters and digits
/#{UNICODE_LETTER}|_/- DECIMAL_DIGIT =
/[0-9]/- OCTAL_DIGIT =
/[0-7]/- HEX_DIGIT =
/[0-9A-Fa-f]/- LINE_COMMENT =
Comments
/\/\/(?:(?!#{NEWLINE}).)*/- GENERAL_COMMENT =
/\/\*(?:(?!\*\/).)*\*\//m- COMMENT =
/#{LINE_COMMENT}|#{GENERAL_COMMENT}/- KEYWORD =
Keywords
/\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- IDENTIFIER =
Identifiers
/ (?!#{KEYWORD}) #{LETTER}(?:#{LETTER}|#{UNICODE_DIGIT})* /x- OPERATOR =
Operators and delimiters
/ \+= | \+\+ | \+ | &\^= | &\^ | &= | && | & | == | = | \!= | \! | -= | -- | - | \|= | \|\| | \| | <= | <- | <<= | << | < | \*= | \* | \^= | \^ | >>= | >> | >= | > | \/ | \/= | := | % | %= | \.\.\. | \. | : /x- SEPARATOR =
/ \( | \) | \[ | \] | \{ | \} | , | ; /x- DECIMAL_LIT =
Integer literals
/[0-9]#{DECIMAL_DIGIT}*/- OCTAL_LIT =
/0#{OCTAL_DIGIT}*/- HEX_LIT =
/0[xX]#{HEX_DIGIT}+/- INT_LIT =
/#{HEX_LIT}|#{DECIMAL_LIT}|#{OCTAL_LIT}/- DECIMALS =
Floating-point literals
/#{DECIMAL_DIGIT}+/- EXPONENT =
/[eE][+\-]?#{DECIMALS}/- FLOAT_LIT =
/ #{DECIMALS} \. #{DECIMALS}? #{EXPONENT}? | #{DECIMALS} #{EXPONENT} | \. #{DECIMALS} #{EXPONENT}? /x- IMAGINARY_LIT =
Imaginary literals
/(?:#{DECIMALS}|#{FLOAT_LIT})i/- ESCAPED_CHAR =
Rune literals
/\\[abfnrtv\\'"]/- 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 =
String literals
/`(?:#{UNICODE_CHAR}|#{NEWLINE})*`/- INTERPRETED_STRING_LIT =
/ "(?: (?!") (?: #{UNICODE_VALUE} | #{BYTE_VALUE} ) )*" /x- STRING_LIT =
/#{RAW_STRING_LIT}|#{INTERPRETED_STRING_LIT}/- PREDECLARED_TYPES =
Predeclared identifiers
/\b(?: bool | byte | complex64 | complex128 | error | float32 | float64 | int8 | int16 | int32 | int64 | int | rune | string | uint8 | uint16 | uint32 | uint64 | uintptr | uint )\b/x- 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
Constants inherited from RegexLexer
Constants included from Token::Tokens
Token::Tokens::Num, Token::Tokens::Str
Instance Attribute Summary
Attributes inherited from Rouge::Lexer
Method Summary
Methods inherited from RegexLexer
append, #delegate, #goto, #group, #groups, #in_state?, #pop!, prepend, #push, #recurse, replace_state, #reset!, #reset_stack, #stack, start, start_procs, state, #state, #state?, state_definitions, states, #step, #stream_tokens, #token
Methods inherited from Rouge::Lexer
aliases, all, #as_bool, #as_lexer, #as_list, #as_string, #as_token, #bool_option, continue_lex, #continue_lex, debug_enabled?, demo, demo_file, desc, detect?, detectable?, disable_debug!, enable_debug!, filenames, find, find_fancy, guess, guess_by_filename, guess_by_mimetype, guess_by_source, guesses, #hash_option, #initialize, lex, #lex, #lexer_option, #list_option, lookup_fancy, mimetypes, option, option_docs, #reset!, #stream_tokens, #string_option, tag, #tag, title, #token_option, #with
Methods included from Token::Tokens
Constructor Details
This class inherits a constructor from Rouge::Lexer