anchor.diff:  CodeStartEOF : WS* '```' ~(' ' | '\t' | '\r' | '\n')* WS* LineBreak EOF -> type(Any) ;
   
   CodeStart : WS* '```' ~(' ' | '\t' | '\r' | '\n')* WS* LineBreak {setText(getText().trim().substring(3));} -> mode(CODE_BLOCK) ;
  -NoCodeStart: '```' -> type(Any);
  +NoCodeStart: '```' -> type(Any) ;
   CodeInlineStart : '`' -> mode(CODE_INLINE) ;
   
   /* ***** Links ***** */
  
positive.code: 
  mode HTML_BLOCK;
  
  HtmlAny    : .*? '[</html>]' {doEndCodeTag();} ;
  
  // ***** Code
  
  
negative.code: Italic : '//' {prior() == null || (prior() != ':' || !Character.isLetterOrDigit(priorprior()))}? {toggleFormatting(italic, Any);} ;
  Strike : '--' {toggleFormatting(strike, Any);} ;
  
  NoWiki : '{{{' -> mode(NOWIKI_INLINE) ;
  
  fragment CODETAGTYPE : 'c++' | 'java' | 'xhtml' | 'xml' ;
  fragment CODETAGTYPEHTML : CODETAGTYPE | 'html';
  
  CodeTagStart : '[<' CODETAGTYPE '>]' {doCodeTagStart(CODETAG_INLINE);} ;
  HtmlStart  : '[<html>]' {doCodeTagStart(HTML_INLINE);} ;
  
  /* ***** Code formatting ***** */
  