MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / statement

Function statement

3rd/lua-5.4.3/src/lparser.c:1834–1904  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1832
1833
1834static void statement (LexState *ls) {
1835 int line = ls->linenumber; /* may be needed for error messages */
1836 enterlevel(ls);
1837 switch (ls->t.token) {
1838 case ';': { /* stat -> ';' (empty statement) */
1839 luaX_next(ls); /* skip ';' */
1840 break;
1841 }
1842 case TK_IF: { /* stat -> ifstat */
1843 ifstat(ls, line);
1844 break;
1845 }
1846 case TK_WHILE: { /* stat -> whilestat */
1847 whilestat(ls, line);
1848 break;
1849 }
1850 case TK_DO: { /* stat -> DO block END */
1851 luaX_next(ls); /* skip DO */
1852 block(ls);
1853 check_match(ls, TK_END, TK_DO, line);
1854 break;
1855 }
1856 case TK_FOR: { /* stat -> forstat */
1857 forstat(ls, line);
1858 break;
1859 }
1860 case TK_REPEAT: { /* stat -> repeatstat */
1861 repeatstat(ls, line);
1862 break;
1863 }
1864 case TK_FUNCTION: { /* stat -> funcstat */
1865 funcstat(ls, line);
1866 break;
1867 }
1868 case TK_LOCAL: { /* stat -> localstat */
1869 luaX_next(ls); /* skip LOCAL */
1870 if (testnext(ls, TK_FUNCTION)) /* local function? */
1871 localfunc(ls);
1872 else
1873 localstat(ls);
1874 break;
1875 }
1876 case TK_DBCOLON: { /* stat -> label */
1877 luaX_next(ls); /* skip double colon */
1878 labelstat(ls, str_checkname(ls), line);
1879 break;
1880 }
1881 case TK_RETURN: { /* stat -> retstat */
1882 luaX_next(ls); /* skip RETURN */
1883 retstat(ls);
1884 break;
1885 }
1886 case TK_BREAK: { /* stat -> breakstat */
1887 breakstat(ls);
1888 break;
1889 }
1890 case TK_GOTO: { /* stat -> 'goto' NAME */
1891 luaX_next(ls); /* skip 'goto' */

Callers 3

PassedMethod · 0.85
statlistFunction · 0.85
labelstatFunction · 0.85

Calls 15

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
labelstatFunction · 0.85

Tested by 1

PassedMethod · 0.68