[263773] More work on the grammar flattener

This commit is contained in:
Sebastian Zarnekow 2015-08-20 14:29:59 +02:00
parent c9692da216
commit 8dca8a0596

View file

@ -314,4 +314,75 @@ class GrammarFlatteningTest extends AbstractXtextTests {
.;'''.toString, serialized)
}
@Test def void test_08() throws Exception {
var Grammar flattened = getModel(
'''
grammar com.foo.bar with org.eclipse.xtext.common.Terminals
generate myPack 'http://myURI'
Rule<A>: name=ID =>(<A> ->child=Rule<!A> | <!A> ->'keyword')?;
''', true)
var String serialized = getSerializer().serialize(flattened)
assertEquals('''
grammar com.foo.bar hidden(RULE_WS, RULE_ML_COMMENT, RULE_SL_COMMENT)
norm0_Rule:
name=RULE_ID => "keyword"?;
terminal RULE_ID:
"^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
terminal RULE_INT:
"0".."9"+;
terminal RULE_STRING:
"\"" ("\\" . | !("\\" | "\""))* "\"" | "\'" ("\\" . | !("\\" | "\'"))* "\'";
terminal RULE_ML_COMMENT:
"/*"->"*/";
terminal RULE_SL_COMMENT:
"//" !("\n" | "\r")* ("\r"? "\n")?;
terminal RULE_WS:
" " | "\t" | "\r" | "\n"+;
terminal RULE_ANY_OTHER:
.;'''.toString, serialized)
}
@Test def void test_09() throws Exception {
var Grammar flattened = getModel(
'''
grammar com.foo.bar with org.eclipse.xtext.common.Terminals
generate myPack 'http://myURI'
Rule<A>: name=ID ->(<A> =>child=Rule<!A> | <!A> =>'keyword')?;
''', true)
var String serialized = getSerializer().serialize(flattened)
assertEquals('''
grammar com.foo.bar hidden(RULE_WS, RULE_ML_COMMENT, RULE_SL_COMMENT)
norm0_Rule:
name=RULE_ID => "keyword"?;
terminal RULE_ID:
"^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
terminal RULE_INT:
"0".."9"+;
terminal RULE_STRING:
"\"" ("\\" . | !("\\" | "\""))* "\"" | "\'" ("\\" . | !("\\" | "\'"))* "\'";
terminal RULE_ML_COMMENT:
"/*"->"*/";
terminal RULE_SL_COMMENT:
"//" !("\n" | "\r")* ("\r"? "\n")?;
terminal RULE_WS:
" " | "\t" | "\r" | "\n"+;
terminal RULE_ANY_OTHER:
.;'''.toString, serialized)
}
}