You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2023/09/11 12:08:00 UTC

[jira] [Commented] (AVRO-3403) Migrate from JavaCC to ANTLR

    [ https://issues.apache.org/jira/browse/AVRO-3403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17763681#comment-17763681 ] 

ASF subversion and git services commented on AVRO-3403:
-------------------------------------------------------

Commit cae0cb1ad70543a023471b30349368c65b079d3c in avro's branch refs/heads/master from Oscar Westra van Holthe - Kind
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=cae0cb1ad ]

AVRO-3403: Create and use ANTLR to parse IDL files (#1588)

This large change encompasses a new avro-idl module, a shared ANTLR
grammar to allow implementations in other languages, and uses (copies
of) all existing IDL tests.

> Migrate from JavaCC to ANTLR
> ----------------------------
>
>                 Key: AVRO-3403
>                 URL: https://issues.apache.org/jira/browse/AVRO-3403
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: build, dependencies, java, tools
>            Reporter: Oscar Westra van Holthe - Kind
>            Assignee: Oscar Westra van Holthe - Kind
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 3h 20m
>  Remaining Estimate: 0h
>
> Although JavaCC has been updated recently, there are quite some forks and development is quite erratic. The best maintained fork also has no presence in Maven Central yet. Worse (IMHO), it's Java only. This limits the use of the IDL format to Java and the Avro tools.
> As proposed on the mailling list last January, in the thread [Maintaining the IDL in the 21st century|https://lists.apache.org/thread/7c99hkkl59l78x5kyf7bd80cnyd1do3j], this improvement issue is to migrate the code to ANTLR.
> Related changes:
> # Place the ANTLR grammar in a subdirectory in the toplevel {{share}} directory, so it can be reused for other languages than Java (note: the Grammar may not contain any actions/code).
> # Ensure the IDL parsing API allows extending the IDL syntax to an {{.avsc}} equivalent.
> # Add a new {{java/idl}} module with the new parser. Make it a dependency of the {{java/compiler}} module and use it instead of the old parser.
> Bonus: this allows us to (also) create a parser that yields a single protocol (at first) or schema (future change).
> # Keep the old parser in the {{java/compiler}} module for backwards compatibility, mark it as deprecated and document its removal in a future version.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)