Κάθε παραγωγή μπορεί να έχει στο δεξί της μέρος, μέσα σε {},
έναν σημασιολογικό κανόνα γραμμένο σε C.
Ο σημασιολογικός κανόνας μπορεί να έχει πρόσβαση στις τιμές των συμβόλων στην
αριστερή πλευρά του κανόνα με τα ονόματα των ειδικών μεταβλητών
$1, $2, $3 ... όπου $1 είναι η τιμή του πρώτου συμβόλου, $2 η
τιμή του δεύτερου, κ.λπ.
Ο σημασιολογικός κανόνας μπορεί να θέσει την τιμή του μη τερματικού
συμβόλου στα αριστερά του κανόνα με ανάθεση στην ειδική μεταβλητή $$.
Παράδειγμα:
expr : expr + expr { $$ = $1 + $3; }
;
Οι τύποι των ειδικών μεταβλητών $$, $1, $2, ... είναι αντίστοιχοι με
τον τύπο που έχει δηλωθεί για το σχετικό τερματικό ή μη τερματικό σύμβολο.
Τυπικές χρήσεις των σημασιολογικών κανόνων είναι:
ο απευθείας υπολογισμός μιας τιμής:
Παράδειγμα:
expr : expr + expr { $$ = $1 + $3; }
;
η δημιουργία ενός κόμβου για το συντακτικό δένδρο:
Τελευταία αλλαγή: Παρασκευή, 7 Νοεμβρίου 2003 3:18 μμ
Εκτός αν αναφέρεται κάτι διαφορετικό, όλο το πρωτότυπο υλικό της σελίδας αυτής
του οποίου δημιουργός είναι ο Διομήδης Σπινέλλης παρέχεται σύμφωνα με τους
όρους της άδειας
«Creative Commons Attribution-Share Alike 3.0 Greece License».