📄 forth.vim
字号:
" Vim syntax file" Language : FORTH" Maintainer : Christian V. J. Br黶sow <cvjb@bigfoot.de>" Last change: Son 06 Mai 2001 20:16:25 CEST" Thanks to..."" John Providenza <john@probo.com> made some improvements" for the highlighting of strings, and added the code for" highlighting hex numbers." The list of keywords is incomplete, compared with the offical ANS" wordlist. If you use this language, please improve it, and send me" the patches." For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600 syntax clearelseif exists("b:current_syntax") finishendif" Synchronization methodsyn sync ccomment maxlines=200" I use gforth, so I set this to case ignoresyn case ignore" Some special, non-FORTH keywordssyn keyword forthTodo contained TODO FIXMEsyn match forthTodo contained 'Copyright\(\s([Cc])\)\=\(\s[0-9]\{2,4}\)\='" Characters allowed in keywords" I don't know if 128-255 are allowed in ANS-FORHTif version >= 600 setlocal iskeyword=!,@,33-64,A-Z,91-96,a-z,123-126,128-255else set iskeyword=!,@,33-64,A-Z,91-96,a-z,123-126,128-255endif" Keywords" basic mathematical and logical operatorssyn keyword forthOperators + - * / MOD /MOD NEGATE ABS MIN MAXsyn keyword forthOperators AND OR XOR NOT INVERT 2* 2/ 1+ 1- 2+ 2- 8*syn keyword forthOperators M+ */ */MOD M* UM* M*/ UM/MOD FM/MOD SM/REMsyn keyword forthOperators D+ D- DNEGATE DABS DMIN DMAXsyn keyword forthOperators F+ F- F* F/ FNEGATE FABS FMAX FMIN FLOOR FROUNDsyn keyword forthOperators F** FSQRT FEXP FEXPM1 FLN FLNP1 FLOG FALOG FSINsyn keyword forthOperators FCOS FSINCOS FTAN FASIN FACOS FATAN FATAN2 FSINHsyn keyword forthOperators FCOSH FTANH FASINH FACOSH FATANHsyn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= <= <> = > >=" stack manipulationssyn keyword forthStack DROP NIP DUP OVER TUCK SWAP ROT -ROT ?DUP PICK ROLLsyn keyword forthStack 2DROP 2NIP 2DUP 2OVER 2TUCK 2SWAP 2ROTsyn keyword forthStack 3DUP 4DUPsyn keyword forthRStack >R R> R@ RDROP 2>R 2R> 2R@ 2RDROPsyn keyword forthFStack FDROP FNIP FDUP FOVER FTUCK FSWAP FROT" stack pointer manipulationssyn keyword forthSP SP@ SP! FP@ FP! RP@ RP! LP@ LP!" address operationssyn keyword forthMemory @ ! +! C@ C! 2@ 2! F@ F! SF@ SF! DF@ DF!syn keyword forthAdrArith CHARS CHAR+ CELLS CELL+ CELL ALIGN ALIGNED FLOATSsyn keyword forthAdrArith FLOAT+ FLOAT FALIGN FALIGNED SFLOATS SFLOAT+syn keyword forthAdrArith SFALIGN SFALIGNED DFLOATS DFLOAT+ DFALIGN DFALIGNEDsyn keyword forthAdrArith MAXALIGN MAXALIGNED CFALIGN CFALIGNEDsyn keyword forthAdrArith ADDRESS-UNIT-BITS ALLOT ALLOCATE HEREsyn keyword forthMemBlks MOVE ERASE CMOVE CMOVE> FILL BLANK" conditionalssyn keyword forthCond IF ELSE ENDIF THEN CASE OF ENDOF ENDCASE ?DUP-IFsyn keyword forthCond ?DUP-0=-IF AHEAD CS-PICK CS-ROLL CATCH THROW" iterationssyn keyword forthLoop BEGIN WHILE REPEAT UNTIL AGAINsyn keyword forthLoop ?DO LOOP I J K +DO U+DO -DO U-DO DO +LOOP -LOOPsyn keyword forthLoop UNLOOP LEAVE ?LEAVE EXIT DONE FOR NEXT" new wordssyn match forthColonDef '\<:\s*[^ \t]\+\>'syn keyword forthEndOfColonDef ;syn keyword forthDefine CONSTANT 2CONSTANT FCONSTANT VARIABLE 2VARIABLE CREATEsyn keyword forthDefine USER VALUE TO DEFER IS DOES> IMMEDIATE COMPILE-ONLYsyn keyword forthDefine COMPILE RESTRICT INTERPRET POSTPONE EXECUTE LITERALsyn keyword forthDefine CREATE-INTERPRET/COMPILE INTERPRETATION> <INTERPRETATIONsyn keyword forthDefine COMPILATION> <COMPILATION ] LASTXT COMP' POSTPONE,syn keyword forthDefine FIND-NAME NAME>INT NAME?INT NAME>COMP NAME>STRING STATEsyn match forthDefine "\[COMP']"syn match forthDefine "'"syn match forthDefine '\<\[\>'syn match forthDefine "\[']"syn match forthDefine '\[COMPILE]'" debuggingsyn keyword forthDebug PRINTDEBUGDATA PRINTDEBUGLINEsyn match forthDebug "\<\~\~\>"" Assemblersyn keyword forthAssembler ASSEMBLER CODE END-CODE ;CODE FLUSH-ICACHE C," basic character operationssyn keyword forthCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEYsyn keyword forthCharOps KEY? TIB CRsyn region forthCharOps start=+."\s+ skip=+\\"+ end=+"+" char-number conversionsyn keyword forthConversion <# # #> #S (NUMBER) (NUMBER?) CONVERT D>F D>S DIGITsyn keyword forthConversion DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER" interptreter, wordbook, compilersyn keyword forthForth (LOCAL) BYE COLD ABORT >BODY >NEXT >LINK CFA >VIEW HEREsyn keyword forthForth PAD WORDS VIEW VIEW> N>LINK NAME> LINK> L>NAME FORGETsyn keyword forthForth BODY>syn region forthForth start=+ABORT"\s+ skip=+\\"+ end=+"+" vocabulariessyn keyword forthVocs ONLY FORTH ALSO ROOT SEAL VOCS ORDER CONTEXT #VOCSsyn keyword forthVocs VOCABULARY DEFINITIONS" numberssyn keyword forthMath DECIMAL HEX BASEsyn match forthInteger '\<-\=[0-9.]*[0-9.]\+\>'syn match forthHex '\<[0-9a-fA-F]*[0-9][0-9a-fA-F]*\>'syn match forthFloat '\<-\=[0-9]*[.]\=[0-9]\+[Ee][0-9]\+\>'" Stringssyn region forthString start=+\.*\"+ end=+"+ end=+$+" Commentssyn match forthComment '\\\s.*$' contains=forthTodosyn region forthComment start='\\S\s' end='.*' contains=forthTodosyn match forthComment '\.(\s[^)]*)' contains=forthTodosyn region forthComment start='(\s' skip='\\)' end=')' contains=forthTodo"syn match forthComment '(\s[^\-]*\-\-[^\-]*)' contains=forthTodo" Include filessyn match forthInclude '^INCLUDE\s\+\k\+'" Define the default highlighting." For version 5.7 and earlier: only when not done already" For version 5.8 and later: only when an item doesn't have highlighting yetif version >= 508 || !exists("did_forth_syn_inits") if version < 508 let did_forth_syn_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif " The default methods for highlighting. Can be overriden later. HiLink forthTodo Todo HiLink forthOperators Operator HiLink forthMath Number HiLink forthInteger Number HiLink forthFloat Float HiLink forthStack Special HiLink forthRstack Special HiLink forthFStack Special HiLink forthSP Special HiLink forthMemory Function HiLink forthAdrArith Function HiLink forthMemBlks Function HiLink forthCond Conditional HiLink forthLoop Repeat HiLink forthColonDef Define HiLink forthEndOfColonDef Define HiLink forthDefine Define HiLink forthDebug Debug HiLink forthAssembler Include HiLink forthCharOps Character HiLink forthConversion String HiLink forthForth Statement HiLink forthVocs Statement HiLink forthString String HiLink forthComment Comment delcommand HiLinkendiflet b:current_syntax = "forth"" vim:ts=3:sw=3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -