Ocamlyacc – generator parserów dla języka Ocaml, wzorowany na programach typu yacc dla C.

Operowanie na drzewach składniowych w Ocamlu jest o wiele łatwiejsze niż w C. Połączenie tych dwóch cech - generatora parserów i języka z dobrymi możliwościami przekształceń symbolicznych, czyni z Ocamla jeden z najwygodniejszych w użyciu języków pisania parserów.

Programy w ocamlyacc mają rozszerzenie .mly

Ocamlyacc używany jest zwykle w połączeniu z generatorem lekserów ocamllex, wzorowanym na programach typu lex dla C. Pliki źródłowe ocamllex mają rozszerzenie .mll.

Przykład Napiszemy parser, który interpretuje pliki języka K, nazwanego tak ze względu na duże wizualne podobieństwo do C. K nie jest zbyt ambitnym językiem (inaczej interpreter znacznie przerastałby parser), ale umożliwia czytanie wejścia (get), wykonywanie obliczeń (tutaj funkcja Fibonacciego) oraz drukowanie wyników (p):

pre1 = 0; pre2 = 1; n = 0; get nmax; while (n < nmax) { new = pre1 + pre2; pre2 = pre1; pre1 = new; n += 1 }; p pre1