lstrlib.cpp File Reference

#include <ctype.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

Go to the source code of this file.

Classes

struct  MatchState

Defines

#define lstrlib_c
#define LUA_LIB
#define uchar(c)   ((unsigned char)(c))
#define CAP_UNFINISHED   (-1)
#define CAP_POSITION   (-2)
#define L_ESC   '%'
#define SPECIALS   "^$*+?.([%-"
#define MAX_ITEM   512
#define FLAGS   "-+ #0"
#define MAX_FORMAT   (sizeof(FLAGS) + sizeof(LUA_INTFRMLEN) + 10)

Functions

static int str_len (lua_State *L)
static ptrdiff_t posrelat (ptrdiff_t pos, size_t len)
static int str_sub (lua_State *L)
static int str_reverse (lua_State *L)
static int str_lower (lua_State *L)
static int str_upper (lua_State *L)
static int str_rep (lua_State *L)
static int str_byte (lua_State *L)
static int str_char (lua_State *L)
static int writer (lua_State *L, const void *b, size_t size, void *B)
static int str_dump (lua_State *L)
static int check_capture (MatchState *ms, int l)
static int capture_to_close (MatchState *ms)
static const char * classend (MatchState *ms, const char *p)
static int match_class (int c, int cl)
static int matchbracketclass (int c, const char *p, const char *ec)
static int singlematch (int c, const char *p, const char *ep)
static const char * match (MatchState *ms, const char *s, const char *p)
static const char * matchbalance (MatchState *ms, const char *s, const char *p)
static const char * max_expand (MatchState *ms, const char *s, const char *p, const char *ep)
static const char * min_expand (MatchState *ms, const char *s, const char *p, const char *ep)
static const char * start_capture (MatchState *ms, const char *s, const char *p, int what)
static const char * end_capture (MatchState *ms, const char *s, const char *p)
static const char * match_capture (MatchState *ms, const char *s, int l)
static const char * lmemfind (const char *s1, size_t l1, const char *s2, size_t l2)
static void push_onecapture (MatchState *ms, int i, const char *s, const char *e)
static int push_captures (MatchState *ms, const char *s, const char *e)
static int str_find_aux (lua_State *L, int find)
static int str_find (lua_State *L)
static int str_match (lua_State *L)
static int gmatch_aux (lua_State *L)
static int gmatch (lua_State *L)
static int gfind_nodef (lua_State *L)
static void add_s (MatchState *ms, luaL_Buffer *b, const char *s, const char *e)
static void add_value (MatchState *ms, luaL_Buffer *b, const char *s, const char *e)
static int str_gsub (lua_State *L)
static void addquoted (lua_State *L, luaL_Buffer *b, int arg)
static const char * scanformat (lua_State *L, const char *strfrmt, char *form)
static void addintlen (char *form)
static int str_format (lua_State *L)
static void createmetatable (lua_State *L)
LUALIB_API int luaopen_string (lua_State *L)

Variables

static const luaL_Reg strlib []


Define Documentation

#define CAP_POSITION   (-2)

Definition at line 167 of file lstrlib.cpp.

Referenced by match(), and push_onecapture().

#define CAP_UNFINISHED   (-1)

Definition at line 166 of file lstrlib.cpp.

Referenced by capture_to_close(), check_capture(), end_capture(), match(), and push_onecapture().

#define FLAGS   "-+ #0"

Definition at line 687 of file lstrlib.cpp.

Referenced by scanformat().

#define L_ESC   '%'

Definition at line 181 of file lstrlib.cpp.

Referenced by add_s(), classend(), match(), matchbracketclass(), singlematch(), and str_format().

#define lstrlib_c

Definition at line 14 of file lstrlib.cpp.

#define LUA_LIB

Definition at line 15 of file lstrlib.cpp.

#define MAX_FORMAT   (sizeof(FLAGS) + sizeof(LUA_INTFRMLEN) + 10)

Definition at line 692 of file lstrlib.cpp.

Referenced by str_format().

#define MAX_ITEM   512

Definition at line 685 of file lstrlib.cpp.

Referenced by str_format().

#define SPECIALS   "^$*+?.([%-"

Definition at line 182 of file lstrlib.cpp.

