:- module lexer.
:- pragma termination_info(lexer.get_token_list((builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(lexer.string_get_token_list_max((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(lexer.string_get_token_list((builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(lexer.token_to_string((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(lexer.graphic_token_char((builtin.in)), finite(0, [no]), cannot_loop).
:- pragma termination_info(lexer.get_token_list_2((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(lexer.get_token((builtin.in), (builtin.out), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma exceptions(predicate, (lexer.get_token_list), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (lexer.string_get_token_list_max), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (lexer.string_get_token_list), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (lexer.token_to_string), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (lexer.graphic_token_char), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (lexer.get_token_list_2), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (lexer.get_token), 5, 0, may_throw(user_exception)).
