Class: Rouge::Lexers::Javascript

Inherits:
RegexLexer show all
Defined in:
lib/rouge/lexers/javascript.rb

Direct Known Subclasses

Qml

Constant Summary

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Constants included from Token::Tokens

Token::Tokens::Num, Token::Tokens::Str

Class Method Summary collapse

Methods inherited from RegexLexer

append, #delegate, get_state, #get_state, #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, assert_utf8!, #debug, default_options, demo, demo_file, desc, filenames, find, find_fancy, guess, guess_by_filename, guess_by_mimetype, guess_by_source, guesses, #initialize, lex, #lex, mimetypes, #option, #options, #reset!, #stream_tokens, #tag, tag, title

Methods included from Token::Tokens

token

Constructor Details

This class inherits a constructor from Rouge::Lexer

Class Method Details

.analyze_text(text) ⇒ Object


15
16
17
18
19
# File 'lib/rouge/lexers/javascript.rb', line 15

def self.analyze_text(text)
  return 1 if text.shebang?('node')
  return 1 if text.shebang?('jsc')
  # TODO: rhino, spidermonkey, etc
end

.builtinsObject


108
109
110
111
112
113
114
115
116
# File 'lib/rouge/lexers/javascript.rb', line 108

def self.builtins
  @builtins ||= %w(
    Array Boolean Date Error Function Math netscape
    Number Object Packages RegExp String sun decodeURI
    decodeURIComponent encodeURI encodeURIComponent
    Error eval isFinite isNaN parseFloat parseInt document this
    window
  )
end

.constantsObject


104
105
106
# File 'lib/rouge/lexers/javascript.rb', line 104

def self.constants
  @constants ||= Set.new %w(true false null NaN Infinity undefined)
end

.declarationsObject


91
92
93
# File 'lib/rouge/lexers/javascript.rb', line 91

def self.declarations
  @declarations ||= Set.new %w(var let with function)
end

.keywordsObject


83
84
85
86
87
88
89
# File 'lib/rouge/lexers/javascript.rb', line 83

def self.keywords
  @keywords ||= Set.new %w(
    for in while do break return continue switch case default
    if else throw try catch finally new delete typeof instanceof
    void this yield
  )
end

.reservedObject


95
96
97
98
99
100
101
102
# File 'lib/rouge/lexers/javascript.rb', line 95

def self.reserved
  @reserved ||= Set.new %w(
    abstract boolean byte char class const debugger double enum
    export extends final float goto implements import int interface
    long native package private protected public short static
    super synchronized throws transient volatile
  )
end