Classes | Macros | Typedefs | Functions | Variables
lparser.c File Reference
#include "lprefix.h"
#include <limits.h>
#include <string.h>
#include "lua.h"
#include "lcode.h"
#include "ldebug.h"
#include "ldo.h"
#include "lfunc.h"
#include "llex.h"
#include "lmem.h"
#include "lobject.h"
#include "lopcodes.h"
#include "lparser.h"
#include "lstate.h"
#include "lstring.h"
#include "ltable.h"
Include dependency graph for lparser.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BlockCnt
 
struct  ConsControl
 
struct  LHS_assign
 

Macros

#define check_condition(ls, c, msg)   { if (!(c)) luaX_syntaxerror(ls, msg); }
 
#define enterlevel(ls)   luaE_enterCcall((ls)->L)
 
#define eqstr(a, b)   ((a) == (b))
 
#define hasmultret(k)   ((k) == VCALL || (k) == VVARARG)
 
#define leavelevel(ls)   luaE_exitCcall((ls)->L)
 
#define lparser_c
 
#define LUA_CORE
 
#define MAXVARS   200
 
#define new_localvarliteral(ls, v)
 
#define UNARY_PRIORITY   12 /* priority for unary operators */
 

Typedefs

typedef struct BlockCnt BlockCnt
 
typedef struct ConsControl ConsControl
 

Functions

static Protoaddprototype (LexState *ls)
 
static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e)
 
static void adjustlocalvars (LexState *ls, int nvars)
 
static Upvaldescallocupvalue (FuncState *fs)
 
static void block (LexState *ls)
 
static int block_follow (LexState *ls, int withuntil)
 
static void body (LexState *ls, expdesc *e, int ismethod, int line)
 
static void breakstat (LexState *ls)
 
static void check (LexState *ls, int c)
 
static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc *v)
 
static void check_match (LexState *ls, int what, int who, int where)
 
static void check_readonly (LexState *ls, expdesc *e)
 
static void checklimit (FuncState *fs, int v, int l, const char *what)
 
static void checknext (LexState *ls, int c)
 
static void checkrepeated (LexState *ls, TString *name)
 
static void checktoclose (LexState *ls, int level)
 
static void close_func (LexState *ls)
 
static void closelistfield (FuncState *fs, ConsControl *cc)
 
static void codeclosure (LexState *ls, expdesc *v)
 
static void codename (LexState *ls, expdesc *e)
 
static void codestring (expdesc *e, TString *s)
 
static int cond (LexState *ls)
 
static void constructor (LexState *ls, expdesc *t)
 
static int createlabel (LexState *ls, TString *name, int line, int last)
 
static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isloop)
 
static l_noret error_expected (LexState *ls, int token)
 
static l_noret errorlimit (FuncState *fs, int limit, const char *what)
 
static void exp1 (LexState *ls)
 
static int explist (LexState *ls, expdesc *v)
 
static void expr (LexState *ls, expdesc *v)
 
static void exprstat (LexState *ls)
 
static void field (LexState *ls, ConsControl *cc)
 
static void fieldsel (LexState *ls, expdesc *v)
 
static Labeldescfindlabel (LexState *ls, TString *name)
 
static void fixforjump (FuncState *fs, int pc, int dest, int back)
 
static void forbody (LexState *ls, int base, int line, int nvars, int isgen)
 
static void forlist (LexState *ls, TString *indexname)
 
static void fornum (LexState *ls, TString *varname, int line)
 
static void forstat (LexState *ls, int line)
 
static void funcargs (LexState *ls, expdesc *f, int line)
 
static int funcname (LexState *ls, expdesc *v)
 
static void funcstat (LexState *ls, int line)
 
static BinOpr getbinopr (int op)
 
static int getlocalattribute (LexState *ls)
 
static Vardescgetlocalvardesc (FuncState *fs, int vidx)
 
static UnOpr getunopr (int op)
 
static void gotostat (LexState *ls)
 
static void ifstat (LexState *ls, int line)
 
static void init_exp (expdesc *e, expkind k, int i)
 
