Skip to main content
aboutsummaryrefslogblamecommitdiffstats
blob: 36db441a496acdf96360e9c132849db07f3adc8f (plain) (tree)




















                                                                           


                                       





                                                                    







                                                               
                                                                                 
                    
                                           
                                                  

























                                                       
                                                                






                                                  
                         
     
                            


                  
                                                                                                                  


                                                                 
                                                                                              
                 





                                              












                                                           
                                                                        






                                                          
                         
     
                            


                  
                                                                                                                            


                                                                 
                                                                                                      
                 





                                              







                                      
                                                                                                      



                                     
                                                                                             
                 
                                                                     



                                     
                                                                                                     



                                     
                                                                                             
                 
                                                                     



                                      
                                                                                                      



                                     
                                                                                             
                 
                                                                     







                  
                                                                                                                              


                                                                 
                                                                                                      
                 





                                              












                                                           
                                                                        






                                                          
                         
     
                            


                  
                                                                                                                              


                                                                 
                                                                                                      
                 





                                                







                                     
                                                                                                                       



                                     
                                                                                             
                 
                                                                     



                                     
                                                                                                                              



                                     
                                                                                             
                 
                                                                     







                  
                                                                                                                                


                                                                 
                                                                                                      
                 





                                                












                                                             
                                                                          






                                                              
                         
     
                            


                  
                                                                                                                                 


                                                                 
                                                                                                        
                 





                                                 







                                    
                                                                                                                 



                                     
                                                                                               
                 
                                                                     



                                    
                                                                                                                    



                                     
                                                                                               
                 
                                                                     



                                     
                                                                                                                           



                                     
                                                                                               
                 
                                                                     



                                     
                                                                                                                              



                                     
                                                                                               
                 
                                                                     







                  
                                                                                                                                   


                                                                 
                                                                                                        
                 





                                                 












                                                              
                                                                           






                                                                
                         
     
                            


                  
                                                                                                                               


                                                                 
                                                                                                         
                 





                                              






                                    
                                                                                                                



                                     
                                                                                                
                 
                                                                    





                  
                                                                                                                                 


                                                                 
                                                                                                         
                 





                                              


             
                      
     
                                                                                                     



                  
                                                                                                                                 


                                                                 
                                                                                                         
                 





                                              












                                                           
                                                                        






                                                          
                         
     
                            


                  
                                                                                                                                  


                                                                 
                                                                                                      
                 





                                                    







                                    
                                                                                                           



                                     
                                                                                             
                 
                                                                     



                                    
                                                                                                              



                                     
                                                                                             
                 
                                                                     







                  
                                                                                                                                    


                                                                 
                                                                                                      
                 





                                                    












                                                                 
                                                                              






                                                                      
                         
     
                            


                  
                                                                                                                               


                                                         
                                                                                                            
                 





                                            







                                    
                                                                                                                 



                                     
                                                                                                   
                 
                                                                     



                                    
                                                                                                                



                                     
                                                                                                   
                 
                                                                     



                                      
                                                                                                            



                                     
                                                                                                   
                 
                                                                     







                  
                                                                                                                                 


                                                         
                                                                                                            
                 





                                            












                                                        
                                                                     






                                                       
                         
     
                            




                                      
                                                                                                   



                                     
                                                                                          
                 
                                                                     



                                    
                                                                                                           



                                     
                                                                                          
                 
                                                                     



                                    
                                                                                                        



                                     
                                                                                          
                 
                                                                     







                  
                                                                                                                          


                                                                 
                                                                                                   
                 





                                            






                  
                                                                                                                        


                                                                 
                                                                                                   
                 





                                             












                                                          
                                                                       






                                                         
                         
     
                            


                  
                                                                                                                              


                                                                 
                                                                                                     
                 





                                              


             
                      
     
                                                                                                    



                  
                                                                                                                              


                                                                 
                                                                                                     
                 





                                            












                                                           
                                                                        






                                                          
                         
     
                            

      
                                                                                                    



                                            
                                    



      
                                                                                                                       



                                                                    
                                    



      
                                                                                                     



                                             
                                    



      
                                                                                                              



                                                      
                                    



      
                                                                                                  



                                          
                                    



      
                                                                                                           



                                                   
                                    



      
                                                                                                                



                                                        
                                    

     
                      
     
                                                                                                            


      
                                                                                                         



                                               
                                    
     
                      
     
                                                                                                             










                                                         
                                                                      






                                                        
                         
     
                            

      
                                                                                                                 



                                                            
                                    



      
                                                                                                                  



                                                              
                                    










                                                               
                                                                            






                                                                  
                         
     
                            



                                             
                                                                                                 

                 
                         
         
                                                                                                                                 


         
                      
     
                                                                                                         



                  
                                                                                                                                   


                                                                 
                                                                                                          
                 





                                            












                                                                
                                                                             






                                                                    
                         
     
                            



                                             
                                                                                                  

                 
                         
         
                                                                                                                                    


         
                      
     
                                                                                                               



                  
                                                                                                                                 


                                                                 
                                                                                                           
                 





                                            


             
                      
     
                                                                                                                
     
                      
     
                                                                                                          



                  
                                                                                                                                    


                                                                 
                                                                                                           
                 





                                            












                                                
                                                             






                                               
                         
     
                            

      
                                                                                                   



                                                      
                                    



      
                                                                                                     



                                                        
                                    



      
                                                                                                    



                                                       
                                    



      
                                                                                                 



                                                    
                                    



      
                                                                                                    



                                                       
                                    



      
                                                                                                   



                                                      
                                    










                                                                   
                                                                                






                                                                          
                         
     
                            


                  
                                                                                                                                


                                                         
                                                                                                              
                 





                                            






                                             
                                                                                                     

                 
                         
         
                                                                                                                                   


         
                      
     
                                                                                                                    



                  
                                                                                                                                      


                                                                 
                                                                                                              
                 





                                            


             
                      
     
                                                                                                                     










                                                      
                                                                   






                                                     
                         
     
                            



                                             
                                                                                        

                 
                         
         
                                                                                                                     


         
                       
     
                                                                                                



                  
                                                                                                                        


                                                                 
                                                                                                 
                 





                                            












                                                 
                                                              






                                                
                         
     

                            
     
                                                                                                     





                                            
                                                                                                                                  



                                     
                                                                                   
                 
                                                                                              





                  
                                                                                                            


                                                         
                                                                                            
                 





                                            


             
                       
     
                                                                                                 



                  
                                                                                                            


                                                         
                                                                                            
                 





                                            






                                            
                                                                                                                                   



                                     
                                                                                   
                 
                                                                                              



             
                      
     
                                                                                                    










                                                          
                                                                       






                                                         
                         
     

                            
     
                                                                                                          



                  
                                                                                                                              


                                                                 
                                                                                                     
                 





                                             


             
                      
     
                                                                                                           










                                              
                                                           






                                             
                         
     

                            
     
                                                                                              



                  
                                                                                                                                  


                                                                                 
                                                                                         
                 





                                                     


             
                      
     
                                                                                               










                                                     
                                                                  






                                                    
                         
     
                            


                  
                                                                                                                 


                                                         
                                                                                                
                 





                                            


             
                      
     
                                                                                            



                  
                                                                                                                   


                                                         
                                                                                                
                 





                                            












                                                             
                                                                          






                                                              
                         
     
                            


                  
                                                                                                                                    


                                                                 
                                                                                                        
                 





                                               


             
                      
     
                                                                                                    



                  
                                                                                                                                      


                                                                 
                                                                                                        
                 





                                               












                                                      
                                                                   






                                                     
                         
     
                            



                                             
                                                                                        

                 
                         
         
                                                                                                                        


         
                      
     
                                                                                                



                  
                                                                                                                 


                                                         
                                                                                                 
                 





                                            












                                                       
                                                                    






                                                      
                         
     
                            

      
                                                                                                             



                                                         
                                    



      
                                                                                                              



                                                          
                                    



      
                                                                                                  



                                              
                                    










                                                             
                                                                          






                                                              
                         
     

                            
     
                                                                                                         



                  
                                                                                                                         


                                                         
                                                                                                        
                 





                                            


             
                      
     
                                                                                                              



                  
                                                                                                                          


                                                         
                                                                                                        
                 





                                            


             
                      
     
                                                                                                               
     
                         
     
                                                                                                   
     
                      
     
                                                                                                              



                  
                                                                                                                              


                                                         
                                                                                                        
                 





                                            


             
                      
     
                                                                                                               










                                                       
                                                                    






                                                      
                         
     
                            


                  
                                                                                                                    


                                                         
                                                                                                  
                 





                                            






                                             
                                                                                         

                 
                         
         
                                                                                                                                 












                                                              
                                                                           






                                                                
                         
     

                            
     
                                                                                                       



                  
                                                                                                                           


                                                         
                                                                                                         
                 





                                            


             
                      
     
                                                                                                               



                  
                                                                                                                           


                                                         
                                                                                                         
                 





                                            


             
                      
     
                                                                                                                
     
                         
     
                                                                                                    
     
                      
     
                                                                                                               



                  
                                                                                                                               


                                                         
                                                                                                         
                 





                                            


             
                      
     
                                                                                                                










                                                        
                                                                     






                                                       
                         
     
                            


                  
                                                                                                                     


                                                         
                                                                                                   
                 





                                            






                                             
                                                                                          

                 
                         
         
                                                                                                                                       












                                                  
                                                               






                                                 
                         
     

                            
     
                                                                                        



                  
                                                                                                                              


                                                                         
                                                                                             
                 





                                                


             
                      
     
                                                                                               



                  
                                                                                                                                 


                                                                         
                                                                                             
                 





                                                


             
                      
     
                                                                                                  










                                                            
                                                                         






                                                            
                         
     
                            


                  
                                                                                                                                                


                                                                                 
                                                                                                       
                 





                                                    


             
                      
     
                                                                                                      




                                   
                                                                                                                                


                                     
                                                                                              
                 




                                     


             
                      
     
                                                                                                     



                  
                                                                                                                            


                                                         
                                                                                                       
                 





                                            


             
                      
     
                                                                                                            
     
                      
     
                                                                                                                 



                  
                                                                                                                                 


                                                         
                                                                                                       
                 





                                            


             
                      
     
                                                                                                                  

     
                      
     
                                                                                                          
     
                       
     
                                                                                                                



                  
                                                                                                                               


                                                                 
                                                                                                       
                 





                                            


             
                       
     
                                                                                                                 










                                                             
                                                                            






                                                                                                
                         
     
                            



                           
                                                                                          





                           
                                                                                           





                           
                                                                                             










                                                     
                                                                  






                                                    
                         
     
                            


                  
                                                                                                                  


                                                         
                                                                                                
                 





                                            






                                             
                                                                                       

                 
                         
         
                                                                                                                   












                                                          
                                                                       






                                                         
                         
     
                            

      
                                                                                                              



                                                       
                                    



      
                                                                                                                



                                                         
                                    



      
                                                                                                           



                                                    
                                    










                                                           
                                                                        






                                                          
                         
     
                            



                                                
                                                                                                                                           


                                     
                                                                                             
                 




                                          












                                                             
                                                                          






                                                              
                         
     
                            



                                    
                                                                                                             



                                     
                                                                                               
                 
                                                                          












                                                        
                                                                     






                                                       
                         
     
                            



                                             
                                                                                                                                     


                                     
                                                                                          
                 




                                       












                                                            
                                                                         






                                                            
                         
     
                            



                                                 
                                                                                                                                             


                                     
                                                                                              
                 




                                           












                                                           
                                                                        






                                                          
                         
     
                            



                                                
                                                                                                                                           


                                     
                                                                                             
                 




                                          












                                                        
                                                                     






                                                       
                         
     
                            



                                             
                                                                                                                                     


                                     
                                                                                          
                 




                                       












                                                           
                                                                        






                                                          
                         
     
                            



                                    
                                                                                                          



                                     
                                                                                             
                 
                                                                          












                                                          
                                                                       






                                                         
                         
     
                            



                                        
                                                                                                                                  


                                     
                                                                                            
                 




                                      























                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                                               









                                                            
