home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / progrmng / cmlmcmpw.sit / Caml Light / Lib / lexing.mli < prev    next >
Encoding:
Text File  |  1991-05-01  |  979 b   |  41 lines  |  [TEXT/MPS ]

  1. #open "obj";;
  2.  
  3. type lexbuf =
  4.   { refill_buff : string -> int -> int;
  5.     lex_buffer : string;
  6.     mutable lex_abs_pos : int;
  7.     mutable lex_start_pos : int;
  8.     mutable lex_curr_pos : int;
  9.     mutable lex_last_pos : int;
  10.     mutable lex_last_action : lexbuf -> obj }
  11. ;;
  12.  
  13. value dummy_action : lexbuf -> obj
  14.   and create_lexer : (string -> int -> int) -> lexbuf
  15.   and create_lexer_channel : in_channel -> lexbuf
  16.   and lex_refill : lexbuf -> unit
  17.   and get_next_char : lexbuf -> char
  18.   and get_lexeme : lexbuf -> string
  19.   and get_lexeme_char : lexbuf -> int -> char
  20.   and backtrack : lexbuf -> 'a
  21.   and get_lexeme_start : lexbuf -> int
  22.   and get_lexeme_end : lexbuf -> int
  23. ;;
  24.  
  25. type lexer_state =
  26.     Lbacktrack
  27.   | Lperform of int
  28.   | Lshift of int * int
  29.   | Lremshift of int * int * int
  30. ;;
  31.  
  32. type lexer_tables =
  33.   { llstates: lexer_state vect;
  34.     llact: (lexbuf -> obj) vect;
  35.     lltable: string;
  36.     llcheck: string }
  37. ;;
  38.  
  39. value run_lexer : lexer_tables -> int -> lexbuf -> 'a
  40. ;;
  41.