Referenced by str_find_aux().

#define uchar ( c   )     ((unsigned char)(c))

Definition at line 24 of file lstrlib.cpp.

Referenced by add_s(), match(), matchbracketclass(), max_expand(), min_expand(), scanformat(), singlematch(), str_byte(), str_char(), str_lower(), and str_upper().


Function Documentation

static void add_s ( MatchState ms,
luaL_Buffer b,
const char *  s,
const char *  e 
) [static]

Definition at line 589 of file lstrlib.cpp.

References MatchState::L, L_ESC, lua_tolstring(), luaL_addchar, luaL_addlstring(), luaL_addvalue(), push_onecapture(), and uchar.

Referenced by add_value().

static void add_value ( MatchState ms,
luaL_Buffer b,
const char *  s,
const char *  e 
) [static]

Definition at line 611 of file lstrlib.cpp.

References add_s(), MatchState::L, lua_call(), lua_gettable(), lua_isstring(), lua_pop, lua_pushlstring(), lua_pushvalue(), LUA_TFUNCTION, LUA_TNUMBER, lua_toboolean(), LUA_TSTRING, LUA_TTABLE, lua_type(), luaL_addvalue(), luaL_argerror(), luaL_error(), luaL_typename, push_captures(), and push_onecapture().

Referenced by str_gsub().

static void addintlen ( char *  form  )  [static]

Definition at line 746 of file lstrlib.cpp.

References LUA_INTFRMLEN, and LangStringUtil::strlen().

Referenced by str_format().

static void addquoted ( lua_State L,
luaL_Buffer b,
int  arg 
) [static]

Definition at line 695 of file lstrlib.cpp.

References luaL_addchar, luaL_addlstring(), and luaL_checklstring().

Referenced by str_format().

static int capture_to_close ( MatchState ms  )  [static]

Definition at line 193 of file lstrlib.cpp.

References CAP_UNFINISHED, MatchState::capture, MatchState::L, MatchState::len, MatchState::level, and luaL_error().

Referenced by end_capture().

static int check_capture ( MatchState ms,
int  l 
) [static]

Definition at line 185 of file lstrlib.cpp.

References CAP_UNFINISHED, MatchState::capture, MatchState::L, MatchState::len, MatchState::level, and luaL_error().

Referenced by match_capture().

static const char* classend ( MatchState ms,
const char *  p 
) [static]

Definition at line 201 of file lstrlib.cpp.

References MatchState::L, L_ESC, LUA_QL, and luaL_error().

Referenced by match().

static void createmetatable ( lua_State L  )  [static]

Definition at line 844 of file lstrlib.cpp.

References lua_createtable(), lua_pop, lua_pushliteral, lua_pushvalue(), lua_setfield(), and lua_setmetatable().

Referenced by luaopen_string().

static const char* end_capture ( MatchState ms,
const char *  s,
const char *  p 
) [static]

Definition at line 342 of file lstrlib.cpp.

References CAP_UNFINISHED, MatchState::capture, capture_to_close(), MatchState::init, MatchState::len, match(), and NULL.

Referenced by match().

static int gfind_nodef ( lua_State L  )  [static]

Definition at line 583 of file lstrlib.cpp.

References LUA_QL, and luaL_error().

static int gmatch ( lua_State L  )  [static]

Definition at line 573 of file lstrlib.cpp.

References gmatch_aux(), lua_pushcclosure(), lua_pushinteger(), lua_settop(), and luaL_checkstring.

static int gmatch_aux ( lua_State L  )  [static]

Definition at line 547 of file lstrlib.cpp.

References MatchState::L, MatchState::level, lua_pushinteger(), lua_replace(), lua_tointeger(), lua_tolstring(), lua_tostring, lua_upvalueindex, match(), NULL, push_captures(), MatchState::src_end, and MatchState::src_init.

Referenced by gmatch().

static const char* lmemfind ( const char *  s1,
size_t  l1,
const char *  s2,
size_t  l2 
) [static]

Definition at line 443 of file lstrlib.cpp.

References NULL.

Referenced by str_find_aux().

LUALIB_API int luaopen_string ( lua_State L  ) 

Definition at line 859 of file lstrlib.cpp.