/*
* generated by Xtext
*/
grammar InternalVSL;

options {
	superClass=AbstractInternalAntlrParser;
	
}

@lexer::header {
package org.eclipse.papyrus.marte.vsl.parser.antlr.internal;

// Hack: Use our own Lexer superclass by means of import. 
// Currently there is no other way to specify the superclass for the lexer.
import org.eclipse.xtext.parser.antlr.Lexer;
}

@parser::header {
package org.eclipse.papyrus.marte.vsl.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import org.eclipse.papyrus.marte.vsl.services.VSLGrammarAccess;

}

@parser::members {

 	private VSLGrammarAccess grammarAccess;
 	
    public InternalVSLParser(TokenStream input, VSLGrammarAccess grammarAccess) {
        this(input);
        this.grammarAccess = grammarAccess;
        registerRules(grammarAccess.getGrammar());
    }
    
    @Override
    protected String getFirstRuleName() {
    	return "Expression";	
   	}
   	
   	@Override
   	protected VSLGrammarAccess getGrammarAccess() {
   		return grammarAccess;
   	}
}

@rulecatch { 
    catch (RecognitionException re) { 
        recover(input,re); 
        appendSkippedTokens();
    } 
}




// Entry rule entryRuleExpression
entryRuleExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getExpressionRule()); }
	 iv_ruleExpression=ruleExpression 
	 { $current=$iv_ruleExpression.current; } 
	 EOF 
;

// Rule Expression
ruleExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		{ 
	        newCompositeNode(grammarAccess.getExpressionAccess().getExpAndOrXorExpressionParserRuleCall_0()); 
	    }
		lv_exp_0_0=ruleAndOrXorExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getExpressionRule());
	        }
       		set(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"AndOrXorExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)
;





// Entry rule entryRuleAndOrXorExpression
entryRuleAndOrXorExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getAndOrXorExpressionRule()); }
	 iv_ruleAndOrXorExpression=ruleAndOrXorExpression 
	 { $current=$iv_ruleAndOrXorExpression.current; } 
	 EOF 
;

// Rule AndOrXorExpression
ruleAndOrXorExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getAndOrXorExpressionAccess().getExpEqualityExpressionParserRuleCall_0_0()); 
	    }
		lv_exp_0_0=ruleEqualityExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getAndOrXorExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"EqualityExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
(
		lv_op_1_1=	'and' 
    {
        newLeafNode(lv_op_1_1, grammarAccess.getAndOrXorExpressionAccess().getOpAndKeyword_1_0_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getAndOrXorExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_1, null);
	    }

    |		lv_op_1_2=	'or' 
    {
        newLeafNode(lv_op_1_2, grammarAccess.getAndOrXorExpressionAccess().getOpOrKeyword_1_0_0_1());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getAndOrXorExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_2, null);
	    }

    |		lv_op_1_3=	'xor' 
    {
        newLeafNode(lv_op_1_3, grammarAccess.getAndOrXorExpressionAccess().getOpXorKeyword_1_0_0_2());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getAndOrXorExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_3, null);
	    }

)

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getAndOrXorExpressionAccess().getExpEqualityExpressionParserRuleCall_1_1_0()); 
	    }
		lv_exp_2_0=ruleEqualityExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getAndOrXorExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"EqualityExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleEqualityExpression
entryRuleEqualityExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getEqualityExpressionRule()); }
	 iv_ruleEqualityExpression=ruleEqualityExpression 
	 { $current=$iv_ruleEqualityExpression.current; } 
	 EOF 
;

// Rule EqualityExpression
ruleEqualityExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getEqualityExpressionAccess().getExpRelationalExpressionParserRuleCall_0_0()); 
	    }
		lv_exp_0_0=ruleRelationalExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getEqualityExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"RelationalExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
(
		lv_op_1_1=	'==' 
    {
        newLeafNode(lv_op_1_1, grammarAccess.getEqualityExpressionAccess().getOpEqualsSignEqualsSignKeyword_1_0_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getEqualityExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_1, null);
	    }

    |		lv_op_1_2=	'<>' 
    {
        newLeafNode(lv_op_1_2, grammarAccess.getEqualityExpressionAccess().getOpLessThanSignGreaterThanSignKeyword_1_0_0_1());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getEqualityExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_2, null);
	    }

)

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getEqualityExpressionAccess().getExpRelationalExpressionParserRuleCall_1_1_0()); 
	    }
		lv_exp_2_0=ruleRelationalExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getEqualityExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"RelationalExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleRelationalExpression
entryRuleRelationalExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getRelationalExpressionRule()); }
	 iv_ruleRelationalExpression=ruleRelationalExpression 
	 { $current=$iv_ruleRelationalExpression.current; } 
	 EOF 
;

// Rule RelationalExpression
ruleRelationalExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getRelationalExpressionAccess().getExpConditionalExpressionParserRuleCall_0_0()); 
	    }
		lv_exp_0_0=ruleConditionalExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getRelationalExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"ConditionalExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
(
		lv_op_1_1=	'<' 
    {
        newLeafNode(lv_op_1_1, grammarAccess.getRelationalExpressionAccess().getOpLessThanSignKeyword_1_0_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getRelationalExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_1, null);
	    }

    |		lv_op_1_2=	'>' 
    {
        newLeafNode(lv_op_1_2, grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignKeyword_1_0_0_1());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getRelationalExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_2, null);
	    }

    |		lv_op_1_3=	'<=' 
    {
        newLeafNode(lv_op_1_3, grammarAccess.getRelationalExpressionAccess().getOpLessThanSignEqualsSignKeyword_1_0_0_2());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getRelationalExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_3, null);
	    }

    |		lv_op_1_4=	'>=' 
    {
        newLeafNode(lv_op_1_4, grammarAccess.getRelationalExpressionAccess().getOpGreaterThanSignEqualsSignKeyword_1_0_0_3());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getRelationalExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_4, null);
	    }

)

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getRelationalExpressionAccess().getExpConditionalExpressionParserRuleCall_1_1_0()); 
	    }
		lv_exp_2_0=ruleConditionalExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getRelationalExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"ConditionalExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleConditionalExpression
entryRuleConditionalExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getConditionalExpressionRule()); }
	 iv_ruleConditionalExpression=ruleConditionalExpression 
	 { $current=$iv_ruleConditionalExpression.current; } 
	 EOF 
;

// Rule ConditionalExpression
ruleConditionalExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getConditionalExpressionAccess().getExpAdditiveExpressionParserRuleCall_0_0()); 
	    }
		lv_exp_0_0=ruleAdditiveExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"AdditiveExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
		lv_op_1_0=	'?' 
    {
        newLeafNode(lv_op_1_0, grammarAccess.getConditionalExpressionAccess().getOpQuestionMarkKeyword_1_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getConditionalExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_0, "?");
	    }

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getConditionalExpressionAccess().getExpAdditiveExpressionParserRuleCall_1_1_0()); 
	    }
		lv_exp_2_0=ruleAdditiveExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"AdditiveExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_3=':' 
    {
    	newLeafNode(otherlv_3, grammarAccess.getConditionalExpressionAccess().getColonKeyword_1_2());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getConditionalExpressionAccess().getExpAdditiveExpressionParserRuleCall_1_3_0()); 
	    }
		lv_exp_4_0=ruleAdditiveExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_4_0, 
        		"AdditiveExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))?)
;





// Entry rule entryRuleAdditiveExpression
entryRuleAdditiveExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getAdditiveExpressionRule()); }
	 iv_ruleAdditiveExpression=ruleAdditiveExpression 
	 { $current=$iv_ruleAdditiveExpression.current; } 
	 EOF 
;

// Rule AdditiveExpression
ruleAdditiveExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_0_0()); 
	    }
		lv_exp_0_0=ruleMultiplicativeExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"MultiplicativeExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
(
		lv_op_1_1=	'+' 
    {
        newLeafNode(lv_op_1_1, grammarAccess.getAdditiveExpressionAccess().getOpPlusSignKeyword_1_0_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getAdditiveExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_1, null);
	    }

    |		lv_op_1_2=	'-' 
    {
        newLeafNode(lv_op_1_2, grammarAccess.getAdditiveExpressionAccess().getOpHyphenMinusKeyword_1_0_0_1());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getAdditiveExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_2, null);
	    }

)

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getExpMultiplicativeExpressionParserRuleCall_1_1_0()); 
	    }
		lv_exp_2_0=ruleMultiplicativeExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"MultiplicativeExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleMultiplicativeExpression
entryRuleMultiplicativeExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); }
	 iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression 
	 { $current=$iv_ruleMultiplicativeExpression.current; } 
	 EOF 
;

// Rule MultiplicativeExpression
ruleMultiplicativeExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_0_0()); 
	    }
		lv_exp_0_0=ruleUnaryExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_0_0, 
        		"UnaryExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
(
		lv_op_1_1=	'*' 
    {
        newLeafNode(lv_op_1_1, grammarAccess.getMultiplicativeExpressionAccess().getOpAsteriskKeyword_1_0_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_1, null);
	    }

    |		lv_op_1_2=	'/' 
    {
        newLeafNode(lv_op_1_2, grammarAccess.getMultiplicativeExpressionAccess().getOpSolidusKeyword_1_0_0_1());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_2, null);
	    }

    |		lv_op_1_3=	'mod' 
    {
        newLeafNode(lv_op_1_3, grammarAccess.getMultiplicativeExpressionAccess().getOpModKeyword_1_0_0_2());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getMultiplicativeExpressionRule());
	        }
       		addWithLastConsumed($current, "op", lv_op_1_3, null);
	    }

)

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExpUnaryExpressionParserRuleCall_1_1_0()); 
	    }
		lv_exp_2_0=ruleUnaryExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
	        }
       		add(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"UnaryExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleUnaryExpression
entryRuleUnaryExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getUnaryExpressionRule()); }
	 iv_ruleUnaryExpression=ruleUnaryExpression 
	 { $current=$iv_ruleUnaryExpression.current; } 
	 EOF 
;

// Rule UnaryExpression
ruleUnaryExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(((
(
(
		lv_op_0_1=	'not' 
    {
        newLeafNode(lv_op_0_1, grammarAccess.getUnaryExpressionAccess().getOpNotKeyword_0_0_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getUnaryExpressionRule());
	        }
       		setWithLastConsumed($current, "op", lv_op_0_1, null);
	    }

    |		lv_op_0_2=	'-' 
    {
        newLeafNode(lv_op_0_2, grammarAccess.getUnaryExpressionAccess().getOpHyphenMinusKeyword_0_0_0_1());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getUnaryExpressionRule());
	        }
       		setWithLastConsumed($current, "op", lv_op_0_2, null);
	    }

    |		lv_op_0_3=	'+' 
    {
        newLeafNode(lv_op_0_3, grammarAccess.getUnaryExpressionAccess().getOpPlusSignKeyword_0_0_0_2());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getUnaryExpressionRule());
	        }
       		setWithLastConsumed($current, "op", lv_op_0_3, null);
	    }

)

)
)(
(
		{ 
	        newCompositeNode(grammarAccess.getUnaryExpressionAccess().getUnaryUnaryExpressionParserRuleCall_0_1_0()); 
	    }
		lv_unary_1_0=ruleUnaryExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
	        }
       		set(
       			$current, 
       			"unary",
        		lv_unary_1_0, 
        		"UnaryExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))
    |(
(
		{ 
	        newCompositeNode(grammarAccess.getUnaryExpressionAccess().getExpPrimaryExpressionParserRuleCall_1_0()); 
	    }
		lv_exp_2_0=rulePrimaryExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
	        }
       		set(
       			$current, 
       			"exp",
        		lv_exp_2_0, 
        		"PrimaryExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))
;





// Entry rule entryRulePrimaryExpression
entryRulePrimaryExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getPrimaryExpressionRule()); }
	 iv_rulePrimaryExpression=rulePrimaryExpression 
	 { $current=$iv_rulePrimaryExpression.current; } 
	 EOF 
;

// Rule PrimaryExpression
rulePrimaryExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getPrefixValueSpecificationParserRuleCall_0_0()); 
	    }
		lv_prefix_0_0=ruleValueSpecification		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
	        }
       		set(
       			$current, 
       			"prefix",
        		lv_prefix_0_0, 
        		"ValueSpecification");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_1='.' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getPrimaryExpressionAccess().getFullStopKeyword_1_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getSuffixSuffixExpressionParserRuleCall_1_1_0()); 
	    }
		lv_suffix_2_0=ruleSuffixExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
	        }
       		set(
       			$current, 
       			"suffix",
        		lv_suffix_2_0, 
        		"SuffixExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))?)
;





// Entry rule entryRuleValueSpecification
entryRuleValueSpecification returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getValueSpecificationRule()); }
	 iv_ruleValueSpecification=ruleValueSpecification 
	 { $current=$iv_ruleValueSpecification.current; } 
	 EOF 
