Hello everyone

If I wanted to introduce new syntax in my groovy script, how would I go about 
doing it? I want to embed custom syntax directly into the groovy file and have 
it be parsed into my custom AST nodes. An example would be

myFunction() {
   List<MyTableValues> tableValues = select value from mySQLTable where (select 
tableName from myTableNames where user = $userName)

 ... Use table Values
}

I want to enable a few behaviors
a) Check for syntax correctness (which is why I want to parse using antlr 
grammar)
b) Check for semantic correctness (I suppose if I parsed this into my custom 
AST nodes, that takes care of that. I could make an SQLExpressionASTNode and 
validate things there)
c) Enable a debug experience where I am able to see the result of the inner SQL 
first and then see it move to the outer SQL (this would be super awesome, but I 
realize this is in the purview of the groovy IDE plugin. I am asking here to 
see if I can get any pointers)

My limited ideas so far are to annotate the List declaration with @SQL, hook 
into the semantic phase to translate the select clause (embedded in a gstring) 
into a validated, redirect into a custom function call.

so if I see

@SQL List<MyTableValues> tableValues = "select ...."

I'll convert it to
@SQL List<MyTableValues> tableValues = sqlRunner.run("select ...")

This does not get me debuggability though and it feels contrived

regards
Saravanan

Reply via email to