prism-cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,144 @@
1
+ /*
2
+ ** mruby/boxing_word.h - word boxing mrb_value definition
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_BOXING_WORD_H
8
+ #define MRUBY_BOXING_WORD_H
9
+
10
+ #if defined(MRB_INT16)
11
+ # error MRB_INT16 is too small for MRB_WORD_BOXING.
12
+ #endif
13
+
14
+ #if defined(MRB_INT64) && !defined(MRB_64BIT)
15
+ #error MRB_INT64 cannot be used with MRB_WORD_BOXING in 32-bit mode.
16
+ #endif
17
+
18
+ #ifndef MRB_WITHOUT_FLOAT
19
+ struct RFloat {
20
+ MRB_OBJECT_HEADER;
21
+ mrb_float f;
22
+ };
23
+ #endif
24
+
25
+ struct RCptr {
26
+ MRB_OBJECT_HEADER;
27
+ void *p;
28
+ };
29
+
30
+ #define MRB_FIXNUM_SHIFT 1
31
+ #ifdef MRB_WITHOUT_FLOAT
32
+ #define MRB_TT_HAS_BASIC MRB_TT_CPTR
33
+ #else
34
+ #define MRB_TT_HAS_BASIC MRB_TT_FLOAT
35
+ #endif
36
+
37
+ enum mrb_special_consts {
38
+ MRB_Qnil = 0,
39
+ MRB_Qfalse = 2,
40
+ MRB_Qtrue = 4,
41
+ MRB_Qundef = 6,
42
+ };
43
+
44
+ #define MRB_FIXNUM_FLAG 0x01
45
+ #define MRB_SYMBOL_FLAG 0x0e
46
+ #define MRB_SPECIAL_SHIFT 8
47
+
48
+ #if defined(MRB_64BIT)
49
+ #define MRB_SYMBOL_BITSIZE (sizeof(mrb_sym) * CHAR_BIT)
50
+ #define MRB_SYMBOL_MAX UINT32_MAX
51
+ #else
52
+ #define MRB_SYMBOL_BITSIZE (sizeof(mrb_sym) * CHAR_BIT - MRB_SPECIAL_SHIFT)
53
+ #define MRB_SYMBOL_MAX (UINT32_MAX >> MRB_SPECIAL_SHIFT)
54
+ #endif
55
+
56
+ typedef union mrb_value {
57
+ union {
58
+ void *p;
59
+ struct {
60
+ unsigned int i_flag : MRB_FIXNUM_SHIFT;
61
+ mrb_int i : (MRB_INT_BIT - MRB_FIXNUM_SHIFT);
62
+ };
63
+ struct {
64
+ unsigned int sym_flag : MRB_SPECIAL_SHIFT;
65
+ mrb_sym sym : MRB_SYMBOL_BITSIZE;
66
+ };
67
+ struct RBasic *bp;
68
+ #ifndef MRB_WITHOUT_FLOAT
69
+ struct RFloat *fp;
70
+ #endif
71
+ struct RCptr *vp;
72
+ } value;
73
+ unsigned long w;
74
+ } mrb_value;
75
+
76
+ MRB_API mrb_value mrb_word_boxing_cptr_value(struct mrb_state*, void*);
77
+ #ifndef MRB_WITHOUT_FLOAT
78
+ MRB_API mrb_value mrb_word_boxing_float_value(struct mrb_state*, mrb_float);
79
+ MRB_API mrb_value mrb_word_boxing_float_pool(struct mrb_state*, mrb_float);
80
+ #endif
81
+
82
+ #ifndef MRB_WITHOUT_FLOAT
83
+ #define mrb_float_pool(mrb,f) mrb_word_boxing_float_pool(mrb,f)
84
+ #endif
85
+
86
+ #define mrb_ptr(o) (o).value.p
87
+ #define mrb_cptr(o) (o).value.vp->p
88
+ #ifndef MRB_WITHOUT_FLOAT
89
+ #define mrb_float(o) (o).value.fp->f
90
+ #endif
91
+ #define mrb_fixnum(o) ((mrb_int)(o).value.i)
92
+ #define mrb_symbol(o) (o).value.sym
93
+
94
+ static inline enum mrb_vtype
95
+ mrb_type(mrb_value o)
96
+ {
97
+ switch (o.w) {
98
+ case MRB_Qfalse:
99
+ case MRB_Qnil:
100
+ return MRB_TT_FALSE;
101
+ case MRB_Qtrue:
102
+ return MRB_TT_TRUE;
103
+ case MRB_Qundef:
104
+ return MRB_TT_UNDEF;
105
+ }
106
+ if (o.value.i_flag == MRB_FIXNUM_FLAG) {
107
+ return MRB_TT_FIXNUM;
108
+ }
109
+ if (o.value.sym_flag == MRB_SYMBOL_FLAG) {
110
+ return MRB_TT_SYMBOL;
111
+ }
112
+ return o.value.bp->tt;
113
+ }
114
+
115
+ #define mrb_bool(o) ((o).w != MRB_Qnil && (o).w != MRB_Qfalse)
116
+ #define mrb_fixnum_p(o) ((o).value.i_flag == MRB_FIXNUM_FLAG)
117
+ #define mrb_undef_p(o) ((o).w == MRB_Qundef)
118
+ #define mrb_nil_p(o) ((o).w == MRB_Qnil)
119
+
120
+ #define BOXWORD_SET_VALUE(o, ttt, attr, v) do { \
121
+ switch (ttt) {\
122
+ case MRB_TT_FALSE: (o).w = (v) ? MRB_Qfalse : MRB_Qnil; break;\
123
+ case MRB_TT_TRUE: (o).w = MRB_Qtrue; break;\
124
+ case MRB_TT_UNDEF: (o).w = MRB_Qundef; break;\
125
+ case MRB_TT_FIXNUM: (o).w = 0;(o).value.i_flag = MRB_FIXNUM_FLAG; (o).attr = (v); break;\
126
+ case MRB_TT_SYMBOL: (o).w = 0;(o).value.sym_flag = MRB_SYMBOL_FLAG; (o).attr = (v); break;\
127
+ default: (o).w = 0; (o).attr = (v); if ((o).value.bp) (o).value.bp->tt = ttt; break;\
128
+ }\
129
+ } while (0)
130
+
131
+ #ifndef MRB_WITHOUT_FLOAT
132
+ #define SET_FLOAT_VALUE(mrb,r,v) ((r) = mrb_word_boxing_float_value(mrb, v))
133
+ #endif
134
+ #define SET_CPTR_VALUE(mrb,r,v) ((r) = mrb_word_boxing_cptr_value(mrb, v))
135
+ #define SET_NIL_VALUE(r) BOXWORD_SET_VALUE(r, MRB_TT_FALSE, value.i, 0)
136
+ #define SET_FALSE_VALUE(r) BOXWORD_SET_VALUE(r, MRB_TT_FALSE, value.i, 1)
137
+ #define SET_TRUE_VALUE(r) BOXWORD_SET_VALUE(r, MRB_TT_TRUE, value.i, 1)
138
+ #define SET_BOOL_VALUE(r,b) BOXWORD_SET_VALUE(r, (b) ? MRB_TT_TRUE : MRB_TT_FALSE, value.i, 1)
139
+ #define SET_INT_VALUE(r,n) BOXWORD_SET_VALUE(r, MRB_TT_FIXNUM, value.i, (n))
140
+ #define SET_SYM_VALUE(r,v) BOXWORD_SET_VALUE(r, MRB_TT_SYMBOL, value.sym, (v))
141
+ #define SET_OBJ_VALUE(r,v) BOXWORD_SET_VALUE(r, (((struct RObject*)(v))->tt), value.p, (v))
142
+ #define SET_UNDEF_VALUE(r) BOXWORD_SET_VALUE(r, MRB_TT_UNDEF, value.i, 0)
143
+
144
+ #endif /* MRUBY_BOXING_WORD_H */
@@ -0,0 +1,97 @@
1
+ /*
2
+ ** mruby/class.h - Class class
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_CLASS_H
8
+ #define MRUBY_CLASS_H
9
+
10
+ #include "common.h"
11
+
12
+ /**
13
+ * Class class
14
+ */
15
+ MRB_BEGIN_DECL
16
+
17
+ struct RClass {
18
+ MRB_OBJECT_HEADER;
19
+ struct iv_tbl *iv;
20
+ struct kh_mt *mt;
21
+ struct RClass *super;
22
+ };
23
+
24
+ #define mrb_class_ptr(v) ((struct RClass*)(mrb_ptr(v)))
25
+
26
+ static inline struct RClass*
27
+ mrb_class(mrb_state *mrb, mrb_value v)
28
+ {
29
+ switch (mrb_type(v)) {
30
+ case MRB_TT_FALSE:
31
+ if (mrb_fixnum(v))
32
+ return mrb->false_class;
33
+ return mrb->nil_class;
34
+ case MRB_TT_TRUE:
35
+ return mrb->true_class;
36
+ case MRB_TT_SYMBOL:
37
+ return mrb->symbol_class;
38
+ case MRB_TT_FIXNUM:
39
+ return mrb->fixnum_class;
40
+ #ifndef MRB_WITHOUT_FLOAT
41
+ case MRB_TT_FLOAT:
42
+ return mrb->float_class;
43
+ #endif
44
+ case MRB_TT_CPTR:
45
+ return mrb->object_class;
46
+ case MRB_TT_ENV:
47
+ return NULL;
48
+ default:
49
+ return mrb_obj_ptr(v)->c;
50
+ }
51
+ }
52
+
53
+ /* flags:
54
+ 20: frozen
55
+ 19: is_prepended
56
+ 18: is_origin
57
+ 17: is_inherited (used by method cache)
58
+ 16: unused
59
+ 0-15: instance type
60
+ */
61
+ #define MRB_FL_CLASS_IS_PREPENDED (1 << 19)
62
+ #define MRB_FL_CLASS_IS_ORIGIN (1 << 18)
63
+ #define MRB_CLASS_ORIGIN(c) do {\
64
+ if ((c)->flags & MRB_FL_CLASS_IS_PREPENDED) {\
65
+ (c) = (c)->super;\
66
+ while (!((c)->flags & MRB_FL_CLASS_IS_ORIGIN)) {\
67
+ (c) = (c)->super;\
68
+ }\
69
+ }\
70
+ } while (0)
71
+ #define MRB_FL_CLASS_IS_INHERITED (1 << 17)
72
+ #define MRB_INSTANCE_TT_MASK (0xFF)
73
+ #define MRB_SET_INSTANCE_TT(c, tt) ((c)->flags = (((c)->flags & ~MRB_INSTANCE_TT_MASK) | (char)(tt)))
74
+ #define MRB_INSTANCE_TT(c) (enum mrb_vtype)((c)->flags & MRB_INSTANCE_TT_MASK)
75
+
76
+ MRB_API struct RClass* mrb_define_class_id(mrb_state*, mrb_sym, struct RClass*);
77
+ MRB_API struct RClass* mrb_define_module_id(mrb_state*, mrb_sym);
78
+ MRB_API struct RClass *mrb_vm_define_class(mrb_state*, mrb_value, mrb_value, mrb_sym);
79
+ MRB_API struct RClass *mrb_vm_define_module(mrb_state*, mrb_value, mrb_sym);
80
+ MRB_API void mrb_define_method_raw(mrb_state*, struct RClass*, mrb_sym, mrb_method_t);
81
+ MRB_API void mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec);
82
+ MRB_API void mrb_alias_method(mrb_state*, struct RClass *c, mrb_sym a, mrb_sym b);
83
+
84
+ MRB_API mrb_method_t mrb_method_search_vm(mrb_state*, struct RClass**, mrb_sym);
85
+ MRB_API mrb_method_t mrb_method_search(mrb_state*, struct RClass*, mrb_sym);
86
+
87
+ MRB_API struct RClass* mrb_class_real(struct RClass* cl);
88
+
89
+ void mrb_class_name_class(mrb_state*, struct RClass*, struct RClass*, mrb_sym);
90
+ mrb_value mrb_class_find_path(mrb_state*, struct RClass*);
91
+ void mrb_gc_mark_mt(mrb_state*, struct RClass*);
92
+ size_t mrb_gc_mark_mt_size(mrb_state*, struct RClass*);
93
+ void mrb_gc_free_mt(mrb_state*, struct RClass*);
94
+
95
+ MRB_END_DECL
96
+
97
+ #endif /* MRUBY_CLASS_H */
@@ -0,0 +1,77 @@
1
+ /*
2
+ **"common.h - mruby common platform definition"
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_COMMON_H
8
+ #define MRUBY_COMMON_H
9
+
10
+ #ifdef __APPLE__
11
+ #ifndef __TARGETCONDITIONALS__
12
+ #include "TargetConditionals.h"
13
+ #endif
14
+ #endif
15
+
16
+ #ifdef __cplusplus
17
+ #ifdef MRB_ENABLE_CXX_ABI
18
+ #define MRB_BEGIN_DECL
19
+ #define MRB_END_DECL
20
+ #else
21
+ # define MRB_BEGIN_DECL extern "C" {
22
+ # define MRB_END_DECL }
23
+ #endif
24
+ #else
25
+ /** Start declarations in C mode */
26
+ # define MRB_BEGIN_DECL
27
+ /** End declarations in C mode */
28
+ # define MRB_END_DECL
29
+ #endif
30
+
31
+ /**
32
+ * Shared compiler macros
33
+ */
34
+ MRB_BEGIN_DECL
35
+
36
+ /** Declare a function that never returns. */
37
+ #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L
38
+ # define mrb_noreturn _Noreturn
39
+ #elif defined __GNUC__ && !defined __STRICT_ANSI__
40
+ # define mrb_noreturn __attribute__((noreturn))
41
+ #elif defined _MSC_VER
42
+ # define mrb_noreturn __declspec(noreturn)
43
+ #else
44
+ # define mrb_noreturn
45
+ #endif
46
+
47
+ /** Mark a function as deprecated. */
48
+ #if defined __GNUC__ && !defined __STRICT_ANSI__
49
+ # define mrb_deprecated __attribute__((deprecated))
50
+ #elif defined _MSC_VER
51
+ # define mrb_deprecated __declspec(deprecated)
52
+ #else
53
+ # define mrb_deprecated
54
+ #endif
55
+
56
+ /** Declare a function as always inlined. */
57
+ #if defined(_MSC_VER)
58
+ # define MRB_INLINE static __inline
59
+ #else
60
+ # define MRB_INLINE static inline
61
+ #endif
62
+
63
+
64
+ /** Declare a public MRuby API function. */
65
+ #if defined(MRB_BUILD_AS_DLL)
66
+ #if defined(MRB_CORE) || defined(MRB_LIB)
67
+ # define MRB_API __declspec(dllexport)
68
+ #else
69
+ # define MRB_API __declspec(dllimport)
70
+ #endif
71
+ #else
72
+ # define MRB_API extern
73
+ #endif
74
+
75
+ MRB_END_DECL
76
+
77
+ #endif /* MRUBY_COMMON_H */
@@ -0,0 +1,195 @@
1
+ /*
2
+ ** mruby/compile.h - mruby parser
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_COMPILE_H
8
+ #define MRUBY_COMPILE_H
9
+
10
+ #include "common.h"
11
+
12
+ /**
13
+ * MRuby Compiler
14
+ */
15
+ MRB_BEGIN_DECL
16
+
17
+ #include <mruby.h>
18
+
19
+ struct mrb_jmpbuf;
20
+
21
+ struct mrb_parser_state;
22
+ /* load context */
23
+ typedef struct mrbc_context {
24
+ mrb_sym *syms;
25
+ int slen;
26
+ char *filename;
27
+ short lineno;
28
+ int (*partial_hook)(struct mrb_parser_state*);
29
+ void *partial_data;
30
+ struct RClass *target_class;
31
+ mrb_bool capture_errors:1;
32
+ mrb_bool dump_result:1;
33
+ mrb_bool no_exec:1;
34
+ mrb_bool keep_lv:1;
35
+ mrb_bool no_optimize:1;
36
+ mrb_bool on_eval:1;
37
+
38
+ size_t parser_nerr;
39
+ } mrbc_context;
40
+
41
+ MRB_API mrbc_context* mrbc_context_new(mrb_state *mrb);
42
+ MRB_API void mrbc_context_free(mrb_state *mrb, mrbc_context *cxt);
43
+ MRB_API const char *mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s);
44
+ MRB_API void mrbc_partial_hook(mrb_state *mrb, mrbc_context *c, int (*partial_hook)(struct mrb_parser_state*), void*data);
45
+
46
+ /* AST node structure */
47
+ typedef struct mrb_ast_node {
48
+ struct mrb_ast_node *car, *cdr;
49
+ uint16_t lineno, filename_index;
50
+ } mrb_ast_node;
51
+
52
+ /* lexer states */
53
+ enum mrb_lex_state_enum {
54
+ EXPR_BEG, /* ignore newline, +/- is a sign. */
55
+ EXPR_END, /* newline significant, +/- is an operator. */
56
+ EXPR_ENDARG, /* ditto, and unbound braces. */
57
+ EXPR_ENDFN, /* ditto, and unbound braces. */
58
+ EXPR_ARG, /* newline significant, +/- is an operator. */
59
+ EXPR_CMDARG, /* newline significant, +/- is an operator. */
60
+ EXPR_MID, /* newline significant, +/- is an operator. */
61
+ EXPR_FNAME, /* ignore newline, no reserved words. */
62
+ EXPR_DOT, /* right after '.' or '::', no reserved words. */
63
+ EXPR_CLASS, /* immediate after 'class', no here document. */
64
+ EXPR_VALUE, /* alike EXPR_BEG but label is disallowed. */
65
+ EXPR_MAX_STATE
66
+ };
67
+
68
+ /* saved error message */
69
+ struct mrb_parser_message {
70
+ int lineno;
71
+ int column;
72
+ char* message;
73
+ };
74
+
75
+ #define STR_FUNC_PARSING 0x01
76
+ #define STR_FUNC_EXPAND 0x02
77
+ #define STR_FUNC_REGEXP 0x04
78
+ #define STR_FUNC_WORD 0x08
79
+ #define STR_FUNC_SYMBOL 0x10
80
+ #define STR_FUNC_ARRAY 0x20
81
+ #define STR_FUNC_HEREDOC 0x40
82
+ #define STR_FUNC_XQUOTE 0x80
83
+
84
+ enum mrb_string_type {
85
+ str_not_parsing = (0),
86
+ str_squote = (STR_FUNC_PARSING),
87
+ str_dquote = (STR_FUNC_PARSING|STR_FUNC_EXPAND),
88
+ str_regexp = (STR_FUNC_PARSING|STR_FUNC_REGEXP|STR_FUNC_EXPAND),
89
+ str_sword = (STR_FUNC_PARSING|STR_FUNC_WORD|STR_FUNC_ARRAY),
90
+ str_dword = (STR_FUNC_PARSING|STR_FUNC_WORD|STR_FUNC_ARRAY|STR_FUNC_EXPAND),
91
+ str_ssym = (STR_FUNC_PARSING|STR_FUNC_SYMBOL),
92
+ str_ssymbols = (STR_FUNC_PARSING|STR_FUNC_SYMBOL|STR_FUNC_ARRAY),
93
+ str_dsymbols = (STR_FUNC_PARSING|STR_FUNC_SYMBOL|STR_FUNC_ARRAY|STR_FUNC_EXPAND),
94
+ str_heredoc = (STR_FUNC_PARSING|STR_FUNC_HEREDOC),
95
+ str_xquote = (STR_FUNC_PARSING|STR_FUNC_XQUOTE|STR_FUNC_EXPAND),
96
+ };
97
+
98
+ /* heredoc structure */
99
+ struct mrb_parser_heredoc_info {
100
+ mrb_bool allow_indent:1;
101
+ mrb_bool line_head:1;
102
+ enum mrb_string_type type;
103
+ const char *term;
104
+ int term_len;
105
+ mrb_ast_node *doc;
106
+ };
107
+
108
+ #define MRB_PARSER_TOKBUF_MAX 65536
109
+ #define MRB_PARSER_TOKBUF_SIZE 256
110
+
111
+ /* parser structure */
112
+ struct mrb_parser_state {
113
+ mrb_state *mrb;
114
+ struct mrb_pool *pool;
115
+ mrb_ast_node *cells;
116
+ const char *s, *send;
117
+ #ifndef MRB_DISABLE_STDIO
118
+ FILE *f;
119
+ #endif
120
+ mrbc_context *cxt;
121
+ mrb_sym filename_sym;
122
+ int lineno;
123
+ int column;
124
+
125
+ enum mrb_lex_state_enum lstate;
126
+ mrb_ast_node *lex_strterm; /* (type nest_level beg . end) */
127
+
128
+ unsigned int cond_stack;
129
+ unsigned int cmdarg_stack;
130
+ int paren_nest;
131
+ int lpar_beg;
132
+ int in_def, in_single;
133
+ mrb_bool cmd_start:1;
134
+ mrb_ast_node *locals;
135
+
136
+ mrb_ast_node *pb;
137
+ char *tokbuf;
138
+ char buf[MRB_PARSER_TOKBUF_SIZE];
139
+ int tidx;
140
+ int tsiz;
141
+
142
+ mrb_ast_node *all_heredocs; /* list of mrb_parser_heredoc_info* */
143
+ mrb_ast_node *heredocs_from_nextline;
144
+ mrb_ast_node *parsing_heredoc;
145
+ mrb_ast_node *lex_strterm_before_heredoc;
146
+
147
+ void *ylval;
148
+
149
+ size_t nerr;
150
+ size_t nwarn;
151
+ mrb_ast_node *tree;
152
+
153
+ mrb_bool no_optimize:1;
154
+ mrb_bool on_eval:1;
155
+ mrb_bool capture_errors:1;
156
+ struct mrb_parser_message error_buffer[10];
157
+ struct mrb_parser_message warn_buffer[10];
158
+
159
+ mrb_sym* filename_table;
160
+ uint16_t filename_table_length;
161
+ uint16_t current_filename_index;
162
+
163
+ struct mrb_jmpbuf* jmp;
164
+ };
165
+
166
+ MRB_API struct mrb_parser_state* mrb_parser_new(mrb_state*);
167
+ MRB_API void mrb_parser_free(struct mrb_parser_state*);
168
+ MRB_API void mrb_parser_parse(struct mrb_parser_state*,mrbc_context*);
169
+
170
+ MRB_API void mrb_parser_set_filename(struct mrb_parser_state*, char const*);
171
+ MRB_API mrb_sym mrb_parser_get_filename(struct mrb_parser_state*, uint16_t idx);
172
+
173
+ /* utility functions */
174
+ #ifndef MRB_DISABLE_STDIO
175
+ MRB_API struct mrb_parser_state* mrb_parse_file(mrb_state*,FILE*,mrbc_context*);
176
+ #endif
177
+ MRB_API struct mrb_parser_state* mrb_parse_string(mrb_state*,const char*,mrbc_context*);
178
+ MRB_API struct mrb_parser_state* mrb_parse_nstring(mrb_state*,const char*,size_t,mrbc_context*);
179
+ MRB_API struct RProc* mrb_generate_code(mrb_state*, struct mrb_parser_state*);
180
+ MRB_API mrb_value mrb_load_exec(mrb_state *mrb, struct mrb_parser_state *p, mrbc_context *c);
181
+
182
+ /* program load functions */
183
+ #ifndef MRB_DISABLE_STDIO
184
+ MRB_API mrb_value mrb_load_file(mrb_state*,FILE*);
185
+ MRB_API mrb_value mrb_load_file_cxt(mrb_state*,FILE*, mrbc_context *cxt);
186
+ #endif
187
+ MRB_API mrb_value mrb_load_string(mrb_state *mrb, const char *s);
188
+ MRB_API mrb_value mrb_load_nstring(mrb_state *mrb, const char *s, size_t len);
189
+ MRB_API mrb_value mrb_load_string_cxt(mrb_state *mrb, const char *s, mrbc_context *cxt);
190
+ MRB_API mrb_value mrb_load_nstring_cxt(mrb_state *mrb, const char *s, size_t len, mrbc_context *cxt);
191
+
192
+ /** @} */
193
+ MRB_END_DECL
194
+
195
+ #endif /* MRUBY_COMPILE_H */