Browse Source

Prep for complex accumulation constraints, pt3

accumulation
Sascha Wunderlich 6 years ago
parent
commit
f4794800d1
  1. 2916
      prism/src/parser/PrismParser.java
  2. 7
      prism/src/parser/ast/ExpressionAccumulationConstraint.java
  3. 22
      prism/src/parser/ast/ExpressionAccumulationConstraintBasic.java
  4. 11
      prism/src/parser/visitor/ASTTraverse.java
  5. 9
      prism/src/parser/visitor/ASTTraverseModify.java

2916
prism/src/parser/PrismParser.java
File diff suppressed because it is too large
View File

7
prism/src/parser/ast/ExpressionAccumulationConstraint.java

@ -186,7 +186,12 @@ public class ExpressionAccumulationConstraint extends Expression
@Override
public Expression deepCopy()
{
ExpressionAccumulationConstraint expr = new ExpressionAccumulationConstraint(op, (ExpressionAccumulationConstraint)operand1.deepCopy(), (ExpressionAccumulationConstraint)operand2.deepCopy());
ExpressionAccumulationConstraint newop1 = null;
ExpressionAccumulationConstraint newop2 = null;
if(operand1 != null) newop1 = (ExpressionAccumulationConstraint)operand1.deepCopy();
if(operand2 != null) newop2 = (ExpressionAccumulationConstraint)operand2.deepCopy();
ExpressionAccumulationConstraint expr = new ExpressionAccumulationConstraint(op, newop1, newop2);
expr.setType(type);
expr.setPosition(this);
return expr;

22
prism/src/parser/ast/ExpressionAccumulationConstraintBasic.java

@ -25,12 +25,12 @@ public class ExpressionAccumulationConstraintBasic extends ExpressionAccumulatio
this.op = BASIC;
}
public ArrayList<AccumulationTerm> getFactors() {
public ArrayList<AccumulationTerm> getTerms() {
return terms;
}
public void setFactors(ArrayList<AccumulationTerm> factors) {
this.terms = factors;
public void setTerms(ArrayList<AccumulationTerm> terms) {
this.terms = terms;
}
public TemporalOperatorBound getBound() {
@ -44,8 +44,8 @@ public class ExpressionAccumulationConstraintBasic extends ExpressionAccumulatio
@Override
public Vector<AccumulationFunction> getFunctions() {
Vector<AccumulationFunction> ret = new Vector<AccumulationFunction>();
for(AccumulationTerm factor : terms) {
ret.add(factor.getFunction());
for(AccumulationTerm term : terms) {
ret.add(term.getFunction());
}
return ret;
}
@ -74,14 +74,14 @@ public class ExpressionAccumulationConstraintBasic extends ExpressionAccumulatio
}
public ExpressionAccumulationConstraintBasic deepCopy() {
ArrayList<AccumulationTerm> factorscopy = new ArrayList<AccumulationTerm>();
ArrayList<AccumulationTerm> termscopy = new ArrayList<AccumulationTerm>();
TemporalOperatorBound boundcopy = bound.deepCopy();
for (AccumulationTerm factor : terms) {
factorscopy.add(factor.deepCopy());
for (AccumulationTerm term : terms) {
termscopy.add(term.deepCopy());
}
return new ExpressionAccumulationConstraintBasic(factorscopy,boundcopy);
return new ExpressionAccumulationConstraintBasic(termscopy,boundcopy);
}
public String toString()
@ -89,11 +89,11 @@ public class ExpressionAccumulationConstraintBasic extends ExpressionAccumulatio
boolean first = true;
String ret = "";
for (AccumulationTerm factor : terms) {
for (AccumulationTerm term : terms) {
if (!first) ret += " + ";
first = false;
ret += factor.toString();
ret += term.toString();
}
ret += bound.toString();

11
prism/src/parser/visitor/ASTTraverse.java

@ -423,10 +423,10 @@ public class ASTTraverse implements ASTVisitor
public Object visit(ExpressionAccumulationConstraint e) throws PrismLangException
{
visitPre(e);
e.setOperand1((ExpressionAccumulationConstraint)(e.getOperand1().accept(this)));
e.setOperand2((ExpressionAccumulationConstraint)(e.getOperand2().accept(this)));
if(e.getOperand1() != null) e.getOperand1().accept(this);
if(e.getOperand2() != null) e.getOperand2().accept(this);
visitPost(e);
return e;
return null;
}
public void visitPost(ExpressionAccumulationConstraint e) throws PrismLangException { defaultVisitPost(e); }
// -----------------------------------------------------------------------------------
@ -439,12 +439,13 @@ public class ASTTraverse implements ASTVisitor
return null;
}
public void visitPost(AccumulationTerm e) throws PrismLangException { defaultVisitPost(e); }
// -----------------------------------------------------------------------------------
public void visitPre(ExpressionAccumulationConstraintBasic e) throws PrismLangException { defaultVisitPre(e); }
public Object visit(ExpressionAccumulationConstraintBasic e) throws PrismLangException
{
visitPre(e);
for (AccumulationTerm factor : e.getFactors()) {
factor.accept(this);
for (AccumulationTerm term : e.getTerms()) {
term.accept(this);
}
if (e.getBound() != null) e.getBound().accept(this);
visitPost(e);

9
prism/src/parser/visitor/ASTTraverseModify.java

@ -434,8 +434,8 @@ public class ASTTraverseModify implements ASTVisitor
public Object visit(ExpressionAccumulationConstraint e) throws PrismLangException
{
visitPre(e);
e.setOperand1((ExpressionAccumulationConstraint)(e.getOperand1().accept(this)));
e.setOperand2((ExpressionAccumulationConstraint)(e.getOperand2().accept(this)));
if(e.getOperand1() != null) e.setOperand1((ExpressionAccumulationConstraint)(e.getOperand1().accept(this)));
if(e.getOperand2() != null) e.setOperand2((ExpressionAccumulationConstraint)(e.getOperand2().accept(this)));
visitPost(e);
return e;
}
@ -450,12 +450,13 @@ public class ASTTraverseModify implements ASTVisitor
return e;
}
public void visitPost(AccumulationTerm e) throws PrismLangException { defaultVisitPost(e); }
// -----------------------------------------------------------------------------------
public void visitPre(ExpressionAccumulationConstraintBasic e) throws PrismLangException { defaultVisitPre(e); }
public Object visit(ExpressionAccumulationConstraintBasic e) throws PrismLangException
{
visitPre(e);
for (AccumulationTerm factor : e.getFactors()) {
factor.accept(this);
for (AccumulationTerm term : e.getTerms()) {
term.accept(this);
}
if (e.getBound() != null) e.getBound().accept(this);
visitPost(e);

Loading…
Cancel
Save