anchor.diff:       * 6.4 Lexical elements
        **********************/
       
  -    token :
  +    token:
           keyword
   	|	identifier
   	|	constant
   	|	string-literal
   	|	punctuator
   	;
  +
  +	preprocessing-token:
  +		header-name
  +	|	identifier
  +	|	pp-number
  +	|	character-constant
  +	|	string-literal
  +	|	punctuator
  +	|	"."
  +    ;
   
       punctuator :
           LRECTANGULAR
  
positive.code:     
      static_assert-declaration:
          _STATIC_ASSERT LPAREN constant-expression COMMA string-literal RPAREN SEMICOLON
      ;
negative.code:     _STATIC_ASSERT : "_Static_assert(?!\\w)" ;
      _THREAD_LOCAL  : "_Thread_local(?!\\w)" ;
  
      PP_IF : "#\\s*if(?!\\w)";
      PP_IFDEF : "#\\s*ifdef(?!\\w)";
      PP_IFNDEF : "#\\s*ifndef(?!\\w)";
      PP_ELIF : "#\\s*elif(?!\\w)";
      PP_ELSE : "#\\s*else(?!\\w)";
      PP_ENDIF : "#\\s*endif(?!\\w)";
      PP_INCLUDE : "#\\s*include(?!\\w)";
      PP_DEFINE : "#\\s*define(?!\\w)";
      PP_UNDEF : "#\\s*undef(?!\\w)";
      PP_LINE : "#\\s*line(?!\\w)";
      PP_ERROR : "#\\s*error(?!\\w)";
      PP_PRAGMA : "#\\s*pragma(?!\\w)";
      
      /*
       * 6.4.4.1 Integer constants
       */
  