BNF grammar for D?

Kingsley via Digitalmars-d digitalmars-d at puremagic.com
Tue Dec 16 16:35:49 PST 2014


On Tuesday, 16 December 2014 at 23:25:02 UTC, Kingsley wrote:
> On Monday, 27 October 2014 at 22:40:20 UTC, landaire wrote:
>> On Monday, 27 October 2014 at 22:35:16 UTC, Jeremy Powers via 
>> Digitalmars-d wrote:
>>> This looks eerily familiar...
>>>
>>> I took a stab at an Intellij plugin a long time ago, and 
>>> happened to pick
>>> the same name:
>>>
>>> https://github.com/elendel-/intelliD
>>>
>>> Been meaning to pick back up again, but haven't had the 
>>> chance... was
>>> waiting for the Eclipse plugin code to mature, then got 
>>> distracted.  Feel
>>> free to take anything that looks useful.
>>>
>>>
>>> Brian Schott (Hackerpilot) has done a lot of useful work 
>>> grammar wise.  See:
>>>
>>> https://github.com/Hackerpilot/DGrammar
>>>
>>> An interesting path to take for an intellij plugin would be 
>>> to use his
>>> DCD/libdparse for all the heavy lifting, with the plugin just 
>>> farming out
>>> the work to external daemon process(es).  That would avoid 
>>> having yet
>>> another lexer/parser implementation to keep up to date.
>>>
>>
>> I actually forked yours originally to get it running in IDEA 
>> 14, then decided to mess with the lexer since it was causing 
>> some problems and went off from there. I saw it was somewhat 
>> inactive and tried contacting you, but couldn't find any of 
>> your contact info anywhere! Glad to see you turned up here.
>
> Hi guys,
>
> I have been working on an intellij plugin which is here: 
> https://github.com/kingsleyh/DLanguage
>
> I only started learning D a couple of weeks ago and I haven't 
> written an intellij plugin before - and also I'm not very 
> familiar with parsing/lexing.
>
> On my first pass - I got all the infrastructure working - e.g. 
> run configurations, project creation, file creation etc. And 
> I'm working on a BNF and JFlex by hand - but I realise it will 
> take some time - so I have a branch which implements the DDT 
> parser/lexer so I could get something working while I work on 
> the bnf - however it breaks the contextual run configurations - 
> which is pretty much essential for the plugin to be useful.
>
> I'd like to get the DDT parser/lexer working but I'm not really 
> sure where to go from where I am now. My DDT branch is called 
> with_ddt.
>
> If anyone has any pointers to what I need to do next that would 
> be very helpful - even in terms of reading or reference 
> material. I guess it all comes down to the DParserDefinition 
> class - as my master branch uses a FlexAdapter which gives 
> access to the context. But in the with_ddt branch its just 
> using the DParser - which I think needs to have the hooks into 
> the AST tree implemented or something like that.
>
> Anyway let me know if you have any pointers or offers of help :)
>
> --K

Actually I guess what I need is a way to make the PSI structure. 
I'm not sure how I would do that with the DDT code I have 
imported.


More information about the Digitalmars-d mailing list