[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua error message summary? Why "<eof>" reserved word?
- From: Roberto Ierusalimschy <roberto@...>
- Date: Thu, 10 Jun 2021 10:25:11 -0300
> is there somewhere some list of the error messages used by Lua?
No. Several error messages are composed of "submessages", so that there
is great variability in their formats. (In general, we think that,
when we use standardized error messages, there is a tendency to give
less information than is available, in order to fit the standard.)
> In luac.c there is a function named "incomplete" which contains the
> following code:
>
> #define EOFMARK "<eof>"
> #define marklen (sizeof(EOFMARK)/sizeof(char) - 1)
> ...
> if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0) {
> [...]
> (anyway this luaX_tokens list of reserved workds is a bit longer than the
> reserved word list int he reference manual, chapter 3.1: It further
> contains the following 5 strings as reserved words: "<eof>", "<number>",
> "<integer>", "<name>", "<string>" ... but I do not really see in the
> reference manual where those are really used... . (Looking of "<eof>" in
> the reference manual gives no result...).
That is not a list of reserved words, it is a list of printable names
for tokens. The extra elements are used for error messages. For
instance, in the message
<name> expected near '('
"<name>" came from that list. Similarly, "<eof>" comes from that list
when needed:
$ echo 'function end' | lua
lua: stdin:1: <name> expected near 'end'
$ echo 'function ()' | lua
lua: stdin:1: <name> expected near '('
$ echo function | lua
lua: stdin:2: <name> expected near <eof>
-- Roberto