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;

Package Sidebar

Install

npm i antlr4-helper

Weekly Downloads

2

Version

1.0.56

License

ISC

Unpacked Size

476 kB

Total Files

111

Last publish

Collaborators

  • mcchatman8009