public ForNode(IdNode id, ExprNode from, ExprNode to, StatementNode stat)
 {
     Id = id;
     ExprChildren.Add(from);
     ExprChildren.Add(to);
     StatChildren.Add(stat);
 }
 public void Add(ExprNode expr)
 {
     ExprChildren.Add(expr);
 }
 public IfElseNode(ExprNode expr, StatementNode trueSt, StatementNode falseSt = null)
 {
     ExprChildren.Add(expr);
     StatChildren.Add(trueSt);
     StatChildren.Add(falseSt);
 }
 public WhileNode(ExprNode expr, StatementNode stat)
 {
     ExprChildren.Add(expr);
     StatChildren.Add(stat);
 }
 public AssignNode(IdNode id, ExprNode expr)
 {
     Id = id;
     ExprChildren.Add(expr);
 }
 public UnOpNode(ExprNode expr, OpType op)
 {
     Op = op;
     ExprChildren.Add(expr);
 }
 public BinOpNode(ExprNode left, ExprNode right, OpType op)
 {
     Op = op;
     ExprChildren.Add(left);
     ExprChildren.Add(right);
 }