lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shad Storhaug (JIRA)" <>
Subject [jira] [Created] (LUCENENET-620) Automate Generation of QueryParser to C#
Date Fri, 16 Aug 2019 02:42:00 GMT
Shad Storhaug created LUCENENET-620:

             Summary: Automate Generation of QueryParser to C#
                 Key: LUCENENET-620
             Project: Lucene.Net
          Issue Type: Wish
          Components: Lucene.Net.QueryParser
            Reporter: Shad Storhaug

The Lucene team is using a tool called [javacc|] to generate
the main business logic behind the query parsers. If we had a similar tool it could help:

* Speed up the process of porting/upgrading QueryParser
* Reduce the number of bugs in these modules caused by doing it manually
* Most importantly, QueryParser could potentially be generated without using exceptions for
control flow

The javacc tool uses a configuration file as input and creates java code as output. Here are
some examples of those configuration files:


This has not been fully researched, but there are at least 2 potential ways we could approach

# Find a similar tool to javacc in .NET that supports similar options that were used in javacc,
and create a converter tool to change the javacc configuration into a configuration that the
.NET tool supports.
# Do a direct port of javacc to C#, and fix its logic to use a more efficient control flow
mechanism than exceptions (perhaps {{goto}} would be the most direct replacement).

It seems [according to this document|]
that using a port of javacc should be our first choice because of the performance benchmarks
of the resultant code. And certainly that would eliminate the risk of having a .NET tool not
support an option that we need either now or for some future version of Lucene.

This message was sent by Atlassian JIRA

View raw message