ANTLR 接受 3類語法規(guī)范——語法分析器(parsers) ,詞法分析器(lexers) ,和樹分析器(tree-parsers)(也叫樹遍歷器 tree-walkers)。 由于 ANTLR 使用 LL(k) 分析所有的 3 種語法變型,并且語法說明相似,因而產(chǎn)生的 lexers 和語法分析程序也很類似。另外產(chǎn)生的識(shí)別程序可讀性很好,你可以查看輸出的內(nèi)容來明白很多關(guān)于 ANTLR 的機(jī)理。
ANTLR 接受C語言風(fēng)格的塊注釋和 C++風(fēng)格的行注釋。在語法類和規(guī)則中,Java 風(fēng)格的文檔注釋也是可以接受的,在需要的時(shí)候,這些注釋可以被傳遞給生成的輸出文件。
ANTLR, 語言識(shí)別的另一個(gè)工具(ANother Tool for Language Recognition ),(前身是PCCTS)是一種語言工具,它提供了一個(gè)框架,可以通過包含 Java,C++,或C#動(dòng)作(action)的語法描述來構(gòu)造語言識(shí)別器,編譯器和解析器。
計(jì)算機(jī)語言的解析已經(jīng)變成了一種非常普遍的工作。 傳統(tǒng)的計(jì)算機(jī)語言的編譯器和工具(如 C 或Java)仍舊需要被構(gòu)造,它們的數(shù)量與需要開發(fā)的那些成千上萬的小語言的識(shí)別工具和解析工具相比是相形見拙。程序員為了解析數(shù)據(jù)格式,圖形文件(如,
PostScript,AutoCAD),文本文件(如,HTML,SGML等)而需要構(gòu)造解析器。ANTLR 被設(shè)計(jì)出來處理所有這些轉(zhuǎn)換工作。