support 'h' to print help message during toplevel interaction

This commit is contained in:
Markus Triska
2020-03-15 13:24:28 +01:00
parent 7ff11dce35
commit 17a448e045
2 changed files with 16 additions and 0 deletions

View File

@@ -33,6 +33,7 @@ use crate::crossterm::terminal::{enable_raw_mode, disable_raw_mode};
pub enum ContinueResult {
ContinueQuery,
Conclude,
Help,
PrintWithoutMaxDepth,
PrintWithMaxDepth
}
@@ -54,6 +55,9 @@ pub fn next_keypress() -> ContinueResult {
KeyCode::Char('.') => {
return ContinueResult::Conclude;
}
KeyCode::Char('h') => {
return ContinueResult::Help;
}
_ => {}
}
}
@@ -2351,6 +2355,7 @@ impl MachineState {
let c = match keypress {
ContinueResult::ContinueQuery => ';',
ContinueResult::Conclude => '.',
ContinueResult::Help => 'h',
ContinueResult::PrintWithoutMaxDepth => 'w',
ContinueResult::PrintWithMaxDepth => 'p',
};

View File

@@ -196,10 +196,21 @@
'$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],