28 lines
884 B
Plaintext
28 lines
884 B
Plaintext
|
|
%CaseSensitive
|
|||
|
|
%Extension "y"
|
|||
|
|
|
|||
|
|
Skip Begin "//"
|
|||
|
|
Skip Begin "/*" End "*/"
|
|||
|
|
Skip BeginEnd "'" EscapeSymbol "'"
|
|||
|
|
Skip BeginEnd '\"' EscapeSymbol '\\'
|
|||
|
|
|
|||
|
|
Token LetterDigit [[:IsLetterOrDigit:]_]+
|
|||
|
|
Token Sign [[:IsPunctuation:][:IsSymbol:]]
|
|||
|
|
|
|||
|
|
Rule @Action : "{" [Any|Action]* "}" //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Rule @Program : #Section1 "%%" #Section2 "%%" #Section3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Rule @Section1 : List0(S1Node) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Rule S1Node : @"%{" @Any* @"%}"
|
|||
|
|
| @"%" @AnyExcept("%%", "%", "{") @AnyExcept("%%", "%")*
|
|||
|
|
| error
|
|||
|
|
|
|||
|
|
Rule @Section2 : List0(yRule) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Rule yRule : @LetterDigit ":" List1(SubRule, "|") ";" //@LetterDigit ":" List1(SubRule, "|") ";"
|
|||
|
|
| error
|
|||
|
|
Rule SubRule : @List0(subRulePart)
|
|||
|
|
Rule subRulePart : @AnyExcept("{", "|", ";")
|
|||
|
|
| @Action
|
|||
|
|
|
|||
|
|
Rule @Section3 : Any*
|