public void Serialize(List<string> output, Executable exec, string indention) { if (exec is Assignment) SerializeAssignment(output, (Assignment)exec, indention); else if (exec is ClassDefinition) SerializeClassDefinition(output, (ClassDefinition)exec, indention); else if (exec is FunctionDefinition) SerializeFunctionInvocation(output, (FunctionDefinition)exec, indention); else if (exec is IfStatement) SerializeIfStatement(output, (IfStatement)exec, indention, false); else if (exec is ExpressionAsExecutable) SerializeExpressionAsExecutable(output, (ExpressionAsExecutable)exec, indention); else if (exec is ForEachLoop) SerializeForEachLoop(output, (ForEachLoop)exec, indention); else if (exec is BreakStatement) SerializeBreakStatement(output, (BreakStatement)exec, indention); else if (exec is ReturnStatement) SerializeReturnStatement(output, (ReturnStatement)exec, indention); else if (exec is ForLoop) Serialize(output, ((ForLoop)exec).OriginalForEachLoop, indention); else if (exec is WhileLoop) SerializeWhileLoop(output, (WhileLoop)exec, indention); else throw new NotImplementedException(); }
public void Serialize(List<string> output, Executable exec, string indention) { if (exec == null) throw new NullReferenceException(); if (exec is Assignment) SerializeAssignment(output, (Assignment)exec, indention); else if (exec is ExpressionAsExecutable) SerializeExpressionAsExecutable(output, (ExpressionAsExecutable)exec, indention); else if (exec is ForEachLoop) SerializeForEachLoop(output, (ForEachLoop)exec, indention); else if (exec is ForLoop) SerializeForLoop(output, (ForLoop)exec, indention); else if (exec is IfStatement) SerializeIfStatement(output, (IfStatement)exec, indention, true); else if (exec is ClassDefinition) SerializeClassDefinition(output, (ClassDefinition)exec, indention); else if (exec is BreakStatement) SerializeBreakStatement(output, (BreakStatement)exec, indention); else if (exec is FunctionDefinition) SerializeFunctionDefinition(output, (FunctionDefinition)exec, indention); else if (exec is ReturnStatement) SerializeReturnStatement(output, (ReturnStatement)exec, indention); else if (exec is WhileLoop) SerializeWhileLoop(output, (WhileLoop)exec, indention); else throw new NotImplementedException(exec.GetType().ToString()); }
protected static IList<Executable> Listify(Executable executable) { return new List<Executable>() { executable }; }