Class: Rouge::Lexers::Ada

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

Constant Summary collapse

ID =

Ada identifiers are Unicode with underscores only allowed as separators.

/\b[[:alpha:]](?:\p{Pc}?[[:alnum:]])*\b/
NUM =

Numerals can also contain underscores.

/\d(_?\d)*/
XNUM =
/\h(_?\h)*/
EXP =
/(E[-+]?#{NUM})?/i

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Constants included from Token::Tokens

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

Instance Attribute Summary

Attributes inherited from Rouge::Lexer

#options

Class Method Summary collapse

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

token

Constructor Details

This class inherits a constructor from Rouge::Lexer

Class Method Details

.identsObject

Return a hash mapping lower-case identifiers to token classes.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rouge/lexers/ada.rb', line 23

def self.idents
  @idents ||= Hash.new(Name).tap do |h|
    %w(
      abort abstract accept access aliased all array at begin body
      case constant declare delay delta digits do else elsif end
      exception exit for generic goto if in interface is limited
      loop new null of others out overriding pragma private
      protected raise range record renames requeue return reverse
      select separate some synchronized tagged task terminate then
      until use when while with
    ).each {|w| h[w] = Keyword}

    %w(abs and mod not or rem xor).each {|w| h[w] = Operator::Word}

    %w(
      entry function package procedure subtype type
    ).each {|w| h[w] = Keyword::Declaration}

    %w(
      boolean character constraint_error duration float integer
      natural positive long_float long_integer long_long_float
      long_long_integer program_error short_float short_integer
      short_short_integer storage_error string tasking_error
      wide_character wide_string wide_wide_character
      wide_wide_string
    ).each {|w| h[w] = Name::Builtin}
  end
end