2024-10-12 15:24:54 +02:00

60 lines
724 B
ANTLR

grammar Config;
lineStatement
: WHITESPACE? entry WHITESPACE? leadingComment? EOF
;
entry
: key? WHITESPACE? separator? WHITESPACE? value?
;
leadingComment
: commentSymbol WHITESPACE? (string WHITESPACE?)+
;
key
: string
;
separator
: EQUAL
;
value
: string
;
string
: (QUOTED_STRING | (WHITESPACE? (STRING WHITESPACE)* STRING))
;
commentSymbol
: HASH | SEMICOLON
;
///////////////////////////////////////////////
EQUAL
: '='
;
HASH
: '#'
;
SEMICOLON
: ';'
;
WHITESPACE
: [ \t]+
;
STRING
: ~('\r' | '\n' | '"' | ' ' | '\t')+
;
QUOTED_STRING
: '"' WHITESPACE? (STRING WHITESPACE)* STRING? ('"')?
;