aboutsummaryrefslogtreecommitdiff
path: root/src/lj_lex.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-09-16 18:46:04 +0200
committerMike Pall <mike>2012-09-16 18:46:04 +0200
commitead325b0c9deafb23f499f9739acca3bb36c3e46 (patch)
treeba120a3bb3c5fb2d8b4cf30ab5341d619cba52f3 /src/lj_lex.c
parentaed20093781541c19b5c7d6149eda71a7141bc1c (diff)
downloadluajit-ead325b0c9deafb23f499f9739acca3bb36c3e46.tar.gz
luajit-ead325b0c9deafb23f499f9739acca3bb36c3e46.tar.bz2
luajit-ead325b0c9deafb23f499f9739acca3bb36c3e46.zip
From Lua 5.2: Add goto and ::label:: statements.
Diffstat (limited to 'src/lj_lex.c')
-rw-r--r--src/lj_lex.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lj_lex.c b/src/lj_lex.c
index c85ea314..e464f420 100644
--- a/src/lj_lex.c
+++ b/src/lj_lex.c
@@ -272,9 +272,9 @@ static int llex(LexState *ls, TValue *tv)
272 save_and_next(ls); 272 save_and_next(ls);
273 } while (lj_char_isident(ls->current)); 273 } while (lj_char_isident(ls->current));
274 s = lj_parse_keepstr(ls, ls->sb.buf, ls->sb.n); 274 s = lj_parse_keepstr(ls, ls->sb.buf, ls->sb.n);
275 setstrV(ls->L, tv, s);
275 if (s->reserved > 0) /* Reserved word? */ 276 if (s->reserved > 0) /* Reserved word? */
276 return TK_OFS + s->reserved; 277 return TK_OFS + s->reserved;
277 setstrV(ls->L, tv, s);
278 return TK_name; 278 return TK_name;
279 } 279 }
280 switch (ls->current) { 280 switch (ls->current) {
@@ -330,6 +330,9 @@ static int llex(LexState *ls, TValue *tv)
330 case '~': 330 case '~':
331 next(ls); 331 next(ls);
332 if (ls->current != '=') return '~'; else { next(ls); return TK_ne; } 332 if (ls->current != '=') return '~'; else { next(ls); return TK_ne; }
333 case ':':
334 next(ls);
335 if (ls->current != ':') return ':'; else { next(ls); return TK_label; }
333 case '"': 336 case '"':
334 case '\'': 337 case '\'':
335 read_string(ls, ls->current, tv); 338 read_string(ls, ls->current, tv);