<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 精品视频在线观看一区二区| 亚洲国产精品午夜电影| 牛牛本精品99久久精品| 久久久999国产精品| 青娱乐精品视频在线观看| 精品国精品无码自拍自在线| 久久99亚洲综合精品首页| 国产精品白丝喷水在线观看者相 | 夜精品a一区二区三区| 久久精品国产亚洲AV麻豆王友容 | 91在线老王精品免费播放| 久久91精品综合国产首页| 精品国产一区二区二三区在线观看 | 亚洲精品美女久久久久| 7777精品久久久大香线蕉| 国产午夜亚洲精品不卡免下载| 精品一区高潮喷吹在线播放| 精品亚洲综合在线第一区| 国产精品自在在线午夜福利| 精品久久久久久久无码久中文字幕 | 精品视频无码一区二区三区| 国产精品一区二区av| 亚洲精品麻豆av| 国产精品无码无片在线观看3D| 日本尤物精品视频在线看| 久久丫精品国产亚洲av| 人妻少妇无码精品视频区| 亚洲国产精品综合久久网络 | 99热在线精品观看| 国产成人无码精品久久久性色| 亚洲国产精品13p| 国产在线麻豆精品观看| 99亚洲乱人伦aⅴ精品| 窝窝午夜看片成人精品| 亚洲精品福利网泷泽萝拉| 久9热免费精品视频在线观看| 精品免费视在线观看| 中文字幕日韩精品在线| 国产亚洲精品成人a v小说| 亚洲精品tv久久久久| 亚洲精品成人网久久久久久 |