{ open Logparser let pos = ref 1 let go text = pos := (!pos + String.length text) let token_to_string x = match x with Other s -> "Other(" ^ s ^ ")" | Ident s -> "Ident(" ^ s ^ ")" | Version s -> "Version(" ^ s ^ ")" | Eof -> "Eof" | Newline -> "" | Semicolon -> ";" | Lparen -> "(" | Rparen -> ")" | Langle -> "<" | Rangle -> ">" | Equals -> "=" | Space -> "" | Tab -> "" } rule item = parse ['A'-'Z' 'a'-'z' '0'-'9' '_' '-' '.' ':']* {let tkn = Lexing.lexeme lexbuf in go tkn; Ident tkn} | '(' {let tkn = Lexing.lexeme lexbuf in go tkn; Lparen} | ')' {let tkn = Lexing.lexeme lexbuf in go tkn; Rparen} | '<' {let tkn = Lexing.lexeme lexbuf in go tkn; Langle} | '>' {let tkn = Lexing.lexeme lexbuf in go tkn; Rangle} | ';' {let tkn = Lexing.lexeme lexbuf in go tkn; Semicolon} | '=' {let tkn = Lexing.lexeme lexbuf in go tkn; Equals} | '\n' {let tkn = Lexing.lexeme lexbuf in go tkn; Newline} | ' ' {let tkn = Lexing.lexeme lexbuf in go tkn; Space} | '\t' {let tkn = Lexing.lexeme lexbuf in go tkn; Tab} | _ {let tkn = Lexing.lexeme lexbuf in go tkn; Other tkn} | eof {Eof}