static void init_var (FuncState *fs, expdesc *e, int vidx)
 
static int issinglejump (LexState *ls, TString **label, int *target)
 
static l_noret jumpscopeerror (LexState *ls, Labeldesc *gt)
 
static void labelstat (LexState *ls, TString *name, int line)
 
static void lastlistfield (FuncState *fs, ConsControl *cc)
 
static void leaveblock (FuncState *fs)
 
static void listfield (LexState *ls, ConsControl *cc)
 
static LocVarlocaldebuginfo (FuncState *fs, int vidx)
 
static void localfunc (LexState *ls)
 
static void localstat (LexState *ls)
 
int luaY_nvarstack (FuncState *fs)
 
LClosureluaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, Dyndata *dyd, const char *name, int firstchar)
 
static void mainfunc (LexState *ls, FuncState *fs)
 
static void markupval (FuncState *fs, int level)
 
static void movegotosout (FuncState *fs, BlockCnt *bl)
 
static int new_localvar (LexState *ls, TString *name)
 
static int newgotoentry (LexState *ls, TString *name, int line, int pc)
 
static int newlabelentry (LexState *ls, Labellist *l, TString *name, int line, int pc)
 
static int newupvalue (FuncState *fs, TString *name, expdesc *v)
 
static void open_func (LexState *ls, FuncState *fs, BlockCnt *bl)
 
static void parlist (LexState *ls)
 
static void primaryexp (LexState *ls, expdesc *v)
 
static void recfield (LexState *ls, ConsControl *cc)
 
static int registerlocalvar (LexState *ls, FuncState *fs, TString *varname)
 
static void removevars (FuncState *fs, int tolevel)
 
static void repeatstat (LexState *ls, int line)
 
static void restassign (LexState *ls, struct LHS_assign *lh, int nvars)
 
static void retstat (LexState *ls)
 
static int searchupvalue (FuncState *fs, TString *name)
 
static int searchvar (FuncState *fs, TString *n, expdesc *var)
 
static void setvararg (FuncState *fs, int nparams)
 
static void simpleexp (LexState *ls, expdesc *v)
 
static void singlevar (LexState *ls, expdesc *var)
 
static void singlevaraux (FuncState *fs, TString *n, expdesc *var, int base)
 
static void solvegoto (LexState *ls, int g, Labeldesc *label)
 
static int solvegotos (LexState *ls, Labeldesc *lb)
 
static int stacklevel (FuncState *fs, int nvar)
 
static void statement (LexState *ls)
 
static void statlist (LexState *ls)
 
static TStringstr_checkname (LexState *ls)
 
static BinOpr subexpr (LexState *ls, expdesc *v, int limit)
 
static void suffixedexp (LexState *ls, expdesc *v)
 
static void test_then_block (LexState *ls, int *escapelist)
 
static int testnext (LexState *ls, int c)
 
static l_noret undefgoto (LexState *ls, Labeldesc *gt)
 
static void whilestat (LexState *ls, int line)
 
static void yindex (LexState *ls, expdesc *v)
 

Variables

struct {
   lu_byte   left
 
   lu_byte   right
 
priority []
 

Macro Definition Documentation

#define check_condition (   ls,
  c,
  msg 
)    { if (!(c)) luaX_syntaxerror(ls, msg); }

Definition at line 122 of file lparser.c.

#define enterlevel (   ls)    luaE_enterCcall((ls)->L)

Definition at line 495 of file lparser.c.

#define eqstr (   a,
 
)    ((a) == (b))

Definition at line 43 of file lparser.c.

#define hasmultret (   k)    ((k) == VCALL || (k) == VVARARG)

Definition at line 38 of file lparser.c.

#define leavelevel (   ls)    luaE_exitCcall((ls)->L)

Definition at line 497 of file lparser.c.

#define lparser_c

Definition at line 7 of file lparser.c.

#define LUA_CORE

Definition at line 8 of file lparser.c.

#define MAXVARS   200

Definition at line 35 of file lparser.c.

