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