antlr4-helper
TypeScript icon, indicating that this package has built-in type declarations

1.0.56 • Public • Published

Antlr4 Helper

Overview

The goal of this project is to provided classes and interfaces that assist with the interaction of Antlr parsers. Making things like language manipulation and analysis much easier.

Getting Started

npm install -S antlr4-helper

Antlr4 Helper Documentation

Documentation (Click Here)

JavaScript Examples

Parsing Text

const antlrHelper = require('antlr4-helper');
const TinycLexer = require('./parser/TinycLexer').TinycLexer;
const TinycParser = require('./parser/TinycParser').TinycParser;
 
 
const factory = antlrHelper.createFactoryBuilder()
    .lexer((input) => new TinycLexer(input))
    .parser(tokenStream => new TinycParser(tokenStream))
    .rootRule((parser) => parser.program())
    .build();
 
const parser = antlrHelper.createParser(factory);
parser.parse('variable = 100;');
parser.checkForErrors();
 
//
// Find only variables
//
parser.filter((rule) => rule.getName() === 'id')
    .forEach((rule) => {
        const ruleName = rule.getName();
        console.log(ruleName); // id
        console.log(rule.getText()); // variable
    });

Changing Parsed Text

const antlrHelper = require('antlr4-helper');
const TinycLexer = require('./parser/TinycLexer').TinycLexer;
const TinycParser = require('./parser/TinycParser').TinycParser;
 
const factory = antlrHelper.createFactoryBuilder()
    .lexer((input) => new TinycLexer(input))
    .parser(tokenStream => new TinycParser(tokenStream))
    .rootRule((parser) => parser.program())
    .build();
 
const parser = antlrHelper.createParser(factory);
parser.parse('a = 10;');
parser.checkForErrors(); // No parse errors
 
//
// Find the first rule
//
const rule = parser.findRuleByName('id');
 
rule.setText('var');
console.log("The changed text:");
console.log(parser.getText()); //var = 10;
 
console.log("The replaced variable:");
const varName = rule.getText();
console.log(varName); //var;

/antlr4-helper/

    Package Sidebar

    Install

    npm i antlr4-helper

    Weekly Downloads

    85

    Version

    1.0.56

    License

    ISC

    Unpacked Size

    476 kB

    Total Files

    111

    Last publish

    Collaborators

    • mcchatman8009