All pastes #937416 Raw Edit

Untitled

public text v1 · immutable
·published 2008-03-11 00:06 UTC
rendered paste body
linearFormula	::=		T_IDENT:name {:RESULT = new State(name); :} 
						| T_TRUE {:RESULT = new BooleanLeaf(true); :} 
						| T_FALSE {:RESULT = new BooleanLeaf(false); :} 
						| linearConstraint:value {:RESULT = new LinearConstraint(value); :} 
						| linearFormula:op1 T_AND linearFormula:op2 {:RESULT = new And(op1, op2); :} 
						| linearFormula:op1 T_OR linearFormula:op2 {:RESULT = new Or(op1, op2); :} 
//						| T_LEFTBRACKET linearFormula:op1 T_RIGHTBRACKET {:RESULT = new Bracket(op1); :} 
						;


linearConstraint ::=	linearExpression:op1 T_EQ linearExpression:op2 {:RESULT = op1+" = "+op2; :} 
						| linearExpression:op1 T_GREATER linearExpression:op2 {:RESULT = op1+" > "+op2; :} 
						| linearExpression:op1 T_GEQ linearExpression:op2 {:RESULT = op1+" >= "+op2; :} 
						| linearExpression:op1 T_LESS linearExpression:op2 {:RESULT = op1+" < "+op2; :} 
						| linearExpression:op1 T_LEQ linearExpression:op2 {:RESULT = op1+" <= "+op2; :} 
						;

linearExpression ::=	T_IDENT:s {:RESULT = s; :} 
						| T_NUMBER:n {:RESULT = n; :}
						| linearExpression:op1 T_PLUS linearExpression:op2 {:RESULT = op1+" + "+op2; :} 
						| linearExpression:op1 T_MINUS linearExpression:op2 {:RESULT = op1+" - "+op2; :} 
						| linearExpression:op1 T_DIV linearExpression:op2 {:RESULT = op1+" / "+op2; :} 
						| linearExpression:op1 T_TIMES linearExpression:op2 {:RESULT = op1+" * "+op2; :} 
						| T_LEFTBRACKET linearExpression:op1 T_RIGHTBRACKET {:RESULT = "("+op1+")"; :} 
						;