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

Reply via email to