Referenced by LUAScript::LUAScript().

static const char * match ( MatchState ms,
const char *  s,
const char *  p 
) [static]

Definition at line 364 of file lstrlib.cpp.

References CAP_POSITION, CAP_UNFINISHED, classend(), end_capture(), MatchState::L, L_ESC, LUA_QL, luaL_error(), match_capture(), matchbalance(), matchbracketclass(), max_expand(), min_expand(), NULL, singlematch(), MatchState::src_end, MatchState::src_init, start_capture(), and uchar.

Referenced by end_capture(), gmatch_aux(), max_expand(), min_expand(), start_capture(), str_find_aux(), and str_gsub().

static const char* match_capture ( MatchState ms,
const char *  s,
int  l 
) [static]

Definition at line 353 of file lstrlib.cpp.

References MatchState::capture, check_capture(), MatchState::init, MatchState::len, NULL, and MatchState::src_end.

Referenced by match().

static int match_class ( int  c,
int  cl 
) [static]

Definition at line 225 of file lstrlib.cpp.

Referenced by matchbracketclass(), and singlematch().

static const char* matchbalance ( MatchState ms,
const char *  s,
const char *  p 
) [static]

Definition at line 280 of file lstrlib.cpp.

References MatchState::L, luaL_error(), and NULL.

Referenced by match().

static int matchbracketclass ( int  c,
const char *  p,
const char *  ec 
) [static]

Definition at line 244 of file lstrlib.cpp.

References L_ESC, match_class(), and uchar.

Referenced by match(), and singlematch().

static const char* max_expand ( MatchState ms,
const char *  s,
const char *  p,
const char *  ep 
) [static]

Definition at line 300 of file lstrlib.cpp.

References match(), NULL, singlematch(), MatchState::src_end, and uchar.

Referenced by match().

static const char* min_expand ( MatchState ms,
const char *  s,
const char *  p,
const char *  ep 
) [static]

Definition at line 315 of file lstrlib.cpp.

References match(), NULL, singlematch(), and uchar.

Referenced by match().

static ptrdiff_t posrelat ( ptrdiff_t  pos,
size_t  len 
) [static]

Definition at line 36 of file lstrlib.cpp.

Referenced by str_byte(), str_find_aux(), and str_sub().

static int push_captures ( MatchState ms,
const char *  s,
const char *  e 
) [static]

Definition at line 484 of file lstrlib.cpp.

References MatchState::L, MatchState::level, luaL_checkstack(), and push_onecapture().

Referenced by add_value(), gmatch_aux(), and str_find_aux().

static void push_onecapture ( MatchState ms,
int  i,
const char *  s,
const char *  e 
) [static]

Definition at line 465 of file lstrlib.cpp.

References CAP_POSITION, CAP_UNFINISHED, MatchState::capture, MatchState::init, MatchState::L, MatchState::len, MatchState::level, lua_pushinteger(), lua_pushlstring(), luaL_error(), and MatchState::src_init.

Referenced by add_s(), add_value(), and push_captures().

static const char* scanformat ( lua_State L,
const char *  strfrmt,
char *  form 
) [static]

Definition at line 724 of file lstrlib.cpp.

References FLAGS, luaL_error(), NULL, and uchar.

Referenced by str_format().

static int singlematch ( int  c,
const char *  p,
const char *  ep 
) [static]

Definition at line 267 of file lstrlib.cpp.

References L_ESC, match_class(), matchbracketclass(), and uchar.

Referenced by match(), max_expand(), and min_expand().

static const char* start_capture ( MatchState ms,
const char *  s,
const char *  p,
int  what 
) [static]

Definition at line 328 of file lstrlib.cpp.

References MatchState::capture, MatchState::init, MatchState::L, MatchState::len, MatchState::level, LUA_MAXCAPTURES, luaL_error(), match(), and NULL.

Referenced by match().

static int str_byte ( lua_State L  )  [static]

Definition at line 105 of file lstrlib.cpp.

References int(), lua_pushinteger(), luaL_checklstring(), luaL_checkstack(), luaL_error(), luaL_optinteger(), posrelat(), and uchar.

static int str_char ( lua_State L  )  [static]

