sig
  type token =
      LEFT_PARENTHESIS
    | RIGHT_PARENTHESIS
    | DOT
    | IF
    | NOT
    | COMMA
    | EOI
    | SINGLE_QUOTED of string
    | LOWER_WORD of string
    | UPPER_WORD of string
    | INT of string
  val parse_literal :
    (Lexing.lexbuf -> BottomUpParser.token) ->
    Lexing.lexbuf -> BottomUpAst.literal
  val parse_literals :
    (Lexing.lexbuf -> BottomUpParser.token) ->
    Lexing.lexbuf -> BottomUpAst.literal list
  val parse_clause :
    (Lexing.lexbuf -> BottomUpParser.token) ->
    Lexing.lexbuf -> BottomUpAst.clause
  val parse_file :
    (Lexing.lexbuf -> BottomUpParser.token) ->
    Lexing.lexbuf -> BottomUpAst.file
  val parse_query :
    (Lexing.lexbuf -> BottomUpParser.token) ->
    Lexing.lexbuf -> BottomUpAst.query
end