grammar

    5熱度

    2回答

    什麼是最簡單(最短,最少規則,沒有警告)的方式來解析同一語法中的有效日期和數字?我的問題是,匹配有效月份(1-12)的詞法分析規則將匹配任何1-12的匹配項。所以,如果我只是想匹配一個數字,我需要一個像解析規則: number: (MONTH|INT); 它只有當我添加詞法規則一天和一年變得更加複雜。我想這樣的日期解析規則: date: month '/' day ('/' year)? ->

    2熱度

    2回答

    我必須定義文件的語法,如下所示。 //示例文件 NameCount = 4 名稱=一個 名稱= B 名稱= C 名稱= d //文件結束 現在我能定義令牌NameCount和名稱。但是我必須定義文件結構,包括令牌的有效數量名稱,這是NameCount之後的值。我有解析的值並將其轉換爲整數並存儲在全局語法範圍的變量中(例如,在變量nc中)。 如何在語法中定義那個名稱應該重複一下nc次?

    0熱度

    2回答

    我正在使用ANTLRWorks創建ANTLR語法。我有一個有效的語法,也生成解析器和詞法分析器源文件。我也試着調試生成的代碼,輸出和調試器輸出一樣。 但是,當我嘗試調用調試器沒有產生__Test__類是在控制檯上來。我已經正確設置了類路徑,因爲我可以用相同的類路徑成功編譯__Test__.java。 會出現什麼問題?是否有任何清晰的教程,用antlr和antlrworks編寫和編譯示例解析器?

    28熱度

    6回答

    我需要一個完整的Object Pascal語法(最好是Delphi 2009)。某些語法由幫助文件給出,但並非提供所有信息。所以我開始收集一些信息。最近我將這些添加到或多或少完整的語法描述(EBNF like)中。 雖然它看起來很廣泛,但仍然存在缺陷,我相信部件丟失(特別是在.NET語法中)。所以我正在問SO SO德爾福社區。你有任何信息,或者你能糾正錯誤嗎?作爲回報,我向社區提供完整的語法。它可

    10熱度

    6回答

    我在理解轉換/減少關於語法的轉換/減少的問題時遇到了問題,我知道它沒有含糊之處。這種情況是if類型之一,但它不是'懸而未決'的問題,因爲我有強制性的END子句分隔代碼塊。 這裏是GPPG語法(它是一種野牛一樣編譯器編譯...這不是一個回聲): %output=program.cs %start program %token FOR %token END %token THINGS %

    0熱度

    1回答

    我正在編譯器實現上工作並希望檢查是否已達到文件末尾? 我知道這可以在lex文件中使用yywrap()函數來完成,但需求是我們希望如果EOF明確定義爲十六進制值0x1a,那麼我們如何引用它。 實施例: 主() { 的printf( 「檢查EOF標記\ n」); '0x1a'< - 實際的EOF標記。 我想上述不是一個語法錯誤,但要報告爲錯誤 不平衡的括號,或者是錯誤地定義。 以上可以完成嗎?我的要求

    21熱度

    11回答

    有沒有一個名稱的意思是「不是一個單身人士」?

    2熱度

    1回答

    我需要解析包含時間跨度的字符串,如: 週四6:30-7:30 AM 2009年12月30日 - 2010 1月1日1/15/09,7:30到8:30 PM 週四,從6:30到7:30 AM 和其他... 添加 6:30到7:30 和日期/時間等幾乎所有案件Word的插入 - >日期產生 至於我會感到非常驚訝如果有任何內容涵蓋了我需要覆蓋的所有情況,我正在尋找語法。

    16熱度

    8回答

    我想教自己Ruby的Treetop語法生成器。我發現,文檔不僅僅是對於那些「最好」的文檔而言是稀少的,但它似乎並不像我希望的那樣直觀。 從更高的層面來看,如果有的話,我真的會喜歡比現場文檔或視頻更好的教程。 在一個較低的水平,這裏有一個語法我不能在所有的工作: grammar SimpleTest rule num (float/integer) end

    23熱度

    2回答

    Ometa是「一種新的面向對象的模式匹配語言」。我在Oz工具等語言中遇到了模式匹配,以便在之前解析像Lexx/Yacc或Pyparsing這樣的語法。儘管查看示例代碼,閱讀討論以及與朋友交談,但我仍然無法真正瞭解Ometa的特色(或者至少爲什麼有些人認爲它)。任何解釋?