protected void infer()
	{

		InferContext ctx = new InferContext();
		ctx.types = types;
		ctx.gt = this.program.gt;
		for (Statement st : this.program.metaData.statements)
		{
			st.infer(ctx);
		}

	}
protected void infer ( ) { InferContext ctx = new InferContext ( ) ; ctx . types = types ; ctx . gt = this . program . gt ; for ( Statement st : this . program . metaData . statements ) { st . infer ( ctx ) ; } }
确定表达式的类型