public CILCondition(SourceInfo si, CILExpression lhs, CondType op, CILExpression rhs) : base(si) { Lhs = lhs; Op = op; Rhs = rhs; }
public CILBinaryOp(SourceInfo si, CILExpression lhs, OpType op, CILExpression rhs) : base(si) { Lhs = lhs; Op = op; Rhs = rhs; }
public CILMemberAccess(SourceInfo si, CILExpression thing, string member) : base(si) { // TODO: ensure thing resolves to a struct Thing = thing; Member = member; }
public CILBranch(SourceInfo si, CILExpression condition, List <CILNode> trueBranch, List <CILNode> falseBranch) : base(si) { Condition = condition; TrueBranch = trueBranch; FalseBranch = falseBranch; }
public CILLoop(SourceInfo si, List <CILNode> before, CILExpression condition, List <CILExpression> after, List <CILNode> body) : base(si) { Before = before; Condition = condition; After = after; Body = body; }
public CILLoop(SourceInfo si, CILExpression condition) : base(si) { Before = new List <CILNode>(); Condition = condition; After = new List <CILExpression>(); Body = new List <CILNode>(); }
public CILVariableDecl(SourceInfo sourceInfo, CILType type, int pointerDepth, string name, CILExpression assigningValue, bool isStatic = false) : base(sourceInfo) { IsStatic = isStatic; Type = type; PointerDepth = pointerDepth; Name = name; AssigningValue = assigningValue; }
public CILReturn(SourceInfo si, CILExpression returnExpression) : base(si) { ReturnExpression = returnExpression; }
public CILCall(SourceInfo si, CILExpression callee, List <CILExpression> args) : base(si) { Callee = callee; Args = args; }
public CILCall(SourceInfo si, CILExpression callee) : base(si) { Callee = callee; Args = new List <CILExpression>(); }
public CILAssignment(SourceInfo si, CILExpression destination, CILExpression value) : base(si) { Destination = destination; Value = value; }
public CILIndexAccess(SourceInfo si, CILExpression pointer, CILExpression subscription) : base(si) { // TODO: Ensure the thing being indexed is a pointer Pointer = pointer; Subscription = subscription; }
public CILBranch(SourceInfo si, CILExpression condition) : base(si) { Condition = condition; TrueBranch = new List <CILNode>(); FalseBranch = new List <CILNode>(); }
public CILDereference(SourceInfo si, CILExpression what) : base(si) { What = what; }
public CILReturn(SourceInfo si) : base(si) { ReturnExpression = null; }
public CILUnaryOp(SourceInfo si, OpType op, CILExpression expr) : base(si) { Op = op; Expr = expr; }
public CILReference(SourceInfo si, CILExpression referencing) : base(si) { Referencing = referencing; }