source: other-projects/gli-rsyntax-textarea/lib/jflex.vim@ 31041

Last change on this file since 31041 was 25584, checked in by davidb, 12 years ago

Initial cut an a text edit area for GLI that supports color syntax highlighting

File size: 5.9 KB
Line 
1" Vim syntax file
2" Language: JFlex
3" Maintainer: Gerwin Klein <[email protected]>
4" Last Change: $Revision: 50 $, $Date: 2003-06-08 21:01:12 +1000 (Sun, 08 Jun 2003) $
5
6" Thanks to Michael Brailsford for help and suggestions
7
8" Quit when a syntax file was already loaded {{{
9if exists("b:current_syntax")
10 finish
11endif
12"}}}
13
14" Include java syntax {{{
15if version >= 600
16 runtime! syntax/java.vim
17 unlet b:current_syntax
18else
19 so $VIMRUNTIME/syntax/java.vim
20endif
21"}}}
22
23syn cluster jflexOptions contains=jflexOption,jflexCodeInclude,jflexComment,jflexMacroIdent,jflexMacroRegExp,jflexOptionError
24syn cluster jflexRules contains=jflexRule,jflexComment,jflexActionCode,jflexRuleStates,jflexRegExp
25
26" java code section
27syn region jflexStart start="/\*\|//\|import\|package\|class"me=s end="^%%"me=e-2 contains=@javaTop nextgroup=jflexOptionReg
28
29" %%
30" options
31syn region jflexOptionReg matchgroup=jflexSectionSep start="^%%" end="^%%"me=e-2 contains=@jflexOptions nextgroup=jflexRulesReg
32
33syn match jflexOptionError "%\i*" contained
34
35syn match jflexOption "^\(%s\|%x\)" contained
36syn match jflexOption "^%state" contained
37syn match jflexOption "^%states" contained
38syn match jflexOption "^%xstate" contained
39syn match jflexOption "^%xstates" contained
40syn match jflexOption "^%char" contained
41syn match jflexOption "^%line" contained
42syn match jflexOption "^%column" contained
43syn match jflexOption "^%byaccj" contained
44syn match jflexOption "^%cup" contained
45syn match jflexOption "^%cupsym" contained
46syn match jflexOption "^%cupdebug" contained
47syn match jflexOption "^%eofclose" contained
48syn match jflexOption "^%class" contained
49syn match jflexOption "^%function" contained
50syn match jflexOption "^%type" contained
51syn match jflexOption "^%integer" contained
52syn match jflexOption "^%int" contained
53syn match jflexOption "^%intwrap" contained
54syn match jflexOption "^%yyeof" contained
55syn match jflexOption "^%notunix" contained
56syn match jflexOption "^%7bit" contained
57syn match jflexOption "^%8bit" contained
58syn match jflexOption "^%full" contained
59syn match jflexOption "^%16bit" contained
60syn match jflexOption "^%unicode" contained
61syn match jflexOption "^%caseless" contained
62syn match jflexOption "^%ignorecase" contained
63syn match jflexOption "^%implements" contained
64syn match jflexOption "^%extends" contained
65syn match jflexOption "^%public" contained
66syn match jflexOption "^%apiprivate" contained
67syn match jflexOption "^%final" contained
68syn match jflexOption "^%abstract" contained
69syn match jflexOption "^%debug" contained
70syn match jflexOption "^%standalone" contained
71syn match jflexOption "^%switch" contained
72syn match jflexOption "^%table" contained
73syn match jflexOption "^%pack" contained
74syn match jflexOption "^%include" contained
75syn match jflexOption "^%buffer" contained
76syn match jflexOption "^%initthrow" contained
77syn match jflexOption "^%eofthrow" contained
78syn match jflexOption "^%yylexthrow" contained
79syn match jflexOption "^%throws" contained
80syn match jflexOption "^%scannerror" contained
81
82syn match jflexMacroIdent "\I\i*\s*="me=e-1 contained nextgroup=jflexMacroRegExp
83
84syn region jflexMacroRegExp matchgroup=jflexOperator start="=" end="^\(%\|\I\|\i\|/\)"me=e-1 contains=NONE contained
85
86syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%{" end="^%}" contains=@javaTop contained
87syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%init{" end="^%init}" contains=@javaTop contained
88syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%initthrow{" end="^%initthrow}" contains=@javaTop contained
89syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%eof{" end="^%eof}" contains=@javaTop contained
90syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%eofthrow{" end="^%eofthrow}" contains=@javaTop contained
91syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%yylexthrow{" end="^%yylexthrow}" contains=@javaTop contained
92syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%eofval{" end="^%eofval}" contains=@javaTop contained
93
94" rules (end pattern shouldn't occur, if it does anyway we just stay in jflexRulesReg)
95syn region jflexRulesReg matchgroup=jflexSectionSep start="^%%" end="^%%"me=e-2 contains=@jflexRules
96
97" at first everything but strings is a regexp
98syn match jflexRegExp "\([^\" \t]\|\\\"\)\+" contained
99
100" take out comments
101syn match jflexComment "//.*" contained
102syn region jflexComment start="/\*" end="\*/" contained contains=jflexComment
103
104" lex states
105syn match jflexRuleStates "<\s*\I\i*\(\s*,\s*\I\i*\)*\s*>" contained skipnl skipwhite nextgroup=jflexStateGroup
106
107" action code (only after states braces and macro use)
108syn region jflexActionCode matchgroup=Delimiter start="{" end="}" contained contains=@javaTop,jflexJavaBraces
109
110" macro use
111syn match jflexRegExp "{\s*\I\i*\s*}" contained
112
113" state braces (only active after <state>)
114syn region jflexStateGroup matchgroup=jflexRuleStates start="{$" start="{\s" end="}" contained contains=@jflexRules
115
116" string
117syn region jflexRegExp matchgroup=String start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
118
119" not to be confused with a state
120syn match jflexRegExp "<<EOF>>" contained
121
122" escape sequence
123syn match jflexRegExp "\\." contained
124
125
126" keep braces in actions balanced
127syn region jflexJavaBraces start="{" end="}" contained contains=@javaTop,jflexJavaBraces
128
129
130" syncing
131syn sync clear
132syn sync minlines=10
133syn sync match jflexSync grouphere jflexOptionReg "^%[a-z]"
134syn sync match jflexSync grouphere jflexRulesReg "^<"
135
136
137" highlighting
138hi link jflexOption Special
139hi link jflexMacroIdent Ident
140hi link jflexMacroRegExp Macro
141hi link jflexOptionError Error
142hi link jflexComment Comment
143hi link jflexOperator Operator
144hi link jflexRuleStates Special
145hi link jflexRegExp Function
146hi jflexSectionSep guifg=yellow ctermfg=yellow guibg=blue ctermbg=blue gui=bold cterm=bold
147hi link jflexCodeIncludeMark jflexSectionSep
148
149let b:current_syntax="jflex"
Note: See TracBrowser for help on using the repository browser.