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);
        }