Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/lyaml/ext/yaml/yaml.c
178703 views
1
/*
2
* yaml.c, LibYAML binding for Lua
3
* Written by Andrew Danforth, 2009
4
*
5
* Copyright (C) 2014-2022 Gary V. Vaughan
6
* Copyright (C) 2009 Andrew Danforth
7
*
8
* Permission is hereby granted, free of charge, to any person obtaining a copy
9
* of this software and associated documentation files (the "Software"), to deal
10
* in the Software without restriction, including without limitation the rights
11
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
* copies of the Software, and to permit persons to whom the Software is
13
* furnished to do so, subject to the following conditions:
14
*
15
* The above copyright notice and this permission notice shall be included in
16
* all copies or substantial portions of the Software.
17
*
18
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
* THE SOFTWARE.
25
*
26
* Portions of this software were inspired by Perl's YAML::LibYAML module by
27
* Ingy d�t Net <[email protected]>
28
*
29
*/
30
31
#include <string.h>
32
#include <stdlib.h>
33
34
#include <lualib.h>
35
36
#include "lyaml.h"
37
38
#include "bootstrap.h"
39
40
#define MYNAME "yaml"
41
#define MYVERSION MYNAME " library for " LUA_VERSION " / " VERSION
42
43
#define LYAML__STR_1(_s) (#_s + 1)
44
#define LYAML_STR_1(_s) LYAML__STR_1(_s)
45
46
static const luaL_Reg R[] =
47
{
48
#define MENTRY(_s) {LYAML_STR_1(_s), (_s)}
49
MENTRY( Pemitter ),
50
MENTRY( Pparser ),
51
MENTRY( Pscanner ),
52
#undef MENTRY
53
{NULL, NULL}
54
};
55
56
LUALIB_API int
57
luaopen_yaml (lua_State *L)
58
{
59
parser_init (L);
60
scanner_init (L);
61
62
luaL_register(L, "yaml", R);
63
64
lua_pushliteral(L, MYVERSION);
65
lua_setfield(L, -2, "version");
66
67
return 1;
68
}
69
70
FLUA_MODULE(yaml);
71
72