Здравствуйте, WolfHound, Вы писали:
WH>А так?
WH>WH>syntax Block
WH>{
WH> | MultyLine = ":" NewLine IndentInc (Indent Statement)+ IndentDec;
WH> | OneLine = ":" OneLineStatement NewLine;
WH>}
WH>
Сдается мне этот NewLine просто лишний. Если будет информация о блоках, то накаких приседаний просто ненужно.
Будет именно что
syntax Block
{
| MultyLine = ":" IndentInc (Indent Statement)+ IndentDec;
| OneLine = ":" OneLineStatement NewLine;
}
Парсер сам разрулит неоднозначность на основании этих самых IndentInc/IndentDec. Точнее ее, для парсера, просто не будет. Он увидит IndentInc и пойдев путем блока, а не увидев его пойдет путем выражения.