#define new_localvarliteral (   ls,
 
)
Value:
luaX_newstring(ls, "" v, (sizeof(v)/sizeof(char)) - 1));
static int new_localvar(LexState *ls, TString *name)
Definition: lparser.c:193
TString * luaX_newstring(LexState *ls, const char *str, size_t l)
Definition: llex.c:129

Definition at line 208 of file lparser.c.

#define UNARY_PRIORITY   12 /* priority for unary operators */

Definition at line 1243 of file lparser.c.

Typedef Documentation

typedef struct BlockCnt BlockCnt
typedef struct ConsControl ConsControl

Function Documentation

static Proto* addprototype ( LexState ls)
static

Definition at line 688 of file lparser.c.

static void adjust_assign ( LexState ls,
int  nvars,
int  nexps,
expdesc e 
)
static

Definition at line 470 of file lparser.c.

static void adjustlocalvars ( LexState ls,
int  nvars 
)
static

Definition at line 311 of file lparser.c.

static Upvaldesc* allocupvalue ( FuncState fs)
static

Definition at line 352 of file lparser.c.

static void block ( LexState ls)
static

Definition at line 1295 of file lparser.c.

static int block_follow ( LexState ls,
int  withuntil 
)
static

Definition at line 778 of file lparser.c.

static void body ( LexState ls,
expdesc e,
int  ismethod,
int  line 
)
static

Definition at line 980 of file lparser.c.

static void breakstat ( LexState ls)
static

Definition at line 1428 of file lparser.c.

static void check ( LexState ls,
int  c 
)
static

Definition at line 107 of file lparser.c.

static void check_conflict ( LexState ls,
struct LHS_assign lh,
expdesc v 
)
static

Definition at line 1321 of file lparser.c.

static void check_match ( LexState ls,
int  what,
int  who,
int  where 
)
static

Definition at line 130 of file lparser.c.

static void check_readonly ( LexState ls,
expdesc e 
)
static

Definition at line 277 of file lparser.c.

static void checklimit ( FuncState fs,
int  v,
int  l,
const char *  what 
)
static

Definition at line 87 of file lparser.c.

static void checknext ( LexState ls,
int  c 
)
static

Definition at line 116 of file lparser.c.

static void checkrepeated ( LexState ls,
TString name 
)
static

Definition at line 1438 of file lparser.c.

static void checktoclose ( LexState ls,
int  level 
)
static

Definition at line 1746 of file lparser.c.

static void close_func ( LexState ls)
static

Definition at line 746 of file lparser.c.

static void closelistfield ( FuncState fs,
ConsControl cc 
)
static

Definition at line 858 of file lparser.c.

static void codeclosure ( LexState ls,
expdesc v 
)
static

Definition at line 712 of file lparser.c.

static void codename ( LexState ls,
expdesc e 
)
static

Definition at line 166 of file lparser.c.

static void codestring ( expdesc e,
TString s 
)
static

Definition at line 159 of file lparser.c.

static int cond ( LexState ls)
static

Definition at line 1396 of file lparser.c.

static void constructor ( LexState ls,
expdesc t 
)
static

Definition at line 915 of file lparser.c.

static int createlabel ( LexState ls,
TString name,
int  line,
int  last 
)
static

Definition at line 598 of file lparser.c.

static void enterblock ( FuncState fs,
BlockCnt bl,
lu_byte  isloop 
)
static

Definition at line 632 of file lparser.c.

static l_noret error_expected ( LexState ls,
int  token 
)
static

Definition at line 68 of file lparser.c.

static l_noret errorlimit ( FuncState fs,
int  limit,
const char *  what 
)
static

Definition at line 74 of file lparser.c.

static void exp1 ( LexState ls)
static

Definition at line 1507 of file lparser.c.

static int explist ( LexState ls,
expdesc v 
)
static

Definition at line 1002 of file lparser.c.

static void expr ( LexState ls,
expdesc v 
)
static

Definition at line 1280 of file lparser.c.

static void exprstat ( LexState ls)
static

Definition at line 1824 of file lparser.c.

