public override Choice GetComplexEBNFBlock(GrammarAST ebnfRoot, IList<CodeBlockForAlt> alts) { int ebnf = 0; if (ebnfRoot != null) ebnf = ebnfRoot.Type; Choice c = null; switch (ebnf) { case ANTLRParser.OPTIONAL: c = new OptionalBlock(this, ebnfRoot, alts); break; case ANTLRParser.CLOSURE: c = new StarBlock(this, ebnfRoot, alts); break; case ANTLRParser.POSITIVE_CLOSURE: c = new PlusBlock(this, ebnfRoot, alts); break; } return c; }