pascalabcnet/YMC/Components/AspectCore/ParserSources/Yacc.lp

28 lines
884 B
Plaintext
Raw Normal View History

%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*