using System.CodeDom.Compiler;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Collections.Generic;
public string expression { get; set; }
public virtual String GetString()
class MethodStatement : statement
private string methodString = "Method();";
private statement childstatemet { get; set; }
expression = methodString;
public MethodStatement(statement stmt)
expression = methodString;
public override String GetString()
if (childstatemet == null)
return expression + "{" + childstatemet.GetString() + "}";
class foreachstmt : statement
private string foreachString = "foreach()";
private statement childstatemet { get; set; }
expression = foreachString;
public foreachstmt(statement stmt)
expression = foreachString;
public override String GetString()
if (childstatemet == null)
return expression + "{" + childstatemet.GetString() + "}";
private string ifString= "if()";
private statement childstatemet { get; set; }
public Ifstmt(statement stmt)
public override String GetString()
if (childstatemet == null)
return expression + "{" + childstatemet.GetString() + "}";
public static void Main()
MethodStatement methodStatement = new MethodStatement();
foreachstmt foreachCountry = new foreachstmt(methodStatement);
Console.WriteLine(foreachCountry.GetString());
Ifstmt ifstmt = new Ifstmt();
foreachstmt foreachstmt = new foreachstmt();
Ifstmt ifstmt1 = new Ifstmt(foreachstmt);
foreachstmt foreachstmt1 = new foreachstmt(foreachstmt);
foreachstmt foreachstmt2 = new foreachstmt(ifstmt);
String sts=ifstmt.GetString();
Console.WriteLine(foreachstmt.GetString());
Console.WriteLine(ifstmt1.GetString());
Console.WriteLine(foreachstmt1.GetString());
Console.WriteLine(foreachstmt2.GetString());