c++ Funktionen zu Grammatik problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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^^