Информация об изменениях

Сообщение Re[11]: [Nitra] Парсинг языков базирующихся на отсупах от 02.10.2014 21:17

Изменено 03.10.2014 4:01 VladD2

Здравствуйте, 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 и пойдев путем блока, а не увидев его пойдет путем выражения.
Re[11]: [Nitra] Парсинг языков базирующихся на отсупах
Здравствуйте, 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 и пойдев путем блока, а не увидев его пойдет путем выражения.