xref: /vim-8.2.3635/runtime/syntax/antlr.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Antlr:	ANTLR, Another Tool For Language Recognition <www.antlr.org>
3071d4279SBram Moolenaar" Maintainer:	Mathieu Clabaut <[email protected]>
4071d4279SBram Moolenaar" LastChange:	02 May 2001
5071d4279SBram Moolenaar" Original:	Comes from JavaCC.vim
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar   finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" This syntac file is a first attempt. It is far from perfect...
13071d4279SBram Moolenaar
14071d4279SBram Moolenaar" Uses java.vim, and adds a few special things for JavaCC Parser files.
15071d4279SBram Moolenaar" Those files usually have the extension  *.jj
16071d4279SBram Moolenaar
17071d4279SBram Moolenaar" source the java.vim file
18071d4279SBram Moolenaarruntime! syntax/java.vim
19071d4279SBram Moolenaarunlet b:current_syntax
20071d4279SBram Moolenaar
21071d4279SBram Moolenaar"remove catching errors caused by wrong parenthesis (does not work in antlr
22071d4279SBram Moolenaar"files) (first define them in case they have not been defined in java)
23071d4279SBram Moolenaarsyn match	javaParen "--"
24071d4279SBram Moolenaarsyn match	javaParenError "--"
25071d4279SBram Moolenaarsyn match	javaInParen "--"
26071d4279SBram Moolenaarsyn match	javaError2 "--"
27071d4279SBram Moolenaarsyn clear	javaParen
28071d4279SBram Moolenaarsyn clear	javaParenError
29071d4279SBram Moolenaarsyn clear	javaInParen
30071d4279SBram Moolenaarsyn clear	javaError2
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" remove function definitions (they look different) (first define in
33071d4279SBram Moolenaar" in case it was not defined in java.vim)
34071d4279SBram Moolenaar"syn match javaFuncDef "--"
35071d4279SBram Moolenaar"syn clear javaFuncDef
36071d4279SBram Moolenaar"syn match javaFuncDef "[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType
37071d4279SBram Moolenaar" syn region javaFuncDef start=+t[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*,[ 	]*+ end=+)[ \t]*:+
38071d4279SBram Moolenaar
39071d4279SBram Moolenaarsyn keyword antlrPackages options language buildAST
40071d4279SBram Moolenaarsyn match antlrPackages "PARSER_END([^)]*)"
41071d4279SBram Moolenaarsyn match antlrPackages "PARSER_BEGIN([^)]*)"
42071d4279SBram Moolenaarsyn match antlrSpecToken "<EOF>"
43071d4279SBram Moolenaar" the dot is necessary as otherwise it will be matched as a keyword.
44071d4279SBram Moolenaarsyn match antlrSpecToken ".LOOKAHEAD("ms=s+1,me=e-1
45071d4279SBram Moolenaarsyn match antlrSep "[|:]\|\.\."
46071d4279SBram Moolenaarsyn keyword antlrActionToken TOKEN SKIP MORE SPECIAL_TOKEN
47071d4279SBram Moolenaarsyn keyword antlrError DEBUG IGNORE_IN_BNF
48071d4279SBram Moolenaar
49*f37506f6SBram Moolenaarhi def link antlrSep Statement
50*f37506f6SBram Moolenaarhi def link antlrPackages Statement
51071d4279SBram Moolenaar
52071d4279SBram Moolenaarlet b:current_syntax = "antlr"
53071d4279SBram Moolenaar
54071d4279SBram Moolenaar" vim: ts=8
55