PlanetXML

Syntax Highlighting für ANTLR v3

ANTLR ist ein Tool zum Erstellen von Parsern, die Abkürzung steht für "ANother Tool for Language Recognition". Die dritte, stark überarbeitete Version ist gerade in der Betaphase und kann von http://antlr.org/ heruntergeladen werden. Dieses VIM-Script bietet Syntax Highlighting für die Elemente von ANTLR Parsern und Lexern.

" vim: ts=8
" Vim syntax file
" Language:     ANTLRv3
" Maintainer:   Jörn Horstmann
" Last Change:  2006-08-02

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

syn keyword antlrKeyword grammar lexer parser tree header members options fragment returns throws scope init

syn match  antlrCharacter '\\\(r\|n\|t\|f\|b\|"\|\'\|\\\|u\x\{4}\)' contained display

syn match  antlrToken "\<[A-Z_][A-Z_0-9]\+\>"
syn match antlrScopeVariable '$\k\+::\k\+'

syn match antlrOperator "[:;@.]"
syn match antlrOperator "[()]"
syn match antlrOperator "[{}]"
syn match antlrOperator "[\[\]]"
syn match antlrOperator "[?+*~|]"
syn match antlrOperator "[->=^]"

syn region antlrLiteral start=+'+ end=+'+ contains=antlrCharacter
syn region antlrLiteral start=+"+ end=+"+ contains=antlrCharacter

syn region antlrComment start="/\*" end="\*/"
syn match  antlrComment "//.*$"

" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508
  if version < 508
    let did_antlr_syntax_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

  HiLink antlrLiteral           Constant
  HiLink antlrCharacter         Special
  HiLink antlrComment           Comment
  HiLink antlrOperator          Operator
  HiLink antlrKeyword           Keyword
  HiLink antlrToken             PreProc
  HiLink antlrScopeVariable     Identifier

  delcommand HiLink
endif

let b:current_syntax = "antlr3"