Lingvo estas aro de validaj frazoj. Kio validas frazon? Vi povas dividi validecon en du aferojn: sintakso kaj semantiko. La esprimo sintakso rilatas al gramatika strukturo dum la esprimo semantiko rilatas al la signifo de la vortprovizosimboloj aranĝitaj kun tiu strukturo. Gramatike (sintakse valida) tamen ne implicas prudenta (semantike valida). Ekzemple, la gramatika frazo "bovinoj fluas superege" estas gramatike bona (subjekt-verba adverbo) en la angla, sed havas neniun sencon. Simile, en programlingvo, via gramatiko (sintakso reguloj) povas permesi ID EQUALS ID sed la lingvo povas nur permesi la frazon se la teksto kongrua por ID ne reprezentas tipnomon (semantika regulo).
Kiam vi skribas ANTLR-gramatikon, vi specifas la aron de sintaksaj reguloj, kiujn obeas via lingvo. ANTLR uzas ĉi tion por generi rekonilon por frazoj en tiu lingvo. Por apliki semantikajn regulojn, vi devas aldoni agojn aŭ semantikajn predikatojn al la gramatiko. La agoj testas la "valoron" de la diversaj ĵetonoj kaj iliaj rilatoj por determini semantikan validecon. Ekzemple, se vi serĉas tipon en simboltabelo por certigi, ke ĝi estas tipo, ne variablo, vi aplikas semantikan regulon.







