xref: /vim-8.2.3635/runtime/syntax/javacc.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	JavaCC, a Java Compiler Compiler written by JavaSoft
3071d4279SBram Moolenaar" Maintainer:	Claudio Fleiner <[email protected]>
4071d4279SBram Moolenaar" URL:		http://www.fleiner.com/vim/syntax/javacc.vim
50c5fa7d7SBram Moolenaar" Last Change:	2012 Oct 05
6071d4279SBram Moolenaar
7071d4279SBram Moolenaar" Uses java.vim, and adds a few special things for JavaCC Parser files.
8071d4279SBram Moolenaar" Those files usually have the extension  *.jj
9071d4279SBram Moolenaar
1089bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1189bcfda6SBram Moolenaarif exists("b:current_syntax")
12071d4279SBram Moolenaar  finish
13071d4279SBram Moolenaarendif
14071d4279SBram Moolenaar
150c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
160c5fa7d7SBram Moolenaarset cpo&vim
170c5fa7d7SBram Moolenaar
18071d4279SBram Moolenaar" source the java.vim file
19071d4279SBram Moolenaarruntime! syntax/java.vim
20071d4279SBram Moolenaarunlet b:current_syntax
21071d4279SBram Moolenaar
22071d4279SBram Moolenaar"remove catching errors caused by wrong parenthesis (does not work in javacc
23071d4279SBram Moolenaar"files) (first define them in case they have not been defined in java)
24071d4279SBram Moolenaarsyn match	javaParen "--"
25071d4279SBram Moolenaarsyn match	javaParenError "--"
26071d4279SBram Moolenaarsyn match	javaInParen "--"
27071d4279SBram Moolenaarsyn match	javaError2 "--"
28071d4279SBram Moolenaarsyn clear	javaParen
29071d4279SBram Moolenaarsyn clear	javaParenError
30071d4279SBram Moolenaarsyn clear	javaInParen
31071d4279SBram Moolenaarsyn clear	javaError2
32071d4279SBram Moolenaar
33071d4279SBram Moolenaar" remove function definitions (they look different) (first define in
34071d4279SBram Moolenaar" in case it was not defined in java.vim)
35071d4279SBram Moolenaar"syn match javaFuncDef "--"
36071d4279SBram Moolenaarsyn clear javaFuncDef
37071d4279SBram Moolenaarsyn match javaFuncDef "[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType
38071d4279SBram Moolenaar
39071d4279SBram Moolenaarsyn keyword javaccPackages options DEBUG_PARSER DEBUG_LOOKAHEAD DEBUG_TOKEN_MANAGER
40071d4279SBram Moolenaarsyn keyword javaccPackages COMMON_TOKEN_ACTION IGNORE_CASE CHOICE_AMBIGUITY_CHECK
41071d4279SBram Moolenaarsyn keyword javaccPackages OTHER_AMBIGUITY_CHECK STATIC LOOKAHEAD ERROR_REPORTING
42071d4279SBram Moolenaarsyn keyword javaccPackages USER_TOKEN_MANAGER  USER_CHAR_STREAM JAVA_UNICODE_ESCAPE
430c5fa7d7SBram Moolenaarsyn keyword javaccPackages UNICODE_INPUT JDK_VERSION
44071d4279SBram Moolenaarsyn match javaccPackages "PARSER_END([^)]*)"
45071d4279SBram Moolenaarsyn match javaccPackages "PARSER_BEGIN([^)]*)"
46071d4279SBram Moolenaarsyn match javaccSpecToken "<EOF>"
47071d4279SBram Moolenaar" the dot is necessary as otherwise it will be matched as a keyword.
48071d4279SBram Moolenaarsyn match javaccSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
49071d4279SBram Moolenaarsyn match javaccToken "<[^> \t]*>"
50071d4279SBram Moolenaarsyn keyword javaccActionToken TOKEN SKIP MORE SPECIAL_TOKEN
51071d4279SBram Moolenaarsyn keyword javaccError DEBUG IGNORE_IN_BNF
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar" Define the default highlighting.
5489bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
55*f37506f6SBram Moolenaarhi def link javaccSpecToken Statement
56*f37506f6SBram Moolenaarhi def link javaccActionToken Type
57*f37506f6SBram Moolenaarhi def link javaccPackages javaScopeDecl
58*f37506f6SBram Moolenaarhi def link javaccToken String
59*f37506f6SBram Moolenaarhi def link javaccError Error
60071d4279SBram Moolenaar
61071d4279SBram Moolenaarlet b:current_syntax = "javacc"
620c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
630c5fa7d7SBram Moolenaarunlet s:cpo_save
64071d4279SBram Moolenaar
65071d4279SBram Moolenaar" vim: ts=8
66