anchor.diff:      
   IntegerType 
       : INT DIGIT+
  +    ;
  +
  +widthOrSizeExpr
  +    : WidthType
       ;
   
   WidthType 
  
positive.code: DIGIT 
      : ('0'..'9')  
      ;
  
  BIN_DIGIT
      : ('0' | '1' | '_')
      ;
      
  OCTAL_DIGIT
      : ('0'..'7' | '_')
      ;
  
  HEX_DIGIT 
      : ('0'..'9'|'a'..'f'|'A'..'F'|'_') 
      ;
  
negative.code:     ;
      
  expression
      : varName
      | namedConstant Colon fullyQualifiedExpression   
      | LeftParen widthOrSizeExpr number RightParen
      | LeftParen arithmeticExpr widthOrSizeExpr leftExpr rightExpr RightParen
      | LeftParen notExpr LeftBracket widthOrSizeExpr RightBracket expression RightParen
      | LeftParen bitwiseExpr widthOrSizeExpr leftExpr rightExpr RightParen 
      | LeftParen comparisonExpr widthOrSizeExpr leftExpr rightExpr RightParen 
      | LeftParen comparisonExpr leftExpr rightExpr RightParen 
      | LeftParen concatExpr widthOrSizeExpr leftExpr rightExpr RightParen
      | LeftParen concatExpr leftExpr rightExpr RightParen
      | LeftParen arrExtractExpr widthOrSizeExpr number expression RightParen
      | LeftParen bitExtractExpr widthOrSizeExpr expression RightParen
      | LeftParen genericBitRead widthOrSizeExpr expression version RightParen
      | LeftParen selectExpr widthOrSizeExpr leftExpr rightExpr expression RightParen  
      | LeftParen exprNegation widthOrSizeExpr expression RightParen
      | LeftParen exprNegation expression RightParen 
      | LeftParen genericBitRead widthOrSizeExpr expression RightParen
      | version
      | number
      ;
  
  genericBitRead
      : READ
      | READLSB
      | READMSB
      ;
  
  bitExtractExpr
      : ZEXT
      | SEXT
      ;
      
  version
      : varName 
      | namedConstant Colon fullyQualifiedExpression
      | LeftBracket updateList RightBracket ATR version
      | LeftBracket RightBracket ATR version
      ;
  
  fullyQualifiedExpression
      : expression
      ;
      
  notExpr
      : NOT
      ;
      
  concatExpr
      : CONCAT
      ;
  
  exprNegation
      : NEGETION
      ;
  
  selectExpr
      : SELECT
      ;
  
  
  arrExtractExpr
      : EXTRACT
      ;
      
  varName
      : Identifier
      ;
      
  leftExpr 
      : expression
      ; 
  
  rightExpr
      : expression
      ;
      
  namedConstant
      : Identifier
      ;
      
  updateList 
  