Thank you Austin.It follows that by default -syntax- will add an
additional option (varlist=* max=1) which renders -syntax- inoperable.
This makes it a poor choice for defaults, since most users probably
work with datasets with more than one variable. And it makes even less
sense when "varname" is in [ ].
As for the documentation , I thought when I type
StataBug x y z, option1(value1)
this would be exactly the line that is going to the parser, and after
that x y and z are put to the -varlist-.
So that if I type
StataBug ,option1(value1)
and StataBug contains
syntax [varname], option1(string)
Stata converts the string to be parsed into:
"[varlist min=0 max=1], option1(string)"
substitutes from what I have typed:
"[min=0 max=1], option1("value1")"
evaluates, must result in OK, because 0 is between 0 and 1
then fills in varlist with the variable names (if specified) or all
variable names (if not specified) and let's the program go.
Adding * to varlist and adding (max=1) should be mutually exclusive,
since together they will fail most of the time.
Best wishes,
Sergiy
On 5/22/08, Austin Nichols <[email protected]> wrote:
> Sergiy Radyakin <[email protected]> et al. --
>
> Beware of posts with the word "bug" as they usually describe a
> misunderstood feature.
>
> help syntax##description_of_varlist
>
> documents that
>
> The default is to fill [varlist] in with all the variables. If
> default=none is specified, it is left empty.
>
> Since
> Typing varname
> is equivalent to typing varlist(max=1).
>
> using either
>
> syntax [varname (default=none)]
>
> or
>
> syntax varname
>
> is safest.
>
> On Thu, May 22, 2008 at 5:17 PM, Sergiy Radyakin <[email protected]> wrote:
> > Dear All,
> >
> > I wonder if this is an intended behaviour (quite dangerous from my
> > point of view) or just a bug?
> >
> > // --- Begin of file SyntaxBug.do ---
> >
> > program drop _all
> > drop _all
> >
> > generate VariableThatShouldNotBeUsed=.
> >
> > program define SyntaxBug
> > syntax [varname]
> > di `"`varlist'"'
> > end
> >
> > SyntaxBug
> >
> > generate JustAnotherVariable=.
> >
> > SyntaxBug
> >
> > // --- End of file SyntaxBug.do ---
> >
> > If this is not an intended behaviour then it is actually two bugs in
> > one, since under some conditions the program will process the variable
> > that the user DID NOT specify (first call in the program above), and
> > under other conditions it will refuse to work though it supposedly
> > should (second call in the program above).
> >
> > If this is intended (may be there is an explanation) then it goes
> > against the documentation, saying anything in [ ] is optional.
> >
> > Thank you,
> > Sergiy Radyakin
> *
> * For searches and help try:
> * http://www.stata.com/support/faqs/res/findit.html
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/