晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/proc/thread-self/root/usr/share/vim/vim80/syntax/ |
| Current File : //proc/thread-self/root/usr/share/vim/vim80/syntax/ibasic.vim |
" Vim syntax file
" Language: ibasic
" Maintainer: Mark Manning <markem@airmail.net>
" Originator: Allan Kelly <Allan.Kelly@ed.ac.uk>
" Created: 10/1/2006
" Updated: 10/21/2006
" Description: A vim file to handle the IBasic file format.
" Notes:
" Updated by Mark Manning <markem@airmail.net>
" Applied IBasic support to the already excellent support for standard
" basic syntax (like QB).
"
" First version based on Micro$soft QBASIC circa 1989, as documented in
" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
" This syntax file not a complete implementation yet.
" Send suggestions to the maintainer.
"
" This version is based upon the commands found in IBasic (www.pyxia.com).
" MEM 10/6/2006
"
" Quit when a (custom) syntax file was already loaded (Taken from c.vim)
"
if exists("b:current_syntax")
finish
endif
"
" Be sure to turn on the "case ignore" since current versions of basic
" support both upper as well as lowercase letters.
"
syn case ignore
"
" A bunch of useful BASIC keywords
"
syn keyword ibasicStatement beep bload bsave call absolute chain chdir circle
syn keyword ibasicStatement clear close cls color com common const data
syn keyword ibasicStatement loop draw end environ erase error exit field
syn keyword ibasicStatement files function get gosub goto
syn keyword ibasicStatement input input# ioctl key kill let line locate
syn keyword ibasicStatement lock unlock lprint using lset mkdir name
syn keyword ibasicStatement on error open option base out paint palette pcopy
syn keyword ibasicStatement pen play pmap poke preset print print# using pset
syn keyword ibasicStatement put randomize read redim reset restore resume
syn keyword ibasicStatement return rmdir rset run seek screen
syn keyword ibasicStatement shared shell sleep sound static stop strig sub
syn keyword ibasicStatement swap system timer troff tron type unlock
syn keyword ibasicStatement view wait width window write
syn keyword ibasicStatement date$ mid$ time$
"
" Do the basic variables names first. This is because it
" is the most inclusive of the tests. Later on we change
" this so the identifiers are split up into the various
" types of identifiers like functions, basic commands and
" such. MEM 9/9/2006
"
syn match ibasicIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
syn match ibasicGenericFunction "\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
"
" Function list
"
syn keyword ibasicBuiltInFunction abs asc atn cdbl cint clng cos csng csrlin cvd cvdmbf
syn keyword ibasicBuiltInFunction cvi cvl cvs cvsmbf eof erdev erl err exp fileattr
syn keyword ibasicBuiltInFunction fix fre freefile inp instr lbound len loc lof
syn keyword ibasicBuiltInFunction log lpos mod peek pen point pos rnd sadd screen seek
syn keyword ibasicBuiltInFunction setmem sgn sin spc sqr stick strig tab tan ubound
syn keyword ibasicBuiltInFunction val valptr valseg varptr varseg
syn keyword ibasicBuiltInFunction chr\$ command$ date$ environ$ erdev$ hex$ inkey$
syn keyword ibasicBuiltInFunction input$ ioctl$ lcases$ laft$ ltrim$ mid$ mkdmbf$ mkd$
syn keyword ibasicBuiltInFunction mki$ mkl$ mksmbf$ mks$ oct$ right$ rtrim$ space$
syn keyword ibasicBuiltInFunction str$ string$ time$ ucase$ varptr$
syn keyword ibasicTodo contained TODO
syn cluster ibasicFunctionCluster contains=ibasicBuiltInFunction,ibasicGenericFunction
syn keyword Conditional if else then elseif endif select case endselect
syn keyword Repeat for do while next enddo endwhile wend
syn keyword ibasicTypeSpecifier single double defdbl defsng
syn keyword ibasicTypeSpecifier int integer uint uinteger int64 uint64 defint deflng
syn keyword ibasicTypeSpecifier byte char string istring defstr
syn keyword ibasicDefine dim def declare
"
"catch errors caused by wrong parenthesis
"
syn cluster ibasicParenGroup contains=ibasicParenError,ibasicIncluded,ibasicSpecial,ibasicTodo,ibasicUserCont,ibasicUserLabel,ibasicBitField
syn region ibasicParen transparent start='(' end=')' contains=ALLBUT,@bParenGroup
syn match ibasicParenError ")"
syn match ibasicInParen contained "[{}]"
"
"integer number, or floating point number without a dot and with "f".
"
syn region ibasicHex start="&h" end="\W"
syn region ibasicHexError start="&h\x*[g-zG-Z]" end="\W"
syn match ibasicInteger "\<\d\+\(u\=l\=\|lu\|f\)\>"
"
"floating point number, with dot, optional exponent
"
syn match ibasicFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
"
"floating point number, starting with a dot, optional exponent
"
syn match ibasicFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"
"floating point number, without dot, with exponent
"
syn match ibasicFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
"
"hex number
"
syn match ibasicIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
syn match ibasicFunction "\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
syn case match
syn match ibasicOctalError "\<0\o*[89]"
"
" String and Character contstants
"
syn region ibasicString start='"' end='"' contains=ibasicSpecial,ibasicTodo
syn region ibasicString start="'" end="'" contains=ibasicSpecial,ibasicTodo
"
" Comments
"
syn match ibasicSpecial contained "\\."
syn region ibasicComment start="^rem" end="$" contains=ibasicSpecial,ibasicTodo
syn region ibasicComment start=":\s*rem" end="$" contains=ibasicSpecial,ibasicTodo
syn region ibasicComment start="\s*'" end="$" contains=ibasicSpecial,ibasicTodo
syn region ibasicComment start="^'" end="$" contains=ibasicSpecial,ibasicTodo
"
" Now do the comments and labels
"
syn match ibasicLabel "^\d"
syn region ibasicLineNumber start="^\d" end="\s"
"
" Pre-compiler options : FreeBasic
"
syn region ibasicPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=ibasicString,ibasicCharacter,ibasicNumber,ibasicCommentError,ibasicSpaceError
syn match ibasicInclude "^\s*#\s*include\s*"
"
" Create the clusters
"
syn cluster ibasicNumber contains=ibasicHex,ibasicInteger,ibasicFloat
syn cluster ibasicError contains=ibasicHexError
"
" Used with OPEN statement
"
syn match ibasicFilenumber "#\d\+"
"
"syn sync ccomment ibasicComment
"
syn match ibasicMathOperator "[\+\-\=\|\*\/\>\<\%\()[\]]" contains=ibasicParen
"
" The default methods for highlighting. Can be overridden later
"
hi def link ibasicLabel Label
hi def link ibasicConditional Conditional
hi def link ibasicRepeat Repeat
hi def link ibasicHex Number
hi def link ibasicInteger Number
hi def link ibasicFloat Number
hi def link ibasicError Error
hi def link ibasicHexError Error
hi def link ibasicStatement Statement
hi def link ibasicString String
hi def link ibasicComment Comment
hi def link ibasicLineNumber Comment
hi def link ibasicSpecial Special
hi def link ibasicTodo Todo
hi def link ibasicGenericFunction Function
hi def link ibasicBuiltInFunction Function
hi def link ibasicTypeSpecifier Type
hi def link ibasicDefine Type
hi def link ibasicInclude Include
hi def link ibasicIdentifier Identifier
hi def link ibasicFilenumber ibasicTypeSpecifier
hi def link ibasicMathOperator Operator
let b:current_syntax = "ibasic"
" vim: ts=8
|