class Rouge::Lexers::J

Public Class Methods

control_words() click to toggle source
# File lib/rouge/lexers/j.rb, line 76
def self.control_words
  @control_words ||= Set.new %w(
    assert break case catch catchd catcht continue do else elseif end
    fcase for if return select throw try while whilst
  )
end
control_words_id() click to toggle source
# File lib/rouge/lexers/j.rb, line 83
def self.control_words_id
  @control_words_id ||= Set.new %w(for goto label)
end
inflection_list() click to toggle source

code.jsoftware.com/wiki/NuVoc

# File lib/rouge/lexers/j.rb, line 29
def self.inflection_list
  @inflection_list ||= ['', '.', ':', '..', '.:', ':.', '::']
end
primitive(char, inflection) click to toggle source
# File lib/rouge/lexers/j.rb, line 71
def self.primitive(char, inflection)
  i = inflection_list.index(inflection) or return Error
  token_map[primitive_table[char][i]]
end
primitive_table() click to toggle source
# File lib/rouge/lexers/j.rb, line 33
def self.primitive_table
  @primitive_table ||= Hash.new([:name]).tap do |h|
    {
      '()' => [:other],
      '=' => [:verb, :other, :other],
      '<>+-*%$|,#' => [:verb, :verb, :verb],
      '^' => [:verb, :verb, :modifier],
      '~"' => [:modifier, :verb, :verb],
      '.:@' => [:modifier, :modifier, :modifier],
      ';' => [:verb, :modifier, :verb],
      '!' => [:verb, :modifier, :modifier],
      '/\\' => [:modifier, :modifier, :verb],
      '[' => [:verb, nil, :verb],
      ']' => [:verb],
      '{' => [:verb, :verb, :verb, nil, nil, nil, :verb],
      '}' => [:modifier, :verb, :verb, nil, nil, nil, :modifier],
      '`' => [:modifier, nil, :modifier],
      '&' => [:modifier, :modifier, :modifier, nil, :modifier],
      '?' => [:verb, :verb],
      'a' => [:name, :noun, :noun],
      'ACeEIjorv' => [:name, :verb],
      'bdfHMT' => [:name, :modifier],
      'Dt' => [:name, :modifier, :modifier],
      'F' => [:name, :modifier, :modifier, :modifier, :modifier,
              :modifier, :modifier],
      'iu' => [:name, :verb, :verb],
      'L' => [:name, :verb, :modifier],
      'mny' => [:param],
      'p' => [:name, :verb, :verb, :verb],
      'qsZ' => [:name, nil, :verb],
      'S' => [:name, nil, :modifier],
      'u' => [:param, :verb, :verb],
      'v' => [:param, :verb],
      'x' => [:param, nil, :verb],
    }.each {|k, v| k.each_char {|c| h[c] = v } }
  end
end
token_map() click to toggle source

code.jsoftware.com/wiki/Vocabulary/PartsOfSpeech

# File lib/rouge/lexers/j.rb, line 16
def self.token_map
  @token_map ||= {
    noun: Keyword::Constant,
    verb: Name::Function,
    modifier: Operator,
    name: Name,
    param: Name::Builtin::Pseudo,
    other: Punctuation,
    nil => Error,
  }
end