static void field ( LexState ls,
ConsControl cc 
)
static

Definition at line 893 of file lparser.c.

static void fieldsel ( LexState ls,
expdesc v 
)
static

Definition at line 801 of file lparser.c.

static Labeldesc* findlabel ( LexState ls,
TString name 
)
static

Definition at line 534 of file lparser.c.

static void fixforjump ( FuncState fs,
int  pc,
int  dest,
int  back 
)
static

Definition at line 1520 of file lparser.c.

static void forbody ( LexState ls,
int  base,
int  line,
int  nvars,
int  isgen 
)
static

Definition at line 1534 of file lparser.c.

static void forlist ( LexState ls,
TString indexname 
)
static

Definition at line 1582 of file lparser.c.

static void fornum ( LexState ls,
TString varname,
int  line 
)
static

Definition at line 1559 of file lparser.c.

static void forstat ( LexState ls,
int  line 
)
static

Definition at line 1610 of file lparser.c.

static void funcargs ( LexState ls,
expdesc f,
int  line 
)
static

Definition at line 1015 of file lparser.c.

static int funcname ( LexState ls,
expdesc v 
)
static

Definition at line 1798 of file lparser.c.

static void funcstat ( LexState ls,
int  line 
)
static

Definition at line 1812 of file lparser.c.

static BinOpr getbinopr ( int  op)
static

Definition at line 1196 of file lparser.c.

static int getlocalattribute ( LexState ls)
static

Definition at line 1729 of file lparser.c.

static Vardesc* getlocalvardesc ( FuncState fs,
int  vidx 
)
static

Definition at line 219 of file lparser.c.

static UnOpr getunopr ( int  op)
static

Definition at line 1185 of file lparser.c.

static void gotostat ( LexState ls)
static

Definition at line 1406 of file lparser.c.

static void ifstat ( LexState ls,
int  line 
)
static

Definition at line 1703 of file lparser.c.

static void init_exp ( expdesc e,
expkind  k,
int  i 
)
static

Definition at line 152 of file lparser.c.

static void init_var ( FuncState fs,
expdesc e,
int  vidx 
)
static

Definition at line 266 of file lparser.c.

static int issinglejump ( LexState ls,
TString **  label,
int *  target 
)
static

Definition at line 1636 of file lparser.c.

static l_noret jumpscopeerror ( LexState ls,
Labeldesc gt 
)
static

Definition at line 504 of file lparser.c.

static void labelstat ( LexState ls,
TString name,
int  line 
)
static

Definition at line 1448 of file lparser.c.

static void lastlistfield ( FuncState fs,
ConsControl cc 
)
static

Definition at line 870 of file lparser.c.

static void leaveblock ( FuncState fs)
static

Definition at line 662 of file lparser.c.

static void listfield ( LexState ls,
ConsControl cc 
)
static

Definition at line 886 of file lparser.c.

static LocVar* localdebuginfo ( FuncState fs,
int  vidx 
)
static

Definition at line 251 of file lparser.c.

static void localfunc ( LexState ls)
static

Definition at line 1717 of file lparser.c.

static void localstat ( LexState ls)
static

Definition at line 1756 of file lparser.c.

int luaY_nvarstack ( FuncState fs)

Definition at line 243 of file lparser.c.

LClosure* luaY_parser ( lua_State L,
ZIO z,
Mbuffer buff,
Dyndata dyd,
const char *  name,
int  firstchar 
)

Definition at line 1971 of file lparser.c.

static void mainfunc ( LexState ls,
FuncState fs 
)
static

Definition at line 1953 of file lparser.c.

static void markupval ( FuncState fs,
int  level 
)
static

Definition at line 410 of file lparser.c.

static void movegotosout ( FuncState fs,
BlockCnt bl 
)
static

Definition at line 618 of file lparser.c.

static int new_localvar ( LexState ls,
TString name 
)
static

Definition at line 193 of file lparser.c.

static int newgotoentry ( LexState ls,
TString name,
int  line,
int  pc 
)
static

Definition at line 565 of file lparser.c.

