anchor.diff:  IEnd : '//' {italic.active}? {unsetFormatting(italic);} ;
   SEnd : '--' {strike.active}? {unsetFormatting(strike);} ;
   
  -NoWiki     : '{{{'       -> mode(PREFORMATTED_INLINE) ;
  +NoWiki     : '{{{'      {nowiki=true;} -> mode(CODE_INLINE) ;
   StartCpp   : '[<c++>]'   {cpp=true;}   -> mode(CODE_INLINE) ;
   StartHtml  : '[<html>]'  {html=true;}  -> mode(CODE_INLINE) ;
   StartJava  : '[<java>]'  {java=true;}  -> mode(CODE_INLINE) ;
  
positive.code: 
  InLink : ~(']'|'}'|'|')+ ;
  
  mode PREFORMATTED_INLINE;
  
  AnyInlineText : ~('\r'|'\n') -> more;
  
  OopsItsABlock : ('\r'|'\n') -> mode(PREFORMATTED_BLOCK), more ;
  
  EndNoWikiInline : '}}}' (~'}' {seek(-1);} | EOF) -> mode(DEFAULT_MODE) ;
  
  mode PREFORMATTED_BLOCK;
  
  AnyText   : . -> more ;
  
  EndNoWikiBlock : {getCharPositionInLine()==0}? '}}}' -> mode(DEFAULT_MODE) ;
  
  mode CODE_INLINE;
  
  AnyInlineCode : ~('\r'|'\n') -> more;
  
  OopsItsACodeBlock : ('\r'|'\n') -> mode(CODE_BLOCK), more ;
  
  EndCppInline   : '[</c++>]'   {cpp}?   {cpp=false;}   -> mode(DEFAULT_MODE) ;
  EndHtmlInline  : '[</html>]'  {html}?  {html=false;}  -> mode(DEFAULT_MODE) ;
  EndJavaInline  : '[</java>]'  {java}?  {java=false;}  -> mode(DEFAULT_MODE) ;
  
negative.code: 
  mode CODE_BLOCK;
  
  AnyText   : . -> more ;
  
  EndNoWikiBlock : {getCharPositionInLine()==0}? '}}}' {nowiki}? {nowiki=false;} -> mode(DEFAULT_MODE) ;
  EndCppBlock   : '[</cpp>]'   {cpp}?   {cpp=false;}   -> mode(DEFAULT_MODE) ;
  EndHtmlBlock  : '[</html>]'  {html}?  {html=false;}  -> mode(DEFAULT_MODE) ;
  EndJavaBlock  : '[</java>]'  {java}?  {java=false;}  -> mode(DEFAULT_MODE) ;
  