ModSlaveSim help v3.07 - 5.3.6. Expressions

Download manual: HTML

5.3.6. Expressions

 primary_expr : 
        identifier
        constant
        CycleTime
        TimeNow
        left_parenth bitwise_expr right_parenth

left_parenth : ( 
right_parenth :   )
      

bitwise_complement_expr:
        bitwise_complement ? primary_expr
 
bitwise_complement : ~
      

term_expr : 
       bitwise_complement_expr {multiplier bitwise_complement_expr}*

multiplier :  * | / | %
     

numeric_expr : 
     unary_sign? term_expr {binary_sign term_expr}*

binary_sign :  + |  -
unary_sign :   + |  -
      

bitwise_shift_expr :
        numeric_expr {bitwise_shift numeric_expr}*
   
bitwise_shift : << | >>
      

bitwise_and_expr :
        bitwise_shift_expr {bitwise_and bitwise_shift_expr}*

bitwise_and : &
      

bitwise_expr :
        bitwise_and_expr {bitwise_or bitwise_and_expr}*

bitwise_or :
        inclusive_or
        exclusive_or

inclusive_or : |
exclusive_or :   ^
      

comparison_expr : 
        bitwise_expr relation bitwise_expr

relation: 
        less_than
        greater_than
        not_greater_than
        not_less_than
        equal_to
        not_equal_to

less_than : < 
greater_than :   > 
not_greater_than :  <=
not_less_than :   >= 
equal_to :  == 
not_equal_to :      != 
        

relational_term_expr : 
        logical_not? relational_primary_expr

relational_primary_expr : 
        comparison_expr
        left_parenth relational_expr right_parenth

logical_not :   ! 
      
conjunction_expr : 
        relational_term_expr {logical_and relational_term_expr}*

      
logical_and : &&

relational_expr : 
        conjunction_expr {logical_or conjunction_expr}*

logical_or :   ||