public Unary(DragonToken tok, Express x) : base(tok, null) { expr = x; type = Symbols.DragonType.Max(Symbols.DragonType.Int, expr.type); if (type == null) { PrintError("type error"); } }
public Logical(DragonToken tok, Express x1, Express x2) : base(tok, null) { expr1 = x1; expr2 = x2; type = Check(expr1.type, expr2.type); if (type == null) { PrintError("type error"); } }
public Arith(DragonToken tok, Express x1, Express x2) : base(tok, null) { expr1 = x1; expr2 = x2; type = Symbols.DragonType.Max(expr1.type, expr2.type); if (type == null) { PrintError("type error"); } }
public Id GetId(DragonToken t) { for (DragonEnvironment e = this; e != null; e = e.Prev) { Id found = (Id)(e.Table[t]); if (found != null) { return(found); } } return(null); }
public void Put(DragonToken t, Id i) { Table.Add(t, i); }
public Not(DragonToken tok, Express x2) : base(tok, x2, x2) { }
public Express(DragonToken tok, Symbols.DragonType p) { Op = tok; type = p; }
public Operation(DragonToken tok, Symbols.DragonType p) : base(tok, p) { }
public And(DragonToken tok, Express x1, Express x2) : base(tok, x1, x2) { }
public Relation(DragonToken tok, Express x1, Express x2) : base(tok, x1, x2) { }
public Constant(DragonToken tok, Symbols.DragonType p) : base(tok, p) { }