1{"version":3,"sources":["../../node_modules/codemirror/mode/brainfuck/brainfuck.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","reserve","split","defineMode","startState","commentLine","left","right","commentLoop","token","stream","state","eatSpace","sol","ch","next","toString","indexOf","eol","defineMIME"],"mappings":"CAKA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,6BACT,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,wBAAyBJ,OAEjCA,GAAIM,cACL,SAASA,GACV,YACA,IAAIC,GAAU,WAAWC,MAAM,GAc/BF,GAAWG,WAAW,YAAa,WACjC,OACEC,WAAY,WACV,OACEC,YAAa,MACbC,KAAM,EACNC,MAAO,EACPC,YAAa,QAGjBC,MAAO,SAASC,EAAQC,GACtB,GAAID,EAAOE,WAAY,MAAO,KAC9B,IAAGF,EAAOG,MAAM,CACdF,EAAMN,YAAc,MAEtB,GAAIS,GAAKJ,EAAOK,OAAOC,UACvB,IAAGf,EAAQgB,QAAQH,MAAS,EAAE,CAC5B,GAAGH,EAAMN,cAAgB,KAAK,CAC5B,GAAGK,EAAOQ,MAAM,CACdP,EAAMN,YAAc,MAEtB,MAAO,UAET,GAAGS,IAAO,KAAOA,IAAO,IAAI,CAC1B,GAAGA,IAAO,IAAI,CACZH,EAAML,WAEJ,CACFK,EAAMJ,QAER,MAAO,cAEJ,IAAGO,IAAO,KAAOA,IAAO,IAAI,CAC/B,MAAO,cAEJ,IAAGA,IAAO,KAAOA,IAAO,IAAI,CAC/B,MAAO,WAEJ,IAAGA,IAAO,KAAOA,IAAO,IAAI,CAC/B,MAAO,WAGP,CACFH,EAAMN,YAAc,IACpB,IAAGK,EAAOQ,MAAM,CACdP,EAAMN,YAAc,MAEtB,MAAO,UAET,GAAGK,EAAOQ,MAAM,CACdP,EAAMN,YAAc,UAK9BL,GAAWmB,WAAW,mBAAmB","file":"brainfuck.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Brainfuck mode created by Michael Kaminsky https://github.com/mkaminsky11\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\")\n    mod(require(\"../../lib/codemirror\"))\n  else if (typeof define == \"function\" && define.amd)\n    define([\"../../lib/codemirror\"], mod)\n  else\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n  var reserve = \"><+-.,[]\".split(\"\");\n  /*\n  comments can be either:\n  placed behind lines\n\n        +++    this is a comment\n\n  where reserved characters cannot be used\n  or in a loop\n  [\n    this is ok to use [ ] and stuff\n  ]\n  or preceded by #\n  */\n  CodeMirror.defineMode(\"brainfuck\", function() {\n    return {\n      startState: function() {\n        return {\n          commentLine: false,\n          left: 0,\n          right: 0,\n          commentLoop: false\n        }\n      },\n      token: function(stream, state) {\n        if (stream.eatSpace()) return null\n        if(stream.sol()){\n          state.commentLine = false;\n        }\n        var ch = stream.next().toString();\n        if(reserve.indexOf(ch) !== -1){\n          if(state.commentLine === true){\n            if(stream.eol()){\n              state.commentLine = false;\n            }\n            return \"comment\";\n          }\n          if(ch === \"]\" || ch === \"[\"){\n            if(ch === \"[\"){\n              state.left++;\n            }\n            else{\n              state.right++;\n            }\n            return \"bracket\";\n          }\n          else if(ch === \"+\" || ch === \"-\"){\n            return \"keyword\";\n          }\n          else if(ch === \"<\" || ch === \">\"){\n            return \"atom\";\n          }\n          else if(ch === \".\" || ch === \",\"){\n            return \"def\";\n          }\n        }\n        else{\n          state.commentLine = true;\n          if(stream.eol()){\n            state.commentLine = false;\n          }\n          return \"comment\";\n        }\n        if(stream.eol()){\n          state.commentLine = false;\n        }\n      }\n    };\n  });\nCodeMirror.defineMIME(\"text/x-brainfuck\",\"brainfuck\")\n});\n"]}