freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

antlr簡介及中文手冊-免費(fèi)閱讀

2025-07-23 08:22 上一頁面

下一頁面
  

【正文】 double x = 0。 ExprParser parser( lexer )。(‘g’是默認(rèn)的文法文件的擴(kuò)展名)。TOK_POW :39。..39。)(39。STAR :39。} // tokensLPAREN :39。} | TOK_COS x = atom { value = cos (x)。} | SLASH x=factor { value /= x。{} // rulesexpr returns [double value=0]{double x。如果要生成C++描述的分析器程序,就要如下設(shè)定:options{language=Cpp。)* (39。程序員只需要集中精力思考解決問題的邏輯,而不是羈絆于某種程序設(shè)計語言的實現(xiàn)細(xì)節(jié),因此降低了出現(xiàn)錯誤的可能性。CalcParser parser(lexer)。statement : mexpr ( (PLUS | SUB) mexpr )*。接著是操作數(shù)。接著定義計算器的詞法規(guī)則。(,) 測試樣例+ 2 * 3 + 5 4/2 2.(1 + 2) * 3 + 5 4 / (2+2) 3.(*)+8/(43)* 下面就讓我們動手完成一個計算器,:)先搭個框架。樹分析器定義一個樹分析器像語法分析器,不同的是它處理二維的由節(jié)點組成的抽象語法樹,而不是處理由標(biāo)記組成的流。它的語法類似于語法分析器類: { optional class code preamble }class YourLexerClass extends Lexer。這個預(yù)定義,如果它存在的話,將被直接輸出到生成類文件中,并且在類定義之前。根據(jù)選擇的目標(biāo)語言的不同,不同類型header節(jié)都是可能出現(xiàn)的。許多人喜歡我們用普通的括號來括住參數(shù),但是括號在EBNF中已經(jīng)被很好的用來定義語法組符號(grammatical grouping symbols)。在字符串和字符中的尖括號不是動作分隔符。a39。換句話說,在詞法分析器中的標(biāo)記引用將對當(dāng)作一個規(guī)則引用。 你可能想在你的動作中使用這些字符串常量的標(biāo)記的類型值,例如在錯誤處理器的同步部分。o39。(1 是 39。} )? { if (!eol) { if (LA(1)==EOF_CHAR) {error(EOF)。在語法分析器中是不被支持單引號的字符的。\f39。\b39?!。篖exer中定義的類型具體化,供Parser解析器調(diào)用?!∫?guī)則實例名:就象Java中“Strings;”的s一樣。一些具體的操作都在這里。與調(diào)試其他Java文件一樣,我們可以在語法文件的任意位置插入斷點:當(dāng)程序運(yùn)行至斷點之后,我們同樣可以像調(diào)試普通應(yīng)用程序一樣使用諸如“跳過”,“繼續(xù)”等Java應(yīng)用程序的Debug方式來進(jìn)行,十分的方便和順手。Enable debugging in grammar files39。 改進(jìn)了Debug功能,可以調(diào)試比較大的文法文件。l不過用“記事本或Editplus+命令行”或者干脆寫個ANT腳本也不是不可以,但是總覺得在集成化IDE滿天飛的時代用這個方式有點過于原始,幸好Placid System 為我們提供了一個Eclipse插件來使我們有機(jī)會直接走出原始社會。一旦要有所修改,就要重新編譯語法文件,生成新的Java代碼,不勝繁瑣。ANTLR規(guī)則(RULE)解析在ANTLR的語法文件中,一個規(guī)則的定義是與一個由ANTLR生成的Java源文件相對應(yīng)的。 你在這一部分所提供的內(nèi)容對于文件中的每個語法都是唯一的。2.然后,ANTLR將根據(jù)用戶提供的語法文件自動生成相應(yīng)的詞法/語法分析器。編譯的最終目的是將程序設(shè)計語言的高層指令翻譯成物力機(jī)器或虛擬機(jī)可以執(zhí)行的指令。比如,這些過程的注解都是用特倫斯標(biāo)記語言寫的。 它是這樣的一種工具,它可以接受文法語言描述,并能產(chǎn)生識別這些語言的語句的程序。作為翻譯程序的一部分,你可以使用簡單的操作符和動作來參數(shù)化你的文法,使之告訴ANTLR怎樣去創(chuàng)建抽象語法樹(AST)和怎樣產(chǎn)生輸出。而ANTLR則能來將文本(內(nèi)含一些額外的東西和轉(zhuǎn)換)轉(zhuǎn)化為HTML,PDF或者其他那些生成程序的文件格式。此法分析器的工作是分析量化那些本來毫無意義的字符流,將他們翻譯成離散的字符組(也就是一個一個的Token)括關(guān)鍵字,標(biāo)識符,符號(symbols)和操作符供語法分析器使用。用戶可以利用他們將輸入的文本進(jìn)行編譯,并轉(zhuǎn)換成其他形式(如AST—Abstract Syntax Tree,抽象的語法樹)。這一區(qū)域的內(nèi)容將出現(xiàn)在實際的類定義之前。1,2,3,4:正如你所看到的那樣,我們可以在一個規(guī)則定義中作與一個函數(shù)等價的所有事情。 ANTLR語法實例—SensorSQLSensorSQL是一個自定義的簡化版SQL語言,它所支持的語法定義這里就不詳細(xì)列出了,我只是給出查詢的示例:通常,編譯一個查詢的目的是要把它轉(zhuǎn)化成某種被查詢設(shè)備可以理解的形式。而且,一旦處理過程有誤,就要反復(fù)調(diào)試修改Antlr生成的代。下載地址為:。而在這之前,如果一個文法文件很大的話,ANTLR Studio就會拋出異常。注:以上資料均來于網(wǎng)絡(luò),鄙人收集整理?!《ntlr文法文件形式:  Antlr文件是*.g形式,即以g為后綴名。規(guī)則實例名用于在之后的JAVA語句中調(diào)用。:當(dāng)外部的()要調(diào)用當(dāng)前的類型或規(guī)則時要用到本文件。/**Match a factor */factor : ... 。, 39。, 39。文件結(jié)束標(biāo)志 EOF 標(biāo)記用語法分析器規(guī)則中自動生成: rule : (statement)+ EOF。} else {error(Invalid chars)。\uFFFF39。 39。對于只由字母字符組成的字符串常量來說,這個字符串常量的值將是一個形如LITERAL_xxx的常量值,這里xxx是這個標(biāo)記的名字。標(biāo)記定義 在詞法分析器中的標(biāo)記定義由和語法規(guī)則中相同的定義。..39。動作參數(shù) 在方括號中的字符序列是動作參數(shù)(可能是嵌套的)。符號 下面的表統(tǒng)計了在ANTLR中使用的標(biāo)點符號和關(guān)鍵字??锤髯缘母戒?。 封閉的尖括號不能用來分隔類,因為一個左尖括號在文件頂就很難跟蹤與之匹配的右括號在文件的時。optionstokens{ optional action for instance vars/methods }lexer rules...包含在詞法分析器中的詞法規(guī)則在產(chǎn)生的類中變成成員方法。樹分析器必須唯一指定給語法分析器,除非規(guī)則定義中包含特殊形式致使它遞歸下降到樹中。options {language = “Cpp”。首先是運(yùn)算符。NUM : (’0′..’9′)+ { $setType(INT)。mexpr : expr ( (MUL | DIV) expr )*。()。文法文件的語法簡介(轉(zhuǎn)自ANTLR中文手冊)本文只是簡單地介紹一個文法文件的語法,具體內(nèi)容可以參閱ANTLR的相關(guān)文檔。 id 39。 。139。// Other options}language選項的默認(rèn)值是“Java”。} : value=term ( PLUS x=term {value+=x。} )* 。} | TOK_TAN x = atom { value = tan (x)。(39。*39。039。939。^39。在該文法文件中,定義了一個分析器類ExprParser和一個詞法掃描器類Exp
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1