[R-pkg-devel] Workaround for code/documentation mismatch
Andrew Simmons
@kw@|mmo @end|ng |rom gm@||@com
Wed Aug 11 06:02:58 CEST 2021
When not preceded by an expression wrapped in do(), %while% would throw an
error "do while loop must begin with 'do'". The function %while% looks like
`%while%` <- function (expr, cond)
invisible(.Call(C_do.while, substitute(expr), substitute(cond),
parent.frame()))
and the corresponding C function looks like
SEXP do_dowhile(SEXP expr, SEXP cond, SEXP rho)
{
/* we're looking for an expression of the form
do ( expr )
do ( { expr1 ; expr2 } )
there must NOT be a tag on the second item, the expression within
'do'
that is, we reject expressions of the form
do (var = expr)
do (var = { expr1 ; expr2 } ) */
if (TYPEOF(expr) != LANGSXP || CAR(expr) != install("do"))
error("do while loop must begin with 'do'");
else if (xlength(expr) != 2 || !isNull(TAG(CDR(expr))))
error("invalid 'expr'");
The 'do' part of the expression is irrelevant and later removed, it's only
required because it makes the syntax look more like other languages.
So the proper way to use %while% is
expr %while% cond
where expr is wrapped with do(), but I think it would be far more
understandable in the usage documentation to have it look like
do(expr) %while% (cond)
If it helps at all with context, I'll provide the R and C scripts I'm using.
On Tue, Aug 10, 2021 at 11:47 PM Hugh Parsonage <hugh.parsonage using gmail.com>
wrote:
> What is the behaviour of %while% if not preceded by an expression wrapped
> in do() ?
>
> On Wed, 11 Aug 2021 at 1:26 pm, Andrew Simmons <akwsimmo using gmail.com> wrote:
>
>> Hello,
>>
>>
>> I've written two functions to emulate do while/until loops seen in other
>> languages, but I'm having trouble documenting its usage. The function is
>> typically used like:
>>
>> do ({
>> expr1
>> expr2
>> ...
>> }) %while% (cond)
>>
>> so I want to document it something like:
>>
>> do(expr) %while% (cond)
>> do(expr) %until% (cond)
>>
>> to look like the documentation for 'while' and 'if', but R CMD check
>> produces a "Code/documentation mismatch" warning, complaining that the
>> documentation should look like:
>>
>> expr %while% cond
>> expr %until% cond
>>
>> So, my question is, is there a way to bypass the
>> * checking for code/documentation mismatches
>> portion of R CMD check, at least for one file? Some way to acknowledge
>> that
>> the code and documentation will mismatch, but that's okay.
>>
>>
>> Thank you!
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-package-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>
>
More information about the R-package-devel
mailing list