DATE |
= |
'(\d\d\d\d)-?(\d\d)-?(\d\d)' |
|
date = date-fullyear ["-"] date-month ["-"] date-mday
date-fullyear = 4 DIGIT date-month = 2 DIGIT date-mday = 2 DIGIT
|
TIME |
= |
'(\d\d):?(\d\d):?(\d\d)(\.\d+)?(Z|[-+]\d\d:?\d\d)?' |
|
time = time-hour [":"] time-minute [":"] time-second
[time-secfrac] [time-zone] time-hour = 2 DIGIT time-minute = 2 DIGIT
time-second = 2 DIGIT time-secfrac = "," 1*DIGIT time-zone =
"Z" / time-numzone time-numzome = sign time-hour [":"]
time-minute
|
QSTR |
= |
'"[^"]*"' |
|
<"> <Any character except CTLs, DQUOTE> <">
|
LINE |
= |
"(#{NAME})(.*(?:#{QSTR})|(?:[^:]*))\:(.*)" |
|
Contentline
|
PTEXT |
= |
'[^";:,]*' |
|
*<Any character except CTLs, DQUOTE, ";", ":",
",">
|
PVALUE |
= |
"#{QSTR}|#{PTEXT}" |
|
param-value = ptext / quoted-string
|
PARAM |
= |
";(#{NAME})(=?)((?:#{PVALUE})(?:,#{PVALUE})*)" |
|
param = name "=" param-value *("," param-value)
|