pub enum ContinueResult {
ContinueQuery,
Conclude,
+ Help,
PrintWithoutMaxDepth,
PrintWithMaxDepth
}
KeyCode::Char('.') => {
return ContinueResult::Conclude;
}
+ KeyCode::Char('h') => {
+ return ContinueResult::Help;
+ }
_ => {}
}
}
let c = match keypress {
ContinueResult::ContinueQuery => ';',
ContinueResult::Conclude => '.',
+ ContinueResult::Help => 'h',
ContinueResult::PrintWithoutMaxDepth => 'w',
ContinueResult::PrintWithMaxDepth => 'p',
};
'$read_input'(ThreadedGoals, NewVarList)
; C == (';') ->
nl, write('; '), false
+ ; C == h ->
+ '$help_message',
+ '$read_input'(ThreadedGoals, NewVarList)
; C == '.',
nl, write(' ...'), nl
).
+'$help_message' :-
+ nl, nl,
+ write('SPACE, "n" or ";": next solution, if any\n'),
+ write('".": stop enumeration\n'),
+ write('"h": display this help message\n'),
+ write('"w": write terms without depth limit\n'),
+ write('"p": print terms with depth limit\n\n').
+
'$gather_query_vars'([_ = Var | Vars], QueryVars) :-
( var(Var) ->
QueryVars = [Var | QueryVars1],