trconvert 0.14.2

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global trconvert --version 0.14.2
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local trconvert --version 0.14.2
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=trconvert&version=0.14.2
                    
nuke :add-package trconvert --version 0.14.2
                    

Reads a grammar from stdin and converts the grammar to Antlr version 4
syntax. This program is part of the Trash toolkit.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.23.18 276 5/13/2025
0.23.17 3,592 3/7/2025
0.23.16 507 3/4/2025
0.23.15 140 2/25/2025
0.23.14 654 2/9/2025
0.23.13 401 1/19/2025
0.23.12 414 1/16/2025
0.23.11 2,620 12/18/2024
0.23.10 125 12/12/2024
0.23.9 120 11/29/2024
0.23.8 163 11/1/2024
0.23.7 4,263 10/9/2024
0.23.6 770 9/21/2024
0.23.5 134 9/15/2024
0.23.4 137 9/7/2024
0.23.3 147 8/15/2024
0.23.2 154 6/28/2024
0.23.1 144 6/22/2024
0.23.0 213 4/25/2024
0.22.0 240 2/26/2024
0.21.16 308 11/16/2023
0.21.15 180 11/16/2023
0.21.14 226 11/15/2023
0.21.13 187 11/14/2023
0.21.12 299 10/27/2023
0.21.11 349 10/24/2023
0.21.9 318 9/27/2023
0.21.8 272 9/26/2023
0.21.7 295 9/26/2023
0.21.6 344 9/20/2023
0.21.5 297 9/18/2023
0.21.4 323 9/17/2023
0.21.3 327 9/14/2023
0.21.2 342 9/4/2023
0.21.1 427 8/15/2023
0.21.0 261 6/25/2023
0.20.27 249 6/15/2023
0.20.25 202 6/3/2023
0.20.24 258 6/1/2023
0.20.23 232 5/31/2023
0.20.22 256 5/21/2023
0.20.21 267 5/15/2023
0.20.20 242 5/11/2023
0.20.19 219 5/8/2023
0.20.18 305 5/8/2023
0.20.17 269 5/4/2023
0.20.16 252 5/1/2023
0.20.15 307 4/27/2023
0.20.14 304 4/21/2023
0.18.1 645 11/11/2022
0.18.0 561 11/7/2022
0.17.0 594 9/11/2022
0.16.5 673 7/29/2022
0.16.4 623 6/13/2022
0.16.3 670 5/7/2022
0.16.2 617 5/6/2022
0.16.1 616 5/5/2022
0.16.0 643 4/13/2022
0.15.1 676 4/4/2022
0.15.0 596 3/20/2022
0.14.3 635 2/27/2022
0.14.2 652 2/18/2022
0.14.1 692 1/26/2022
0.14.0 681 1/26/2022
0.13.8 641 1/14/2022
0.13.7 631 1/13/2022
0.13.6 647 1/13/2022
0.13.5 639 1/12/2022
0.13.4 632 1/11/2022
0.13.3 639 1/10/2022
0.13.2 459 12/24/2021
0.13.1 466 12/24/2021
0.13.0 453 12/23/2021
0.12.0 474 12/6/2021
0.11.5 595 10/17/2021
0.11.4 561 10/17/2021
0.11.3 483 9/28/2021
0.11.2 492 9/26/2021
0.11.1 540 9/25/2021
0.11.0 527 9/24/2021
0.10.0 485 9/9/2021
0.8.9 484 8/13/2021
0.8.8 543 8/5/2021
0.8.7 516 7/20/2021
0.8.6 499 7/13/2021
0.8.5 486 7/6/2021
0.8.4 475 6/24/2021
0.8.3 566 6/13/2021
0.8.2 503 6/8/2021
0.8.1 513 6/2/2021
0.8.0 468 5/27/2021
0.7.0 490 5/10/2021
0.6.0 444 5/3/2021
0.5.5 502 4/22/2021

