iguana-parser / iguana

prototype parser run-time, back-end for different kinds of parser generators, including rascal.
50 stars 15 forks source link

Iguana API #5

Open keyboardDrummer opened 8 years ago

keyboardDrummer commented 8 years ago

Hi there,

I'm not sure where to ask questions on Iguana so I'm using the Github issues for it.

From the documentation and API I get the impression that when using Iguana the grammar should be specified in an Iguana specific grammar language, and that the result of a parse is a tree of type iguana.parsetrees.term.Term.

However I was looking for a more conventional combinator parser API, where you can specify the grammar using functions in the host language, and you can also apply 'map' so that the result of a parse is a custom data structure, instead of a generic 'iguana.parsetrees.term.Term'.

Is such functionality also planned for Iguana? I'm mostly interested in Iguana for its treatment of left recursive grammars and operator precedence. However with the current level of documentation and API is does not seem to be a good fit. I've also looked at your Meerkat parsers but it seems to be in a comparible level of maturity.

hannahlindsley commented 8 years ago

Actually, I'm not affiliated with iguana at all! I had some difficulties making it build, so I forked, made changes, and then a pull request. That's the extent of my interaction.

I will say that I have had similar issues with the documentation and understanding some of the code.

Sorry, wish I could help! Hannah

Sent from my iPhone

On Oct 10, 2016, at 7:54 AM, Remy Willems notifications@github.com wrote:

Hi there,

I'm not sure where to ask questions on Iguana so I'm using the Github issues for it.

From the documentation and API I get the impression that when using Iguana the grammar should be specified in an Iguana specific grammar language, and that the result of a parse is a tree of type iguana.parsetrees.term.Term.

However I was looking for a more conventional combinator parser API, where you can specify the grammar using functions in the host language, and you can also apply 'map' so that the result of a parse is a custom data structure, instead of a generic 'iguana.parsetrees.term.Term'.

Is such functionality also planned for Iguana? I'm mostly interested in Iguana for its treatment of left recursive grammars and operator precedence. However with the current level of documentation and API is does not seem to be a good fit.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

afroozeh commented 8 years ago

Hi @keyboardDrummer, thanks for your interest in Iguana and Meerkat.

From your description, it seems that a parser combinator library is a better fit for your need. Our Meerkat library also support left recursion and declarative operator precedence.

Your observation about the documentation is correct, it needs to be finished for both projects. Both Iguana and Meerkat have been our research platform in the last years to prototype ideas for our research papers. We definitely plan to release both projects one day, especially if there are users for them, but it will take time. We are now at the end of our PhD and spend most of our time on writing our theses and finalizing a paper.

It will take a couple of months before we come back to the code, fix remaining issues and integrate the extensions. In case of Iguana, we also plan to add semantic actions for the purpose of producing a custom AST, and we are currently working on changing the internal engine of Iguana to facilitate this feature.

Hi @hannahlindsley, sorry that we couldn't be more responsive. This has been a very busy time for us.

@keyboardDrummer and @hannahlindsley: as a general question, could you please let us know how you want to use Iguana and in which aspect of it you are more interested? Which features do you want to use and when? For further discussion, you can also directly email us at fsanastasia@gmail.com and afroozeh@gmail.com.