llex.cpp File Reference

#include <ctype.h>
#include <locale.h>
#include <string.h>
#include "lua.h"
#include "ldo.h"
#include "llex.h"
#include "lobject.h"
#include "lparser.h"
#include "lstate.h"
#include "lstring.h"
#include "ltable.h"
#include "lzio.h"

Go to the source code of this file.

Defines

#define llex_c
#define LUA_CORE
#define next(ls)   (ls->current = zgetc(ls->z))
#define currIsNewline(ls)   (ls->current == '\n' || ls->current == '\r')
#define save_and_next(ls)   (save(ls, ls->current), next(ls))
#define MAXSRC   80

Functions

static void save (LexState *ls, int c)
void luaX_init (lua_State *L)
const char * luaX_token2str (LexState *ls, int token)
static const char * txtToken (LexState *ls, int token)
void luaX_lexerror (LexState *ls, const char *msg, int token)
void luaX_syntaxerror (LexState *ls, const char *msg)
TStringluaX_newstring (LexState *ls, const char *str, size_t l)
static void inclinenumber (LexState *ls)
void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source)
static int check_next (LexState *ls, const char *set)
static void buffreplace (LexState *ls, char from, char to)
static void trydecpoint (LexState *ls, SemInfo *seminfo)
static void read_numeral (LexState *ls, SemInfo *seminfo)
static int skip_sep (LexState *ls)
static void read_long_string (LexState *ls, SemInfo *seminfo, int sep)
static void read_string (LexState *ls, int del, SemInfo *seminfo)
static int llex (LexState *ls, SemInfo *seminfo)
void luaX_next (LexState *ls)
void luaX_lookahead (LexState *ls)

Variables

const char *const luaX_tokens []


Define Documentation

#define currIsNewline ( ls   )     (ls->current == '\n' || ls->current == '\r')

Definition at line 33 of file llex.cpp.

Referenced by inclinenumber(), llex(), and read_long_string().

#define llex_c

Definition at line 12 of file llex.cpp.

#define LUA_CORE

Definition at line 13 of file llex.cpp.

#define MAXSRC   80

Definition at line 75 of file llex.cpp.

Referenced by luaX_lexerror().

#define next ( ls   )     (ls->current = zgetc(ls->z))

Definition at line 28 of file llex.cpp.

Referenced by LangStringConverter::appendValue(), LandscapeDefinitions::getRandomLandscapeDefnEntry(), inclinenumber(), llex(), luaK_concat(), luaS_resize(), luaX_setinput(), TutorialConditionTankDead::parseXML(), TutorialConditionFirstMove::parseXML(), TutorialConditionWindowVisible::parseXML(), patchlistaux(), ServerBrowserInfo::processMessages(), read_long_string(), and read_string().

#define save_and_next ( ls   )     (save(ls, ls->current), next(ls))

Definition at line 48 of file llex.cpp.

Referenced by check_next(), llex(), read_long_string(), read_numeral(), read_string(), and skip_sep().


Function Documentation

static void buffreplace ( LexState ls,
char  from,
char  to 
) [static]

Definition at line 169 of file llex.cpp.

References LexState::buff, luaZ_buffer, and luaZ_bufflen.

Referenced by read_numeral(), and trydecpoint().

static int check_next ( LexState ls,
const char *  set 
) [static]

Definition at line 161 of file llex.cpp.

References LexState::current, and save_and_next.

Referenced by llex(), and read_numeral().

static void inclinenumber ( LexState ls  )  [static]

Definition at line 127 of file llex.cpp.

References LexState::current, currIsNewline, LexState::linenumber, lua_assert, luaX_syntaxerror(), MAX_INT, and next.

Referenced by llex(), read_long_string(), and read_string().

static int llex ( LexState ls,
SemInfo seminfo 
) [static]

Definition at line 332 of file llex.cpp.

References LexState::buff, check_next(), LexState::current, currIsNewline, EOZ, FIRST_RESERVED, inclinenumber(), lua_assert, luaX_lexerror(), luaX_newstring(), luaZ_buffer, luaZ_bufflen, luaZ_resetbuffer, next, NULL, read_long_string(), read_numeral(), read_string(), TString::reserved, save_and_next, skip_sep(), TK_CONCAT, TK_DOTS, TK_EOS, TK_EQ, TK_GE, TK_LE, TK_NAME, TK_NE, TK_NUMBER, TK_STRING, SemInfo::ts, and TString::tsv.

Referenced by luaX_lookahead(), and luaX_next().

void luaX_init ( lua_State L  ) 

Definition at line 64 of file llex.cpp.

Referenced by f_luaopen().