# Trconvert
Reads a grammar from stdin and converts the grammar to/from Antlr version 4
syntax. The original grammar must be for a supported type (Antlr2, Antlr3,
Bison, W3C EBNF, Lark). The input and output are Parse Tree Data.
# Usage
trconvert [-t <type>]
# Details
This command converts a grammar from one type to another. Most
conversions will handle only simple syntax differences. More complicated
scenarios are supported depending on the source and target grammar types.
For example, Bison is converted to Antlr4, but the reverse is not
implemented yet.
`trconvert` takes an option target type. If it is not used, the default
is to convert the input of whatever type to Antlr4 syntax. The output
of `trconvert` is a parse tree containing the converted grammar.
# Examples
_Conversion of Antlr4 Abnf to Lark Abnf_
grammar Abnf;
rulelist : rule_* EOF ;
rule_ : ID '=' '/'? elements ;
elements : alternation ;
alternation : concatenation ( '/' concatenation )* ;
concatenation : repetition + ;
repetition : repeat_? element ;
repeat_ : INT | ( INT? '*' INT? ) ;
element : ID | group | option | STRING | NumberValue | ProseValue ;
group : '(' alternation ')' ;
option : '[' alternation ']' ;
NumberValue : '%' ( BinaryValue | DecimalValue | HexValue ) ;
fragment BinaryValue : 'b' BIT+ ( ( '.' BIT+ )+ | ( '-' BIT+ ) )? ;
fragment DecimalValue : 'd' DIGIT+ ( ( '.' DIGIT+ )+ | ( '-' DIGIT+ ) )? ;
fragment HexValue : 'x' HEX_DIGIT+ ( ( '.' HEX_DIGIT+ )+ | ( '-' HEX_DIGIT+ ) )? ;
ProseValue : '<' ( ~ '>' )* '>' ;
ID : LETTER ( LETTER | DIGIT | '-' )* ;
INT : '0' .. '9'+ ;
COMMENT : ';' ~ ( '\n' | '\r' )* '\r'? '\n' -> channel ( HIDDEN ) ;
WS : ( ' ' | '\t' | '\r' | '\n' ) -> channel ( HIDDEN ) ;
STRING : ( '%s' | '%i' )? '"' ( ~ '"' )* '"' ;
fragment LETTER : 'a' .. 'z' | 'A' .. 'Z' ;
fragment BIT : '0' .. '1' ;
fragment DIGIT : '0' .. '9' ;
fragment HEX_DIGIT : ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ;
_Command_
trparse Abnf.g4 | trconvert -t lark | trprint > Abnf.lark
_Output_
rulelist :  rule_ * EOF
rule_ :  ID "=" "/" ? elements
elements :  alternation
alternation :  concatenation ( "/" concatenation ) *
concatenation :  repetition +
repetition :  repeat_ ? element
repeat_ :  INT | ( INT ? "*" INT ? )
element :  ID | group | option | STRING | NUMBERVALUE | PROSEVALUE
group :  "(" alternation ")"
option :  "[" alternation "]"
NUMBERVALUE :  "%" ( BINARYVALUE | DECIMALVALUE | HEXVALUE )
BINARYVALUE :  "b" BIT + ( ( "." BIT + ) + | ( "-" BIT + ) ) ?
DECIMALVALUE :  "d" DIGIT + ( ( "." DIGIT + ) + | ( "-" DIGIT + ) ) ?
HEXVALUE :  "x" HEX_DIGIT + ( ( "." HEX_DIGIT + ) + | ( "-" HEX_DIGIT + ) ) ?
PROSEVALUE :  "<" ( /(?!>)/ ) * ">"
ID :  LETTER ( LETTER | DIGIT | "-" ) *
INT :  "0" .. "9" +
COMMENT :  ";" /(?!\n|\r)/ * "\r" ? "\n"
WS :  ( " " | "\t" | "\r" | "\n" )
STRING :  ( "%s" | "%i" ) ? "\"" ( /(?!")/ ) * "\""
LETTER :  "a" .. "z" | "A" .. "Z"
BIT :  "0" .. "1"
DIGIT :  "0" .. "9"
HEX_DIGIT :  ( "0" .. "9" | "a" .. "f" | "A" .. "F" )
%ignore COMMENT
%ignore WS
# Current version
0.14.2 -- updates to trxgrep.