public override void WriteCode(ISequenceVisitor visitor, TemplateContext ctx) { base.WriteCode(visitor, ctx); CodeStatementCollection collection = ctx.CurrentStatements; foreach (var item in Branches) { var condition = collection._if("{0} == {1}.{2}", EnumIn.VariableName, EnumIn.VariableType.FullName, item.Name); ctx.PushStatements(condition.TrueStatements); item.WriteInvoke(ctx); ctx.PopStatements(); collection = condition.FalseStatements; } }
public CodeConditionStatement _if(string formatString, params object[] args) { return(CurrentStatements._if(formatString, args)); }