Blame | Letzte Änderung | Log anzeigen | RSS feed
// CodeMirror, copyright (c) by Marijn Haverbeke and others// Distributed under an MIT license: http://codemirror.net/LICENSE// Brainfuck mode created by Michael Kaminsky https://github.com/mkaminsky11(function(mod) {if (typeof exports == "object" && typeof module == "object")mod(require("../../lib/codemirror"))else if (typeof define == "function" && define.amd)define(["../../lib/codemirror"], mod)elsemod(CodeMirror)})(function(CodeMirror) {"use strict"var reserve = "><+-.,[]".split("");/*comments can be either:placed behind lines+++ this is a commentwhere reserved characters cannot be usedor in a loop[this is ok to use [ ] and stuff]or preceded by #*/CodeMirror.defineMode("brainfuck", function() {return {startState: function() {return {commentLine: false,left: 0,right: 0,commentLoop: false}},token: function(stream, state) {if (stream.eatSpace()) return nullif(stream.sol()){state.commentLine = false;}var ch = stream.next().toString();if(reserve.indexOf(ch) !== -1){if(state.commentLine === true){if(stream.eol()){state.commentLine = false;}return "comment";}if(ch === "]" || ch === "["){if(ch === "["){state.left++;}else{state.right++;}return "bracket";}else if(ch === "+" || ch === "-"){return "keyword";}else if(ch === "<" || ch === ">"){return "atom";}else if(ch === "." || ch === ","){return "def";}}else{state.commentLine = true;if(stream.eol()){state.commentLine = false;}return "comment";}if(stream.eol()){state.commentLine = false;}}};});CodeMirror.defineMIME("text/x-brainfuck","brainfuck")});