You are not logged in.

  • Login

1

Monday, November 7th 2011, 2:50pm

c++ Funktionen zu Grammatik problem

Hi leute,

ich bin ein neuling im umgang mit c++
jetzt habe ich eine aufgabe wo ich nicht weiß wie ich den ansatz überhaupt machen soll.

Die Aufgabe ist es 5 Funktionen für eine Grammatiküberprüfung zu schreiben.

Folgende Informationen sind gegeben:

Regel: Number
Eine Number besteht entweder aus der Ziffer '0' oder der Ziffer '1'
oder … oder der Ziffer '9'.
Number ::= '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'

Regel: Faktor
Ein Faktor besteht entweder aus einer Number, oder er besteht aus dem
Zeichen '(' gefolgt von einem Ausdruck gefolgt von dem Zeichen ')'.
Faktor ::= Number
| '(' Ausdruck ')'

Regel: Term
Ein Term besteht aus einem Faktor, gefolgt von keiner, einer oder
mehreren Wiederholungen einer Zeichenkette, die zuerst entweder aus
dem Zeichen '*' oder dem Zeichen '/' besteht und danach von einer
Zeichenkette gefolgt wird, die ebenso den Regeln für Faktor genügt. Die
(…) Klammern sind Teil der Grammatik, um zu klären, worauf sich die
„oder“ Operation | der Grammatik bezieht. Die geschweiften Klammern
bedeuten „keine, eine oder mehrere Wiederholungen“.
Term ::= Faktor { ( '*' | '/' ) Faktor }

Regel: Ausdruck
Ein Ausdruck besteht aus einem Term, gefolgt von keiner, einer oder
mehreren Wiederholungen einer Zeichenkette, die zuerst entweder aus
dem Zeichen '+' oder dem Zeichen '-' besteht und danach von einer
Zeichenkette gefolgt wird, die ebenso den Regeln für Term genügt.
Ausdruck ::= Term { ( '+' | '-' ) Term }

Regel: Gesamtausdruck
Ein Gesamtausdruck besteht aus einem Ausdruck, gefolgt von dem
Zeichen '.'.
Gesamtausdruck ::= Ausdruck '.'

Damit sieht unsere Grammatik für gültige Gesamtausdrücke wie folgt
aus:

Gesamtausdruck ::= Ausdruck '.'
Ausdruck ::= Term { ( '+' | '-' ) Term }
Term ::= Faktor { ( '*' | '/' ) Faktor }
Faktor ::= Number
| '(' Ausdruck ')'
Number ::= '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'

Hoffe ihr könnt mir helfen^^

Similar threads

Social bookmarks