Right Left Rule für Type Specifier



  • Hi,

    um komplexe Variablendeklarationen durchzuführen gibt es ja die RL-Rule.
    http://ieng9.ucsd.edu/~cs30x/rt_lt.rule.html
    Man fängt einfach mit dem Identifier an und hangelt sich dann weiter durch. Meine Frage ist nun wie geht man bei Type Specifiern vor? Man hat ja keinen variablen Namen als Startpunkt. Man kann zwar klammern, aber mit welcher Klammer wird angefangen? Wird da einfach die "linkeste" genommen? Also z.B. (((hier)..)..)(())


  • Mod

    Man kann die Regel auch rückwärts anwenden.

    1. Suche von links nach der ersten schliessenden Klammer ) oder ]
    2. Wenn ] dann befindet sich dein Startpunkt unmittelbar vor dem vorangehenden [ sonst
    3. stehen in der inneren Klammer nur Deklaratoren (* & && oder C:: 😉 dann befindet sich den Startpunkt unmittelbar vor ) sonst
    4. ) schliesst eine Parameterliste, dein Startpunkt befindet sich unmittelbar vor der vorhergehenden öffnenden Klammer (

    Zu
    Beispiele:

    int
    int ()
    int (*)
    int (*)()
    int C::*
    int (C::*(D::**)())()
    

Anmelden zum Antworten