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

正文內(nèi)容

antlr簡介及中文手冊-wenkub.com

2025-06-26 08:22 本頁面
   

【正文】 cout The Result is : x endl。 ExprLexer lexer(from)。 x = ()。指定輸入方式include include include iostreamusing namespace std。ANTLR會為兩個類分別生成頭文件和實現(xiàn)文件。 ) {$setType(ANTLR_USE_NAMESPACE(antlr)Token::SKIP)。 // white spaceWS : ( 39。TOK_COS :cos。)*)?。(39。..39。..39。SLASH :39。MINUS :39。RPAREN :39。options{ k=1。} | LPAREN value=expr RPAREN 。} : i:NUM { value=atof((igetText()).c_str())。 factor returns [double value =0 ]{double x。 } term returns [double value=0]{double x。} | MINUS x=term{value=x。編寫文法文件header{include include include } options{ language=Cpp。如果您希望生成的程序是C的,將language設(shè)為“Csharp”就可以了。需要注意的一點是:規(guī)則的名字必須是小寫字母開始,而token的名字則必須是大寫字母開始。..39。..39。其意義是:一條賦值語句是由一個id、一個等號、一個表達式和一個分號順序組成的。=39。文法文件一般包括header塊、options塊、文法分析器類(parser)及規(guī)則定義、詞法分掃描器類(lexer)及token定義。文法文件是ANTLR的核心,是程序員和ANTLR進行交流的接口。} catch (exception amp。using namespace antlr。expr : INT| REAL| LPAREN statement RPAREN。)WS : (’ ‘| ‘\t’| ‘\n’| ‘\r’)+{$setType(ANTLR_USE_NAMESPACE(antlr)Token::SKIP)。 } (’.’ (’0′..’9′)+ { $setType(REAL)。LPAREN : ‘(’ 。PLUS : ‘+’。CalcParser是我們的計算器的語法解析類,繼承ANTLR里的Parser類。}class CalcParser extends Parser。計算器及文法文件06通訊軟件 06382027 鄭毅本文主要介紹了利用ANTLR達到計算器需求以及利用ANTLR生成C++描述的分析程序。同樣,一個特定的語法文件(.g)中僅僅包含一個樹分析器。你可以定義一個詞法分析器的超類,它可以被用來作為產(chǎn)生的詞法分析器的超類。每個語法文件(.g)只包含一個詞法分析器。詞法分析器類定義 一個語法分析器類將導致一個知道如何根據(jù)輸入流的標記來應用語法結(jié)構(gòu)的語法分析器對象。相反,一個語法分析器類假定是連續(xù)的,知道碰到下一個類的語句。在C中,類將導致生成一個結(jié)構(gòu),一些名字混淆(namemangling)算法將用在上面使最終的規(guī)則函數(shù)是全局唯一的。 語法分析器類定義 所有的語法規(guī)則必須和一個語法分析器關(guān)聯(lián)。一個header節(jié)看起來像下面這樣:header { source code in the language generated by ANTLR。 符號 描述 (...) 子規(guī)則 (...)* 閉包子規(guī)則(零和多個) (...)+ 正閉包子規(guī)則(一個和多個) (...)? 可選(零個和一個) {...} 語義動作 [...] 規(guī)則參數(shù) {...}? 語義謂詞 (...)= 語法謂詞 | 可選符 .. 范圍符 ~ 非 . 通配符 = 賦值 : 標號符, 規(guī)則開始 。// pass 2 args, get returntestcblock{int y。在字符串和字符中的方括號不是動作分隔符。詞法規(guī)則不能引用語法規(guī)則。z39。class MyLexer extends Lexer。但是當做標記而不是語法規(guī)則。在語法分析器規(guī)則中一個標記引用將導致匹配特定的標記。例如,文字“return”將有一個LITERAL_return值與之關(guān)聯(lián)。ANTLR將針對字符常量表來產(chǎn)生代碼檢測每個標記中的文本,在手動關(guān)掉語法分析器對該標記的處理之前獲得一個匹配時,會改變標記的類型。r39。f39。). 字符串字符串常數(shù)一個由雙引號括起來的一系列字符。文件結(jié)束條件是一個位比特。} } } 。\r39。你可以在詞法分析器規(guī)則的動作中檢測EOF_CHAR符號:// make sure nothing but newline or// EOF is past the endifENDIF{ boolean eol=false。)。\39。\n39。\r39。\uFF0039。字符集 字符常數(shù)像Java中那樣被確定。在語法類和規(guī)則中,Java風格的文檔注釋也是可以接受的,在需要的時候,這些注釋可以被傳遞給生成的輸出文件。四、執(zhí)行 編寫Main類.*; classMain{publicstaticvoidmain(String[]args){ try{ Llexer=newL(newDataInputStream()); Pparser=newP(lexer); (); }catch(Exceptione){(exception: e); }執(zhí)行 c:\javac*.java c:\javaMainTerence^ZHithere,Terencec:\元語言詞匯表空格定義 空格,tab符號和換行符號在ANTLR分隔諸如標識符這樣的詞匯符號時作為分隔符。三、生成Java類  配置環(huán)境變量:classpath=.;x:\jdk\lib\;x:\:  會在當前目錄下生成如下文件::Lexer文法分析器java類?!☆愋兔蛞?guī)則名:可以是在Lexer中定義的類型名,也可以是Parser中定義的規(guī)則名。如本例中的類型名NEWLINE出現(xiàn)在NEW的匹配規(guī)則中?! ±纾骸 lass P extends Parser; start Rule ?。簄:NAME {(Hithere, ());}??; class L extends Lexer;  //oneormorelettersfollowedbyanewline NAME:(’a’……’z’|’A’……’Z’) NEWLINE??; NEWLINE :’\r’’\n’//DOS  |’\n’//UNIX??;具體成分分析: 總體結(jié)構(gòu)   ClassPextendsParser ClassLextendsLexer 兩行同JAVA繼承一樣,P繼承Parse
點擊復制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1