2024-09-22 11:22:38 +02:00

52 lines
660 B
ANTLR

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