void luaX_lexerror ( LexState ls,
const char *  msg,
int  token 
)

Definition at line 102 of file llex.cpp.

Referenced by enterlevel(), errorlimit(), llex(), luaX_syntaxerror(), read_long_string(), read_string(), save(), and trydecpoint().

void luaX_lookahead ( LexState ls  ) 

Definition at line 457 of file llex.cpp.

Referenced by constructor().

TString* luaX_newstring ( LexState ls,
const char *  str,
size_t  l 
)

Definition at line 117 of file llex.cpp.

Referenced by anchor_token(), llex(), read_long_string(), and read_string().

void luaX_next ( LexState ls  ) 

Definition at line 446 of file llex.cpp.

Referenced by checknext(), field(), forstat(), funcargs(), funcstat(), ifstat(), luaY_parser(), parlist(), prefixexp(), primaryexp(), repeatstat(), retstat(), simpleexp(), statement(), str_checkname(), subexpr(), test_then_block(), testnext(), whilestat(), and yindex().

void luaX_setinput ( lua_State L,
LexState ls,
ZIO z,
TString source 
)

Definition at line 138 of file llex.cpp.

Referenced by luaY_parser().

void luaX_syntaxerror ( LexState ls,
const char *  msg 
)

Definition at line 112 of file llex.cpp.

Referenced by breakstat(), check_match(), error_expected(), fixjump(), forstat(), funcargs(), inclinenumber(), luaK_checkstack(), parlist(), and prefixexp().

const char* luaX_token2str ( LexState ls,
int  token 
)

Definition at line 78 of file llex.cpp.

Referenced by check_match(), error_expected(), and txtToken().

static void read_long_string ( LexState ls,
SemInfo seminfo,
int  sep 
) [static]

Definition at line 221 of file llex.cpp.

References LexState::buff, LexState::current, currIsNewline, EOZ, inclinenumber(), luaX_lexerror(), luaX_newstring(), luaZ_buffer, luaZ_bufflen, luaZ_resetbuffer, next, save(), save_and_next, skip_sep(), TK_EOS, and SemInfo::ts.

Referenced by llex().

static void read_numeral ( LexState ls,
SemInfo seminfo 
) [static]

Definition at line 192 of file llex.cpp.

References LexState::buff, buffreplace(), check_next(), LexState::current, LexState::decpoint, lua_assert, luaO_str2d(), luaZ_buffer, SemInfo::r, save(), save_and_next, and trydecpoint().

Referenced by llex().

static void read_string ( LexState ls,
int  del,
SemInfo seminfo 
) [static]

Definition at line 276 of file llex.cpp.

References LexState::buff, LexState::current, EOZ, inclinenumber(), luaX_lexerror(), luaX_newstring(), luaZ_buffer, luaZ_bufflen, next, save(), save_and_next, TK_EOS, TK_STRING, and SemInfo::ts.

Referenced by llex().

static void save ( LexState ls,
int  c 
) [static]

Definition at line 51 of file llex.cpp.

References LexState::buff, Mbuffer::buffer, Mbuffer::buffsize, cast, LexState::L, luaX_lexerror(), luaZ_resizebuffer, MAX_SIZET, and Mbuffer::n.

Referenced by read_long_string(), read_numeral(), read_string(), and txtToken().

static int skip_sep ( LexState ls  )  [static]

Definition at line 208 of file llex.cpp.

References LexState::current, lua_assert, and save_and_next.

Referenced by llex(), and read_long_string().

static void trydecpoint ( LexState ls,
SemInfo seminfo 
) [static]

Definition at line 177 of file llex.cpp.

References LexState::buff, buffreplace(), LexState::decpoint, luaO_str2d(), luaX_lexerror(), luaZ_buffer, SemInfo::r, and TK_NUMBER.

Referenced by read_numeral().

static const char* txtToken ( LexState ls,
int  token 
) [static]

Definition at line 89 of file llex.cpp.

References LexState::buff, luaX_token2str(), luaZ_buffer, save(), TK_NAME, TK_NUMBER, and TK_STRING.

Referenced by luaX_lexerror().


Variable Documentation

const char* const luaX_tokens[]

Initial value:

 {
    "and", "break", "do", "else", "elseif",
    "end", "false", "for", "function", "if",
    "in", "local", "nil", "not", "or", "repeat",
    "return", "then", "true", "until", "while",
    "..", "...", "==", ">=", "<=", "~=",
    "<number>", "<name>", "<string>", "<eof>",
    NULL
}

Definition at line 37 of file llex.cpp.

Referenced by luaX_init(), and luaX_token2str().


Generated on Mon Feb 16 15:14:58 2009 for Scorched3D by  doxygen 1.5.3