Table of Contents

Laborator 4

Folositi jison pentru a realiza un calculator.

Gramatica trebuie să fie următoarea:

exp -> exp operator exp | numar

Modificați astfel încât să generați ca output un arbore.

Particularități

Pentru a stabili ordinea priorităților ('a' înainte de 'b') puteți să folosiți ceva similar:

%left 'a'
%left 'b'

Astfel, pentru un input de genul: “c b c a d b d”, arborele generat ar fi ”(a (b c c) (b d d)”

$$ reprezintă ce întoarce o regulă de parser. $i reprezintă al i-lea token din regulă pe care se face match (indexare de la 1).

Un arbore se creează în felul următor: Arbore = {root: 'radacina', l: 'st', r: 'dr'}, unde root, l, r reprezintă etichetele nodurilor, iar ce este după : reprezintă valoarea acestora.