blob: 93d174097e3eb1adc71e1659c52c6182d4003fd3 [file] [log] [blame]
" Vim syntax file
" Language: JavaCC, a Java Compiler Compiler written by JavaSoft
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/javacc.vim
" Last Change: 2012 Oct 05
" Uses java.vim, and adds a few special things for JavaCC Parser files.
" Those files usually have the extension *.jj
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" source the java.vim file
runtime! syntax/java.vim
unlet b:current_syntax
"remove catching errors caused by wrong parenthesis (does not work in javacc
"files) (first define them in case they have not been defined in java)
syn match javaParen "--"
syn match javaParenError "--"
syn match javaInParen "--"
syn match javaError2 "--"
syn clear javaParen
syn clear javaParenError
syn clear javaInParen
syn clear javaError2
" remove function definitions (they look different) (first define in
" in case it was not defined in java.vim)
"syn match javaFuncDef "--"
syn clear javaFuncDef
syn match javaFuncDef "[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType
syn keyword javaccPackages options DEBUG_PARSER DEBUG_LOOKAHEAD DEBUG_TOKEN_MANAGER
syn keyword javaccPackages COMMON_TOKEN_ACTION IGNORE_CASE CHOICE_AMBIGUITY_CHECK
syn keyword javaccPackages OTHER_AMBIGUITY_CHECK STATIC LOOKAHEAD ERROR_REPORTING
syn keyword javaccPackages USER_TOKEN_MANAGER USER_CHAR_STREAM JAVA_UNICODE_ESCAPE
syn keyword javaccPackages UNICODE_INPUT JDK_VERSION
syn match javaccPackages "PARSER_END([^)]*)"
syn match javaccPackages "PARSER_BEGIN([^)]*)"
syn match javaccSpecToken "<EOF>"
" the dot is necessary as otherwise it will be matched as a keyword.
syn match javaccSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
syn match javaccToken "<[^> \t]*>"
syn keyword javaccActionToken TOKEN SKIP MORE SPECIAL_TOKEN
syn keyword javaccError DEBUG IGNORE_IN_BNF
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
command -nargs=+ HiLink hi def link <args>
HiLink javaccSpecToken Statement
HiLink javaccActionToken Type
HiLink javaccPackages javaScopeDecl
HiLink javaccToken String
HiLink javaccError Error
delcommand HiLink
let b:current_syntax = "javacc"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8