Result yyResult;
Result yyPredResult;
boolean yyPredMatched;
int yyRepetition1;
Pair<Object> yyRepValue1;
Node yyValue;
ParseError yyError = ParseError.DUMMY;
// Alternative 1.
yyResult = pImport(yyStart);
yyError = yyResult.select(yyError);
if (yyResult.hasValue()) {
Node v$g$1 = yyResult.semanticValue();
yyValue = GNode.create("BlockStat", v$g$1);
yyValue.setLocation(location(yyStart));
return yyResult.createValue(yyValue, yyError);
}
// Alternative 2.
yyRepetition1 = yyStart;
yyRepValue1 = Pair.empty();
while (true) {
yyResult = pBlockStat$$Choice1(yyRepetition1);
yyError = yyResult.select(yyError, yyRepetition1);
if (yyResult.hasValue()) {
String v$el$1 = yyResult.semanticValue();
yyRepetition1 = yyResult.index;
yyRepValue1 = new Pair<Object>(v$el$1, yyRepValue1);
continue;
}
break;
}
{ // Start scope for v$g$2.
Pair<String> v$g$2 = cast(yyRepValue1.reverse());
yyResult = pDef(yyRepetition1);
yyError = yyResult.select(yyError);
if (yyResult.hasValue()) {
Node v$g$3 = yyResult.semanticValue();
yyValue = GNode.create("BlockStat", v$g$2, v$g$3);
yyValue.setLocation(location(yyStart));
return yyResult.createValue(yyValue, yyError);
}
} // End scope for v$g$2.
// Alternative 3.
yyRepetition1 = yyStart;
yyRepValue1 = Pair.empty();
while (true) {
yyResult = pLocalModifier(yyRepetition1);
yyError = yyResult.select(yyError, yyRepetition1);
if (yyResult.hasValue()) {
Node v$el$4 = yyResult.semanticValue();
yyRepetition1 = yyResult.index;
yyRepValue1 = new Pair<Object>(v$el$4, yyRepValue1);
continue;
}
break;
}
{ // Start scope for v$g$4.
Pair<Node> v$g$4 = cast(yyRepValue1.reverse());
yyResult = pTmplDef(yyRepetition1);
yyError = yyResult.select(yyError);
if (yyResult.hasValue()) {
Node v$g$5 = yyResult.semanticValue();
yyValue = GNode.create("BlockStat", v$g$4, v$g$5);
yyValue.setLocation(location(yyStart));
return yyResult.createValue(yyValue, yyError);
}
} // End scope for v$g$4.
// Alternative 4.
yyPredMatched = false;
yyPredResult = pResultFunExpr(yyStart);
if (yyPredResult.hasValue()) {
yyPredMatched = true;
}
if (! yyPredMatched) {
yyResult = pNotFunExpr(yyStart);
yyError = yyResult.select(yyError);
if (yyResult.hasValue()) {
Node v$g$6 = yyResult.semanticValue();
yyValue = GNode.create("BlockStat", v$g$6);
yyValue.setLocation(location(yyStart));
return yyResult.createValue(yyValue, yyError);