EBNF Grammatik

kiotoqq

Mitglied
Im Folgenden betrachten wir eine einfache Sprache, mit der man den Inhalt von Spielzeugkisten in einem Kinderzimmer beschreiben kann. Generell wird dabei eine Spielzeugkiste durch das Wort "Kiste" angegeben und anschließend wird in runden Klammern entweder "leer" geschrieben oder es wird der Inhalt der Spielzeugkiste aufgeza ̈hlt. Der Inhalt einer Spielzeugkiste besteht aus einer Reihe von Gegenständen, wobei zwischen zwei Gegenständen immer angegeben werden soll, ob der erste "neben" oder "auf" dem zweiten liegt. Ein Gegenstand ist entweder ein Spielzeug oder wiederum eine Spielzeugkiste, die ihrerseits (wie oben beschrieben) angegeben wird. Spielzeuge sind "Puppe", "Auto", "Ball" oder "Teddy".

in der Lösung steht am Anfang:
Spielzeugkiste = "Kiste" "(" ( "leer" | Inhalt ) ")"
da verstehe ich nicht, warum die doppelklammer?
 

Kevin94

Top Contributor
keine Doppelklammer, sondern eine Klammer gehört zum Ausruck. Valid wären also:
Code:
Kiste(leer)
und
Code:
Kiste(<Inhalt>)
 

diggaa1984

Top Contributor
in EBNF stellt: (a | b) eine Auswahl von beiden dar, wobei ohne weitere Zusätze nur eines erscheinen darf/muss.

(a|b)? genau ein a oder b oder nichts
(a|b)+ mindestens ein a oder b
(a|b)* beliebig viele a's oder b's oder nichts
 

Ähnliche Java Themen

Neue Themen


Oben