1{"version":3,"sources":["../../node_modules/codemirror/mode/pascal/pascal.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","words","str","obj","split","i","length","keywords","atoms","null","isOperatorChar","tokenBase","stream","state","ch","next","startOfLine","skipToEnd","tokenize","tokenString","eat","tokenComment","tokenCommentBraces","test","eatWhile","cur","current","propertyIsEnumerable","quote","escaped","end","maybeEnd","startState","token","eatSpace","style","electricChars","defineMIME"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,6BACT,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,wBAAyBJ,OAEjCA,GAAIM,cACL,SAASA,GACZ,YAEAA,GAAWC,WAAW,SAAU,WAC9B,QAASC,GAAMC,GACb,GAAIC,MAAUF,EAAQC,EAAIE,MAAM,IAChC,KAAK,GAAIC,GAAI,EAAGA,EAAIJ,EAAMK,SAAUD,EAAGF,EAAIF,EAAMI,IAAM,IACvD,OAAOF,GAET,GAAII,GAAWN,EACb,yEACA,yEACA,6EACA,0EACA,4EACA,uEACA,uEACA,4EACA,6EACA,qEACA,0EACA,oEACA,yEACA,sEACF,IAAIO,IAASC,OAAQ,KAErB,IAAIC,GAAiB,kBAErB,SAASC,GAAUC,EAAQC,GACzB,GAAIC,GAAKF,EAAOG,MAChB,IAAID,GAAM,KAAOD,EAAMG,YAAa,CAClCJ,EAAOK,WACP,OAAO,OAET,GAAIH,GAAM,KAAOA,GAAM,IAAK,CAC1BD,EAAMK,SAAWC,EAAYL,EAC7B,OAAOD,GAAMK,SAASN,EAAQC,GAEhC,GAAIC,GAAM,KAAOF,EAAOQ,IAAI,KAAM,CAChCP,EAAMK,SAAWG,CACjB,OAAOA,GAAaT,EAAQC,GAE9B,GAAIC,GAAM,IAAK,CACbD,EAAMK,SAAWI,CACjB,OAAOA,GAAmBV,EAAQC,GAEpC,GAAI,mBAAmBU,KAAKT,GAAK,CAC/B,MAAO,MAET,GAAI,KAAKS,KAAKT,GAAK,CACjBF,EAAOY,SAAS,SAChB,OAAO,SAET,GAAIV,GAAM,IAAK,CACb,GAAIF,EAAOQ,IAAI,KAAM,CACnBR,EAAOK,WACP,OAAO,WAGX,GAAIP,EAAea,KAAKT,GAAK,CAC3BF,EAAOY,SAASd,EAChB,OAAO,WAETE,EAAOY,SAAS,UAChB,IAAIC,GAAMb,EAAOc,SACjB,IAAInB,EAASoB,qBAAqBF,GAAM,MAAO,SAC/C,IAAIjB,EAAMmB,qBAAqBF,GAAM,MAAO,MAC5C,OAAO,WAGT,QAASN,GAAYS,GACnB,MAAO,UAAShB,EAAQC,GACtB,GAAIgB,GAAU,MAAOd,EAAMe,EAAM,KACjC,QAAQf,EAAOH,EAAOG,SAAW,KAAM,CACrC,GAAIA,GAAQa,IAAUC,EAAS,CAACC,EAAM,IAAM,OAC5CD,GAAWA,GAAWd,GAAQ,KAEhC,GAAIe,IAAQD,EAAShB,EAAMK,SAAW,IACtC,OAAO,UAIX,QAASG,GAAaT,EAAQC,GAC5B,GAAIkB,GAAW,MAAOjB,CACtB,OAAOA,EAAKF,EAAOG,OAAQ,CACzB,GAAID,GAAM,KAAOiB,EAAU,CACzBlB,EAAMK,SAAW,IACjB,OAEFa,EAAYjB,GAAM,IAEpB,MAAO,UAGT,QAASQ,GAAmBV,EAAQC,GAClC,GAAIC,EACJ,OAAOA,EAAKF,EAAOG,OAAQ,CACzB,GAAID,GAAM,IAAK,CACbD,EAAMK,SAAW,IACjB,QAGJ,MAAO,UAKT,OACEc,WAAY,WACV,OAAQd,SAAU,OAGpBe,MAAO,SAASrB,EAAQC,GACtB,GAAID,EAAOsB,WAAY,MAAO,KAC9B,IAAIC,IAAStB,EAAMK,UAAYP,GAAWC,EAAQC,EAClD,IAAIsB,GAAS,WAAaA,GAAS,OAAQ,MAAOA,EAClD,OAAOA,IAGTC,cAAe,OAInBrC,GAAWsC,WAAW,gBAAiB","file":"pascal.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pascal\", function() {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\n    \"absolute and array asm begin case const constructor destructor div do \" +\n    \"downto else end file for function goto if implementation in inherited \" +\n    \"inline interface label mod nil not object of operator or packed procedure \" +\n    \"program record reintroduce repeat self set shl shr string then to type \" +\n    \"unit until uses var while with xor as class dispinterface except exports \" +\n    \"finalization finally initialization inline is library on out packed \" +\n    \"property raise resourcestring threadvar try absolute abstract alias \" +\n    \"assembler bitpacked break cdecl continue cppdecl cvar default deprecated \" +\n    \"dynamic enumerator experimental export external far far16 forward generic \" +\n    \"helper implements index interrupt iocheck local message name near \" +\n    \"nodefault noreturn nostackframe oldfpccall otherwise overload override \" +\n    \"pascal platform private protected public published read register \" +\n    \"reintroduce result safecall saveregisters softfloat specialize static \" +\n    \"stdcall stored strict unaligned unimplemented varargs virtual write\");\n  var atoms = {\"null\": true};\n\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == \"#\" && state.startOfLine) {\n      stream.skipToEnd();\n      return \"meta\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"(\" && stream.eat(\"*\")) {\n      state.tokenize = tokenComment;\n      return tokenComment(stream, state);\n    }\n    if (ch == \"{\") {\n      state.tokenize = tokenCommentBraces;\n      return tokenCommentBraces(stream, state);\n    }\n    if (/[\\[\\]\\(\\),;\\:\\.]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenCommentBraces(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"}\") {\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"comment\";\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-pascal\", \"pascal\");\n\n});\n"]}