<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java parser

    文檔

    java parser

    Java Parser是基于JavaCC作為Java語言詞法解析的工具,支持Java語言生成AST,AST結構允許以一種簡單的編程方式使用Java代碼,它提供了一種方便的機制,可以使用我們稱為“訪客支持”的功能來導航樹。
    推薦度:
    導讀Java Parser是基于JavaCC作為Java語言詞法解析的工具,支持Java語言生成AST,AST結構允許以一種簡單的編程方式使用Java代碼,它提供了一種方便的機制,可以使用我們稱為“訪客支持”的功能來導航樹。

    java parser是什么,讓我們一起了解一下?

    Java Parser是基于JavaCC作為Java語言詞法解析的工具,支持Java語言生成AST(Abstract Syntax Tree抽象語法樹),在AST基礎上進行類型推斷分析,支持修改AST從而生成新的Java文件內容,支持從Java 1.0到14所有的版本的AST解析。

    AST結構允許以一種簡單的編程方式使用Java代碼。可以專門操作Java文件,使用起來也更簡單。它提供了一種方便的機制,可以使用我們稱為“訪客支持”的功能來導航樹。這使開發人員能夠專注于在源代碼中識別有趣的模式,而不必編寫費力的樹遍歷代碼。該庫的最終主要功能是能夠操縱源代碼的基礎結構。然后可以將其寫入文件,為開發人員提供構建自己的代碼生成軟件的便利。

    那么我們使用JavaParser theere時,總是希望進行很多操作。

    例如,我們希望對整個項目進行操作,因此在給定目錄的情況下,我們將探索所有Java文件。 此類應有助于完成此任務:

    package?me.tomassetti.support;
    import?java.io.File;
    public?class?DirExplorer?{
    public?interface?FileHandler?{
    void?handle(int?level,?String?path,?File?file);
    }
    public?interface?Filter?{
    boolean?interested(int?level,?String?path,?File?file);
    }
    private?FileHandler?fileHandler;
    private?Filter?filter;
    public?DirExplorer(Filter?filter,?FileHandler?fileHandler)?{
    this.filter?=?filter;
    this.fileHandler?=?fileHandler;
    }
    public?void?explore(File?root)?{
    explore(0,?"",?root);
    }
    private?void?explore(int?level,?String?path,?File?file)?{
    if?(file.isDirectory())?{
    for?(File?child?:?file.listFiles())?{
    explore(level?+?1,?path?+?"/"?+?child.getName(),?child);
    }
    }?else?{
    if?(filter.interested(level,?path,?file))?{
    fileHandler.handle(level,?path,?file);
    }
    }
    }
    }

    對于每個Java文件,我們首先要為每個Java文件構建一個抽象語法樹(AST),然后對其進行導航。 這樣做有兩種主要策略:

    1、使用訪客:要在特定類型的AST節點上進行操作時,這是正確的策略。

    2、使用遞歸迭代器:這允許處理所有類型的節點。

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java parser

    Java Parser是基于JavaCC作為Java語言詞法解析的工具,支持Java語言生成AST,AST結構允許以一種簡單的編程方式使用Java代碼,它提供了一種方便的機制,可以使用我們稱為“訪客支持”的功能來導航樹。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java request java partial java requests java rest java result java resultset java resume java retrofit java reverse() java reverse java rotate java rsa加密 java path java paypal java phoenix java ping java pipeline java rsa公鑰加密 java rsa私鑰加密 java rtp java repeat java parse java pandas java override java render java region java require java resolve java resources java overload java outofmemory java outer java orm java openssl java regex java reflect java reference java redirect java rectangle java openjdk
    Top 久久一本精品久久精品66| 青青草国产精品久久| 国产精品兄妹在线观看麻豆| 国产人妻人伦精品1国产盗摄 | 欧洲精品无码成人久久久| 亚洲精品乱码久久久久久按摩| 在线视频日韩精品| 2022国产成人福利精品视频| 亚洲精品制服丝袜四区| 国产精品久久亚洲不卡动漫| 人妻无码久久精品| 久久精品免费一区二区喷潮 | 日韩精品成人亚洲专区| 国产精品久久久久久五月尺| 久久久国产乱子伦精品作者| 国产精品一区二区三区高清在线| 精品国产乱子伦一区二区三区 | 2021国产精品久久| 亚洲性日韩精品国产一区二区| 国产精品videossexohd| 久久精品国产半推半就| 久久精品国产清自在天天线| 精品国产专区91在线尤物| 精品少妇人妻av无码久久| 国产成人无码精品一区在线观看 | 国产成人高清精品一区二区三区| 无码人妻精品一区二区三区9厂| 精品久久久久香蕉网| 91精品国产一区二区三区左线| 无码国产乱人伦偷精品视频| 亚洲一区无码精品色| 国产成人精品无码专区| 日本精品一区二区在线播放| 99精品全国免费观看视频| 久久这里只精品99re66| 亚洲精品一二三区| 无码人妻精品一区二区三区蜜桃| 国产大片91精品免费观看不卡| 精品国产乱码久久久久久呢| 国产cosplay精品视频| 久这里只精品99re66|