class Rouge::Lexers::Fortran
def self.intrinsics
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
def self.keywords
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
def self.types
def self.types @types ||= Set.new %w( character complex double precision doubleprecision integer logical real ) end