46 lines
498 B
ANTLR

grammar Match;
root
: matchEntry? (WHITESPACE matchEntry?)* EOF
;
matchEntry
: criteria separator? values?
;
separator
: WHITESPACE
;
criteria
: string
;
values
: value? (COMMA value?)*
;
value
: string
;
string
: (QUOTED_STRING | STRING)
;
COMMA
: ','
;
STRING
: ~(' ' | '\t' | '\r' | '\n' | '#' | ',')+
;
WHITESPACE
: [ \t]+
;
QUOTED_STRING
: '"' WHITESPACE? (STRING WHITESPACE)* STRING? ('"')?
;