ANTLR 是一個用來將剖析語法轉換成語言的工具,如果你接觸過 lex/yacc 的話,就可以很容易瞭解. 這裡有一篇相當簡單的 Introduction . Step by step, 就可以做出一個計算運算式的小程式. 可是,產生出來的程式語言卻是 java, 如果要改用 c# 呢?? 依照官方的說明, ANTLR 可以產出三種語言: C++, Java, c#. 所以該怎麼產生呢??需不需要另外寫甚麼?? 官方網站同樣也提供了這麼一篇: Notes for using the ANTLR C# Code Generator . 這裡我們以 Introduction 裡面所提供的範例來作為例子,將他命名為 "expr.g.txt": class ExprParser extends Parser; expr returns [int value=0] {int x;} : value=mexpr ( PLUS x=mexpr {value += x;} | MINUS x=mexpr {value -= x;} )* ; mexpr returns [int value=0] {int x;} : value=atom ( STAR x=atom {value *= x;} )* ; atom returns [int value=0] : i:INT {value=Integer.parseInt(i.getText());} | LPAREN value=expr RPAREN ; class ExprLexer extends Lexer; options { k=2; // needed for newline junk charVocabulary='\u0000'..'\u007F'; // allow ascii } LPAREN: '(' ; RPAREN: ')' ; PLUS : '+' ; MINUS : '-' ; STAR : '*' ; INT : (...
留言
在百忙之中打擾您,我是 點部落 團隊的 Dotjum,
我們 點部落 http://www.dotblogs.com.tw 是一個 IT技術知識交流的園地,
我們希望讓每一位分享知識的朋友,透過 點部落 平台,將大家的知識與經驗收集起來,讓更多人都可以更容易的找到,
並且藉由回覆的討論方式,讓同樣領域的朋友可以給予肯定或是不同的看法及建議。
目前 點部落 提供許多功能,讓您在分享知識更方便,更容易的收藏您的知識,
像是 由您決定文章是否顯示網站特別主題首頁、離線編輯 (讓你圖文上稿更輕鬆)
訂閱關注主題討論 、技術主題團隊、文章附檔案 、個人標籤分類及尋找 、收藏文章 等等。
您可以透過 離線編輯 在撰寫原有 Blog 平台 (Xuite、樂多、天空、Blogspot、Live Space...等 ),
也同時能夠透過 Zoundry、Windows Live Writer 等 Blog 離線編輯軟體將文章發表至 點部落 。
目前在 點部落 上,陸陸續續有許多的朋友加入,
像是 瓶水相逢.Net 、 馬小玲 、孤影棧分舵 、強力鎯頭 VB BLOG 、強力鎯頭 VB BLOG、偉碩
AllenKuo、Angi、jeff377、puma、topcat、HUNGCHILIN的OFFICE專欄、Arashi的OFFICE專欄 等..目前都在 點部落 上。
我們希望創造出更好的IT知識技術分享環境,也成為每一個人的線上知識庫。
希望能邀請您一同建立專屬於IT技術的園地。
誠摯的邀請您參與 點部落 。
點部落團隊 Dotjum
完整HTML邀請函連結 http://www.dotblogs.com.tw/invitation.aspx