Browse Source
Better property checks for PTAs, including new computation of prob operator nesting. Better handling of labels in PTA model checker.
Better property checks for PTAs, including new computation of prob operator nesting. Better handling of labels in PTA model checker.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@2176 bbc10eb1-c90d-0410-af57-cb519fbb1720master
5 changed files with 136 additions and 37 deletions
-
10prism/src/parser/ast/ASTElement.java
-
84prism/src/parser/visitor/ComputeProbNesting.java
-
23prism/src/pta/DigitalClocks.java
-
32prism/src/pta/PTAModelChecker.java
-
24prism/src/simulator/SimulatorEngine.java
@ -0,0 +1,84 @@ |
|||
//============================================================================== |
|||
// |
|||
// Copyright (c) 2002- |
|||
// Authors: |
|||
// * Dave Parker <david.parker@comlab.ox.ac.uk> (University of Oxford) |
|||
// |
|||
//------------------------------------------------------------------------------ |
|||
// |
|||
// This file is part of PRISM. |
|||
// |
|||
// PRISM is free software; you can redistribute it and/or modify |
|||
// it under the terms of the GNU General Public License as published by |
|||
// the Free Software Foundation; either version 2 of the License, or |
|||
// (at your option) any later version. |
|||
// |
|||
// PRISM is distributed in the hope that it will be useful, |
|||
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
// GNU General Public License for more details. |
|||
// |
|||
// You should have received a copy of the GNU General Public License |
|||
// along with PRISM; if not, write to the Free Software Foundation, |
|||
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
// |
|||
//============================================================================== |
|||
|
|||
package parser.visitor; |
|||
|
|||
import parser.ast.*; |
|||
import prism.PrismLangException; |
|||
|
|||
/** |
|||
* Compute (maximum) number of nested probabilistic operators (P, S, R). |
|||
*/ |
|||
public class ComputeProbNesting extends ASTTraverse |
|||
{ |
|||
private int currentNesting; |
|||
private int maxNesting; |
|||
|
|||
public ComputeProbNesting() |
|||
{ |
|||
currentNesting = 0; |
|||
maxNesting = 0; |
|||
} |
|||
|
|||
public int getMaxNesting() |
|||
{ |
|||
return maxNesting; |
|||
} |
|||
|
|||
public void visitPre(ExpressionProb e) throws PrismLangException |
|||
{ |
|||
currentNesting++; |
|||
maxNesting = Math.max(maxNesting, currentNesting); |
|||
} |
|||
|
|||
public void visitPost(ExpressionProb e) throws PrismLangException |
|||
{ |
|||
currentNesting--; |
|||
} |
|||
|
|||
public void visitPre(ExpressionReward e) throws PrismLangException |
|||
{ |
|||
currentNesting++; |
|||
maxNesting = Math.max(maxNesting, currentNesting); |
|||
} |
|||
|
|||
public void visitPost(ExpressionReward e) throws PrismLangException |
|||
{ |
|||
currentNesting--; |
|||
} |
|||
|
|||
public void visitPre(ExpressionSS e) throws PrismLangException |
|||
{ |
|||
currentNesting++; |
|||
maxNesting = Math.max(maxNesting, currentNesting); |
|||
} |
|||
|
|||
public void visitPost(ExpressionSS e) throws PrismLangException |
|||
{ |
|||
currentNesting--; |
|||
} |
|||
} |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue