Browse Source

Push containsUnboundedVariables methof from VarList up into ModulesFile.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10970 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 10 years ago
parent
commit
9ce7e6441b
  1. 2
      prism/src/explicit/ConstructModel.java
  2. 15
      prism/src/parser/VarList.java
  3. 12
      prism/src/parser/ast/ModulesFile.java
  4. 2
      prism/src/prism/Modules2MTBDD.java

2
prism/src/explicit/ConstructModel.java

@ -144,7 +144,7 @@ public class ConstructModel extends PrismComponent
// Display a warning if there are unbounded vars
VarList varList = modulesFile.createVarList();
if (varList.containsUnboundedVariables())
if (modulesFile.containsUnboundedVariables())
mainLog.printWarning("Model contains one or more unbounded variables: model construction may not terminate");
// Starting reachability...

15
prism/src/parser/VarList.java

@ -487,21 +487,6 @@ public class VarList
return state;
}
/**
* Does the variable list contain any variables with unbounded range (e.g. "clock: or "int")?
*/
public boolean containsUnboundedVariables()
{
int n = getNumVars();
for (int i = 0; i < n; i++) {
DeclarationType declType = getDeclaration(i).getDeclType();
if (declType instanceof DeclarationClock || declType instanceof DeclarationIntUnbounded) {
return true;
}
}
return false;
}
/**
* Clone this list.
*/

12
prism/src/parser/ast/ModulesFile.java

@ -558,6 +558,18 @@ public class ModulesFile extends ASTElement
return false;
}
public boolean containsUnboundedVariables()
{
int n = getNumVars();
for (int i = 0; i < n; i++) {
DeclarationType declType = getVarDeclaration(i).getDeclType();
if (declType instanceof DeclarationClock || declType instanceof DeclarationIntUnbounded) {
return true;
}
}
return false;
}
/**
* Method to "tidy up" after parsing (must be called)
* (do some checks and extract some information)

2
prism/src/prism/Modules2MTBDD.java

@ -180,7 +180,7 @@ public class Modules2MTBDD
// get variable info from ModulesFile
varList = modulesFile.createVarList();
if (varList.containsUnboundedVariables())
if (modulesFile.containsUnboundedVariables())
throw new PrismNotSupportedException("Cannot build a model that contains a variable with unbounded range (try the explicit engine instead)");
numVars = varList.getNumVars();
constantValues = modulesFile.getConstantValues();

Loading…
Cancel
Save