Re: задачка на соображалку 2
От: Kh_Oleg  
Дата: 14.08.09 11:33
Оценка: 1 (1)
Здравствуйте, zoo1982, Вы писали:

Z>А как вам такая задачка? Хотите голову поломать?


Z>Consider the following grammar rules.

Z><Expr> ::= <IntersectExpr> | '0'
Z><IntersectExpr> ::= <UnionExpr> | <Intersect>
Z><Intersect> ::= '(' <UnionExpr> '*' <Expr> ')'
Z><UnionExpr> :== <RegionExpr> | <Union>
Z><Union> :== '(' <RegionExpr> '+' <Expr> ')'
Z><RegionExpr> :== <Coordinate> 'x' <Coordinate>
Z><Coordinate> :== '1'..'9'

Z>Which of the following input strings correspond to the production '<Expr>'?


Z>1) (4x8+8x4+8x8)

Z>2) ((2x3+4x5)*0)
Z>3) (2x3+8x98)*(2x3+0)
Z>4) ((0*0)+2)
Z>5) ((1..9))
Z>6) ((4x8*4x9)+0x3

Вот это как раз совершенно нормальная задача, если знать, что такое EBNF.
Если я внимательно смотрел, то соответствуют выражения под номерами 1, 2, 3 и 6.
номер 4 не подходит: '2' (<Coordinate>) входит только в конструкцию <RegionExpr>, а тут символ '+', а не 'х'.
номер 5 не подходит: символа '.' вообще нет в данном синтаксисе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.