Nearsighted Paramecium Multiverse

    java-parser
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.2 • Public • Published

    npm

    java-parser

    A Java Parser implemented in JavaScript using the Chevrotain Parsing ToolKit. It outputs a Concrete Syntax Tree, rather than an Abstract Syntax Tree.

    Currently the main focus of this project is to be used in implementing a prettier Java plugin. But it could also be used as the basis for other Java related tools in the JavaScript ecosystem.

    Installation

    npm install java-parser --save-dev

    or

    yarn add java-parser --dev

    Usage

    Parsing

    const { parse } = require("java-parser");
    const javaText = `
    public class HelloWorldExample{
      public static void main(String args[]){
        System.out.println("Hello World !");
      }
    }
    `;
    
    const cst = parse(javaText);
    // explore the CST

    Traversing the CST

    See relevant Chevrotain documentation on CST Traversal.

    const {
      BaseJavaCstVisitor,
      BaseJavaCstVisitorWithDefaults
    } = require("java-parser");
    
    // Use "BaseJavaCstVisitor" if you need to implement all the visitor methods yourself.
    class LambdaArrowsPositionCollector extends BaseJavaCstVisitorWithDefaults {
      constructor() {
        super();
        this.customResult = [];
        this.validateVisitor();
      }
    
      lambdaExpression(ctx) {
        // Collects all the starting offsets of lambda arrows in lambdas with short (no parenthesis)
        // single argument lists: e.g:
        // - n -> n*n (will be collected)
        // - (n) -> n*n (not collected)
        if (ctx.lambdaParameters[0].children.Identifier) {
          this.customResult.push(ctx.Arrow[0].startOffset);
        }
      }
    }
    
    const lambdaArrowsCollector = new LambdaArrowsPositionCollector();
    // The CST result from the previous code snippet
    lambdaArrowsCollector.visit(cst);
    lambdaArrowsCollector.customResult.forEach(arrowOffset => {
      console.log(arrowOffset);
    });

    Keywords

    none

    Install

    npm i java-parser

    DownloadsWeekly Downloads

    93,900

    Version

    2.0.2

    License

    Apache-2.0

    Unpacked Size

    279 kB

    Total Files

    20

    Last publish

    Collaborators

    • thorbenvh8
    • jdubois
    • deepu105
    • bd82
    • pascalgrimaud
    • cdessoude