-
Notifications
You must be signed in to change notification settings - Fork 138
/
embed.h
135 lines (117 loc) · 4.26 KB
/
embed.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
* Copyright (C) 2011, Parrot Foundation.
*/
#ifndef PARROT_IMCC_EMBED_H_GUARD
#define PARROT_IMCC_EMBED_H_GUARD
/* Forward Declarations. IMCC will define these things internally.
libparrot and other embedders and extenders should treat these
as being opaque */
#ifndef IMCC_IMC_H_HAVE_TYPEDEFS
typedef struct IMC_Unit IMC_Unit;
struct _imc_info_t;
typedef struct _imc_info_t imc_info_t;
#endif
#include "imcc/yyscanner.h"
/* HEADERIZER BEGIN: compilers/imcc/main.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC * imcc_compile_file(
ARGMOD(imc_info_t *imcc),
ARGIN(STRING *fullname),
int is_pasm)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*imcc);
PARROT_EXPORT
INTVAL imcc_last_error_code(ARGIN(imc_info_t *imcc))
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
STRING* imcc_last_error_message(ARGIN(imc_info_t *imcc))
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
imc_info_t * imcc_new(PARROT_INTERP)
__attribute__nonnull__(1);
PARROT_EXPORT
void imcc_preprocess(
ARGMOD(imc_info_t *imcc),
ARGIN(STRING * const sourcefile))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*imcc);
PARROT_EXPORT
void imcc_reset(ARGMOD(imc_info_t *imcc))
__attribute__nonnull__(1)
FUNC_MODIFIES(*imcc);
PARROT_EXPORT
void imcc_set_debug_mode(
ARGMOD(imc_info_t *imcc),
INTVAL dflags,
INTVAL yflags)
__attribute__nonnull__(1)
FUNC_MODIFIES(*imcc);
PARROT_EXPORT
void imcc_set_optimization_level(
ARGMOD(imc_info_t *imcc),
ARGIN(const char *opts))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*imcc);
PARROT_EXPORT
void imcc_set_verbosity(ARGMOD(imc_info_t *imcc), INTVAL verbose)
__attribute__nonnull__(1)
FUNC_MODIFIES(*imcc);
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
imc_info_t * exit_reentrant_compile(
ARGIN(imc_info_t *imcc),
ARGMOD_NULLOK(struct _imc_info_t *new_info))
__attribute__nonnull__(1)
FUNC_MODIFIES(*new_info);
PARROT_CANNOT_RETURN_NULL
PMC * imcc_compile_string(
ARGMOD(imc_info_t *imcc),
ARGIN(STRING *source),
int is_pasm)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*imcc);
void imcc_destroy(ARGFREE(imc_info_t * imcc));
#define ASSERT_ARGS_imcc_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc) \
, PARROT_ASSERT_ARG(fullname))
#define ASSERT_ARGS_imcc_last_error_code __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc))
#define ASSERT_ARGS_imcc_last_error_message __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc))
#define ASSERT_ARGS_imcc_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_imcc_preprocess __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc) \
, PARROT_ASSERT_ARG(sourcefile))
#define ASSERT_ARGS_imcc_reset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc))
#define ASSERT_ARGS_imcc_set_debug_mode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc))
#define ASSERT_ARGS_imcc_set_optimization_level __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc) \
, PARROT_ASSERT_ARG(opts))
#define ASSERT_ARGS_imcc_set_verbosity __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc))
#define ASSERT_ARGS_exit_reentrant_compile __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc))
#define ASSERT_ARGS_imcc_compile_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(imcc) \
, PARROT_ASSERT_ARG(source))
#define ASSERT_ARGS_imcc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: compilers/imcc/main.c */
#endif /* PARROT_IMCC_EMBED_H_GUARD */
/*
* Local variables:
* c-file-style: "parrot"
* End:
* vim: expandtab shiftwidth=4 cinoptions='\:2=2' :
*/