This commit is contained in:
jie
2024-10-16 10:58:52 +08:00
commit dcc11e2fef
286 changed files with 253151 additions and 0 deletions

241
syntax/pascal.jsf Normal file
View File

@@ -0,0 +1,241 @@
# PASCAL highlighter for JOE
# With support for Delphi and FPC by Michael Van Canneyt
=Idle
=Comment
=Constant
=String +Constant
=Number +Constant
=Type
=Keyword
=Statement +Keyword
=Operator +Keyword
=Loop +Statement
=Conditional +Statement
=DefinedFunction +DefinedIdent
=Builtin +DefinedFunction
=Structure +Type
=Bad
:idle Idle
* idle
"\i" ident buffer
"(" maybe_comment
"/" maybe_linecomment
"{" comment recolor=-1
"'" string recolor=-1
"$" maybe_hex_number
"%" maybe_bin_number
"&" maybe_oct_number
"0-9" number recolor=-1
# Comments
:maybe_comment Idle
* idle noeat
"*" comment recolor=-2
:maybe_linecomment Idle
* idle noeat
"/" line_comment recolor=-2
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:comment Comment comment
* comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
"}" idle
:maybe_end_comment Comment comment
* comment noeat
")" idle
# String constant
:string String string
* string
"\n" idle
"'" maybe_end_string
:maybe_end_string String string
* idle recolor=-1 noeat
"'" string
# Numeric constant
:maybe_hex_number Idle
* idle noeat
"0-9A-Fa-f" hex_number recolor=-2
:maybe_bin_number Idle
* idle noeat
"01" bin_number recolor=-2
:maybe_oct_number Idle
* idle noeat
"0-7" oct_number recolor=-2
:bad Bad
* idle noeat
:hex_number Number
* idle noeat
"0-9" hex_number
"a-fA-F" hex_number
:bin_number Number
* idle noeat
"01" bin_number
"2-9" bad recolor=-1
:oct_number Number
* idle noeat
"0-7" oct_number
"89" bad recolor=-1
:number Number
* idle noeat
"0-9" number
"eE" epart
"." dot
:dot Number
* idle noeat
"0-9" float
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
# Keywords
:ident Idle
* idle noeat istrings
"and" operator
"array" type
"begin" kw
"case" cond
"const" kw
"div" operator
"do" kw
"downto" kw
"else" cond
"end" kw
"file" kw
"for" loop
"function" kw
"goto" loop
"if" cond
"in" kw
"label" kw
"mod" operator
"nil" word_constant
"not" operator
"of" kw
"or" operator
"packed" kw
"procedure" kw
"program" kw
"record" kw
"repeat" loop
"set" kw
"then" kw
"type" kw
"until" loop
"var" kw
"while" loop
"with" kw
# Delphi keywords
"to" kw
"try" kw
"finally" kw
"raise" kw
"absolute" kw
"cdecl" kw
"stdcall" kw
"register" kw
"interface" struct
"library" kw
"constructor" kw
"destructor" kw
"dispinterface" kw
"inherited" kw
"public" kw
"private" kw
"published" kw
"protected" kw
"initialization" kw
"finalization" kw
"class" struct
"object" kw
"resourcestring" kw
"property" kw
"threadvar" kw
"integer" type
"boolean" type
"real" type
"char" type
"string" type
"text" type
"abs" function
"atan" function
"arctan" function
"concat" function
"cos" function
"eof" function
"eoln" function
"exp" function
"insert" function
"length" function
"ln" function
"log" function
"odd" function
"ord" function
"page" function
"pred" function
"round" function
"sin" function
"sqr" function
"sqrt" function
"succ" function
"trun" function
done
"\c" ident
:kw Keyword
* idle noeat
:type Type
* idle noeat
:loop Loop
* idle noeat
:cond Conditional
* idle noeat
:struct Structure
* idle noeat
:operator Operator
* idle noeat
:word_constant Constant
* idle noeat
:function Builtin
* idle noeat