anchor.diff:          -> {SCOPE_TOP(Symbols)->flag_sizes->get(SCOPE_TOP(Symbols)->flag_sizes,$IDENTIFIER.text->chars)!=NULL
               && *(unsigned int*)SCOPE_TOP(Symbols)->flag_sizes->get(SCOPE_TOP(Symbols)->flag_sizes,$IDENTIFIER.text->chars)==64}?
                UINT64["uint64"] 
  -        -> IDENTIFIER )
  +        -> QUALIFIEDIDENTIFIER[$NameSpace::packageDot->chars] IDENTIFIER )
       {
          $field::isNumericType=(SCOPE_TOP(Symbols)->flag_sizes->get(SCOPE_TOP(Symbols)->flag_sizes,$IDENTIFIER.text->chars)!=NULL||
                                   SCOPE_TOP(Symbols)->enum_sizes->get(SCOPE_TOP(Symbols)->enum_sizes,$IDENTIFIER.text->chars)!=NULL);
  
positive.code: 	|	BYTES
  	;
  
  multiplicitive_advanced_type:
      |   NORMAL -> FLOAT["float"]
      |   VECTOR2F -> FLOAT["float"]
      |   VECTOR2D -> DOUBLE["double"]
      |   VECTOR3F -> FLOAT["float"]
      |   VECTOR3D -> DOUBLE["double"]
      |   VECTOR4F -> FLOAT["float"]
      |   VECTOR4D -> DOUBLE["double"]
      |   QUATERNION -> FLOAT["float"]
      |   BOUNDINGSPHERE3F -> FLOAT["float"]
      |   BOUNDINGSPHERE3D -> DOUBLE["double"]
      |   BOUNDINGBOX3F3F -> FLOAT["float"]
      |   BOUNDINGBOX3D3F -> DOUBLE["double"]
      ;
  
  advanced_numeric_type:	UINT8 -> UINT32["uint32"]
  	|	INT8 -> INT32["int32"]
  	|	SINT8 -> SINT32["sint32"]
  	|	FIXED8 -> INT32["uint32"]
  	|	SFIXED8 -> INT32["sint32"]
  	|	INT16 -> INT32["int32"]
  	|	SINT16 -> SINT32["sint32"]
  	|	FIXED16 -> INT32["uint32"]
  	|	SFIXED16 -> INT32["sint32"]
      |   UINT16 -> UINT32["uint32"]
      |   ANGLE -> FLOAT["float"]
      |   TIME -> FIXED64["fixed64"]
      |   DURATION -> SFIXED64["sfixed64"]
      ; 
  
  advanced_array_type:	   UUID -> BYTES["bytes"]
      |   SHA256 -> BYTES["bytes"]
      ; 
  
  literal_value
  
negative.code: QUOTE : '"' ;
  
  COMMA : ',' ;
  