public static ForStatement For(this SourceCode source, Expression initialValueExpression, Expression endValueExpression) { var Index = source.AddVar(typeof(int), null, initialValueExpression); var loop = new ForStatement(initialValueExpression) { Where = Expression.LessThan(Index, endValueExpression), Index = Index, MoveIndex = Index.PostIncrementAssign(), }; source.Add(loop); return(loop); }
public static ConditionalStatement If(this SourceCode source, Expression test, SourceCode @then, SourceCode @else) { var n = new ConditionalStatement() { ConditionalExpression = test, }; n.Then.Merge(@then); if (@else != null) { n.Else.Merge(@else); } source.Add(n); return(n); }
public static SourceCode Assign(this SourceCode source, Expression left, Expression right) { source.Add(left.AssignFrom(right)); return(source); }