Correct, the current NiFi EL grammar is ANTLR3.
> On May 4, 2017, at 9:12 AM, Andrew Christianson > <[email protected]> wrote: > > Do I understand correctly that NiFi is currently using ANTLRv3? > ________________________________________ > From: Matt Burgess <[email protected]> > Sent: Thursday, May 4, 2017 9:05:35 AM > To: [email protected] > Subject: Re: MiNiFi C++ Expression Language > > I haven't used Flex/Bison since a trivial example in college, so I'm not sure > about the LOE for getting that set up, maybe there's a Maven-built project > out there that we could look at for inspiration, but that seems unlikely :) > > An ANTLR4 refactor (assuming the C++ target is in good shape) would give us > NiFi/MiNiFi EL compatibility (and full-featured EL support in MiNiFi C++), > but we'd have to accept the risks of introducing bugs, regressions, etc. as a > result of the refactor. Basically we'd just need to test the heck out of it > on all platforms, which isn't a bad thing but adds to the LOE for the ANTLR4 > upgrade, versus a smaller testing "surface" for incremental development of a > C/C++ based grammar. > > > On May 4, 2017, at 8:51 AM, Andrew Christianson > <[email protected]> wrote: > >>> I tried a quick ANTLR4 upgrade myself, it's indeed a big job to refactor >>> the existing grammar. Since the source and target for MiNiFi C++ is, well, >>> C++, an alternative could be to use lex/yacc (Flex/Bison) [1], Lemon [2], >>> Ragel [3], etc. The downside is maintaining two grammars, but we are doing >>> that with all the MiNiFi components already. The upside is being able to >>> support EL incrementally as the grammar is developed. What do you think? >> >> This seems like a pragmatic approach. What's the level-of-effort required to >> do the initial grammar port and set up the build tooling? Less than >> refactoring for ANTLR4? I'm not as familiar with the EL grammar situation. >> >> -Andy >> ________________________________________ >> From: Matt Burgess <[email protected]> >> Sent: Thursday, May 4, 2017 8:46:20 AM >> To: [email protected] >> Subject: Re: MiNiFi C++ Expression Language >> >> I tried a quick ANTLR4 upgrade myself, it's indeed a big job to refactor the >> existing grammar. Since the source and target for MiNiFi C++ is, well, C++, >> an alternative could be to use lex/yacc (Flex/Bison) [1], Lemon [2], Ragel >> [3], etc. The downside is maintaining two grammars, but we are doing that >> with all the MiNiFi components already. The upside is being able to support >> EL incrementally as the grammar is developed. What do you think? >> >> Regards, >> Matt >> >> [1] http://dinosaur.compilertools.net/ >> [2] http://www.hwaci.com/sw/lemon/ >> [3] http://www.colm.net/open-source/ragel/ >> >> >> >> Sent from my iPhone >>> On May 4, 2017, at 8:13 AM, Marc P. <[email protected]> wrote: >>> >>> Andrew, >>> I am not aware of it being actively worked [1]. This would require using >>> ANTLR4, but I don't believe C++ support is well tested [2]. Someone can >>> correct me if I'm wrong, but there would have to be changes to both sides. >>> I attempted a quick straw man with grammars, but didn't take it very far >>> after making initial changes to the grammar. It generated code, but I'm >>> uncertain of cross platform compatibility with the expression language. If >>> that's not expected or required that will remove some limitations as a >>> result of moving to ANTLR4. >>> >>> [1] https://issues.apache.org/jira/browse/MINIFI-140 >>> [2] http://www.soft-gems.net/index.php/tools/49-the-antlr4-c-target-is-here >>> >>> On Thu, May 4, 2017 at 8:07 AM, Andrew Christianson < >>> [email protected]> wrote: >>> >>>> All, >>>> >>>> I see that we do not have support for the expression language yet in >>>> MiNiFi C++. Is anyone actively working on this, and if so, is there an ETA? >>>> If no one is working on it, is there a general plan for how it should be >>>> implemented? I think I recall seeing references to ANTLR
