add proxy for the first part and try to develop the second part
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
@@grammar :: contentline
|
||||
@@whitespace :: None
|
||||
@@left_recursion :: False
|
||||
|
||||
# generate with tatsu --generate-parser --outfile ics/grammar/contentline.py ics/grammar/contentline.ebnf
|
||||
|
||||
start = @:contentline $;
|
||||
full = @+:contentline { /(\r?\n)+/ @+:contentline }+ /(\r?\n)*/ $;
|
||||
|
||||
contentline = name:ALPHADIGIT_MINUS_PLUS { ";" params+:param }* ":" value:VALUE_CHAR_STAR ;
|
||||
param = name:ALPHADIGIT_MINUS_PLUS "=" values+:param_value { "," values+:param_value }* ;
|
||||
param_value = DQUOTE ~ value:QSAFE_CHAR_STAR DQUOTE quoted:`true` | value:SAFE_CHAR_STAR quoted:`false` ;
|
||||
|
||||
ALPHADIGIT_MINUS_PLUS = /[a-zA-Z0-9-]+/;
|
||||
QSAFE_CHAR_STAR = /[^\x00-\x08\x0A-\x1F\x22\x7F]*/;
|
||||
SAFE_CHAR_STAR = /[^\x00-\x08\x0A-\x1F\x22\x2C\x3A\x3B\x7F]*/;
|
||||
VALUE_CHAR_STAR = /[^\x00-\x08\x0A-\x1F\x7F]*/;
|
||||
DQUOTE = '"';
|
||||
Reference in New Issue
Block a user