Implementacao da macro 'lua_strcmp'
This commit is contained in:
14
lex.c
14
lex.c
@@ -1,5 +1,9 @@
|
|||||||
char *rcs_lex = "$Id: lex.c,v 2.1 1994/04/15 19:00:28 celes Exp celes $";
|
char *rcs_lex = "$Id: lex.c,v 2.2 1994/08/05 19:27:41 celes Exp celes $";
|
||||||
/*$Log: lex.c,v $
|
/*$Log: lex.c,v $
|
||||||
|
* Revision 2.2 1994/08/05 19:27:41 celes
|
||||||
|
* implementacao de dois buffer de 'yytext' para evitar bug
|
||||||
|
* no look ahead do yacc
|
||||||
|
*
|
||||||
* Revision 2.1 1994/04/15 19:00:28 celes
|
* Revision 2.1 1994/04/15 19:00:28 celes
|
||||||
* Retirar chamada da funcao lua_findsymbol associada a cada
|
* Retirar chamada da funcao lua_findsymbol associada a cada
|
||||||
* token NAME. A decisao de chamar lua_findsymbol ou lua_findconstant
|
* token NAME. A decisao de chamar lua_findsymbol ou lua_findconstant
|
||||||
@@ -26,6 +30,8 @@ char *rcs_lex = "$Id: lex.c,v 2.1 1994/04/15 19:00:28 celes Exp celes $";
|
|||||||
#include "table.h"
|
#include "table.h"
|
||||||
#include "y.tab.h"
|
#include "y.tab.h"
|
||||||
|
|
||||||
|
#define lua_strcmp(a,b) (a[0]<b[0]?(-1):(a[0]>b[0]?(1):strcmp(a,b)))
|
||||||
|
|
||||||
#define next() { current = input(); }
|
#define next() { current = input(); }
|
||||||
#define save(x) { *yytextLast++ = (x); }
|
#define save(x) { *yytextLast++ = (x); }
|
||||||
#define save_and_next() { save(current); next(); }
|
#define save_and_next() { save(current); next(); }
|
||||||
@@ -83,7 +89,7 @@ static int findReserved (char *name)
|
|||||||
while (l <= h)
|
while (l <= h)
|
||||||
{
|
{
|
||||||
int m = (l+h)/2;
|
int m = (l+h)/2;
|
||||||
int comp = strcmp(name, reserved[m].name);
|
int comp = lua_strcmp(name, reserved[m].name);
|
||||||
if (comp < 0)
|
if (comp < 0)
|
||||||
h = m-1;
|
h = m-1;
|
||||||
else if (comp == 0)
|
else if (comp == 0)
|
||||||
@@ -114,12 +120,12 @@ int yylex ()
|
|||||||
while (isalnum(current) || current == '_')
|
while (isalnum(current) || current == '_')
|
||||||
save_and_next();
|
save_and_next();
|
||||||
*yytextLast = 0;
|
*yytextLast = 0;
|
||||||
if (strcmp(yytext[currentText], "debug") == 0)
|
if (lua_strcmp(yytext[currentText], "debug") == 0)
|
||||||
{
|
{
|
||||||
yylval.vInt = 1;
|
yylval.vInt = 1;
|
||||||
return DEBUG;
|
return DEBUG;
|
||||||
}
|
}
|
||||||
else if (strcmp(yytext[currentText], "nodebug") == 0)
|
else if (lua_strcmp(yytext[currentText], "nodebug") == 0)
|
||||||
{
|
{
|
||||||
yylval.vInt = 0;
|
yylval.vInt = 0;
|
||||||
return DEBUG;
|
return DEBUG;
|
||||||
|
|||||||
Reference in New Issue
Block a user