anchor.diff:          (STRINGLITERAL -> ^(STRING STRINGLITERAL) |
            INTLITERAL -> ^(INT INTLITERAL) |
            STRINGLITERAL { qnameDisabled = false; } '%%' datatype -> ^(TYPEDLITERAL STRINGLITERAL datatype) |
  -         { qnameDisabled = false; } '\'' QUALNAME '\'' -> ^(TYPEDLITERAL QUALNAME) | )
  +         { qnameDisabled = false; } '\'' QUALIFIED_NAME '\'' -> ^(TYPEDLITERAL QUALIFIED_NAME) | )
   	;
   
   datatype:
           (IRI_REF -> ^(IRI IRI_REF)
           |
  -         QUALNAME -> ^(QNAM QUALNAME))
  +         QUALIFIED_NAME -> ^(QNAM QUALIFIED_NAME))
   	;
   
   	
  
positive.code: 
  /**
    The following production uses ANTLR directives to disactivate the
    production QUALNAME to guarantee that ensure that PREFX token is
    generated in this context only.
  
    A global static boolean variable (qnameDisabled) is declared in the
    parser, set to true when entering this production and set to false
    on exit.  This variable is use in the lexer to disable the QUALNAME
    production.
  
    Sorry, that's the only way I have found to do this. Obviously, this
  
negative.code: 
  
  /*
  QUALIFIED_NAME and INTLITERAL are conflicting.  To avoid the conflict in
  literal, QUALIFIED_NAME rule is disabled once an attribute has been parsed, to
  give priority to INTLITERAL.
    */
  
  