anchor.diff:      | 'FRAGMENT_DEFINITION'
       | 'FRAGMENT_SPREAD'
       | 'INLINE_FRAGMENT'
  +    | 'VARIABLE_DEFINITION'   // new 2021
       ;
   
   typeSystemDirectiveLocation:
  
positive.code: 
   GraphQL grammar derived from:
  
   GraphQL Draft Specification - July 2015
  
   http://facebook.github.io/graphql/ https://github.com/facebook/graphql
  
   AB:10-sep19: replaced type with type_ to resolve conflict for golang generator
  
   AB: 13-oct-19: added type system as per June 2018 specs
   AB: 26-oct-19: added ID type
   AB: 30-Oct-19: description, boolean, schema & Block string fix.
       now parses: https://raw.githubusercontent.com/graphql-cats/graphql-cats/master/scenarios/validation/validation.schema.graphql
  
   */
  grammar GraphQL;
  
  //https://spec.graphql.org/June2018/#sec-Language.Document
  document: definition+ EOF;
  
  definition:
  	executableDefinition
  	| typeSystemDefinition
  	| typeSystemExtension;
  
  //https://spec.graphql.org/June2018/#ExecutableDefinition
  executableDefinition: operationDefinition | fragmentDefinition;
  
  //https://spec.graphql.org/June2018/#sec-Language.Operations
  operationDefinition:
  	operationType name? variableDefinitions? directives? selectionSet
  	| selectionSet
  
negative.code: fragment SIGN: [+-];
  fragment NEGATIVE_SIGN: '-';
  
  //https://spec.graphql.org/October2021/#sec-Float-Value
  FLOAT: INT FRACTIONAL_PART
      | INT EXPONENTIAL_PART
      | INT FRACTIONAL_PART EXPONENTIAL_PART
  