1try{!function(){var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},e=(new t.Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="01a5db66-4d56-4e18-9b09-50ba57cc3eed",t._sentryDebugIdIdentifier="sentry-dbid-01a5db66-4d56-4e18-9b09-50ba57cc3eed")}()}catch(t){}"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[22396],{22396:(t,e,E)=>{function n(t){var e=[];return t.split(" ").forEach(function(t){e.push({name:t})}),e}E.r(e),E.d(e,{forth:()=>O});var i=n("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"),r=n("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");function R(t,e){var E;for(E=t.length-1;E>=0;E--)if(t[E].name===e.toUpperCase())return t[E]}let O={name:"forth",startState:function(){return{state:"",base:10,coreWordList:i,immediateWordList:r,wordList:[]}},token:function(t,e){var E;if(t.eatSpace())return null;if(""===e.state){if(t.match(/^(\]|:NONAME)(\s|$)/i))return e.state=" compilation","builtin";if(E=t.match(/^(\:)\s+(\S+)(\s|$)+/))return e.wordList.push({name:E[2].toUpperCase()}),e.state=" compilation","def";if(E=t.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i))return e.wordList.push({name:E[2].toUpperCase()}),"def";if(E=t.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/))return"builtin"}else{if(t.match(/^(\;|\[)(\s)/))return e.state="",t.backUp(1),"builtin";if(t.match(/^(\;|\[)($)/))return e.state="","builtin";if(t.match(/^(POSTPONE)\s+\S+(\s|$)+/))return"builtin"}if(E=t.match(/^(\S+)(\s+|$)/))return void 0!==R(e.wordList,E[1])?"variable":"\\"===E[1]?(t.skipToEnd(),"comment"):void 0!==R(e.coreWordList,E[1])?"builtin":void 0!==R(e.immediateWordList,E[1])?"keyword":"("===E[1]?(t.eatWhile(function(t){return")"!==t}),t.eat(")"),"comment"):".("===E[1]?(t.eatWhile(function(t){return")"!==t}),t.eat(")"),"string"):'S"'===E[1]||'."'===E[1]||'C"'===E[1]?(t.eatWhile(function(t){return'"'!==t}),t.eat('"'),"string"):E[1]-0xfffffffff?"number":"atom"}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.