;

// Rule ValueSpecification
ruleValueSpecification returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getLiteralParserRuleCall_0()); 
    }
    this_Literal_0=ruleLiteral
    { 
        $current = $this_Literal_0.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getNameOrChoiceOrBehaviorCallParserRuleCall_1()); 
    }
    this_NameOrChoiceOrBehaviorCall_1=ruleNameOrChoiceOrBehaviorCall
    { 
        $current = $this_NameOrChoiceOrBehaviorCall_1.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getIntervalParserRuleCall_2()); 
    }
    this_Interval_2=ruleInterval
    { 
        $current = $this_Interval_2.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getCollectionOrTupleParserRuleCall_3()); 
    }
    this_CollectionOrTuple_3=ruleCollectionOrTuple
    { 
        $current = $this_CollectionOrTuple_3.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getTupleParserRuleCall_4()); 
    }
    this_Tuple_4=ruleTuple
    { 
        $current = $this_Tuple_4.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getTimeExpressionParserRuleCall_5()); 
    }
    this_TimeExpression_5=ruleTimeExpression
    { 
        $current = $this_TimeExpression_5.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getVariableDeclarationParserRuleCall_6()); 
    }
    this_VariableDeclaration_6=ruleVariableDeclaration
    { 
        $current = $this_VariableDeclaration_6.current; 
        afterParserOrEnumRuleCall();
    }

    |(	otherlv_7='(' 
    {
    	newLeafNode(otherlv_7, grammarAccess.getValueSpecificationAccess().getLeftParenthesisKeyword_7_0());
    }

    { 
        newCompositeNode(grammarAccess.getValueSpecificationAccess().getExpressionParserRuleCall_7_1()); 
    }
    this_Expression_8=ruleExpression
    { 
        $current = $this_Expression_8.current; 
        afterParserOrEnumRuleCall();
    }
	otherlv_9=')' 
    {
    	newLeafNode(otherlv_9, grammarAccess.getValueSpecificationAccess().getRightParenthesisKeyword_7_2());
    }
))
;





// Entry rule entryRuleSuffixExpression
entryRuleSuffixExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getSuffixExpressionRule()); }
	 iv_ruleSuffixExpression=ruleSuffixExpression 
	 { $current=$iv_ruleSuffixExpression.current; } 
	 EOF 
;

// Rule SuffixExpression
ruleSuffixExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
    { 
        newCompositeNode(grammarAccess.getSuffixExpressionAccess().getPropertyCallExpressionParserRuleCall_0()); 
    }
    this_PropertyCallExpression_0=rulePropertyCallExpression
    { 
        $current = $this_PropertyCallExpression_0.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getSuffixExpressionAccess().getOperationCallExpressionParserRuleCall_1()); 
    }
    this_OperationCallExpression_1=ruleOperationCallExpression
    { 
        $current = $this_OperationCallExpression_1.current; 
        afterParserOrEnumRuleCall();
    }
)
;





// Entry rule entryRulePropertyCallExpression
entryRulePropertyCallExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getPropertyCallExpressionRule()); }
	 iv_rulePropertyCallExpression=rulePropertyCallExpression 
	 { $current=$iv_rulePropertyCallExpression.current; } 
	 EOF 
;

// Rule PropertyCallExpression
rulePropertyCallExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getPropertyCallExpressionRule());
	        }
        }
	otherlv_0=RULE_ID
	{
		newLeafNode(otherlv_0, grammarAccess.getPropertyCallExpressionAccess().getPropertyPropertyCrossReference_0_0()); 
	}

)
)(	otherlv_1='.' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getPropertyCallExpressionAccess().getFullStopKeyword_1_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getPropertyCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_1_1_0()); 
	    }
		lv_suffix_2_0=ruleSuffixExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getPropertyCallExpressionRule());
	        }
       		set(
       			$current, 
       			"suffix",
        		lv_suffix_2_0, 
        		"SuffixExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))?)
;





// Entry rule entryRuleOperationCallExpression
entryRuleOperationCallExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getOperationCallExpressionRule()); }
	 iv_ruleOperationCallExpression=ruleOperationCallExpression 
	 { $current=$iv_ruleOperationCallExpression.current; } 
	 EOF 
;

// Rule OperationCallExpression
ruleOperationCallExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getOperationCallExpressionRule());
	        }
        }
	otherlv_0=RULE_ID
	{
		newLeafNode(otherlv_0, grammarAccess.getOperationCallExpressionAccess().getOperationOperationCrossReference_0_0()); 
	}

)
)	otherlv_1='(' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getOperationCallExpressionAccess().getLeftParenthesisKeyword_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getOperationCallExpressionAccess().getArgumentsListOfValuesParserRuleCall_2_0()); 
	    }
		lv_arguments_2_0=ruleListOfValues		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getOperationCallExpressionRule());
	        }
       		set(
       			$current, 
       			"arguments",
        		lv_arguments_2_0, 
        		"ListOfValues");
	        afterParserOrEnumRuleCall();
	    }

)
)?	otherlv_3=')' 
    {
    	newLeafNode(otherlv_3, grammarAccess.getOperationCallExpressionAccess().getRightParenthesisKeyword_3());
    }
(	otherlv_4='.' 
    {
    	newLeafNode(otherlv_4, grammarAccess.getOperationCallExpressionAccess().getFullStopKeyword_4_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getOperationCallExpressionAccess().getSuffixSuffixExpressionParserRuleCall_4_1_0()); 
	    }
		lv_suffix_5_0=ruleSuffixExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getOperationCallExpressionRule());
	        }
       		set(
       			$current, 
       			"suffix",
        		lv_suffix_5_0, 
        		"SuffixExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))?)
;





// Entry rule entryRuleLiteral
entryRuleLiteral returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getLiteralRule()); }
	 iv_ruleLiteral=ruleLiteral 
	 { $current=$iv_ruleLiteral.current; } 
	 EOF 
;

// Rule Literal
ruleLiteral returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
    { 
        newCompositeNode(grammarAccess.getLiteralAccess().getNumberLiteralRuleParserRuleCall_0()); 
    }
    this_NumberLiteralRule_0=ruleNumberLiteralRule
    { 
        $current = $this_NumberLiteralRule_0.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getLiteralAccess().getDateTimeLiteralRuleParserRuleCall_1()); 
    }
    this_DateTimeLiteralRule_1=ruleDateTimeLiteralRule
    { 
        $current = $this_DateTimeLiteralRule_1.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getLiteralAccess().getBooleanLiteralRuleParserRuleCall_2()); 
    }
    this_BooleanLiteralRule_2=ruleBooleanLiteralRule
    { 
        $current = $this_BooleanLiteralRule_2.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getLiteralAccess().getNullLiteralRuleParserRuleCall_3()); 
    }
    this_NullLiteralRule_3=ruleNullLiteralRule
    { 
        $current = $this_NullLiteralRule_3.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getLiteralAccess().getDefaultLiteralRuleParserRuleCall_4()); 
    }
    this_DefaultLiteralRule_4=ruleDefaultLiteralRule
    { 
        $current = $this_DefaultLiteralRule_4.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralRuleParserRuleCall_5()); 
    }
    this_StringLiteralRule_5=ruleStringLiteralRule
    { 
        $current = $this_StringLiteralRule_5.current; 
        afterParserOrEnumRuleCall();
    }
)
;





