How to use multi line in XBlockExpression of a dsl [message #1817729] |
Thu, 28 November 2019 09:47 |
Dimg Cim Messages: 59 Registered: December 2015 |
Member |
|
|
Hi,
I have a small dsl to store sql statements with variables. Currently I can define this statments in one line. Are there possibility to use the xtend multi line in XblockExpression?
My dsl looks like
Model returns Model:
{Model}
'package' package=QualifiedName
'class' name=ID '{'
(queries+=Query ( queries+=Query)* )?
'}'
;
Query returns Query:
{Query}
'Query' name=EString '(' (parameters+=JvmFormalParameter ( "," parameters+=JvmFormalParameter)* )? ')'
statement=XBlockExpression
;
EString returns ecore::EString:
STRING | ID;
For complex statments it is better to separate it by line breaks, but here it is ok
package hello.world
class QueryManager{
Query HelloWorld(String param1){
val sql = "SELECT * from Table where name = "
sql
}
}
How can I defined the XBlockExpression to use that
Query HelloWorld(String param1, String param2){
val sql = '''SELECT * from Table
where name = param1 and forename = param2
order by name asc
'''
sql
}
Regards
dimg
P.S. I tried to use the
terminal STATEMENT: "'''" -> "''''";
But how can I Escape the character ' ?
Further how can I get this result as String with linebreaks in my ModelInferer?
Maybe it is better to reuse that one from Xtend Grammar
[Updated on: Thu, 28 November 2019 09:55] Report message to a moderator
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03632 seconds