lua-users home
lua-l archive

Re: Lua plans to add meta-programming support?

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> so if Lua can provider a oken-filter
Adding a token filter to Lua 5.2 remains just as easy as it was in Lua 5.1:
1. get a copy of llex.c.
2. add <<#include "proxy.c">> just before the definition of luaX_next in llex.c.
3. write a filter in proxy.c. It can be one that does simple token shuffling
 or a generic one that calls Lua. Token filters written in C tend to be
 easy to get right for simple tasks such as say allowing reserved words
 as field names. See the code below.
4. rebuild Lua and enjoy.
/*
* proxy.c
* lexer proxy for Lua parser -- allows reserved words as field names
* Luiz Henrique de Figueiredo <lhf@tecgraf.puc-rio.br>
* 18 Nov 2010 14:59:04
* This code is hereby placed in the public domain.
* Add <<#include "proxy.c">> just before the definition of luaX_next in llex.c
*/
#define LAST_RESERVED TK_WHILE
static int nexttoken(LexState *ls, SemInfo *seminfo)
{
 static int last=TK_EOS;
 int t=llex(ls,seminfo);
 if (last=='.' && t>=FIRST_RESERVED && t<=LAST_RESERVED) {
 	return TK_NAME;
 }
 last=t;
 return t;
}
#define llex nexttoken

AltStyle によって変換されたページ (->オリジナル) /