MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / statement

Function statement

source/extern/lua/lparser.c:1538–1604  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1536
1537
1538static void statement (LexState *ls) {
1539 int line = ls->linenumber; /* may be needed for error messages */
1540 enterlevel(ls);
1541 switch (ls->t.token) {
1542 case ';': { /* stat -> ';' (empty statement) */
1543 luaX_next(ls); /* skip ';' */
1544 break;
1545 }
1546 case TK_IF: { /* stat -> ifstat */
1547 ifstat(ls, line);
1548 break;
1549 }
1550 case TK_WHILE: { /* stat -> whilestat */
1551 whilestat(ls, line);
1552 break;
1553 }
1554 case TK_DO: { /* stat -> DO block END */
1555 luaX_next(ls); /* skip DO */
1556 block(ls);
1557 check_match(ls, TK_END, TK_DO, line);
1558 break;
1559 }
1560 case TK_FOR: { /* stat -> forstat */
1561 forstat(ls, line);
1562 break;
1563 }
1564 case TK_REPEAT: { /* stat -> repeatstat */
1565 repeatstat(ls, line);
1566 break;
1567 }
1568 case TK_FUNCTION: { /* stat -> funcstat */
1569 funcstat(ls, line);
1570 break;
1571 }
1572 case TK_LOCAL: { /* stat -> localstat */
1573 luaX_next(ls); /* skip LOCAL */
1574 if (testnext(ls, TK_FUNCTION)) /* local function? */
1575 localfunc(ls);
1576 else
1577 localstat(ls);
1578 break;
1579 }
1580 case TK_DBCOLON: { /* stat -> label */
1581 luaX_next(ls); /* skip double colon */
1582 labelstat(ls, str_checkname(ls), line);
1583 break;
1584 }
1585 case TK_RETURN: { /* stat -> retstat */
1586 luaX_next(ls); /* skip RETURN */
1587 retstat(ls);
1588 break;
1589 }
1590 case TK_BREAK: /* stat -> breakstat */
1591 case TK_GOTO: { /* stat -> 'goto' NAME */
1592 gotostat(ls, luaK_jump(ls->fs));
1593 break;
1594 }
1595 default: { /* stat -> func | assignment */

Callers 3

statlistFunction · 0.85
skipnoopstatFunction · 0.85
PassedMethod · 0.85

Calls 15

enterlevelFunction · 0.85
luaX_nextFunction · 0.85
ifstatFunction · 0.85
whilestatFunction · 0.85
blockFunction · 0.85
check_matchFunction · 0.85
forstatFunction · 0.85
repeatstatFunction · 0.85
funcstatFunction · 0.85
testnextFunction · 0.85
localfuncFunction · 0.85
localstatFunction · 0.85

Tested by 1

PassedMethod · 0.68