trconvert 0.8.7

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global trconvert --version 0.8.7
                    
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.8.7
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=trconvert&version=0.8.7
                    
nuke :add-package trconvert --version 0.8.7
                    

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.22 0 6/27/2025
0.23.21 681 6/6/2025
0.23.20 193 6/4/2025
0.23.19 172 6/4/2025
0.23.18 865 5/13/2025
0.23.17 3,890 3/7/2025
0.23.16 514 3/4/2025
0.23.15 147 2/25/2025
0.23.14 664 2/9/2025
0.23.13 410 1/19/2025
0.23.12 422 1/16/2025
0.23.11 2,628 12/18/2024
0.23.10 137 12/12/2024
0.23.9 127 11/29/2024
0.23.8 168 11/1/2024
0.23.7 4,273 10/9/2024
0.23.6 778 9/21/2024
0.23.5 139 9/15/2024
0.23.4 144 9/7/2024
0.23.3 153 8/15/2024
0.23.2 158 6/28/2024
0.23.1 151 6/22/2024
0.23.0 223 4/25/2024
0.22.0 243 2/26/2024
0.21.16 311 11/16/2023
0.21.15 184 11/16/2023
0.21.14 227 11/15/2023
0.21.13 190 11/14/2023
0.21.12 301 10/27/2023
0.21.11 355 10/24/2023
0.21.9 328 9/27/2023
0.21.8 278 9/26/2023
0.21.7 301 9/26/2023
0.21.6 349 9/20/2023
0.21.5 303 9/18/2023
0.21.4 329 9/17/2023
0.21.3 329 9/14/2023
0.21.2 345 9/4/2023
0.21.1 433 8/15/2023
0.21.0 266 6/25/2023
0.20.27 256 6/15/2023
0.20.25 208 6/3/2023
0.20.24 263 6/1/2023
0.20.23 241 5/31/2023
0.20.22 260 5/21/2023
0.20.21 276 5/15/2023
0.20.20 246 5/11/2023
0.20.19 227 5/8/2023
0.20.18 312 5/8/2023
0.20.17 275 5/4/2023
0.20.16 267 5/1/2023
0.20.15 315 4/27/2023
0.20.14 312 4/21/2023
0.18.1 650 11/11/2022
0.18.0 567 11/7/2022
0.17.0 597 9/11/2022
0.16.5 679 7/29/2022
0.16.4 633 6/13/2022
0.16.3 681 5/7/2022
0.16.2 624 5/6/2022
0.16.1 625 5/5/2022
0.16.0 652 4/13/2022
0.15.1 686 4/4/2022
0.15.0 603 3/20/2022
0.14.3 650 2/27/2022
0.14.2 659 2/18/2022
0.14.1 703 1/26/2022
0.14.0 692 1/26/2022
0.13.8 648 1/14/2022
0.13.7 640 1/13/2022
0.13.6 658 1/13/2022
0.13.5 647 1/12/2022
0.13.4 642 1/11/2022
0.13.3 650 1/10/2022
0.13.2 468 12/24/2021
0.13.1 480 12/24/2021
0.13.0 463 12/23/2021
0.12.0 489 12/6/2021
0.11.5 604 10/17/2021
0.11.4 569 10/17/2021
0.11.3 496 9/28/2021
0.11.2 504 9/26/2021
0.11.1 559 9/25/2021
0.11.0 538 9/24/2021
0.10.0 495 9/9/2021
0.8.9 493 8/13/2021
0.8.8 558 8/5/2021
0.8.7 524 7/20/2021
0.8.6 509 7/13/2021
0.8.5 494 7/6/2021
0.8.4 482 6/24/2021
0.8.3 577 6/13/2021
0.8.2 515 6/8/2021
0.8.1 525 6/2/2021
0.8.0 480 5/27/2021
0.7.0 498 5/10/2021
0.6.0 452 5/3/2021
0.5.5 514 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.8.7 -- Updated trparse for Linux.