1" Vim syntax file 2" Language: JavaCC, a Java Compiler Compiler written by JavaSoft 3" Maintainer: Claudio Fleiner <[email protected]> 4" URL: http://www.fleiner.com/vim/syntax/javacc.vim 5" Last Change: 2012 Oct 05 6 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 18let s:cpo_save = &cpo 19set cpo&vim 20 21" 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 50syn keyword javaccPackages UNICODE_INPUT JDK_VERSION 51syn 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" 79let &cpo = s:cpo_save 80unlet s:cpo_save 81 82" vim: ts=8 83