// Entry rule entryRuleNameOrChoiceOrBehaviorCall
entryRuleNameOrChoiceOrBehaviorCall returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getNameOrChoiceOrBehaviorCallRule()); }
	 iv_ruleNameOrChoiceOrBehaviorCall=ruleNameOrChoiceOrBehaviorCall 
	 { $current=$iv_ruleNameOrChoiceOrBehaviorCall.current; } 
	 EOF 
;

// Rule NameOrChoiceOrBehaviorCall
ruleNameOrChoiceOrBehaviorCall returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getNameOrChoiceOrBehaviorCallAccess().getPathQualifiedNameParserRuleCall_0_0()); 
	    }
		lv_path_0_0=ruleQualifiedName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getNameOrChoiceOrBehaviorCallRule());
	        }
       		set(
       			$current, 
       			"path",
        		lv_path_0_0, 
        		"QualifiedName");
	        afterParserOrEnumRuleCall();
	    }

)
)?(
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getNameOrChoiceOrBehaviorCallRule());
	        }
        }
	otherlv_1=RULE_ID
	{
		newLeafNode(otherlv_1, grammarAccess.getNameOrChoiceOrBehaviorCallAccess().getIdNamedElementCrossReference_1_0()); 
	}

)
)(	otherlv_2='(' 
    {
    	newLeafNode(otherlv_2, grammarAccess.getNameOrChoiceOrBehaviorCallAccess().getLeftParenthesisKeyword_2_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getNameOrChoiceOrBehaviorCallAccess().getArgumentsListOfValuesParserRuleCall_2_1_0()); 
	    }
		lv_arguments_3_0=ruleListOfValues		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getNameOrChoiceOrBehaviorCallRule());
	        }
       		set(
       			$current, 
       			"arguments",
        		lv_arguments_3_0, 
        		"ListOfValues");
	        afterParserOrEnumRuleCall();
	    }

)
)?	otherlv_4=')' 
    {
    	newLeafNode(otherlv_4, grammarAccess.getNameOrChoiceOrBehaviorCallAccess().getRightParenthesisKeyword_2_2());
    }
)?)
;





// Entry rule entryRuleQualifiedName
entryRuleQualifiedName returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getQualifiedNameRule()); }
	 iv_ruleQualifiedName=ruleQualifiedName 
	 { $current=$iv_ruleQualifiedName.current; } 
	 EOF 
;

// Rule QualifiedName
ruleQualifiedName returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getQualifiedNameRule());
	        }
        }
	otherlv_0=RULE_ID
	{
		newLeafNode(otherlv_0, grammarAccess.getQualifiedNameAccess().getPathNamespaceCrossReference_0_0()); 
	}

)
)	otherlv_1='::' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getQualifiedNameAccess().getRemainingQualifiedNameParserRuleCall_2_0()); 
	    }
		lv_remaining_2_0=ruleQualifiedName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getQualifiedNameRule());
	        }
       		set(
       			$current, 
       			"remaining",
        		lv_remaining_2_0, 
        		"QualifiedName");
	        afterParserOrEnumRuleCall();
	    }

)
)?)
;





// Entry rule entryRuleInterval
entryRuleInterval returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getIntervalRule()); }
	 iv_ruleInterval=ruleInterval 
	 { $current=$iv_ruleInterval.current; } 
	 EOF 
;

// Rule Interval
ruleInterval returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((	otherlv_0=']' 
    {
    	newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getRightSquareBracketKeyword_0_0());
    }

    |(
(
		lv_isLowerIncluded_1_0=	'[' 
    {
        newLeafNode(lv_isLowerIncluded_1_0, grammarAccess.getIntervalAccess().getIsLowerIncludedLeftSquareBracketKeyword_0_1_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getIntervalRule());
	        }
       		setWithLastConsumed($current, "isLowerIncluded", lv_isLowerIncluded_1_0, "[");
	    }

)
))(
(
		{ 
	        newCompositeNode(grammarAccess.getIntervalAccess().getLowerExpressionParserRuleCall_1_0()); 
	    }
		lv_lower_2_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getIntervalRule());
	        }
       		set(
       			$current, 
       			"lower",
        		lv_lower_2_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_3='..' 
    {
    	newLeafNode(otherlv_3, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getIntervalAccess().getUpperExpressionParserRuleCall_3_0()); 
	    }
		lv_upper_4_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getIntervalRule());
	        }
       		set(
       			$current, 
       			"upper",
        		lv_upper_4_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)((
(
		lv_isUpperIncluded_5_0=	']' 
    {
        newLeafNode(lv_isUpperIncluded_5_0, grammarAccess.getIntervalAccess().getIsUpperIncludedRightSquareBracketKeyword_4_0_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getIntervalRule());
	        }
       		setWithLastConsumed($current, "isUpperIncluded", lv_isUpperIncluded_5_0, "]");
	    }

)
)
    |	otherlv_6='[' 
    {
    	newLeafNode(otherlv_6, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_4_1());
    }
))
;





// Entry rule entryRuleCollectionOrTuple
entryRuleCollectionOrTuple returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getCollectionOrTupleRule()); }
	 iv_ruleCollectionOrTuple=ruleCollectionOrTuple 
	 { $current=$iv_ruleCollectionOrTuple.current; } 
	 EOF 
;

// Rule CollectionOrTuple
ruleCollectionOrTuple returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(	otherlv_0='{' 
    {
    	newLeafNode(otherlv_0, grammarAccess.getCollectionOrTupleAccess().getLeftCurlyBracketKeyword_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getCollectionOrTupleAccess().getListOfValuesListOfValuesParserRuleCall_1_0()); 
	    }
		lv_listOfValues_1_0=ruleListOfValues		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getCollectionOrTupleRule());
	        }
       		set(
       			$current, 
       			"listOfValues",
        		lv_listOfValues_1_0, 
        		"ListOfValues");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_2='}' 
    {
    	newLeafNode(otherlv_2, grammarAccess.getCollectionOrTupleAccess().getRightCurlyBracketKeyword_2());
    }
)
;





// Entry rule entryRuleTuple
entryRuleTuple returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getTupleRule()); }
	 iv_ruleTuple=ruleTuple 
	 { $current=$iv_ruleTuple.current; } 
	 EOF 
;

// Rule Tuple
ruleTuple returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(	otherlv_0='{' 
    {
    	newLeafNode(otherlv_0, grammarAccess.getTupleAccess().getLeftCurlyBracketKeyword_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getTupleAccess().getListOfValueNamePairsListOfValueNamePairsParserRuleCall_1_0()); 
	    }
		lv_listOfValueNamePairs_1_0=ruleListOfValueNamePairs		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getTupleRule());
	        }
       		set(
       			$current, 
       			"listOfValueNamePairs",
        		lv_listOfValueNamePairs_1_0, 
        		"ListOfValueNamePairs");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_2='}' 
    {
    	newLeafNode(otherlv_2, grammarAccess.getTupleAccess().getRightCurlyBracketKeyword_2());
    }
)
;





// Entry rule entryRuleListOfValues
entryRuleListOfValues returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getListOfValuesRule()); }
	 iv_ruleListOfValues=ruleListOfValues 
	 { $current=$iv_ruleListOfValues.current; } 
	 EOF 
;

// Rule ListOfValues
ruleListOfValues returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getListOfValuesAccess().getValuesExpressionParserRuleCall_0_0()); 
	    }
		lv_values_0_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getListOfValuesRule());
	        }
       		add(
       			$current, 
       			"values",
        		lv_values_0_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_1=',' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getListOfValuesAccess().getCommaKeyword_1_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getListOfValuesAccess().getValuesExpressionParserRuleCall_1_1_0()); 
	    }
		lv_values_2_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getListOfValuesRule());
	        }
       		add(
       			$current, 
       			"values",
        		lv_values_2_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleListOfValueNamePairs
entryRuleListOfValueNamePairs returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getListOfValueNamePairsRule()); }
	 iv_ruleListOfValueNamePairs=ruleListOfValueNamePairs 
	 { $current=$iv_ruleListOfValueNamePairs.current; } 
	 EOF 
;

