let rec main lexbuf =
    __ocaml_lex_main_rec lexbuf 0
and __ocaml_lex_main_rec lexbuf __ocaml_lex_state =
  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
# 52 "odiff/odiff_lexer.mll"
    (
      main lexbuf
    )
# 155 "odiff/odiff_lexer.ml"

  | 1 ->
# 56 "odiff/odiff_lexer.mll"
    (
      incr line ;
      main lexbuf
    )
# 163 "odiff/odiff_lexer.ml"

  | 2 ->
# 61 "odiff/odiff_lexer.mll"
    (
      try
        let s = Lexing.lexeme lexbuf in
        print_DEBUG s ;
        let n = String.index s ',' in
        let s1 = String.sub s 0 n in
        let s2 = String.sub s (n+1) ((String.length s) - n - 1) in
        IndexMany (int_of_string s1, int_of_string s2)
      with
        Not_found ->
          raise (Failure "zarbi")
    )
# 179 "odiff/odiff_lexer.ml"

  | 3 ->
# 74 "odiff/odiff_lexer.mll"
    (
      let s = Lexing.lexeme lexbuf in
      print_DEBUG s ;
      IndexOne (int_of_string s) )
# 187 "odiff/odiff_lexer.ml"

  | 4 ->
# 79 "odiff/odiff_lexer.mll"
    (
      let s = Lexing.lexeme lexbuf in
      print_DEBUG s ;
      DeletedString (String.sub s 2 ((String.length s) -2))
    )
# 196 "odiff/odiff_lexer.ml"

  | 5 ->
# 86 "odiff/odiff_lexer.mll"
    (
      let s = Lexing.lexeme lexbuf in
      print_DEBUG s ;
      AddedString (String.sub s 2 ((String.length s) -2))
    )
# 205 "odiff/odiff_lexer.ml"

  | 6 ->
# 93 "odiff/odiff_lexer.mll"
    (
      print_DEBUG "a" ;
      ADD
    )
# 213 "odiff/odiff_lexer.ml"

  | 7 ->
# 98 "odiff/odiff_lexer.mll"
    (
      print_DEBUG "d" ;
      DELETE
    )
# 221 "odiff/odiff_lexer.ml"

  | 8 ->
# 103 "odiff/odiff_lexer.mll"
    (
      print_DEBUG "c" ;
      CHANGE
    )
# 229 "odiff/odiff_lexer.ml"

  | 9 ->
# 109 "odiff/odiff_lexer.mll"
    ( EOF )
# 234 "odiff/odiff_lexer.ml"

  | 10 ->
# 112 "odiff/odiff_lexer.mll"
    ( SEP )
# 239 "odiff/odiff_lexer.ml"

  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_main_rec lexbuf __ocaml_lex_state