Class: Rouge::Lexers::Fortran

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

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, analyze_text, 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

.intrinsicsObject


44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/rouge/lexers/fortran.rb', line 44

def self.intrinsics
  @intrinsics ||= Set.new %w(
    abs achar acos adjustl adjustr aimag aint all allocated anint any
    asin associated atan atan2 bit_size btest ceiling char cmplx conjg
    cos cosh count cpu_time cshift date_and_time dble digits dim
    dot_product dprod eoshift epsilon exp exponent floor fraction huge
    iachar iand ibclr ibits ibset ichar ieor index int ior ishift ishiftc
    kind lbound len len_trim lge lgt lle llt log log10 logical matmul max
    maxexponent maxloc maxval merge min minexponent minloc minval mod
    modulo mvbits nearest nint not null pack precision present product
    radix random_number random_seed range real repeat reshape rrspacing
    scale scan selected_int_kind selected_real_kind set_exponent shape
    sign sin sinh size spacing spread sqrt sum system_clock tan tanh tiny
    transfer transpose trim ubound unpack verify
  )
end

.keywordsObject


21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rouge/lexers/fortran.rb', line 21

def self.keywords
  # Fortran allows to omit whitespace between certain keywords...
  @keywords ||= Set.new %w(
    allocatable allocate assignment backspace block blockdata call case
    close common contains continue cycle data deallocate default
    dimension do elemental else elseif elsewhere end endblockdata enddo
    endfile endforall endfunction endif endinterface endmodule endprogram
    endselect endsubroutine endtype endwhere entry equivalence exit
    external forall format function go goto if implicit in include inout
    inquire intent interface intrinsic module namelist none nullify only
    open operator optional out parameter pointer print private procedure
    program public pure read recursive result return rewind save select
    selectcase sequence stop subroutine target then to type use where
    while write
  )
end

.typesObject


38
39
40
41
42
# File 'lib/rouge/lexers/fortran.rb', line 38

def self.types
  @types ||= Set.new %w(
    character complex double precision doubleprecision integer logical real
  )
end