feat(library/tactic): add repeat1 and determ tacticals
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
cb7a5288c5
commit
40d612eca0
1 changed files with 8 additions and 0 deletions
|
@ -173,6 +173,10 @@ tactic par(tactic const & t1, tactic const & t2, unsigned check_ms = 1);
|
||||||
\brief Return a tactic that keeps applying \c t until it fails.
|
\brief Return a tactic that keeps applying \c t until it fails.
|
||||||
*/
|
*/
|
||||||
tactic repeat(tactic const & t);
|
tactic repeat(tactic const & t);
|
||||||
|
/**
|
||||||
|
\brief Similar to \c repeat, but applies \c t at least once.
|
||||||
|
*/
|
||||||
|
inline tactic repeat1(tactic const & t) { return then(t, repeat(t)); }
|
||||||
/**
|
/**
|
||||||
\brief Similar to \c repeat, but execute \c t at most \c k times.
|
\brief Similar to \c repeat, but execute \c t at most \c k times.
|
||||||
|
|
||||||
|
@ -186,6 +190,10 @@ tactic repeat_at_most(tactic const & t, unsigned k);
|
||||||
k elements from the sequence produced by \c t.
|
k elements from the sequence produced by \c t.
|
||||||
*/
|
*/
|
||||||
tactic take(tactic const & t, unsigned k);
|
tactic take(tactic const & t, unsigned k);
|
||||||
|
/**
|
||||||
|
\brief Syntax sugar for take(t, 1)
|
||||||
|
*/
|
||||||
|
inline tactic determ(tactic const & t) { return take(t, 1); }
|
||||||
/**
|
/**
|
||||||
\brief Return a tactic that forces \c t to produce all
|
\brief Return a tactic that forces \c t to produce all
|
||||||
the elements in the resultant sequence.
|
the elements in the resultant sequence.
|
||||||
|
|
Loading…
Reference in a new issue