// Rule ListOfValueNamePairs
ruleListOfValueNamePairs returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getListOfValueNamePairsAccess().getValueNamePairsValueNamePairParserRuleCall_0_0()); 
	    }
		lv_valueNamePairs_0_0=ruleValueNamePair		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getListOfValueNamePairsRule());
	        }
       		add(
       			$current, 
       			"valueNamePairs",
        		lv_valueNamePairs_0_0, 
        		"ValueNamePair");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_1=',' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getListOfValueNamePairsAccess().getCommaKeyword_1_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getListOfValueNamePairsAccess().getValueNamePairsValueNamePairParserRuleCall_1_1_0()); 
	    }
		lv_valueNamePairs_2_0=ruleValueNamePair		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getListOfValueNamePairsRule());
	        }
       		add(
       			$current, 
       			"valueNamePairs",
        		lv_valueNamePairs_2_0, 
        		"ValueNamePair");
	        afterParserOrEnumRuleCall();
	    }

)
))*)
;





// Entry rule entryRuleValueNamePair
entryRuleValueNamePair returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getValueNamePairRule()); }
	 iv_ruleValueNamePair=ruleValueNamePair 
	 { $current=$iv_ruleValueNamePair.current; } 
	 EOF 
;

// Rule ValueNamePair
ruleValueNamePair returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getValueNamePairRule());
	        }
        }
	otherlv_0=RULE_ID
	{
		newLeafNode(otherlv_0, grammarAccess.getValueNamePairAccess().getPropertyPropertyCrossReference_0_0()); 
	}

)
)	otherlv_1='=' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getValueNamePairAccess().getEqualsSignKeyword_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getValueNamePairAccess().getValueExpressionParserRuleCall_2_0()); 
	    }
		lv_value_2_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getValueNamePairRule());
	        }
       		set(
       			$current, 
       			"value",
        		lv_value_2_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
))
;





// Entry rule entryRuleTimeExpression
entryRuleTimeExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getTimeExpressionRule()); }
	 iv_ruleTimeExpression=ruleTimeExpression 
	 { $current=$iv_ruleTimeExpression.current; } 
	 EOF 
;

// Rule TimeExpression
ruleTimeExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
    { 
        newCompositeNode(grammarAccess.getTimeExpressionAccess().getInstantObsExpressionParserRuleCall_0()); 
    }
    this_InstantObsExpression_0=ruleInstantObsExpression
    { 
        $current = $this_InstantObsExpression_0.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getTimeExpressionAccess().getDurationObsExpressionParserRuleCall_1()); 
    }
    this_DurationObsExpression_1=ruleDurationObsExpression
    { 
        $current = $this_DurationObsExpression_1.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getTimeExpressionAccess().getJitterExpParserRuleCall_2()); 
    }
    this_JitterExp_2=ruleJitterExp
    { 
        $current = $this_JitterExp_2.current; 
        afterParserOrEnumRuleCall();
    }
)
;





// Entry rule entryRuleInstantObsExpression
entryRuleInstantObsExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getInstantObsExpressionRule()); }
	 iv_ruleInstantObsExpression=ruleInstantObsExpression 
	 { $current=$iv_ruleInstantObsExpression.current; } 
	 EOF 
;

// Rule InstantObsExpression
ruleInstantObsExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(	otherlv_0='@' 
    {
    	newLeafNode(otherlv_0, grammarAccess.getInstantObsExpressionAccess().getCommercialAtKeyword_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getInstantObsExpressionAccess().getIdInstantObsNameParserRuleCall_1_0()); 
	    }
		lv_id_1_0=ruleInstantObsName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getInstantObsExpressionRule());
	        }
       		set(
       			$current, 
       			"id",
        		lv_id_1_0, 
        		"InstantObsName");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_2='(' 
    {
    	newLeafNode(otherlv_2, grammarAccess.getInstantObsExpressionAccess().getLeftParenthesisKeyword_2_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getInstantObsExpressionAccess().getIndexExpressionParserRuleCall_2_1_0()); 
	    }
		lv_index_3_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getInstantObsExpressionRule());
	        }
       		set(
       			$current, 
       			"index",
        		lv_index_3_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_4=')' 
    {
    	newLeafNode(otherlv_4, grammarAccess.getInstantObsExpressionAccess().getRightParenthesisKeyword_2_2());
    }
)?(	otherlv_5='when' 
    {
    	newLeafNode(otherlv_5, grammarAccess.getInstantObsExpressionAccess().getWhenKeyword_3_0());
    }
	otherlv_6='(' 
    {
    	newLeafNode(otherlv_6, grammarAccess.getInstantObsExpressionAccess().getLeftParenthesisKeyword_3_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getInstantObsExpressionAccess().getConditionExpressionParserRuleCall_3_2_0()); 
	    }
		lv_condition_7_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getInstantObsExpressionRule());
	        }
       		set(
       			$current, 
       			"condition",
        		lv_condition_7_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_8=')' 
    {
    	newLeafNode(otherlv_8, grammarAccess.getInstantObsExpressionAccess().getRightParenthesisKeyword_3_3());
    }
)?)
;





// Entry rule entryRuleInstantObsName
entryRuleInstantObsName returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getInstantObsNameRule()); }
	 iv_ruleInstantObsName=ruleInstantObsName 
	 { $current=$iv_ruleInstantObsName.current; } 
	 EOF 
;

// Rule InstantObsName
ruleInstantObsName returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getInstantObsNameAccess().getPathQualifiedNameParserRuleCall_0_0()); 
	    }
		lv_path_0_0=ruleQualifiedName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getInstantObsNameRule());
	        }
       		set(
       			$current, 
       			"path",
        		lv_path_0_0, 
        		"QualifiedName");
	        afterParserOrEnumRuleCall();
	    }

)
)?(
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getInstantObsNameRule());
	        }
        }
	otherlv_1=RULE_ID
	{
		newLeafNode(otherlv_1, grammarAccess.getInstantObsNameAccess().getInstantIdTimeObservationCrossReference_1_0()); 
	}

)
))
;





// Entry rule entryRuleDurationObsExpression
entryRuleDurationObsExpression returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getDurationObsExpressionRule()); }
	 iv_ruleDurationObsExpression=ruleDurationObsExpression 
	 { $current=$iv_ruleDurationObsExpression.current; } 
	 EOF 
;

// Rule DurationObsExpression
ruleDurationObsExpression returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(	otherlv_0='&' 
    {
    	newLeafNode(otherlv_0, grammarAccess.getDurationObsExpressionAccess().getAmpersandKeyword_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getDurationObsExpressionAccess().getIdDurationObsNameParserRuleCall_1_0()); 
	    }
		lv_id_1_0=ruleDurationObsName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getDurationObsExpressionRule());
	        }
       		set(
       			$current, 
       			"id",
        		lv_id_1_0, 
        		"DurationObsName");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_2='(' 
    {
    	newLeafNode(otherlv_2, grammarAccess.getDurationObsExpressionAccess().getLeftParenthesisKeyword_2_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getDurationObsExpressionAccess().getIndexExpressionParserRuleCall_2_1_0()); 
	    }
		lv_index_3_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getDurationObsExpressionRule());
	        }
       		set(
       			$current, 
       			"index",
        		lv_index_3_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_4=')' 
    {
    	newLeafNode(otherlv_4, grammarAccess.getDurationObsExpressionAccess().getRightParenthesisKeyword_2_2());
    }
)?(	otherlv_5='when' 
    {
    	newLeafNode(otherlv_5, grammarAccess.getDurationObsExpressionAccess().getWhenKeyword_3_0());
    }
	otherlv_6='(' 
    {
    	newLeafNode(otherlv_6, grammarAccess.getDurationObsExpressionAccess().getLeftParenthesisKeyword_3_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getDurationObsExpressionAccess().getConditionExpressionParserRuleCall_3_2_0()); 
	    }
		lv_condition_7_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getDurationObsExpressionRule());
	        }
       		set(
       			$current, 
       			"condition",
        		lv_condition_7_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_8=')' 
    {
    	newLeafNode(otherlv_8, grammarAccess.getDurationObsExpressionAccess().getRightParenthesisKeyword_3_3());
    }
)?)
;





// Entry rule entryRuleDurationObsName
entryRuleDurationObsName returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getDurationObsNameRule()); }
	 iv_ruleDurationObsName=ruleDurationObsName 
	 { $current=$iv_ruleDurationObsName.current; } 
	 EOF 
