Skip to main content
Any Framework

Replace a sequence of symbols on the RHS of a rule with the rule LHS symbol. This program is part of the Trash toolkit.

NuGetCompare
Published
Nov 16, 2023
2y ago
Total Downloads
97.6K
97,600

Install

dotnet add package trfoldlit --version 0.21.16

No framework information available.

README

trfoldlit

Summary

Perform fold transform on grammar with literals

Description

Reads a parse tree from stdin, replaces a string literals on the RHS of a rule with the lexer rule LHS symbol, and writes the modified parsing result set to stdout. The input and output are Parse Tree Data.

Usage

trfoldlit

Examples

Before:

grammar Expression;
e : e ('*' | '/') e
  | e ('+' | '-') e
  | '(' e ')'
  | ('-' | '+')* a
  ;
a : INT ;
INT : ('0' .. '9')+ ;
MUL : '*' ;
DIV : '/' ;
ADD : '+' ;
SUB : '-' ;
LP : '(' ;
RP : ')' ;
WS : [ \r\n\t] + -> skip ;

Command:

trparse Expression.g4 | trfoldlit | trsponge -c

After:

grammar Expression;
e : e (MUL | DIV) e
  | e (ADD | SUB) e
  | LP e RP
  | (SUB | ADD)* a
  ;
a : INT ;
INT : ('0' .. '9')+ ;
MUL : '*' ;
DIV : '/' ;
ADD : '+' ;
SUB : '-' ;
LP : '(' ;
RP : ')' ;
WS : [ \r\n\t] + -> skip ;

Notes

If you are running MSYS2 on Windows, you may notice that XPaths are not being processed by this command correctly. To avoid the Bash shell from altering XPaths, type export MSYS2_ARG_CONV_EXCL="*", then execute your command.

Current version

0.21.16 Add trglob for platform-independent "find" for testing. Add Antlr4ng target, a new Antlr4 tool and TypeScript runtime. Update templates.

Changes from Previous Version

No structural changes between v0.21.15 and v0.21.16.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.