forked from mia/Aegisub
Add LPeg 0.10
0.11 has a bug that makes it crash on MoonScript, and 0.12 is much slower. LPeg isn't packaged as a C library and consists of a whopping two files so just compile it as part of Aegisub.
This commit is contained in:
parent
34be32d570
commit
99d74e18b3
6 changed files with 2456 additions and 3 deletions
|
@ -200,6 +200,7 @@
|
||||||
<ClInclude Include="$(SrcDir)include\aegisub\video_provider.h" />
|
<ClInclude Include="$(SrcDir)include\aegisub\video_provider.h" />
|
||||||
<ClInclude Include="$(SrcDir)initial_line_state.h" />
|
<ClInclude Include="$(SrcDir)initial_line_state.h" />
|
||||||
<ClInclude Include="$(SrcDir)kana_table.h" />
|
<ClInclude Include="$(SrcDir)kana_table.h" />
|
||||||
|
<ClInclude Include="$(SrcDir)lpeg.h" />
|
||||||
<ClInclude Include="$(SrcDir)main.h" />
|
<ClInclude Include="$(SrcDir)main.h" />
|
||||||
<ClInclude Include="$(SrcDir)mkv_wrap.h" />
|
<ClInclude Include="$(SrcDir)mkv_wrap.h" />
|
||||||
<ClInclude Include="$(SrcDir)options.h" />
|
<ClInclude Include="$(SrcDir)options.h" />
|
||||||
|
@ -394,6 +395,10 @@
|
||||||
<ClCompile Include="$(SrcDir)hotkey_data_view_model.cpp" />
|
<ClCompile Include="$(SrcDir)hotkey_data_view_model.cpp" />
|
||||||
<ClCompile Include="$(SrcDir)initial_line_state.cpp" />
|
<ClCompile Include="$(SrcDir)initial_line_state.cpp" />
|
||||||
<ClCompile Include="$(SrcDir)kana_table.cpp" />
|
<ClCompile Include="$(SrcDir)kana_table.cpp" />
|
||||||
|
<ClCompile Include="$(SrcDir)lpeg.c">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<ForcedIncludeFiles></ForcedIncludeFiles>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="$(SrcDir)main.cpp" />
|
<ClCompile Include="$(SrcDir)main.cpp" />
|
||||||
<ClCompile Include="$(SrcDir)menu.cpp" />
|
<ClCompile Include="$(SrcDir)menu.cpp" />
|
||||||
<ClCompile Include="$(SrcDir)mkv_wrap.cpp" />
|
<ClCompile Include="$(SrcDir)mkv_wrap.cpp" />
|
||||||
|
|
|
@ -690,6 +690,9 @@
|
||||||
<ClInclude Include="$(SrcDir)auto4_lua_utils.h">
|
<ClInclude Include="$(SrcDir)auto4_lua_utils.h">
|
||||||
<Filter>Automation\Lua</Filter>
|
<Filter>Automation\Lua</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="$(SrcDir)lpeg.h">
|
||||||
|
<Filter>Automation\Lua</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="$(SrcDir)ass_dialogue.cpp">
|
<ClCompile Include="$(SrcDir)ass_dialogue.cpp">
|
||||||
|
@ -1241,6 +1244,9 @@
|
||||||
<ClCompile Include="$(SrcDir)auto4_regex.cpp">
|
<ClCompile Include="$(SrcDir)auto4_regex.cpp">
|
||||||
<Filter>Automation\Lua</Filter>
|
<Filter>Automation\Lua</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="$(SrcDir)lpeg.c">
|
||||||
|
<Filter>Automation\Lua</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="$(SrcDir)res.rc">
|
<ResourceCompile Include="$(SrcDir)res.rc">
|
||||||
|
|
|
@ -200,6 +200,7 @@ SRC += \
|
||||||
hotkey_data_view_model.cpp \
|
hotkey_data_view_model.cpp \
|
||||||
initial_line_state.cpp \
|
initial_line_state.cpp \
|
||||||
kana_table.cpp \
|
kana_table.cpp \
|
||||||
|
lpeg.c \
|
||||||
main.cpp \
|
main.cpp \
|
||||||
menu.cpp \
|
menu.cpp \
|
||||||
mkv_wrap.cpp \
|
mkv_wrap.cpp \
|
||||||
|
|
|
@ -193,6 +193,8 @@ namespace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" int luaopen_lpeg (lua_State *L);
|
||||||
|
|
||||||
namespace Automation4 {
|
namespace Automation4 {
|
||||||
int regex_init(lua_State *L);
|
int regex_init(lua_State *L);
|
||||||
|
|
||||||
|
@ -220,12 +222,13 @@ namespace Automation4 {
|
||||||
|
|
||||||
// register standard libs
|
// register standard libs
|
||||||
push_value(L, luaopen_base); lua_call(L, 0, 0);
|
push_value(L, luaopen_base); lua_call(L, 0, 0);
|
||||||
|
push_value(L, luaopen_io); lua_call(L, 0, 0);
|
||||||
|
push_value(L, luaopen_lpeg); lua_call(L, 0, 0);
|
||||||
|
push_value(L, luaopen_math); lua_call(L, 0, 0);
|
||||||
|
push_value(L, luaopen_os); lua_call(L, 0, 0);
|
||||||
push_value(L, luaopen_package); lua_call(L, 0, 0);
|
push_value(L, luaopen_package); lua_call(L, 0, 0);
|
||||||
push_value(L, luaopen_string); lua_call(L, 0, 0);
|
push_value(L, luaopen_string); lua_call(L, 0, 0);
|
||||||
push_value(L, luaopen_table); lua_call(L, 0, 0);
|
push_value(L, luaopen_table); lua_call(L, 0, 0);
|
||||||
push_value(L, luaopen_math); lua_call(L, 0, 0);
|
|
||||||
push_value(L, luaopen_io); lua_call(L, 0, 0);
|
|
||||||
push_value(L, luaopen_os); lua_call(L, 0, 0);
|
|
||||||
_stackcheck.check_stack(0);
|
_stackcheck.check_stack(0);
|
||||||
|
|
||||||
// dofile and loadfile are replaced with include
|
// dofile and loadfile are replaced with include
|
||||||
|
|
2400
aegisub/src/lpeg.c
Normal file
2400
aegisub/src/lpeg.c
Normal file
File diff suppressed because it is too large
Load diff
38
aegisub/src/lpeg.h
Normal file
38
aegisub/src/lpeg.h
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
** $Id: lpeg.h,v 1.1 2009/12/23 16:15:36 roberto Exp $
|
||||||
|
** LPeg - PEG pattern matching for Lua
|
||||||
|
** Copyright 2009, Lua.org & PUC-Rio (see 'lpeg.html' for license)
|
||||||
|
** written by Roberto Ierusalimschy
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef lpeg_h
|
||||||
|
#define lpeg_h
|
||||||
|
|
||||||
|
#include "lua.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define KEYNEWPATT "lpeg.newpf"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** type of extension functions that define new "patterns" for LPEG
|
||||||
|
** It should return the new current position or NULL if match fails
|
||||||
|
*/
|
||||||
|
typedef const char *(*PattFunc) (const char *s, /* current position */
|
||||||
|
const char *e, /* string end */
|
||||||
|
const char *o, /* string start */
|
||||||
|
const void *ud); /* user data */
|
||||||
|
|
||||||
|
/*
|
||||||
|
** function to create new patterns based on 'PattFunc' functions.
|
||||||
|
** This function is available at *registry[KEYNEWPATT]. (Notice
|
||||||
|
** the extra indirection; the userdata at the registry points to
|
||||||
|
** a variable that points to the function. In ANSI C a void* cannot
|
||||||
|
** point to a function.)
|
||||||
|
*/
|
||||||
|
typedef void (*Newpf) (lua_State *L,
|
||||||
|
PattFunc f, /* pattern */
|
||||||
|
const void *ud, /* (user) data to be passed to 'f' */
|
||||||
|
size_t l); /* size of data to be passed to 'f' */
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue