public Type checkType(TypeMap tm)
	{
		Type t = new Type();
		t.typeid = Type.TypeEnum.t_error;
		switch(this.op){
		case negative:
			t.t1 = e.checkType(tm);
			if(t.t1.OK())
			{
				if(t.t1.typeid ==  Type.TypeEnum.t_int)
				{
					t.typeid = Type.TypeEnum.t_int;
				}
				else
				{
					if(Type.isDebug)
					{
						System.out.println("TypeError! negative: "+t.t1.typeid);
						System.out.println(this);
					}
				}
			}
			break;
		case not:
			t.t1 = e.checkType(tm);
			if(t.t1.OK())
			{
				if(t.t1.typeid ==  Type.TypeEnum.t_bool)
				{
					t.typeid = Type.TypeEnum.t_bool;
				}
				else
				{
					if(Type.isDebug)
					{
						System.out.println("TypeError! not: "+t.t1.typeid);
						System.out.println(this);
					}
				}
			}
			break;
		}
		return t;
	}