blob: a80572d5104b42985023aecdb0e3945a35dd2d86 [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020010" quit when a syntax file was already loaded
11if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 finish
13endif
14
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020015let s:cpo_save = &cpo
16set cpo&vim
17
Bram Moolenaar071d4272004-06-13 20:20:40 +000018" source the java.vim file
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020019runtime! syntax/java.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000020unlet b:current_syntax
21
22"remove catching errors caused by wrong parenthesis (does not work in javacc
23"files) (first define them in case they have not been defined in java)
24syn match javaParen "--"
25syn match javaParenError "--"
26syn match javaInParen "--"
27syn match javaError2 "--"
28syn clear javaParen
29syn clear javaParenError
30syn clear javaInParen
31syn clear javaError2
32
33" remove function definitions (they look different) (first define in
34" in case it was not defined in java.vim)
35"syn match javaFuncDef "--"
36syn clear javaFuncDef
37syn match javaFuncDef "[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType
38
39syn keyword javaccPackages options DEBUG_PARSER DEBUG_LOOKAHEAD DEBUG_TOKEN_MANAGER
40syn keyword javaccPackages COMMON_TOKEN_ACTION IGNORE_CASE CHOICE_AMBIGUITY_CHECK
41syn keyword javaccPackages OTHER_AMBIGUITY_CHECK STATIC LOOKAHEAD ERROR_REPORTING
42syn keyword javaccPackages USER_TOKEN_MANAGER USER_CHAR_STREAM JAVA_UNICODE_ESCAPE
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020043syn keyword javaccPackages UNICODE_INPUT JDK_VERSION
Bram Moolenaar071d4272004-06-13 20:20:40 +000044syn match javaccPackages "PARSER_END([^)]*)"
45syn match javaccPackages "PARSER_BEGIN([^)]*)"
46syn match javaccSpecToken "<EOF>"
47" the dot is necessary as otherwise it will be matched as a keyword.
48syn match javaccSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
49syn match javaccToken "<[^> \t]*>"
50syn keyword javaccActionToken TOKEN SKIP MORE SPECIAL_TOKEN
51syn keyword javaccError DEBUG IGNORE_IN_BNF
52
53" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020054" Only when an item doesn't have highlighting yet
Bram Moolenaarf37506f2016-08-31 22:22:10 +020055hi def link javaccSpecToken Statement
56hi def link javaccActionToken Type
57hi def link javaccPackages javaScopeDecl
58hi def link javaccToken String
59hi def link javaccError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
61let b:current_syntax = "javacc"
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020062let &cpo = s:cpo_save
63unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
65" vim: ts=8