anchor.diff:          | _ -> failwith "lex:unrecognized OCaml-style escape in string"
       let stringchar = some(fun i -> i <> "\\" && i <> "\"") <|> (a "\\" .>>. escapecode |>> snd)
       let string = a "\"" .>>. many stringchar .>>. a "\"" |>> (fun ((_, s), _) -> "\"" + implode s + "\"")
  +    // rawtoken - all tokens are taged with Ident. In simptoken Resword is added as needed.
       let rawtoken = (string <|> some isbra <|> septok <|> ident) |>> (fun x -> Ident x)
       let simptoken = many(some isspace) .>>. rawtoken |>> (reserve << snd)
       let rec tokens i =
           try
               let (t, rst) = simptoken i
  +            // This is not read as not comment_token but the contents of the ref comment_token.
               if t = !comment_token then
                   (many(fun i ->
                            if i <> [] && hd i <> "\n" then 1, tl i
  
positive.code:                 let toks, rst1 = tokens rst
                  t :: toks, rst1
          with Noparse ->
              [], i
      fst << (tokens .>>. many(some isspace) .>>. finished |>> (fst << fst))
  
  
negative.code:     let undertail = stringof(a "_") .>>. possibly simple_ident |>> collect
      let ident = (undertail <|> simple_ident) .>>. many undertail |>> collect
      let septok = stringof(some issep)
      // escapecode - expects preceeding \ to be removed befor calling.
      // escaped characters can only appear in a quoted string.
      let escapecode i = 
          match i with
          | "\\" :: rst -> "\\", rst
  