;

// Rule DurationObsName
ruleDurationObsName returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getDurationObsNameAccess().getPathQualifiedNameParserRuleCall_0_0()); 
	    }
		lv_path_0_0=ruleQualifiedName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getDurationObsNameRule());
	        }
       		set(
       			$current, 
       			"path",
        		lv_path_0_0, 
        		"QualifiedName");
	        afterParserOrEnumRuleCall();
	    }

)
)?(
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getDurationObsNameRule());
	        }
        }
	otherlv_1=RULE_ID
	{
		newLeafNode(otherlv_1, grammarAccess.getDurationObsNameAccess().getDurationIdDurationObservationCrossReference_1_0()); 
	}

)
))
;





// Entry rule entryRuleJitterExp
entryRuleJitterExp returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getJitterExpRule()); }
	 iv_ruleJitterExp=ruleJitterExp 
	 { $current=$iv_ruleJitterExp.current; } 
	 EOF 
;

// Rule JitterExp
ruleJitterExp returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(	otherlv_0='jitter(' 
    {
    	newLeafNode(otherlv_0, grammarAccess.getJitterExpAccess().getJitterKeyword_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getJitterExpAccess().getFirstInstantInstantObsExpressionParserRuleCall_1_0()); 
	    }
		lv_firstInstant_1_0=ruleInstantObsExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getJitterExpRule());
	        }
       		set(
       			$current, 
       			"firstInstant",
        		lv_firstInstant_1_0, 
        		"InstantObsExpression");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_2='-' 
    {
    	newLeafNode(otherlv_2, grammarAccess.getJitterExpAccess().getHyphenMinusKeyword_2_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getJitterExpAccess().getSecondInstantInstantObsExpressionParserRuleCall_2_1_0()); 
	    }
		lv_secondInstant_3_0=ruleInstantObsExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getJitterExpRule());
	        }
       		set(
       			$current, 
       			"secondInstant",
        		lv_secondInstant_3_0, 
        		"InstantObsExpression");
	        afterParserOrEnumRuleCall();
	    }

)
))?	otherlv_4=')' 
    {
    	newLeafNode(otherlv_4, grammarAccess.getJitterExpAccess().getRightParenthesisKeyword_3());
    }
)
;





// Entry rule entryRuleVariableDeclaration
entryRuleVariableDeclaration returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getVariableDeclarationRule()); }
	 iv_ruleVariableDeclaration=ruleVariableDeclaration 
	 { $current=$iv_ruleVariableDeclaration.current; } 
	 EOF 
;

// Rule VariableDeclaration
ruleVariableDeclaration returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getVariableDeclarationAccess().getVariableDeclarationVariableDirectionKindParserRuleCall_0_0()); 
	    }
		lv_variableDeclaration_0_0=ruleVariableDirectionKind		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getVariableDeclarationRule());
	        }
       		set(
       			$current, 
       			"variableDeclaration",
        		lv_variableDeclaration_0_0, 
        		"VariableDirectionKind");
	        afterParserOrEnumRuleCall();
	    }

)
)?	otherlv_1='$' 
    {
    	newLeafNode(otherlv_1, grammarAccess.getVariableDeclarationAccess().getDollarSignKeyword_1());
    }
(
(
		lv_name_2_0=RULE_ID
		{
			newLeafNode(lv_name_2_0, grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_2_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getVariableDeclarationRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"name",
        		lv_name_2_0, 
        		"ID");
	    }

)
)((	otherlv_3=':' 
    {
    	newLeafNode(otherlv_3, grammarAccess.getVariableDeclarationAccess().getColonKeyword_3_0_0());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getVariableDeclarationAccess().getTypeDataTypeNameParserRuleCall_3_0_1_0()); 
	    }
		lv_type_4_0=ruleDataTypeName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getVariableDeclarationRule());
	        }
       		set(
       			$current, 
       			"type",
        		lv_type_4_0, 
        		"DataTypeName");
	        afterParserOrEnumRuleCall();
	    }

)
)(	otherlv_5='=' 
    {
    	newLeafNode(otherlv_5, grammarAccess.getVariableDeclarationAccess().getEqualsSignKeyword_3_0_2_0());
    }
	otherlv_6='(' 
    {
    	newLeafNode(otherlv_6, grammarAccess.getVariableDeclarationAccess().getLeftParenthesisKeyword_3_0_2_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getVariableDeclarationAccess().getInitValueExpressionParserRuleCall_3_0_2_2_0()); 
	    }
		lv_initValue_7_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getVariableDeclarationRule());
	        }
       		set(
       			$current, 
       			"initValue",
        		lv_initValue_7_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_8=')' 
    {
    	newLeafNode(otherlv_8, grammarAccess.getVariableDeclarationAccess().getRightParenthesisKeyword_3_0_2_3());
    }
)?)
    |(	otherlv_9='=' 
    {
    	newLeafNode(otherlv_9, grammarAccess.getVariableDeclarationAccess().getEqualsSignKeyword_3_1_0());
    }
	otherlv_10='(' 
    {
    	newLeafNode(otherlv_10, grammarAccess.getVariableDeclarationAccess().getLeftParenthesisKeyword_3_1_1());
    }
(
(
		{ 
	        newCompositeNode(grammarAccess.getVariableDeclarationAccess().getInitValueExpressionParserRuleCall_3_1_2_0()); 
	    }
		lv_initValue_11_0=ruleExpression		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getVariableDeclarationRule());
	        }
       		set(
       			$current, 
       			"initValue",
        		lv_initValue_11_0, 
        		"Expression");
	        afterParserOrEnumRuleCall();
	    }

)
)	otherlv_12=')' 
    {
    	newLeafNode(otherlv_12, grammarAccess.getVariableDeclarationAccess().getRightParenthesisKeyword_3_1_3());
    }
)))
;





// Entry rule entryRuleVariableDirectionKind
entryRuleVariableDirectionKind returns [String current=null] 
	:
	{ newCompositeNode(grammarAccess.getVariableDirectionKindRule()); } 
	 iv_ruleVariableDirectionKind=ruleVariableDirectionKind 
	 { $current=$iv_ruleVariableDirectionKind.current.getText(); }  
	 EOF 
;

// Rule VariableDirectionKind
ruleVariableDirectionKind returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
	kw='in' 
    {
        $current.merge(kw);
        newLeafNode(kw, grammarAccess.getVariableDirectionKindAccess().getInKeyword_0()); 
    }

    |
	kw='out' 
    {
        $current.merge(kw);
        newLeafNode(kw, grammarAccess.getVariableDirectionKindAccess().getOutKeyword_1()); 
    }

    |
	kw='inout' 
    {
        $current.merge(kw);
        newLeafNode(kw, grammarAccess.getVariableDirectionKindAccess().getInoutKeyword_2()); 
    }
)
    ;





// Entry rule entryRuleDataTypeName
entryRuleDataTypeName returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getDataTypeNameRule()); }
	 iv_ruleDataTypeName=ruleDataTypeName 
	 { $current=$iv_ruleDataTypeName.current; } 
	 EOF 
;

// Rule DataTypeName
ruleDataTypeName returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
((
(
		{ 
	        newCompositeNode(grammarAccess.getDataTypeNameAccess().getPathQualifiedNameParserRuleCall_0_0()); 
	    }
		lv_path_0_0=ruleQualifiedName		{
	        if ($current==null) {
	            $current = createModelElementForParent(grammarAccess.getDataTypeNameRule());
	        }
       		set(
       			$current, 
       			"path",
        		lv_path_0_0, 
        		"QualifiedName");
	        afterParserOrEnumRuleCall();
	    }

)
)?(
(
		{
			if ($current==null) {
	            $current = createModelElement(grammarAccess.getDataTypeNameRule());
	        }
        }
	otherlv_1=RULE_ID
	{
		newLeafNode(otherlv_1, grammarAccess.getDataTypeNameAccess().getTypeDataTypeCrossReference_1_0()); 
	}

)
))
;





// Entry rule entryRuleNumberLiteralRule
entryRuleNumberLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); }
	 iv_ruleNumberLiteralRule=ruleNumberLiteralRule 
	 { $current=$iv_ruleNumberLiteralRule.current; } 
	 EOF 
