rdmueller
rdmueller

Reputation: 11042

How to parse groovy code?

Since groovy is good at parsing nearly anything, a search on how to parse groovy code will not reveal any good results - so I hope that the SO community is able to help :-)

I would like to write some kind of (graphical) editor for grails domain classes, but don't want to reinvent the wheel.

It's easy to inspect the domain class through reflection, but I would like to go one step further - I want to modify the code and write it back as a domain class file.

One problem is that reflection (and afaik the AST too) will throw away all comments and formatting (formatting is not the big problem, I could pretty print the file)...

Any ideas where I can find a groovy parser upon which I can build my ideas?

Upvotes: 19

Views: 9830

Answers (2)

rimero
rimero

Reputation: 2383

ASM should do most of the work for you....

Additional classes in Groovy Code likely wrap around ASM : -

Once you have a visitor, if there's a built-in adapter in the Groovy API, it could be "more or less" straightforward...

Upvotes: 2

Andre Steingress
Andre Steingress

Reputation: 4411

You should have an intensive look at the GroovyDocTool class source.

GroovyDoc uses the GroovyLexer and GroovyRecognizer to parse class texts (to generate GroovyDoc HTML documentation files, similar to JavaDoc HTML files) and utilizes these classes to create an AST from the given source text.

The generated AST and the source code text are used to walk through the class structure (see SimpleGroovyClassDocAssembler), extract comments and various other meta-data to fill the GroovyDoc specific data structures.

Upvotes: 9

Related Questions