The answer to your 2 is Yes, with some exceptions for good reasons, as
when you
call Stata from Mata, but that is not the issue as I understand it.
The issue is that at that point in your code you are back in Stata and
so
(in context) -end- is illegal.
There can be no legal or meaningful -end- of a state without some
beginning
that defines the start of that state (cf. much philosophy and all
eschatology).
Less enigmatically, in Stata -end- on a line by itself can indicate the
end of
a program which started with a -program- statement, and in Mata -end-
indicates
a desire to return to Stata. -help end- returns nothing, because -end-
is
not a statement by itself. But -search end- brings up some pointers,
some
of which are relevant to your 1.
It's a hard lesson that Stata's not behaving as you would guess, imagine
or prefer
does not in itself constitute a bug.
Pablo Mitnik
Thanks much for the suggestion . I can do that, and will probably do it.
But:
1. Is there a documented "end" command in Stata? Typing "help end"
returns nothing, while "search end" only returns the Mata end statement.
2. If I am "within Mata," shouldn't everything be run in Mata?
Maarten buis wrote:
> --- Pablo Mitnik <[email protected]> wrote:
>
>> This is rather inconvenient when you have a longer code to run in
>> Mata; and I haven't found any explanation in the manuals why the code
>> with "mata" and "end" shouldn't work -- my bet is that this is a bug.
>>
>
> The end command is run in Stata not Mata, so you get the correct error
> message.
>
> The way to do this in a more convenient way is to first create a mata
> function, so within the loop all you need is a single call to Mata.
> This is explained in terms of .ado programming in -help m1_ado-.
*
* 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/