anchor.diff:  fragment STRING
    : '\'' ( STRING_ESCAPE_SEQ | ~[\\\r\n'] )* '\''
    | '"' ( STRING_ESCAPE_SEQ | ~[\\\r\n"] )* '"'
  - | '`' STRING_ITEM*? '`'
  - ;
  -
  -fragment STRING_ITEM
  - : STRING_CHAR
  + | '`' STRING_ING_ITEM*? '`'
  + ;
  +
  +fragment STRING_ING_ITEM
  + : STRING_ING_CHAR
    | STRING_ESCAPE_SEQ
    ;
   
  -fragment STRING_CHAR
  +fragment STRING_ING_CHAR
    : ~'\\'
    ;
   
  
positive.code:  ;           
  
  pass_statement
   : Mark=PASS
   ;
  
  flow_statement
  
negative.code:  * The above copyright notice and this permission notice shall be
   * included in all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KKEY_IND,
   * EXPRESS OR IMPLIED, KEY_INCLUDKEY_ING BUT NOT LIMITED TO THE WARRANTIES
   * OF MERCHANTABILITY, FITNESS KEY_FOR A PARTICULAR PURPOSE AND
   * NONKEY_INFRKEY_INGEMENT. KEY_IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
   * HOLDERS BE LIABLE KEY_FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
   * WHETHER KEY_IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISKEY_ING
   * FROM, OUT OF OR KEY_IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   * OTHER DEALKEY_INGS KEY_IN THE SOFTWARE.
   *
   */
  
  grammar Lury;
  
  tokens { KEY_INDENT, DEDENT }
  
  @lexer::header {
  using System;
  