I'm trying to build a DSL and using a Global AST Transform to do it. The script is compiling with groovyc
fine, but I'd like to be able to be able to have a user use Grab/Grape to pull the JAR and just have it execute right away as a groovy script.
I then found that I couldn't do it correctly because there's a parsing error in the script if there isn't a method declaration or import statement after the @Grab call.
Here's an example:
@Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
println "Hello World!"
It looks like it should work, but it complains (here's the output the GroovyConsole Script):
startup failed:
Script1.groovy: 4: unexpected token: println @ line 4, column 1.
println "hello"
^
1 error
Trying different things makes it work, like an import statement:
@Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
import groovy.lang.Object
println "Hello World!"
Or a method declation:
@Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
def hello() {}
println "Hello World!"
Is this a bug in the parser?