jastrachan | 26 Jan 20:02 2005

Re: [groovy-dev] Quick heads up - hello world just worked with the new Antlr parser

On 26 Jan 2005, at 14:07, jastrachan@... wrote:
> There's still heaps to do, but I just managed to run the Groovy 
> command line (GroovyMain) to parse a hello world script using the new 
> Antlr grammar...
> class HelloWorld extends GroovyTestCase {
>   void testCase() {
>     println "Hello"
>   }
> }
> Not the most impressive of programs, but its a start at least :). To 
> try it out, you just need the new Antlr parser on the classpath when 
> running your Groovy stuff.

I've managed to spend nearly a whole afternoon on this, so most of the 
basic expressions are wired in now. e.g. the following works..

class HelloWorld extends GroovyTestCase {

     String foo = "John"
     String bar = "Jez"

     void testCase() {
         println "Hello"
         println 123
         println 123.456

         println "Hello $foo!"
         println "Hello ${bar}!"

         def x = 123

         println "value is $x"

         x = x + 1
         println "value is now ${x}"

         def f = this
         def answer = f.foo("hello ", "James")

         println "Received answer $answer"

         assert answer == "hello James"

         answer = foo2("hello ", "Guillaume")
         assert answer == "hello Guillaume"

         println "Now the answer is $answer"

     String foo(a, b) {
         return a + b

     def foo2(a, b) {
         def answer = a + b
         return answer


Still more work is required to complete the entire Antlr AST -> Groovy 
AST, but at least the basics are in there now. We also need much more 
semantic error reporting. (I've not yet figured out how to wire in the 
new AntlrParserPlugin with the existing 'control' message reporting 

Its still quite some way from being usable - but at least we can now 
start to tinker with New Groovy, rather than just look at its 
EBNF/Antlr file...