EBNF интерпретация грамматики

Как я могу интерпретировать это как грамматик ENBF?

<assign>--> <id> = <expr>

<id>--> A | B | C

<expr> --> <expr> * <expr>

<expr> --> <expr> + <expr>

| <id> + <expr>

|( <expr> )

| <id>

Я могу составить дерево синтаксического анализа и вывести любое утверждение, используя этот грамматик, но у меня проблемы с EBNF.


person sick    schedule 18.03.2013    source источник
comment
Похоже, что это уже в BNF (который является подмножеством EBNF), поэтому никаких изменений не требуется (хотя это неоднозначно). Здесь есть вопрос? Какие «проблемы» у тебя с EBNF?   -  person Chris Dodd    schedule 18.03.2013


Ответы (1)


<assign>--> <id> = <expr>

assign — это последовательность: id знак равенства expr.

<id>--> A | B | C

id является одним из A, B или C

<expr> --> <expr> * <expr>
<expr> --> <expr> + <expr>
| <id> + <expr>    
|( <expr> )    
| <id>

Выражение может быть:

  1. Произведение двух выражений (инфиксная запись)
  2. Добавление двух выражений (инфиксная запись)
  3. Добавление идентификатора и выражения (что является частным случаем добавления двух выражений, где первое выражение просто <id>)
  4. Выражение в скобках.
  5. Идентификатор.
person Javier    schedule 18.03.2013