Yacc
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/00/REF_new_%28questionmark%29.svg/50px-REF_new_%28questionmark%29.svg.png)
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.
YACC – standardowy program w systemach uniksowych służący do generowania analizatorów składniowych (parserów). Nazwa programu to akronim słów Yet Another Compiler Compiler. Program generuje kod wyjściowy w języku C zgodnym ze standardem ISO na podstawie plików wejściowych zapisanych w notacji podobnej do BNF. YACC potrafi tworzyć parsery dla gramatyk klasy LALR(1).
Parser wygenerowany przez YACC sprawdza zgodność strumienia symboli leksykalnych, produkowanych przez analizator leksykalny (np. wygenerowany przez program lex), z gramatyką języka. Dokładne wymagania dotyczące programów lex oraz YACC jak i ich funkcjonalność są opisane w standardzie IEEE POSIX P1003.2.
Opis składni (gramatyki) jest przeplatany z kodem w języku C i znajduje się najczęściej w pliku z rozszerzeniem .y
. Pliki z gramatyką są to pliki tekstowe, które składają się z trzech części oddzielonych od siebie podwójnym znakiem procentu ("%%") w kolejności: deklaracje, reguły gramatyczne, kod w języku C. Zarówno pierwsza jak i ostatnia sekcja mogą zostać pominięte.
Powstało wiele programów podobnych do yacca, takich jak GNU Bison, ocamlyacc (dla Ocamla), perl-byacc (generujący parsery w Perlu).
Zobacz też
- Bison (program)
- Lex (informatyka)
- Flex
Linki zewnętrzne
- Lex and YACC primer/HOWTO (ang.) - wprowadzenie do używania programów lex i yacc
- A Compact Guide to Lex & Yacc (ang.) - podręcznik zawierający instrukcje jak napisać kompilator używając programów Lex i Yacc
- The Lex & Yacc Page (ang.) - przykłady i podręczniki