Hi,

there are some SQL dialect grammars online here (for ANTLR4)

https://github.com/antlr/grammars-v4/tree/master/mysql
https://github.com/antlr/grammars-v4/tree/master/plsql
https://github.com/antlr/grammars-v4/tree/master/sqlite
https://github.com/antlr/grammars-v4/tree/master/tsql

They could be a starting point for your work?

I used these as I wrote an ANTLR grammar for an SQL Like syntax the last time.

JulianF

Am 22.08.19, 19:39 schrieb "Julian Hyde" <jh...@apache.org>:

    If you are going to do all that work to translate to ANTLR, one thing that 
may help is to re-use SqlParserTest.java. (Shouldn’t be hard to translate that 
into javascript, or your could use a harness that calls the javascript code 
from java.) Your code may be entirely different, but the tests will ensure that 
it gives the same result.
    
    > On Aug 22, 2019, at 4:04 AM, Michael Franzkowiak <mich...@contiamo.com> 
wrote:
    > 
    > It is not using ANTLR. Since our goal is specifically to support parsing
    > and manipulation of SQL in the frontend, we use
    > https://sap.github.io/chevrotain/docs/ . We're quite happy with that. We
    > have some pretty big ANTLR grammars for other (non-SQL) use cases and this
    > approach definitely feels more lightweight.
    > 
    > On Thu, Aug 22, 2019 at 12:22 PM Danny Chan <yuzhao....@gmail.com> wrote:
    > 
    >> Create ! Do you have the ANTLR.g4 file that can be shared ?
    >> 
    >> Best,
    >> Danny Chan
    >> 在 2019年8月22日 +0800 PM5:45,Michael Franzkowiak <mich...@contiamo.com>,写道:
    >>> Danny, what is your web / frontend use case exactly?
    >>> We've started to create some frontend helpers which you can find at
    >>> https://github.com/contiamo/rhombic . It's all in a very early state but
    >>> we'll likely spend some more time on it in the next months. Parsing is
    >> here
    >>> https://github.com/contiamo/rhombic/blob/master/src/SqlParser.ts .
    >>> 
    >>> On Thu, Aug 22, 2019 at 11:38 AM Muhammad Gelbana <m.gelb...@gmail.com>
    >>> wrote:
    >>> 
    >>>> I once needed to fix this issue [1] but the fix was rejected because it
    >>>> introduced worse performance than it ideally should. As mentioned in
    >> the
    >>>> comments, the current approach followed in the current parser is the
    >> reason
    >>>> for that. I mean if we designed the grammar differently, we could've
    >> had
    >>>> fixed the linked issue a long time ago as Julian already attempted to
    >> fix
    >>>> it.
    >>>> 
    >>>> Having that said, we might go with *antlr* only to have that "better"
    >>>> approach for our parsers. We don't have to dump our current parser of
    >>>> course as *antlr* can be optionally activated.
    >>>> 
    >>>> [1] https://issues.apache.org/jira/browse/CALCITE-35
    >>>> 
    >>>> Thanks,
    >>>> Gelbana
    >>>> 
    >>>> 
    >>>> On Thu, Aug 22, 2019 at 10:05 AM Danny Chan <yuzhao....@gmail.com>
    >> wrote:
    >>>> 
    >>>>> Thanks, Julian.
    >>>>> 
    >>>>> I agree this would be a huge work, but I have to do this, I’m just
    >>>>> wondering if any fellows here have the similar requests.
    >>>>> 
    >>>>> Best,
    >>>>> Danny Chan
    >>>>> 在 2019年8月22日 +0800 PM2:15,Julian Hyde <jh...@apache.org>,写道:
    >>>>>> ANTLR isn’t significantly better than, or worse than, JavaCC, but
    >> it’s
    >>>>> different. So translating to ANTLR would be a rewrite, and would be a
    >>>> HUGE
    >>>>> amount of work.
    >>>>>> 
    >>>>>> 
    >>>>>> 
    >>>>>>> On Aug 21, 2019, at 8:01 PM, Danny Chan <yuzhao....@gmail.com>
    >>>> wrote:
    >>>>>>> 
    >>>>>>> Now some of our fellows want to do the syntax promote in the WEB
    >>>> page,
    >>>>> and they what a parser in the front-page; The ANTLR4 can generate JS
    >>>> parser
    >>>>> directly but JAVACC couldn’t.
    >>>>>>> 
    >>>>>>> So I’m wondering do you have the similar requests ? And do you
    >> think
    >>>>> there is necessity to support ANTLR4 g4 file in Calcite ?
    >>>>>>> 
    >>>>>>> 
    >>>>>>> Best,
    >>>>>>> Danny Chan
    >>>>>> 
    >>>>> 
    >>>> 
    >>> 
    >>> 
    >> 
    
    

Reply via email to