return new Boolean(value).toString();
}
}
¡¡¡¡Ò»¸öVariable¶ÔÏó´ú±íÒ»¸öÓÐÃû±äÁ¿
[java]
package com.bankht.Interpreter;
/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:16
*
* @Àà˵Ã÷ £ºÒ»¸öVariable¶ÔÏó´ú±íÒ»¸öÓÐÃû±äÁ¿
*/
public class Variable extends Expression {
private String name;
public Variable(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof Variable) {
return this.name.equals(((Variable) obj).name);
}
return false;
}
@Override
public int hashCode() {
return this.toString().hashCode();
}
@Override
public String toString() {
return name;
}
@Override
public boolean interpret(Context ctx) {
return ctx.lookup(this);
}
}
package com.bankht.Interpreter;
/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:16
*
* @Àà˵Ã÷ £ºÒ»¸öVariable¶ÔÏó´ú±íÒ»¸öÓÐÃû±äÁ¿
*/
public class Variable extends Expression {
private String name;
public Variable(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof Variable) {
return this.name.equals(((Variable) obj).name);
}
return false;
}
@Override
public int hashCode() {
return this.toString().hashCode();
}
@Override
public String toString() {
return name;
}
@Override
public boolean interpret(Context ctx) {
return ctx.lookup(this);
}
}
¡¡¡¡´ú±íÂß¼¡°Ó롱²Ù×÷µÄAndÀ࣬±íʾÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼¡°Ó롱²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷
[java]
package com.bankht.Interpreter;
/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:55
*
* @Àà˵Ã÷ £º´ú±íÂß¼¡°Ó롱²Ù×÷µÄAndÀ࣬±íʾÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼¡°Ó롱²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷
*/
public class And extends Expression {
private Expression left, right;
public And(Expression left, Expression right) {
this.left = left;
this.right = right;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof And) {
return left.equals(((And) obj).left) && right.equals(((And) obj).right);
}
return false;
}
@Override
public int hashCode() {
return this.toString().hashCode();
}
@Override
public boolean interpret(Context ctx) {
return left.interpret(ctx) && right.interpret(ctx);
}
@Override
public String toString() {
return "(" + left.toString() + " AND " + right.toString() + ")";
}
}
package com.bankht.Interpreter;
/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:55
*
* @Àà˵Ã÷ £º´ú±íÂß¼¡°Ó롱²Ù×÷µÄAndÀ࣬±íʾÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼¡°Ó롱²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷
*/
public class And extends Expression {
private Expression left, right;
public And(Expression left, Expression right) {
this.left = left;
this.right = right;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof And) {
return left.equals(((And) obj).left) && right.equals(((And) obj).right);
}
return false;
}
@Override
public int hashCode() {
return this.toString().hashCode();
}
@Override
public boolean interpret(Context ctx) {
return left.interpret(ctx) && right.interpret(ctx);
}
@Override
public String toString() {
return "(" + left.toString() + " AND " + right.toString() + ")";
}
}
¡¡¡¡´ú±íÂß¼¡°»ò¡±²Ù×÷µÄOrÀ࣬´ú±íÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼¡°»ò¡±²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷
[java]
package com.bankht.Interpreter;
/**
* @author: ÌØÖÖ±ø¡ªAK