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.
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.