Definition at line 124 of file lstrlib.cpp.

References lua_gettop(), luaL_addchar, luaL_argcheck, luaL_buffinit(), luaL_checkint, luaL_pushresult(), and uchar.

static int str_dump ( lua_State L  )  [static]

Definition at line 146 of file lstrlib.cpp.

References lua_dump(), lua_settop(), LUA_TFUNCTION, luaL_buffinit(), luaL_checktype(), luaL_error(), luaL_pushresult(), and writer().

static int str_find ( lua_State L  )  [static]

Definition at line 537 of file lstrlib.cpp.

References str_find_aux().

static int str_find_aux ( lua_State L,
int  find 
) [static]

Definition at line 494 of file lstrlib.cpp.

References MatchState::L, MatchState::level, lmemfind(), lua_pushinteger(), lua_pushnil(), lua_toboolean(), luaL_checklstring(), luaL_optinteger(), match(), NULL, posrelat(), push_captures(), SPECIALS, MatchState::src_end, and MatchState::src_init.

Referenced by str_find(), and str_match().

static int str_format ( lua_State L  )  [static]

Definition at line 755 of file lstrlib.cpp.

References addintlen(), addquoted(), L_ESC, LUA_INTFRM_T, lua_pushvalue(), LUA_QL, luaL_addchar, luaL_addlstring(), luaL_addvalue(), luaL_buffinit(), luaL_checklstring(), luaL_checknumber(), luaL_error(), luaL_pushresult(), MAX_FORMAT, MAX_ITEM, scanformat(), and LangStringUtil::strlen().

static int str_gsub ( lua_State L  )  [static]

Definition at line 647 of file lstrlib.cpp.

References add_value(), MatchState::L, MatchState::level, lua_pushinteger(), luaL_addchar, luaL_addlstring(), luaL_buffinit(), luaL_checklstring(), luaL_checkstring, luaL_optint, luaL_pushresult(), match(), MatchState::src_end, and MatchState::src_init.

static int str_len ( lua_State L  )  [static]

Definition at line 28 of file lstrlib.cpp.

References lua_pushinteger(), and luaL_checklstring().

static int str_lower ( lua_State L  )  [static]

Definition at line 67 of file lstrlib.cpp.

References luaL_addchar, luaL_buffinit(), luaL_checklstring(), luaL_pushresult(), and uchar.

static int str_match ( lua_State L  )  [static]

Definition at line 542 of file lstrlib.cpp.

References str_find_aux().

static int str_rep ( lua_State L  )  [static]

Definition at line 92 of file lstrlib.cpp.

References luaL_addlstring(), luaL_buffinit(), luaL_checkint, luaL_checklstring(), and luaL_pushresult().

static int str_reverse ( lua_State L  )  [static]

Definition at line 56 of file lstrlib.cpp.

References luaL_addchar, luaL_buffinit(), luaL_checklstring(), and luaL_pushresult().

static int str_sub ( lua_State L  )  [static]

Definition at line 42 of file lstrlib.cpp.

References lua_pushliteral, lua_pushlstring(), luaL_checkinteger(), luaL_checklstring(), luaL_optinteger(), and posrelat().

static int str_upper ( lua_State L  )  [static]

Definition at line 80 of file lstrlib.cpp.

References luaL_addchar, luaL_buffinit(), luaL_checklstring(), luaL_pushresult(), and uchar.

static int writer ( lua_State L,
const void *  b,
size_t  size,
void *  B 
) [static]

Definition at line 139 of file lstrlib.cpp.

References luaL_addlstring().

Referenced by pmain(), and str_dump().


Variable Documentation

const luaL_Reg strlib[] [static]

Initial value:

 {
  {"byte", str_byte},
  {"char", str_char},
  {"dump", str_dump},
  {"find", str_find},
  {"format", str_format},
  {"gfind", gfind_nodef},
  {"gmatch", gmatch},
  {"gsub", str_gsub},
  {"len", str_len},
  {"lower", str_lower},
  {"match", str_match},
  {"rep", str_rep},
  {"reverse", str_reverse},
  {"sub", str_sub},
  {"upper", str_upper},
  {NULL, NULL}
}

Definition at line 824 of file lstrlib.cpp.


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