/ / Backus-Naur Form (BNF) Recursion - bnf

Backus-Naur Form (BNF) Rekurencja - bnf

Mam problem z wyrażeniem czegoś rekurencyjnego w BNF. "Termin" w moim przypadku może być utworzony przez wartość, pomnożenie i dzielenie (pokazane na obrazku), wymyśliłem następujące:

<term> ::= <value>
| <value> “*”
| <value> “/”

Odpowiedzi:

2 dla odpowiedzi № 1

Specyfikacja rekurencyjna jest specyfikacją wktóre non-terminal pojawia się rekurencyjnie w regułach produkcji. Zapoznaj się z następującą gramatyką, która jest rekurencyjną specyfikacją, która zawiera +, *, $ (potęgowanie) i używa notacji BNF:

 <exp>     := <exp> + <term> | <term>
<term>    := <term> * <factor> | <factor>
<factor>  := <factor> $ <primary> | <primary>
<primary> := id

Jak widać wszystkie nieterminalne, które są w LHS: = są również w produkcji (RHS), więc nazywa się je notacją rekurencyjną BNF.