Facultate:IME,Calculatoare Nume:Botos Dragos Oliver
Anul:3
Introducere în Bison
Bison este un generator de parser generalizat care convertește
o gramatică adnotată fără context într-un parser LR determinist
sau LR (GLR) generalizat care utilizează tabelele de parser LALR.
Ca o caracteristică experimentală, Bison poate genera, de
asemenea, tabelele parserului IELR sau canonical LR. Odată ce
sunteți expert cu Bison, îl puteți folosi pentru a dezvolta o
gamă largă de parseri de limbi străine, de la cele utilizate în
calculatoarele simple de birou până la limbile de programare
complexe.
Bison este compatibil cu Yacc: toate gramaticile Yacc scrise
corect trebuie să lucreze cu Bison fără nici o schimbare. Oricine
este familiarizat cu Yacc ar trebui să poată folosi Bison cu mici
probleme. Trebuie să fii fluent în programarea C sau C ++ pentru
a folosi Bison. Java este, de asemenea, acceptat ca o
caracteristică experimentală.
Descărcarea lui Bison
Bison poate fi găsit pe serverul principal GNU ftp:
[Link] (prin HTTP) și
[Link] (prin FTP). Se poate găsi și pe
oglinzile GNU.
Cum să folosiți Bison?
Parserul Bison este un analizor de jos în sus. Încercă, prin
schimburi și reduceri, să reducă întreaga intrare până la o
singură grupare a cărei simbol este simbolul de start al
gramaticii.
1|Page
Facultate:IME,Calculatoare Nume:Botos Dragos Oliver
Anul:3
Pași pentru a utiliza Bison:
Scrieți un analizor lexical pentru procesarea intrărilor și
transmiterea jetoanelor parserului ([Link]).
Scrieți specificația gramatică pentru bizon (calc.y),
inclusiv regulile de gramatică, yyparse () și yyerror ().
Fugi pe Bison pe gramatica pentru a produce parserul.
(Makefile)
Compilați ieșirea de cod de către Bison, precum și orice
alte fișiere sursă.
Legați fișierele obiect pentru a produce produsul finit.
Exercitii
Familiarizați-vă cu Bison: scrieți un calculator de birou
care efectuează "+" și "*" pe numerele nesemnate.
[Link]ți un director: "mkdir calc"
[Link]ți cele cinci fișiere ([Link], calc.y,
Makefile, [Link] și heading.h) în directorul "calc"
[Link]ță de comandă: "face"; "./Calc"
[Link]ți programele de intrare (sau stdin) care conțin
expresii cu constante întregi și operatori + și *, apoi apăsați
Ctrl-D pentru a vedea rezultatul
Format:
% {
C Declarații
%}
Declarațiile Bison
%%
Reguli gramaticale
%%
Codul C suplimentar
Definiții utile Bison:
% token,% union,% type,% left,% right,% nonassoc,etc.
Formatul secțiunii de reguli gramaticale:
rezultat: componente ...
;
Structura și funcțiile importante ale datelor:
yylval, YYSTYPE, yyerror (), yyparse ()
Bibliografie
2|Page
Facultate:IME,Calculatoare Nume:Botos Dragos Oliver
Anul:3
[Link]://[Link]/wiki/Bison
[Link]://[Link]/software/bison/
[Link]://[Link]/~lgao/teaching/[Link]
3|Page