<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                PLY包含兩個獨立的模塊:`lex.py`和`yacc.py`,都定義在ply包下。lex.py模塊用來將輸入字符通過一系列的正則表達式分解成標記序列,yacc.py通過一些上下文無關的文法來識別編程語言語法。yacc.py使用LR解析法,并使用LALR(1)算法(默認)或者SLR算法生成分析表。 這兩個工具是為了一起工作的。lex.py通過向外部提供`token()`方法作為接口,方法每次會從輸入中返回下一個有效的標記。yacc.py將會不斷的調用這個方法來獲取標記并匹配語法規則。yacc.py的的功能通常是生成抽象語法樹(`AST`),不過,這完全取決于用戶,如果需要,yacc.py可以直接用來完成簡單的翻譯。 就像相應的unix工具,yacc.py提供了大多數你期望的特性,其中包括:豐富的錯誤檢查、語法驗證、支持空產生式、錯誤的標記、通過優先級規則解決二義性。事實上,傳統yacc能夠做到的PLY都應該支持。 yacc.py與Unix下的yacc的主要不同之處在于,yacc.py沒有包含一個獨立的代碼生成器,而是在PLY中依賴反射來構建詞法分析器和語法解析器。不像傳統的lex/yacc工具需要一個獨立的輸入文件,并將之轉化成一個源文件,Python程序必須是一個可直接可用的程序,這意味著不能有額外的源文件和特殊的創建步驟(像是那種執行yacc命令來生成Python代碼)。又由于生成分析表開銷較大,PLY會緩存生成的分析表,并將它們保存在獨立的文件中,除非源文件有變化,會重新生成分析表,否則將從緩存中直接讀取。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看