static int newlabelentry ( LexState ls,
Labellist l,
TString name,
int  line,
int  pc 
)
static

Definition at line 550 of file lparser.c.

static int newupvalue ( FuncState fs,
TString name,
expdesc v 
)
static

Definition at line 364 of file lparser.c.

static void open_func ( LexState ls,
FuncState fs,
BlockCnt bl 
)
static

Definition at line 719 of file lparser.c.

static void parlist ( LexState ls)
static

Definition at line 949 of file lparser.c.

static void primaryexp ( LexState ls,
expdesc v 
)
static

Definition at line 1070 of file lparser.c.

static void recfield ( LexState ls,
ConsControl cc 
)
static

Definition at line 837 of file lparser.c.

static int registerlocalvar ( LexState ls,
FuncState fs,
TString varname 
)
static

Definition at line 175 of file lparser.c.

static void removevars ( FuncState fs,
int  tolevel 
)
static

Definition at line 328 of file lparser.c.

static void repeatstat ( LexState ls,
int  line 
)
static

Definition at line 1477 of file lparser.c.

static void restassign ( LexState ls,
struct LHS_assign lh,
int  nvars 
)
static

Definition at line 1365 of file lparser.c.

static void retstat ( LexState ls)
static

Definition at line 1842 of file lparser.c.

static int searchupvalue ( FuncState fs,
TString name 
)
static

Definition at line 342 of file lparser.c.

static int searchvar ( FuncState fs,
TString n,
expdesc var 
)
static

Definition at line 390 of file lparser.c.

static void setvararg ( FuncState fs,
int  nparams 
)
static

Definition at line 943 of file lparser.c.

static void simpleexp ( LexState ls,
expdesc v 
)
static

Definition at line 1130 of file lparser.c.

static void singlevar ( LexState ls,
expdesc var 
)
static

Definition at line 452 of file lparser.c.

static void singlevaraux ( FuncState fs,
TString n,
expdesc var,
int  base 
)
static

Definition at line 424 of file lparser.c.

static void solvegoto ( LexState ls,
int  g,
Labeldesc label 
)
static

Definition at line 517 of file lparser.c.

static int solvegotos ( LexState ls,
Labeldesc lb 
)
static

Definition at line 575 of file lparser.c.

static int stacklevel ( FuncState fs,
int  nvar 
)
static

Definition at line 230 of file lparser.c.

static void statement ( LexState ls)
static

Definition at line 1874 of file lparser.c.

static void statlist ( LexState ls)
static

Definition at line 789 of file lparser.c.

static TString* str_checkname ( LexState ls)
static

Definition at line 143 of file lparser.c.

static BinOpr subexpr ( LexState ls,
expdesc v,
int  limit 
)
static

Definition at line 1250 of file lparser.c.

static void suffixedexp ( LexState ls,
expdesc v 
)
static

Definition at line 1092 of file lparser.c.

static void test_then_block ( LexState ls,
int *  escapelist 
)
static

Definition at line 1661 of file lparser.c.

static int testnext ( LexState ls,
int  c 
)
static

Definition at line 95 of file lparser.c.

static l_noret undefgoto ( LexState ls,
Labeldesc gt 
)
static

Definition at line 648 of file lparser.c.

static void whilestat ( LexState ls,
int  line 
)
static

Definition at line 1458 of file lparser.c.

static void yindex ( LexState ls,
expdesc v 
)
static

Definition at line 812 of file lparser.c.

Variable Documentation

lu_byte left

Definition at line 1228 of file lparser.c.

const { ... } priority[]
Initial value:
= {
{10, 10}, {10, 10},
{11, 11}, {11, 11},
{14, 13},
{11, 11}, {11, 11},
{6, 6}, {4, 4}, {5, 5},
{7, 7}, {7, 7},
{9, 8},
{3, 3}, {3, 3}, {3, 3},
{3, 3}, {3, 3}, {3, 3},
{2, 2}, {1, 1}
}
lu_byte right

Definition at line 1229 of file lparser.c.



plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:48