Module Lexing


module Lexing = struct ... end 
Types
lexbuf The type of lexer buffers. A lexer buffer is the argument passed to the scanning functions defined by the generated scanners. The lexer buffer holds the current state of the scanner, plus a function to refill the buffer from the input.
= {
refill_buff :  lexbuf -> unit ;
lex_buffer
(mutable)
:  string ;
lex_buffer_len
(mutable)
:  int ;
lex_abs_pos
(mutable)
:  int ;
lex_start_pos
(mutable)
:  int ;
lex_curr_pos
(mutable)
:  int ;
lex_last_pos
(mutable)
:  int ;
lex_last_action
(mutable)
:  int ;
lex_eof_reached
(mutable)
:  bool ;
}
lex_tables = {
lex_base :  string ;
lex_backtrk :  string ;
lex_default :  string ;
lex_trans :  string ;
lex_check :  string ;
}

Functions

from_channel : Pervasives.in_channel -> lexbuf
Create a lexer buffer on the given input channel. Lexing.from_channel inchan returns a lexer buffer which reads from the input channel inchan, at the current reading position.

from_string : string -> lexbuf
Create a lexer buffer which reads from the given string. Reading starts from the first character in the string. An end-of-input condition is generated when the end of the string is reached.

from_function : (buf:string -> len:int -> int) -> lexbuf
Create a lexer buffer with the given function as its reading method. When the scanner needs more characters, it will call the given function, giving it a character string s and a character count n. The function should put n characters or less in s, starting at character number 0, and return the number of characters provided. A return value of 0 means end of input.

lexeme : lexbuf -> string
Lexing.lexeme lexbuf returns the string matched by the regular expression.

lexeme_char : lexbuf -> int -> char
Lexing.lexeme_char lexbuf i returns character number i in the matched string.

lexeme_start : lexbuf -> int
Lexing.lexeme_start lexbuf returns the position in the input stream of the first character of the matched string. The first character of the stream has position 0.

lexeme_end : lexbuf -> int
Lexing.lexeme_end lexbuf returns the position in the input stream of the character following the last character of the matched string. The first character of the stream has position 0.

engine : lex_tables -> int -> lexbuf -> int