yacc je počítačový program , který slouží jako standardní generátor analyzátoru na systémech Unix . Název je zkratkou pro " Yet Another Compiler Compiler " . Yacc generuje parser na základě analytické gramatiky popsané v notaci BNF (Backus-Naur Form) nebo bezkontextové gramatiky. Výstupem yacc je kód analyzátoru v programovacím jazyce C.
Yacc byl vyvinut Stephenem C. Johnsonem z AT&T pro operační systém Unix . Později byly napsány kompatibilní verze programu, jako je Berkeley Yacc, GNU bison , MKS yacc a Abraxas yacc (aktualizovaná verze open source verze AT&T byla také zahrnuta do projektu OpenSolaris společnosti Sun ). Každá varianta nabízela oproti originálu drobná vylepšení a další funkce, ale koncept zůstal stejný. Yacc byl také přepsán do jiných jazyků včetně Java , C# , Pascal , Ada , Ratfor , EFL, ML , Limbo , Erlang , Go atd.
Protože analyzátor generovaný yacc vyžaduje použití lexeru , často se používá ve spojení s generátorem lexer, ve většině případů buď lex nebo flex . Standard IEEE POSIX P1003.2 definuje funkčnost i požadavky na lex a yacc.