blob: 5458de754efecde069b16dfe83ddbec82c976947 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: JavaCC, a Java Compiler Compiler written by JavaSoft
3" Maintainer: Claudio Fleiner <claudio@fleiner.com>
4" URL: http://www.fleiner.com/vim/syntax/javacc.vim
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02005" Last Change: 2012 Oct 05
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
7" Uses java.vim, and adds a few special things for JavaCC Parser files.
8" Those files usually have the extension *.jj
9
10" For version 5.x: Clear all syntax items
11" For version 6.x: Quit when a syntax file was already loaded
12if version < 600
13 syntax clear
14elseif exists("b:current_syntax")
15 finish
16endif
17
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020018let s:cpo_save = &cpo
19set cpo&vim
20
Bram Moolenaar071d4272004-06-13 20:20:40 +000021" source the java.vim file
22if version < 600
23 source <sfile>:p:h/java.vim
24else
25 runtime! syntax/java.vim
26endif
27unlet b:current_syntax
28
29"remove catching errors caused by wrong parenthesis (does not work in javacc
30"files) (first define them in case they have not been defined in java)
31syn match javaParen "--"
32syn match javaParenError "--"
33syn match javaInParen "--"
34syn match javaError2 "--"
35syn clear javaParen
36syn clear javaParenError
37syn clear javaInParen
38syn clear javaError2
39
40" remove function definitions (they look different) (first define in
41" in case it was not defined in java.vim)
42"syn match javaFuncDef "--"
43syn clear javaFuncDef
44syn match javaFuncDef "[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType
45
46syn keyword javaccPackages options DEBUG_PARSER DEBUG_LOOKAHEAD DEBUG_TOKEN_MANAGER
47syn keyword javaccPackages COMMON_TOKEN_ACTION IGNORE_CASE CHOICE_AMBIGUITY_CHECK
48syn keyword javaccPackages OTHER_AMBIGUITY_CHECK STATIC LOOKAHEAD ERROR_REPORTING
49syn keyword javaccPackages USER_TOKEN_MANAGER USER_CHAR_STREAM JAVA_UNICODE_ESCAPE
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020050syn keyword javaccPackages UNICODE_INPUT JDK_VERSION
Bram Moolenaar071d4272004-06-13 20:20:40 +000051syn match javaccPackages "PARSER_END([^)]*)"
52syn match javaccPackages "PARSER_BEGIN([^)]*)"
53syn match javaccSpecToken "<EOF>"
54" the dot is necessary as otherwise it will be matched as a keyword.
55syn match javaccSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
56syn match javaccToken "<[^> \t]*>"
57syn keyword javaccActionToken TOKEN SKIP MORE SPECIAL_TOKEN
58syn keyword javaccError DEBUG IGNORE_IN_BNF
59
60" Define the default highlighting.
61" For version 5.7 and earlier: only when not done already
62" For version 5.8 and later: only when an item doesn't have highlighting yet
63if version >= 508 || !exists("did_css_syn_inits")
64 if version < 508
65 let did_css_syn_inits = 1
66 command -nargs=+ HiLink hi link <args>
67 else
68 command -nargs=+ HiLink hi def link <args>
69 endif
70 HiLink javaccSpecToken Statement
71 HiLink javaccActionToken Type
72 HiLink javaccPackages javaScopeDecl
73 HiLink javaccToken String
74 HiLink javaccError Error
75 delcommand HiLink
76endif
77
78let b:current_syntax = "javacc"
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020079let &cpo = s:cpo_save
80unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000081
82" vim: ts=8