fortran function
Highlight.js language definition for fortran.
Implementation
Mode fortran(Highlight hljs) {
final Mode mode0 = Mode();
mode0.begin = r'\\[\s\S]';
mode0.relevance = 0;
return Mode(
name: r'Fortran',
caseInsensitive: true,
aliases: [r'f90', r'f95'],
keywords: {
r'$pattern': r'\b[a-z][a-z0-9_]+\b|\.[a-z][a-z0-9_]+\.',
r'keyword': [
r'kind',
r'do',
r'concurrent',
r'local',
r'shared',
r'while',
r'private',
r'call',
r'intrinsic',
r'where',
r'elsewhere',
r'type',
r'endtype',
r'endmodule',
r'endselect',
r'endinterface',
r'end',
r'enddo',
r'endif',
r'if',
r'forall',
r'endforall',
r'only',
r'contains',
r'default',
r'return',
r'stop',
r'then',
r'block',
r'endblock',
r'endassociate',
r'public',
r'subroutine|10',
r'function',
r'program',
r'.and.',
r'.or.',
r'.not.',
r'.le.',
r'.eq.',
r'.ge.',
r'.gt.',
r'.lt.',
r'goto',
r'save',
r'else',
r'use',
r'module',
r'select',
r'case',
r'access',
r'blank',
r'direct',
r'exist',
r'file',
r'fmt',
r'form',
r'formatted',
r'iostat',
r'name',
r'named',
r'nextrec',
r'number',
r'opened',
r'rec',
r'recl',
r'sequential',
r'status',
r'unformatted',
r'unit',
r'continue',
r'format',
r'pause',
r'cycle',
r'exit',
r'c_null_char',
r'c_alert',
r'c_backspace',
r'c_form_feed',
r'flush',
r'wait',
r'decimal',
r'round',
r'iomsg',
r'synchronous',
r'nopass',
r'non_overridable',
r'pass',
r'protected',
r'volatile',
r'abstract',
r'extends',
r'import',
r'non_intrinsic',
r'value',
r'deferred',
r'generic',
r'final',
r'enumerator',
r'class',
r'associate',
r'bind',
r'enum',
r'c_int',
r'c_short',
r'c_long',
r'c_long_long',
r'c_signed_char',
r'c_size_t',
r'c_int8_t',
r'c_int16_t',
r'c_int32_t',
r'c_int64_t',
r'c_int_least8_t',
r'c_int_least16_t',
r'c_int_least32_t',
r'c_int_least64_t',
r'c_int_fast8_t',
r'c_int_fast16_t',
r'c_int_fast32_t',
r'c_int_fast64_t',
r'c_intmax_t',
r'C_intptr_t',
r'c_float',
r'c_double',
r'c_long_double',
r'c_float_complex',
r'c_double_complex',
r'c_long_double_complex',
r'c_bool',
r'c_char',
r'c_null_ptr',
r'c_null_funptr',
r'c_new_line',
r'c_carriage_return',
r'c_horizontal_tab',
r'c_vertical_tab',
r'iso_c_binding',
r'c_loc',
r'c_funloc',
r'c_associated',
r'c_f_pointer',
r'c_ptr',
r'c_funptr',
r'iso_fortran_env',
r'character_storage_size',
r'error_unit',
r'file_storage_size',
r'input_unit',
r'iostat_end',
r'iostat_eor',
r'numeric_storage_size',
r'output_unit',
r'c_f_procpointer',
r'ieee_arithmetic',
r'ieee_support_underflow_control',
r'ieee_get_underflow_mode',
r'ieee_set_underflow_mode',
r'newunit',
r'contiguous',
r'recursive',
r'pad',
r'position',
r'action',
r'delim',
r'readwrite',
r'eor',
r'advance',
r'nml',
r'interface',
r'procedure',
r'namelist',
r'include',
r'sequence',
r'elemental',
r'pure',
r'impure',
r'integer',
r'real',
r'character',
r'complex',
r'logical',
r'codimension',
r'dimension',
r'allocatable|10',
r'parameter',
r'external',
r'implicit|10',
r'none',
r'double',
r'precision',
r'assign',
r'intent',
r'optional',
r'pointer',
r'target',
r'in',
r'out',
r'common',
r'equivalence',
r'data',
],
r'literal': [r'.False.', r'.True.'],
r'built_in': [
r'alog',
r'alog10',
r'amax0',
r'amax1',
r'amin0',
r'amin1',
r'amod',
r'cabs',
r'ccos',
r'cexp',
r'clog',
r'csin',
r'csqrt',
r'dabs',
r'dacos',
r'dasin',
r'datan',
r'datan2',
r'dcos',
r'dcosh',
r'ddim',
r'dexp',
r'dint',
r'dlog',
r'dlog10',
r'dmax1',
r'dmin1',
r'dmod',
r'dnint',
r'dsign',
r'dsin',
r'dsinh',
r'dsqrt',
r'dtan',
r'dtanh',
r'float',
r'iabs',
r'idim',
r'idint',
r'idnint',
r'ifix',
r'isign',
r'max0',
r'max1',
r'min0',
r'min1',
r'sngl',
r'algama',
r'cdabs',
r'cdcos',
r'cdexp',
r'cdlog',
r'cdsin',
r'cdsqrt',
r'cqabs',
r'cqcos',
r'cqexp',
r'cqlog',
r'cqsin',
r'cqsqrt',
r'dcmplx',
r'dconjg',
r'derf',
r'derfc',
r'dfloat',
r'dgamma',
r'dimag',
r'dlgama',
r'iqint',
r'qabs',
r'qacos',
r'qasin',
r'qatan',
r'qatan2',
r'qcmplx',
r'qconjg',
r'qcos',
r'qcosh',
r'qdim',
r'qerf',
r'qerfc',
r'qexp',
r'qgamma',
r'qimag',
r'qlgama',
r'qlog',
r'qlog10',
r'qmax1',
r'qmin1',
r'qmod',
r'qnint',
r'qsign',
r'qsin',
r'qsinh',
r'qsqrt',
r'qtan',
r'qtanh',
r'abs',
r'acos',
r'aimag',
r'aint',
r'anint',
r'asin',
r'atan',
r'atan2',
r'char',
r'cmplx',
r'conjg',
r'cos',
r'cosh',
r'exp',
r'ichar',
r'index',
r'int',
r'log',
r'log10',
r'max',
r'min',
r'nint',
r'sign',
r'sin',
r'sinh',
r'sqrt',
r'tan',
r'tanh',
r'print',
r'write',
r'dim',
r'lge',
r'lgt',
r'lle',
r'llt',
r'mod',
r'nullify',
r'allocate',
r'deallocate',
r'adjustl',
r'adjustr',
r'all',
r'allocated',
r'any',
r'associated',
r'bit_size',
r'btest',
r'ceiling',
r'count',
r'cshift',
r'date_and_time',
r'digits',
r'dot_product',
r'eoshift',
r'epsilon',
r'exponent',
r'floor',
r'fraction',
r'huge',
r'iand',
r'ibclr',
r'ibits',
r'ibset',
r'ieor',
r'ior',
r'ishft',
r'ishftc',
r'lbound',
r'len_trim',
r'matmul',
r'maxexponent',
r'maxloc',
r'maxval',
r'merge',
r'minexponent',
r'minloc',
r'minval',
r'modulo',
r'mvbits',
r'nearest',
r'pack',
r'present',
r'product',
r'radix',
r'random_number',
r'random_seed',
r'range',
r'repeat',
r'reshape',
r'rrspacing',
r'scale',
r'scan',
r'selected_int_kind',
r'selected_real_kind',
r'set_exponent',
r'shape',
r'size',
r'spacing',
r'spread',
r'sum',
r'system_clock',
r'tiny',
r'transpose',
r'trim',
r'ubound',
r'unpack',
r'verify',
r'achar',
r'iachar',
r'transfer',
r'dble',
r'entry',
r'dprod',
r'cpu_time',
r'command_argument_count',
r'get_command',
r'get_command_argument',
r'get_environment_variable',
r'is_iostat_end',
r'ieee_arithmetic',
r'ieee_support_underflow_control',
r'ieee_get_underflow_mode',
r'ieee_set_underflow_mode',
r'is_iostat_eor',
r'move_alloc',
r'new_line',
r'selected_char_kind',
r'same_type_as',
r'extends_type_of',
r'acosh',
r'asinh',
r'atanh',
r'bessel_j0',
r'bessel_j1',
r'bessel_jn',
r'bessel_y0',
r'bessel_y1',
r'bessel_yn',
r'erf',
r'erfc',
r'erfc_scaled',
r'gamma',
r'log_gamma',
r'hypot',
r'norm2',
r'atomic_define',
r'atomic_ref',
r'execute_command_line',
r'leadz',
r'trailz',
r'storage_size',
r'merge_bits',
r'bge',
r'bgt',
r'ble',
r'blt',
r'dshiftl',
r'dshiftr',
r'findloc',
r'iall',
r'iany',
r'iparity',
r'image_index',
r'lcobound',
r'ucobound',
r'maskl',
r'maskr',
r'num_images',
r'parity',
r'popcnt',
r'poppar',
r'shifta',
r'shiftl',
r'shiftr',
r'this_image',
r'sync',
r'change',
r'team',
r'co_broadcast',
r'co_max',
r'co_min',
r'co_sum',
r'co_reduce',
],
},
illegal: r'\/\*',
contains: [
Mode(
scope: r'string',
relevance: 0,
variants: [
Mode(
scope: r'string',
begin: r"'",
end: r"'",
illegal: r'\n',
contains: [mode0],
),
Mode(
scope: r'string',
begin: r'"',
end: r'"',
illegal: r'\n',
contains: [mode0],
),
],
),
Mode(
scope: r'function',
beginKeywords: r'subroutine function program',
illegal: r'[${=\n]',
contains: [
Mode(scope: r'title', begin: r'[a-zA-Z_]\w*', relevance: 0),
Mode(scope: r'params', begin: r'\(', end: r'\)'),
],
),
Mode(begin: r'^C\s*=(?!=)', relevance: 0),
Mode(
variants: [
Mode(
scope: r'comment',
begin: r'!',
end: r'$',
contains: [
Mode(
scope: r'doctag',
begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
relevance: 0,
),
Mode(
scope: r'comment',
begin: r'^C[ ]',
end: r'$',
contains: [
Mode(
scope: r'doctag',
begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
relevance: 0,
),
Mode(
scope: r'comment',
begin: r'^C$',
end: r'$',
contains: [
Mode(
scope: r'doctag',
begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
relevance: 0,
),
],
),
Mode(
scope: r'number',
variants: [
Mode(begin: r'\b\d+\.(\d*)([de][+-]?\d+)?(_[a-z_\d]+)?'),
Mode(begin: r'\b\d+([de][+-]?\d+)?(_[a-z_\d]+)?'),
Mode(begin: r'\.\d+([de][+-]?\d+)?(_[a-z_\d]+)?'),
],
relevance: 0,
),
],
);
}