;

// Rule NumberLiteralRule
ruleNumberLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
    { 
        newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_0()); 
    }
    this_IntegerLiteralRule_0=ruleIntegerLiteralRule
    { 
        $current = $this_IntegerLiteralRule_0.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getUnlimitedLiteralRuleParserRuleCall_1()); 
    }
    this_UnlimitedLiteralRule_1=ruleUnlimitedLiteralRule
    { 
        $current = $this_UnlimitedLiteralRule_1.current; 
        afterParserOrEnumRuleCall();
    }

    |
    { 
        newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getRealLiteralRuleParserRuleCall_2()); 
    }
    this_RealLiteralRule_2=ruleRealLiteralRule
    { 
        $current = $this_RealLiteralRule_2.current; 
        afterParserOrEnumRuleCall();
    }
)
;





// Entry rule entryRuleIntegerLiteralRule
entryRuleIntegerLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); }
	 iv_ruleIntegerLiteralRule=ruleIntegerLiteralRule 
	 { $current=$iv_ruleIntegerLiteralRule.current; } 
	 EOF 
;

// Rule IntegerLiteralRule
ruleIntegerLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=RULE_INTEGERLITERAL
		{
			newLeafNode(lv_value_0_0, grammarAccess.getIntegerLiteralRuleAccess().getValueIntegerLiteralTerminalRuleCall_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getIntegerLiteralRuleRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"value",
        		lv_value_0_0, 
        		"IntegerLiteral");
	    }

)
)
;





// Entry rule entryRuleUnlimitedLiteralRule
entryRuleUnlimitedLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getUnlimitedLiteralRuleRule()); }
	 iv_ruleUnlimitedLiteralRule=ruleUnlimitedLiteralRule 
	 { $current=$iv_ruleUnlimitedLiteralRule.current; } 
	 EOF 
;

// Rule UnlimitedLiteralRule
ruleUnlimitedLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=	'*' 
    {
        newLeafNode(lv_value_0_0, grammarAccess.getUnlimitedLiteralRuleAccess().getValueAsteriskKeyword_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getUnlimitedLiteralRuleRule());
	        }
       		setWithLastConsumed($current, "value", lv_value_0_0, "*");
	    }

)
)
;





// Entry rule entryRuleRealLiteralRule
entryRuleRealLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getRealLiteralRuleRule()); }
	 iv_ruleRealLiteralRule=ruleRealLiteralRule 
	 { $current=$iv_ruleRealLiteralRule.current; } 
	 EOF 
;

// Rule RealLiteralRule
ruleRealLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=RULE_REALLITERAL
		{
			newLeafNode(lv_value_0_0, grammarAccess.getRealLiteralRuleAccess().getValueRealLiteralTerminalRuleCall_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getRealLiteralRuleRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"value",
        		lv_value_0_0, 
        		"RealLiteral");
	    }

)
)
;





// Entry rule entryRuleDateTimeLiteralRule
entryRuleDateTimeLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getDateTimeLiteralRuleRule()); }
	 iv_ruleDateTimeLiteralRule=ruleDateTimeLiteralRule 
	 { $current=$iv_ruleDateTimeLiteralRule.current; } 
	 EOF 
;

// Rule DateTimeLiteralRule
ruleDateTimeLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=RULE_DATETIMELITERAL
		{
			newLeafNode(lv_value_0_0, grammarAccess.getDateTimeLiteralRuleAccess().getValueDateTimeLiteralTerminalRuleCall_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getDateTimeLiteralRuleRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"value",
        		lv_value_0_0, 
        		"DateTimeLiteral");
	    }

)
)
;





// Entry rule entryRuleBooleanLiteralRule
entryRuleBooleanLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); }
	 iv_ruleBooleanLiteralRule=ruleBooleanLiteralRule 
	 { $current=$iv_ruleBooleanLiteralRule.current; } 
	 EOF 
;

// Rule BooleanLiteralRule
ruleBooleanLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=RULE_BOOLEANLITERAL
		{
			newLeafNode(lv_value_0_0, grammarAccess.getBooleanLiteralRuleAccess().getValueBooleanLiteralTerminalRuleCall_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getBooleanLiteralRuleRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"value",
        		lv_value_0_0, 
        		"BooleanLiteral");
	    }

)
)
;





// Entry rule entryRuleNullLiteralRule
entryRuleNullLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getNullLiteralRuleRule()); }
	 iv_ruleNullLiteralRule=ruleNullLiteralRule 
	 { $current=$iv_ruleNullLiteralRule.current; } 
	 EOF 
;

// Rule NullLiteralRule
ruleNullLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=RULE_NULLLITERAL
		{
			newLeafNode(lv_value_0_0, grammarAccess.getNullLiteralRuleAccess().getValueNullLiteralTerminalRuleCall_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getNullLiteralRuleRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"value",
        		lv_value_0_0, 
        		"NullLiteral");
	    }

)
)
;





// Entry rule entryRuleDefaultLiteralRule
entryRuleDefaultLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getDefaultLiteralRuleRule()); }
	 iv_ruleDefaultLiteralRule=ruleDefaultLiteralRule 
	 { $current=$iv_ruleDefaultLiteralRule.current; } 
	 EOF 
;

// Rule DefaultLiteralRule
ruleDefaultLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=	'/' 
    {
        newLeafNode(lv_value_0_0, grammarAccess.getDefaultLiteralRuleAccess().getValueSolidusKeyword_0());
    }
 
	    {
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getDefaultLiteralRuleRule());
	        }
       		setWithLastConsumed($current, "value", lv_value_0_0, "/");
	    }

)
)
;





// Entry rule entryRuleStringLiteralRule
entryRuleStringLiteralRule returns [EObject current=null] 
	:
	{ newCompositeNode(grammarAccess.getStringLiteralRuleRule()); }
	 iv_ruleStringLiteralRule=ruleStringLiteralRule 
	 { $current=$iv_ruleStringLiteralRule.current; } 
	 EOF 
;

// Rule StringLiteralRule
ruleStringLiteralRule returns [EObject current=null] 
    @init { enterRule(); 
    }
    @after { leaveRule(); }:
(
(
		lv_value_0_0=RULE_STRING
		{
			newLeafNode(lv_value_0_0, grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
		}
		{
	        if ($current==null) {
	            $current = createModelElement(grammarAccess.getStringLiteralRuleRule());
	        }
       		setWithLastConsumed(
       			$current, 
       			"value",
        		lv_value_0_0, 
        		"STRING");
	    }

)
)
;





RULE_INTEGERLITERAL : ('+'|'-')? (('0'..'9')+|'0x' ('0'..'9'|'A'..'F'|'a'..'f')+|'0b' ('0'..'1')+);

RULE_REALLITERAL : ('+'|'-')? ('0'..'9')+ '.' ('0'..'9')+ ('E' ('+'|'-')? ('0'..'9')+)?;

RULE_DATETIMELITERAL : (('0'..'1' '0'..'9'|'2' '0'..'3') ':' '0'..'5' '0'..'9' (':' '0'..'5' '0'..'9' (':' '0'..'9' '0'..'9')?)? (' ' '0'..'9' '0'..'9' '0'..'9' '0'..'9' '/' ('0' '0'..'9'|'1' '0'..'2') '/' ('0'..'2' '0'..'9'|'3' ('0'|'1')))? (' ' ('Mon'|'Tue'|'Wed'|'Thr'|'Fri'|'Sat'|'Sun'))?|'0'..'9' '0'..'9' '0'..'9' '0'..'9' '/' ('0' '0'..'9'|'1' '0'..'2') '/' ('0'..'2' '0'..'9'|'3' ('0'|'1')) (' ' ('Mon'|'Tue'|'Wed'|'Thr'|'Fri'|'Sat'|'Sun'))?|('Mon'|'Tue'|'Wed'|'Thr'|'Fri'|'Sat'|'Sun'));

RULE_BOOLEANLITERAL : ('true'|'false');

RULE_NULLLITERAL : 'null';

RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;

RULE_INT : ('0'..'9')+;

RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');

RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';

RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;

RULE_WS : (' '|'\t'|'\r'|'\n')+;

RULE_ANY_OTHER : .;


Back to the top