aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Celes <celes@tecgraf.puc-rio.br>1993-12-22 19:39:15 -0200
committerWaldemar Celes <celes@tecgraf.puc-rio.br>1993-12-22 19:39:15 -0200
commit70b1eb4e8b478da4c12dba591218a5c8597bd727 (patch)
treed099f0980453cb0b7b4418145f38f02f840177f9
parenta4a3357c1c1c39c65845be66d5d1fb4eaf458d7e (diff)
downloadlua-70b1eb4e8b478da4c12dba591218a5c8597bd727.tar.gz
lua-70b1eb4e8b478da4c12dba591218a5c8597bd727.tar.bz2
lua-70b1eb4e8b478da4c12dba591218a5c8597bd727.zip
Tratamento do token $debug e $nodebug
-rw-r--r--lex.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/lex.c b/lex.c
index 81bf9f31..1c36f7ac 100644
--- a/lex.c
+++ b/lex.c
@@ -1,5 +1,8 @@
1char *rcs_lex = "$Id$"; 1char *rcs_lex = "$Id: lex.c,v 1.1 1993/12/22 21:15:16 roberto Exp celes $";
2/*$Log$*/ 2/*$Log: lex.c,v $
3 * Revision 1.1 1993/12/22 21:15:16 roberto
4 * Initial revision
5 **/
3 6
4#include <ctype.h> 7#include <ctype.h>
5#include <math.h> 8#include <math.h>
@@ -84,17 +87,33 @@ int yylex ()
84 yytextLast = yytext; 87 yytextLast = yytext;
85 switch (current) 88 switch (current)
86 { 89 {
87 case 0: return 0;
88 case '\n': lua_linenumber++; 90 case '\n': lua_linenumber++;
89 case ' ': 91 case ' ':
90 case '\t': 92 case '\t':
91 save_and_next(); 93 next();
92 continue; 94 continue;
95
96 case '$':
97 next();
98 while (isalnum(current) || current == '_')
99 save_and_next();
100 *yytextLast = 0;
101 if (strcmp(yytext, "debug") == 0)
102 {
103 yylval.vInt = 1;
104 return DEBUG;
105 }
106 else if (strcmp(yytext, "nodebug") == 0)
107 {
108 yylval.vInt = 0;
109 return DEBUG;
110 }
111 return WRONGTOKEN;
93 112
94 case '-': 113 case '-':
95 save_and_next(); 114 save_and_next();
96 if (current != '-') return '-'; 115 if (current != '-') return '-';
97 do { save_and_next(); } while (current != '\n' && current != 0); 116 do { next(); } while (current != '\n' && current != 0);
98 continue; 117 continue;
99 118
100 case '<': 119 case '<':
@@ -195,11 +214,10 @@ fraction: while (isdigit(current)) save_and_next();
195 yylval.vFloat = atof(yytext); 214 yylval.vFloat = atof(yytext);
196 return NUMBER; 215 return NUMBER;
197 216
198 default: 217 default: /* also end of file */
199 { 218 {
200 int temp = current;
201 save_and_next(); 219 save_and_next();
202 return temp; 220 return *yytext;
203 } 221 }
204 } 222 }
205 } 223 }