Uwaga: Wszystkie gramatyki w poniższych zadaniach mają być akceptowana bez konfliktów przez bisona!

Zadanie 1

Zakładamy że symbolami gramatyki są pojedyńcze znaki. Uzupełnić poniższą gramatykę regułami tak by rozpoznawała zwykłe liczby całkowite w notacji dziesiętnej, liczby całkowite w notacji szesnastkowej, tak jak w C: `0x1ab' i liczby zmiennopozycyjne (te muszą zawierać kropkę dziesiętną, np: `.001', `100.' `3.1415').

liczba : liczba_zmiennopozycyjna
       | liczba_dziesietna
       | liczba_szesnastkowa
       ;

Zadanie 2

Zakładamy że symbolami gramatyki są pojedyńcze znaki. Napisać gramatykę rozpoznającą cztery słowa kluczowe: `do', `downto', `for' i `to' oraz identyfikatory (ciągi liter). Dokładniej, do podanej gramatyki dopisać reguły definująće `sym_do', `sym_downto', `sym_for', `sym_to' i `sym_ident'.

symbol: sym_do | sym_downto | sym_for | sym_to | sym_ident ;

Zadanie 3

Symbolami rachunku zdań są zmienne (wszystkie zmienne są reprezentowane przez pojadynczy symbol), negacja, iloczyn, suma, implikacja i nawiasy. Negacja ma najwyższy priorytet, następnie iloczyn, potem suma. Implikacja ma najniższy priorytet. Iloczyn i suma są łaczne. Dla uniknięcia nieporozumień przyjmiemy że implikacja jest niełączliwa (tzn. wymaga jawnych nawiasów). Napisać gramatykę akceptującą poprawne składniowo zdania rachunku zdań (nie interesuje nas w tej chwili ich wartość logiczna).

Zadanie 4

Napisać gramatykę dla rachunku kwantyfikatorów. W rachunku kwantyfikatorów zamiast zmiennych logicznych mamy predykaty. Składniowo predykat składa się z nazwy (identyfikatora) i ujętej w nawiasy lista zmiennych. Lista zmiennych może być pominięta (wtedy predykat zachowuje się jak zwykła zmienna z rachunku zdań). Zmienne to identyfikatory, na liscie zmiennych są oddzielonych przecinkami. Symbolami rachunku kwantyfikatorów są symbole rachunku zdań i dodatkowo dwa kwantyfilatory, ogólny i szczegółowy. Po kwantyfikatorze musi wystąpić zmienna (zmienna związana danym kwantyfikatorem). Przyjmiemy że normalnie zmienna jest związana przez kwantyfikator do końca wyrażenia. Aby ograniczyć zakres zmiennej możemy ująć wyrażenie w nawiasy (dlatego w w gramatyce będzie trzeba odróżniać wyrażenia nie ujęte w nawiasy od wyrażeń w nawiasach).