public virtual CodeBlockForAlt Alternative(Alternative alt, bool outerMost) { CodeBlockForAlt blk = @delegate.Alternative(alt, outerMost); if (outerMost) { currentOuterMostAlternativeBlock = (CodeBlockForOuterMostAlt)blk; } foreach (CodeGeneratorExtension ext in extensions) { blk = ext.Alternative(blk, outerMost); } return(blk); }