@ -4,6 +4,7 @@ 
			
		
	
		
			
				
					# include  "storm/storage/jani/TemplateEdge.h" 
  
			
		
	
		
			
				
					# include  "storm/storage/jani/Location.h" 
  
			
		
	
		
			
				
					# include  "storm/storage/jani/expressions/JaniExpressionSubstitutionVisitor.h" 
  
			
		
	
		
			
				
					# include  "storm/storage/expressions/ExpressionManager.h" 
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# include  "storm/utility/macros.h" 
  
			
		
	
		
			
				
					# include  "storm/exceptions/WrongFormatException.h" 
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -21,6 +22,24 @@ namespace storm { 
			
		
	
		
			
				
					            locationToStartingIndex . push_back ( 0 ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					         
			
		
	
		
			
				
					        storm : : expressions : : Variable  cloneVariable ( storm : : expressions : : ExpressionManager &  manager ,  storm : : expressions : : Variable  const &  var ,  std : : string  const &  variablePrefix )  {  
			
		
	
		
			
				
					            STORM_LOG_ASSERT ( var . getManager ( )  = =  manager ,  " expected same manager. " ) ;  
			
		
	
		
			
				
					            return  manager . declareVariable ( variablePrefix  +  var . getName ( ) ,  var . getType ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					         
			
		
	
		
			
				
					        Automaton  Automaton : : clone ( storm : : expressions : : ExpressionManager &  manager ,  std : : string  const &  nameOfClone ,  std : : string  const &  variablePrefix )  const  {  
			
		
	
		
			
				
					            Automaton  result ( * this ) ;  
			
		
	
		
			
				
					            result . name  =  nameOfClone ;  
			
		
	
		
			
				
					            result . locationExpressionVariable  =  cloneVariable ( manager ,  result . locationExpressionVariable ,  variablePrefix ) ;  
			
		
	
		
			
				
					            auto  allVars  =  result . getAllExpressionVariables ( ) ;  
			
		
	
		
			
				
					            std : : map < storm : : expressions : : Variable ,  storm : : expressions : : Expression >  oldToNewVarMap ;  
			
		
	
		
			
				
					            for  ( auto  const &  v  :  allVars )  {  
			
		
	
		
			
				
					                oldToNewVarMap [ v ]  =  cloneVariable ( manager ,  v ,  variablePrefix ) . getExpression ( ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            result . variables . substituteExpressionVariables ( oldToNewVarMap ) ;  
			
		
	
		
			
				
					            result . substitute ( oldToNewVarMap ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					         
			
		
	
		
			
				
					        std : : string  const &  Automaton : : getName ( )  const  {  
			
		
	
		
			
				
					            return  name ;  
			
		
	
		
			
				
					        }