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

Methods included from Token::Tokens

token

Constructor Details

This class inherits a constructor from Rouge::Lexer

Class Method Details

.analyze_text(text) ⇒ Object



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

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

.builtinsObject



76
77
78
79
80
81
82
83
84
# File 'lib/rouge/lexers/javascript.rb', line 76

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



72
73
74
# File 'lib/rouge/lexers/javascript.rb', line 72

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

.declarationsObject



59
60
61
# File 'lib/rouge/lexers/javascript.rb', line 59

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

.keywordsObject



51
52
53
54
55
56
57
# File 'lib/rouge/lexers/javascript.rb', line 51

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
  )
end

.reservedObject



63
64
65
66
67
68
69
70
# File 'lib/rouge/lexers/javascript.rb', line 63

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