anchor.diff:  	SP
   ;
   
  -dataCommonOwnLocalClause :
  -	COMMON | OWN | LOCAL
  +pictureCardinality :
  +	LPARENCHAR integerLiteral RPARENCHAR
  +;
  +
  +dataReceivedByClause :
  +	RECEIVED? BY? (CONTENT | REFERENCE | REF)
  +;
  +
  +dataRecordAreaClause :
  +	RECORD AREA
  +;
  +
  +dataRedefinesClause :
  +	REDEFINES dataName
  +;
  +
  +dataRenamesClause :
  +	RENAMES qualifiedDataName
  +	(
  +		(THROUGH | THRU) qualifiedDataName
  +	)?
  +;
  +
  +dataSignClause :
  +	(SIGN IS?)? (LEADING | TRAILING) (SEPARATE CHARACTER?)?
  +;
  +
  +dataSynchronizedClause :
  +	(SYNCHRONIZED | SYNC) (LEFT | RIGHT)?
  +;
  +
  +dataThreadLocalClause :
  +	IS? THREAD_LOCAL
   ;
   
   dataTypeClause :
   	TYPE IS? (SHORT_DATE | LONG_DATE | NUMERIC_DATE | NUMERIC_TIME | LONG_TIME)
   ;
   
  -dataUsingClause :
  -	USING
  -	(
  -		CONVENTION OF? (cobolWord | dataName)
  -		| LANGUAGE OF? (cobolWord | dataName)
  -	)
  -;
  -
  -pictureCardinality :
  -	LPARENCHAR integerLiteral RPARENCHAR
  -;
  -
  -dataExternalClause :
  -	IS? EXTERNAL (BY literal)?
  -;
  -
  -dataGlobalClause :
  -	IS? GLOBAL
  -;
  -
   dataTypeDefClause :
   	IS? TYPEDEF
  -;
  -
  -dataThreadLocalClause :
  -	IS? THREAD_LOCAL
   ;
   
   dataUsageClause :
  
positive.code: 		| dataUsingClause
  		| dataValueClause
  		| dataUsageClause
  		| dataOccursClause
  		| dataSignClause
  		| dataSynchronizedClause
  
negative.code: 
  dataWithLowerBoundsClause :
  	WITH? LOWER BOUNDS
  ;
  
  // --- procedure division --------------------------------------------------------------------
  