|
@@ -254,9 +254,10 @@ static int read_numeral (LexState *ls, SemInfo *seminfo) {
|
|
|
|
|
|
|
|
|
/*
|
|
|
-** reads a sequence '[=*[' or ']=*]', leaving the last bracket.
|
|
|
-** If sequence is well formed, return its number of '='s + 2; otherwise,
|
|
|
-** return 1 if there is no '='s or 0 otherwise (an unfinished '[==...').
|
|
|
+** read a sequence '[=*[' or ']=*]', leaving the last bracket. If
|
|
|
+** sequence is well formed, return its number of '='s + 2; otherwise,
|
|
|
+** return 1 if it is a single bracket (no '='s and no 2nd bracket);
|
|
|
+** otherwise (an unfinished '[==...') return 0.
|
|
|
*/
|
|
|
static size_t skip_sep (LexState *ls) {
|
|
|
size_t count = 0;
|
|
@@ -481,34 +482,34 @@ static int llex (LexState *ls, SemInfo *seminfo) {
|
|
|
}
|
|
|
case '=': {
|
|
|
next(ls);
|
|
|
- if (check_next1(ls, '=')) return TK_EQ;
|
|
|
+ if (check_next1(ls, '=')) return TK_EQ; /* '==' */
|
|
|
else return '=';
|
|
|
}
|
|
|
case '<': {
|
|
|
next(ls);
|
|
|
- if (check_next1(ls, '=')) return TK_LE;
|
|
|
- else if (check_next1(ls, '<')) return TK_SHL;
|
|
|
+ if (check_next1(ls, '=')) return TK_LE; /* '<=' */
|
|
|
+ else if (check_next1(ls, '<')) return TK_SHL; /* '<<' */
|
|
|
else return '<';
|
|
|
}
|
|
|
case '>': {
|
|
|
next(ls);
|
|
|
- if (check_next1(ls, '=')) return TK_GE;
|
|
|
- else if (check_next1(ls, '>')) return TK_SHR;
|
|
|
+ if (check_next1(ls, '=')) return TK_GE; /* '>=' */
|
|
|
+ else if (check_next1(ls, '>')) return TK_SHR; /* '>>' */
|
|
|
else return '>';
|
|
|
}
|
|
|
case '/': {
|
|
|
next(ls);
|
|
|
- if (check_next1(ls, '/')) return TK_IDIV;
|
|
|
+ if (check_next1(ls, '/')) return TK_IDIV; /* '//' */
|
|
|
else return '/';
|
|
|
}
|
|
|
case '~': {
|
|
|
next(ls);
|
|
|
- if (check_next1(ls, '=')) return TK_NE;
|
|
|
+ if (check_next1(ls, '=')) return TK_NE; /* '~=' */
|
|
|
else return '~';
|
|
|
}
|
|
|
case ':': {
|
|
|
next(ls);
|
|
|
- if (check_next1(ls, ':')) return TK_DBCOLON;
|
|
|
+ if (check_next1(ls, ':')) return TK_DBCOLON; /* '::' */
|
|
|
else return ':';
|
|
|
}
|
|
|
case '"': case '\'': { /* short literal strings */
|
|
@@ -547,7 +548,7 @@ static int llex (LexState *ls, SemInfo *seminfo) {
|
|
|
return TK_NAME;
|
|
|
}
|
|
|
}
|
|
|
- else { /* single-char tokens (+ - / ...) */
|
|
|
+ else { /* single-char tokens ('+', '*', '%', '{', '}', ...) */
|
|
|
int c = ls->current;
|
|
|
next(ls);
|
|
|
return c;
|