{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/fortran.js"],"names":["module","exports","hljs","COMMENT","variants","relevance","FUNCTION_DEF","className","beginKeywords","illegal","contains","UNDERSCORE_TITLE_MODE","begin","end","name","case_insensitive","aliases","keywords","literal","keyword","built_in","APOS_STRING_MODE","QUOTE_STRING_MODE"],"mappings":"gFA2DAA,EAAOC,QArDP,SAAiBC,GACf,IAKIC,EAAU,CACZC,SAAU,CAACF,EAAKC,QAAQ,IAAK,IAAK,CAChCE,UAAW,IAEbH,EAAKC,QAAQ,QAAS,IAAK,CACzBE,UAAW,IACTH,EAAKC,QAAQ,MAAO,IAAK,CAC3BE,UAAW,MASXC,EAAe,CACjBC,UAAW,WACXC,cAAe,8BACfC,QAAS,WACTC,SAAU,CAACR,EAAKS,sBAzBL,CACXJ,UAAW,SACXK,MAAO,MACPC,IAAK,SAkCP,MAAO,CACLC,KAAM,UACNC,kBAAkB,EAClBC,QAAS,CAAC,MAAO,OACjBC,SATa,CACbC,QAAS,iBACTC,QAAS,8yDACTC,SAAU,+gEAOVX,QAAS,OACTC,SAAU,CAhBC,CACXH,UAAW,SACXF,UAAW,EACXD,SAAU,CAACF,EAAKmB,iBAAkBnB,EAAKoB,oBAapBhB,EAEnB,CACEM,MAAO,cACPP,UAAW,GACVF,EAjCQ,CACXI,UAAW,SAEXK,MAAO,wEACPP,UAAW","file":"react-syntax-highlighter_languages_highlight_fortran-2bdc0ab4064cc6585057.js","sourcesContent":["/*\nLanguage: Fortran\nAuthor: Anthony Scemama <scemama@irsamc.ups-tlse.fr>\nWebsite: https://en.wikipedia.org/wiki/Fortran\nCategory: scientific\n*/\nfunction fortran(hljs) {\n  var PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)'\n  };\n  var COMMENT = {\n    variants: [hljs.COMMENT('!', '$', {\n      relevance: 0\n    }), // allow FORTRAN 77 style comments\n    hljs.COMMENT('^C[ ]', '$', {\n      relevance: 0\n    }), hljs.COMMENT('^C$', '$', {\n      relevance: 0\n    })]\n  };\n  var NUMBER = {\n    className: 'number',\n    // regex in both fortran and irpf90 should match\n    begin: '(?=\\\\b|\\\\+|\\\\-|\\\\.)(?:\\\\.|\\\\d+\\\\.?)\\\\d*([de][+-]?\\\\d+)?(_[a-z_\\\\d]+)?',\n    relevance: 0\n  };\n  var FUNCTION_DEF = {\n    className: 'function',\n    beginKeywords: 'subroutine function program',\n    illegal: '[${=\\\\n]',\n    contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]\n  };\n  var STRING = {\n    className: 'string',\n    relevance: 0,\n    variants: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n  };\n  var KEYWORDS = {\n    literal: '.False. .True.',\n    keyword: 'kind do concurrent local shared while private call intrinsic where elsewhere ' + 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock endassociate ' + 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' + 'goto save else use module select case ' + 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' + 'continue format pause cycle exit ' + 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' + 'synchronous nopass non_overridable pass protected volatile abstract extends import ' + 'non_intrinsic value deferred generic final enumerator class associate bind enum ' + 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' + 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' + 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' + 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' + 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' + 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' + 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' + 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure impure ' + 'integer real character complex logical codimension dimension allocatable|10 parameter ' + 'external implicit|10 none double precision assign intent optional pointer ' + 'target in out common equivalence data',\n    built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' + 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' + 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' + 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' + 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' + 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' + 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' + 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' + 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' + 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' + 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' + 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' + 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' + 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' + 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' + 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' + 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' + 'num_images parity popcnt poppar shifta shiftl shiftr this_image sync change team co_broadcast co_max co_min co_sum co_reduce'\n  };\n  return {\n    name: 'Fortran',\n    case_insensitive: true,\n    aliases: ['f90', 'f95'],\n    keywords: KEYWORDS,\n    illegal: /\\/\\*/,\n    contains: [STRING, FUNCTION_DEF, // allow `C = value` for assignments so they aren't misdetected\n    // as Fortran 77 style comments\n    {\n      begin: /^C\\s*=(?!=)/,\n      relevance: 0\n    }, COMMENT, NUMBER]\n  };\n}\n\nmodule.exports = fortran;"],"sourceRoot":""}