Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/codemirr.../mode/forth
File: forth.js
// CodeMirror, copyright (c) by Marijn Haverbeke and others
[0] Fix | Delete
// Distributed under an MIT license: http://codemirror.net/LICENSE
[1] Fix | Delete
[2] Fix | Delete
// Author: Aliaksei Chapyzhenka
[3] Fix | Delete
[4] Fix | Delete
(function(mod) {
[5] Fix | Delete
if (typeof exports == "object" && typeof module == "object") // CommonJS
[6] Fix | Delete
mod(require("../../lib/codemirror"));
[7] Fix | Delete
else if (typeof define == "function" && define.amd) // AMD
[8] Fix | Delete
define(["../../lib/codemirror"], mod);
[9] Fix | Delete
else // Plain browser env
[10] Fix | Delete
mod(CodeMirror);
[11] Fix | Delete
})(function(CodeMirror) {
[12] Fix | Delete
"use strict";
[13] Fix | Delete
[14] Fix | Delete
function toWordList(words) {
[15] Fix | Delete
var ret = [];
[16] Fix | Delete
words.split(' ').forEach(function(e){
[17] Fix | Delete
ret.push({name: e});
[18] Fix | Delete
});
[19] Fix | Delete
return ret;
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
var coreWordList = toWordList(
[23] Fix | Delete
'INVERT AND OR XOR\
[24] Fix | Delete
2* 2/ LSHIFT RSHIFT\
[25] Fix | Delete
0= = 0< < > U< MIN MAX\
[26] Fix | Delete
2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP\
[27] Fix | Delete
>R R> R@\
[28] Fix | Delete
+ - 1+ 1- ABS NEGATE\
[29] Fix | Delete
S>D * M* UM*\
[30] Fix | Delete
FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD\
[31] Fix | Delete
HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2!\
[32] Fix | Delete
ALIGN ALIGNED +! ALLOT\
[33] Fix | Delete
CHAR [CHAR] [ ] BL\
[34] Fix | Delete
FIND EXECUTE IMMEDIATE COUNT LITERAL STATE\
[35] Fix | Delete
; DOES> >BODY\
[36] Fix | Delete
EVALUATE\
[37] Fix | Delete
SOURCE >IN\
[38] Fix | Delete
<# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL\
[39] Fix | Delete
FILL MOVE\
[40] Fix | Delete
. CR EMIT SPACE SPACES TYPE U. .R U.R\
[41] Fix | Delete
ACCEPT\
[42] Fix | Delete
TRUE FALSE\
[43] Fix | Delete
<> U> 0<> 0>\
[44] Fix | Delete
NIP TUCK ROLL PICK\
[45] Fix | Delete
2>R 2R@ 2R>\
[46] Fix | Delete
WITHIN UNUSED MARKER\
[47] Fix | Delete
I J\
[48] Fix | Delete
TO\
[49] Fix | Delete
COMPILE, [COMPILE]\
[50] Fix | Delete
SAVE-INPUT RESTORE-INPUT\
[51] Fix | Delete
PAD ERASE\
[52] Fix | Delete
2LITERAL DNEGATE\
[53] Fix | Delete
D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS\
[54] Fix | Delete
M+ M*/ D. D.R 2ROT DU<\
[55] Fix | Delete
CATCH THROW\
[56] Fix | Delete
FREE RESIZE ALLOCATE\
[57] Fix | Delete
CS-PICK CS-ROLL\
[58] Fix | Delete
GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER\
[59] Fix | Delete
PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER\
[60] Fix | Delete
-TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL');
[61] Fix | Delete
[62] Fix | Delete
var immediateWordList = toWordList('IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE');
[63] Fix | Delete
[64] Fix | Delete
CodeMirror.defineMode('forth', function() {
[65] Fix | Delete
function searchWordList (wordList, word) {
[66] Fix | Delete
var i;
[67] Fix | Delete
for (i = wordList.length - 1; i >= 0; i--) {
[68] Fix | Delete
if (wordList[i].name === word.toUpperCase()) {
[69] Fix | Delete
return wordList[i];
[70] Fix | Delete
}
[71] Fix | Delete
}
[72] Fix | Delete
return undefined;
[73] Fix | Delete
}
[74] Fix | Delete
return {
[75] Fix | Delete
startState: function() {
[76] Fix | Delete
return {
[77] Fix | Delete
state: '',
[78] Fix | Delete
base: 10,
[79] Fix | Delete
coreWordList: coreWordList,
[80] Fix | Delete
immediateWordList: immediateWordList,
[81] Fix | Delete
wordList: []
[82] Fix | Delete
};
[83] Fix | Delete
},
[84] Fix | Delete
token: function (stream, stt) {
[85] Fix | Delete
var mat;
[86] Fix | Delete
if (stream.eatSpace()) {
[87] Fix | Delete
return null;
[88] Fix | Delete
}
[89] Fix | Delete
if (stt.state === '') { // interpretation
[90] Fix | Delete
if (stream.match(/^(\]|:NONAME)(\s|$)/i)) {
[91] Fix | Delete
stt.state = ' compilation';
[92] Fix | Delete
return 'builtin compilation';
[93] Fix | Delete
}
[94] Fix | Delete
mat = stream.match(/^(\:)\s+(\S+)(\s|$)+/);
[95] Fix | Delete
if (mat) {
[96] Fix | Delete
stt.wordList.push({name: mat[2].toUpperCase()});
[97] Fix | Delete
stt.state = ' compilation';
[98] Fix | Delete
return 'def' + stt.state;
[99] Fix | Delete
}
[100] Fix | Delete
mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i);
[101] Fix | Delete
if (mat) {
[102] Fix | Delete
stt.wordList.push({name: mat[2].toUpperCase()});
[103] Fix | Delete
return 'def' + stt.state;
[104] Fix | Delete
}
[105] Fix | Delete
mat = stream.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/);
[106] Fix | Delete
if (mat) {
[107] Fix | Delete
return 'builtin' + stt.state;
[108] Fix | Delete
}
[109] Fix | Delete
} else { // compilation
[110] Fix | Delete
// ; [
[111] Fix | Delete
if (stream.match(/^(\;|\[)(\s)/)) {
[112] Fix | Delete
stt.state = '';
[113] Fix | Delete
stream.backUp(1);
[114] Fix | Delete
return 'builtin compilation';
[115] Fix | Delete
}
[116] Fix | Delete
if (stream.match(/^(\;|\[)($)/)) {
[117] Fix | Delete
stt.state = '';
[118] Fix | Delete
return 'builtin compilation';
[119] Fix | Delete
}
[120] Fix | Delete
if (stream.match(/^(POSTPONE)\s+\S+(\s|$)+/)) {
[121] Fix | Delete
return 'builtin';
[122] Fix | Delete
}
[123] Fix | Delete
}
[124] Fix | Delete
[125] Fix | Delete
// dynamic wordlist
[126] Fix | Delete
mat = stream.match(/^(\S+)(\s+|$)/);
[127] Fix | Delete
if (mat) {
[128] Fix | Delete
if (searchWordList(stt.wordList, mat[1]) !== undefined) {
[129] Fix | Delete
return 'variable' + stt.state;
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
// comments
[133] Fix | Delete
if (mat[1] === '\\') {
[134] Fix | Delete
stream.skipToEnd();
[135] Fix | Delete
return 'comment' + stt.state;
[136] Fix | Delete
}
[137] Fix | Delete
[138] Fix | Delete
// core words
[139] Fix | Delete
if (searchWordList(stt.coreWordList, mat[1]) !== undefined) {
[140] Fix | Delete
return 'builtin' + stt.state;
[141] Fix | Delete
}
[142] Fix | Delete
if (searchWordList(stt.immediateWordList, mat[1]) !== undefined) {
[143] Fix | Delete
return 'keyword' + stt.state;
[144] Fix | Delete
}
[145] Fix | Delete
[146] Fix | Delete
if (mat[1] === '(') {
[147] Fix | Delete
stream.eatWhile(function (s) { return s !== ')'; });
[148] Fix | Delete
stream.eat(')');
[149] Fix | Delete
return 'comment' + stt.state;
[150] Fix | Delete
}
[151] Fix | Delete
[152] Fix | Delete
// // strings
[153] Fix | Delete
if (mat[1] === '.(') {
[154] Fix | Delete
stream.eatWhile(function (s) { return s !== ')'; });
[155] Fix | Delete
stream.eat(')');
[156] Fix | Delete
return 'string' + stt.state;
[157] Fix | Delete
}
[158] Fix | Delete
if (mat[1] === 'S"' || mat[1] === '."' || mat[1] === 'C"') {
[159] Fix | Delete
stream.eatWhile(function (s) { return s !== '"'; });
[160] Fix | Delete
stream.eat('"');
[161] Fix | Delete
return 'string' + stt.state;
[162] Fix | Delete
}
[163] Fix | Delete
[164] Fix | Delete
// numbers
[165] Fix | Delete
if (mat[1] - 0xfffffffff) {
[166] Fix | Delete
return 'number' + stt.state;
[167] Fix | Delete
}
[168] Fix | Delete
// if (mat[1].match(/^[-+]?[0-9]+\.[0-9]*/)) {
[169] Fix | Delete
// return 'number' + stt.state;
[170] Fix | Delete
// }
[171] Fix | Delete
[172] Fix | Delete
return 'atom' + stt.state;
[173] Fix | Delete
}
[174] Fix | Delete
}
[175] Fix | Delete
};
[176] Fix | Delete
});
[177] Fix | Delete
CodeMirror.defineMIME("text/x-forth", "forth");
[178] Fix | Delete
});
[179] Fix | Delete
[180] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function