{"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"]}