anchor.diff:  :
       ( LCURLY RCURLY ) => l:LCURLY^ RCURLY!
       { #functionBody= #(#l, #(#[PARENTHESIZED, "Parenthesized"], null)); }
  -    | LCURLY^ expr RCURLY!
  +    | LCURLY^
  +    { lexer.inFunctionBody = true; }
  +    expr
  +    { lexer.inFunctionBody = false; }
  +    RCURLY!
       ;
   
   returnType throws XPathException:
  
positive.code: 	relativePathExpr
  	|
  	( SLASH relativePathExpr )
  	=> SLASH relPath:relativePathExpr
  	{ #pathExpr= #(#[ABSOLUTE_SLASH, "AbsoluteSlash"], #relPath); }
  	// lone slash
  	|
  	SLASH
  	{ #pathExpr= #[ABSOLUTE_SLASH, "AbsoluteSlash"]; }
  	|
  	DSLASH relPath2:relativePathExpr
  	{ #pathExpr= #(#[ABSOLUTE_DSLASH, "AbsoluteSlashSlash"], #relPath2); }
  	;
  
  relativePathExpr throws XPathException
  
negative.code: 	protected boolean inStringConstructor = false;
  	protected boolean inElementContent= false;
  	protected boolean inAttributeContent= false;
  	protected boolean inFunctionBody= false;
  	protected char attrDelimChar = '"';
  	protected boolean inComment= false;
  	protected boolean inPragma = false;
  