support 'p' to reprint answer with max depth, allowing w -> p -> w ...

This commit is contained in:
Markus Triska
2020-03-15 13:16:40 +01:00
parent bef96e231d
commit 7ff11dce35
2 changed files with 13 additions and 3 deletions

View File

@@ -34,6 +34,7 @@ pub enum ContinueResult {
ContinueQuery,
Conclude,
PrintWithoutMaxDepth,
PrintWithMaxDepth
}
pub fn next_keypress() -> ContinueResult {
@@ -44,6 +45,9 @@ pub fn next_keypress() -> ContinueResult {
KeyCode::Char('w') => {
return ContinueResult::PrintWithoutMaxDepth;
}
KeyCode::Char('p') => {
return ContinueResult::PrintWithMaxDepth;
}
KeyCode::Char(' ') | KeyCode::Char(';') | KeyCode::Char('n') => {
return ContinueResult::ContinueQuery;
}
@@ -2348,6 +2352,7 @@ impl MachineState {
ContinueResult::ContinueQuery => ';',
ContinueResult::Conclude => '.',
ContinueResult::PrintWithoutMaxDepth => 'w',
ContinueResult::PrintWithMaxDepth => 'p',
};
let target = self[temp_v!(1)].clone();

View File

@@ -184,14 +184,19 @@
'$read_input'(ThreadedGoals, NewVarList) :-
'$raw_input_read_char'(C),
( C == ('w'), !,
( C == w ->
nl,
write(' '),
'$write_eq'(ThreadedGoals, NewVarList, 0),
'$read_input'(ThreadedGoals, NewVarList)
; C == (';'), !,
; C == p ->
nl,
write(' '),
'$write_eq'(ThreadedGoals, NewVarList, 20),
'$read_input'(ThreadedGoals, NewVarList)
; C == (';') ->
nl, write('; '), false
; C == ('.'), !,
; C == '.',
nl, write(' ...'), nl
).