Skip to content

Commit cc90326

Browse files
Dmitry Frankcesantabot
authored andcommitted
Make v7 compile with V7_NO_COMPILER
PUBLISHED_FROM=df1cb86b5c5e6346455a14c9cc530d50a855db1b
1 parent df9c7b5 commit cc90326

File tree

1 file changed

+56
-29
lines changed

1 file changed

+56
-29
lines changed

v7/v7.c

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2582,6 +2582,8 @@ void v7_set_destructor_cb(struct v7 *v7, v7_val_t obj, v7_destructor_cb_t *d);
25822582

25832583
/* Amalgamated: #include "v7/src/internal.h" */
25842584

2585+
#if !defined(V7_NO_COMPILER)
2586+
25852587
enum v7_tok {
25862588
TOK_END_OF_INPUT,
25872589
TOK_NUMBER,
@@ -2710,6 +2712,8 @@ V7_PRIVATE int is_reserved_word_token(enum v7_tok tok);
27102712
}
27112713
#endif /* __cplusplus */
27122714

2715+
#endif /* V7_NO_COMPILER */
2716+
27132717
#endif /* CS_V7_SRC_TOKENIZER_H_ */
27142718
#ifdef V7_MODULE_LINES
27152719
#line 1 "./v7/src/opcodes.h"
@@ -5552,19 +5556,22 @@ V7_PRIVATE const char *bcode_get_filename(struct bcode *bcode);
55525556
*/
55535557
V7_PRIVATE void bcode_copy_filename_from(struct bcode *dst, struct bcode *src);
55545558

5555-
#ifndef V7_NO_FS
55565559
/*
55575560
* Serialize a bcode structure.
55585561
*
55595562
* All literals, including functions, are inlined into `ops` data; see
55605563
* the serialization logic in `bcode_op_lit()`.
55615564
*
55625565
* The root bcode looks just like a regular function.
5566+
*
5567+
* This function is used only internally, but used in a complicated mix of
5568+
* configurations, hence the commented V7_PRIVATE
55635569
*/
5564-
V7_PRIVATE void bcode_serialize(struct v7 *v7, struct bcode *bcode, FILE *f);
5570+
/*V7_PRIVATE*/ void bcode_serialize(struct v7 *v7, struct bcode *bcode,
5571+
FILE *f);
5572+
55655573
V7_PRIVATE void bcode_deserialize(struct v7 *v7, struct bcode *bcode,
55665574
const char *data);
5567-
#endif
55685575

55695576
#ifdef V7_BCODE_DUMP
55705577
V7_PRIVATE void dump_bcode(struct v7 *v7, FILE *, struct bcode *);
@@ -5651,19 +5658,26 @@ V7_PRIVATE void bcode_push_lit(struct bcode_builder *bbuilder, lit_t lit);
56515658
* `bcode->ops.buf`. If `idx` is provided, it should point to the index at
56525659
* which new name should be inserted; and it is updated by the
56535660
* `bcode_add_name()` to point right after newly added name.
5661+
*
5662+
* This function is used only internally, but used in a complicated mix of
5663+
* configurations, hence the commented V7_PRIVATE
56545664
*/
56555665
WARN_UNUSED_RESULT
5656-
V7_PRIVATE enum v7_err bcode_add_name(struct bcode_builder *bbuilder,
5657-
const char *p, size_t len, size_t *idx);
5666+
/*V7_PRIVATE*/ enum v7_err
5667+
bcode_add_name(struct bcode_builder *bbuilder, const char *p, size_t len,
5668+
size_t *idx);
56585669

56595670
/*
56605671
* Takes a pointer to the beginning of `ops` buffer and names count, returns
56615672
* a pointer where actual opcodes begin (i.e. skips names).
56625673
*
56635674
* It takes two distinct arguments instead of just `struct bcode` pointer,
56645675
* because during bcode building `ops` is stored in builder.
5676+
*
5677+
* This function is used only internally, but used in a complicated mix of
5678+
* configurations, hence the commented V7_PRIVATE
56655679
*/
5666-
V7_PRIVATE char *bcode_end_names(char *ops, size_t names_cnt);
5680+
/*V7_PRIVATE*/ char *bcode_end_names(char *ops, size_t names_cnt);
56675681

56685682
/*
56695683
* Given a pointer to `ops` (which should be `bcode->ops` or a pointer returned
@@ -5683,12 +5697,18 @@ V7_PRIVATE char *bcode_next_name(char *ops, char **pname, size_t *plen);
56835697
*/
56845698
V7_PRIVATE char *bcode_next_name_v(struct v7 *v7, struct bcode *bcode,
56855699
char *ops, val_t *res);
5700+
56865701
V7_PRIVATE bcode_off_t bcode_pos(struct bcode_builder *bbuilder);
5702+
56875703
V7_PRIVATE bcode_off_t bcode_add_target(struct bcode_builder *bbuilder);
5688-
V7_PRIVATE bcode_off_t
5689-
bcode_op_target(struct bcode_builder *bbuilder, uint8_t op);
5690-
V7_PRIVATE void bcode_patch_target(struct bcode_builder *bbuilder,
5691-
bcode_off_t label, bcode_off_t target);
5704+
/*
5705+
* This function is used only internally, but used in a complicated mix of
5706+
* configurations, hence the commented V7_PRIVATE
5707+
*/
5708+
/*V7_PRIVATE*/ bcode_off_t bcode_op_target(struct bcode_builder *bbuilder,
5709+
uint8_t op);
5710+
/*V7_PRIVATE*/ void bcode_patch_target(struct bcode_builder *bbuilder,
5711+
bcode_off_t label, bcode_off_t target);
56925712

56935713
V7_PRIVATE void bcode_add_varint(struct bcode_builder *bbuilder, size_t value);
56945714
/*
@@ -11060,6 +11080,8 @@ V7_PRIVATE int encode_varint(size_t len, unsigned char *p) {
1106011080
/* Amalgamated: #include "v7/src/internal.h" */
1106111081
/* Amalgamated: #include "v7/src/core.h" */
1106211082

11083+
#if !defined(V7_NO_COMPILER)
11084+
1106311085
/*
1106411086
* NOTE(lsm): Must be in the same order as enum for keywords. See comment
1106511087
* for function get_tok() for rationale for that.
@@ -11545,6 +11567,8 @@ int main(void) {
1154511567
return 0;
1154611568
}
1154711569
#endif
11570+
11571+
#endif /* V7_NO_COMPILER */
1154811572
#ifdef V7_MODULE_LINES
1154911573
#line 1 "./src/ast.c"
1155011574
#endif
@@ -13110,8 +13134,9 @@ V7_PRIVATE void bcode_push_lit(struct bcode_builder *bbuilder, lit_t lit) {
1311013134
}
1311113135

1311213136
WARN_UNUSED_RESULT
13113-
V7_PRIVATE enum v7_err bcode_add_name(struct bcode_builder *bbuilder,
13114-
const char *p, size_t len, size_t *idx) {
13137+
/*V7_PRIVATE*/ enum v7_err
13138+
bcode_add_name(struct bcode_builder *bbuilder, const char *p, size_t len,
13139+
size_t *idx) {
1311513140
enum v7_err rcode = V7_OK;
1311613141
int llen;
1311713142
size_t ops_index;
@@ -13165,7 +13190,7 @@ V7_PRIVATE enum v7_err bcode_add_name(struct bcode_builder *bbuilder,
1316513190
return rcode;
1316613191
}
1316713192

13168-
V7_PRIVATE char *bcode_end_names(char *ops, size_t names_cnt) {
13193+
/*V7_PRIVATE*/ char *bcode_end_names(char *ops, size_t names_cnt) {
1316913194
while (names_cnt--) {
1317013195
ops = bcode_next_name(ops, NULL, NULL);
1317113196
}
@@ -13224,19 +13249,31 @@ V7_PRIVATE bcode_off_t bcode_add_target(struct bcode_builder *bbuilder) {
1322413249
return pos;
1322513250
}
1322613251

13227-
/* Appends an op requiring a branch target. See bcode_add_target. */
13228-
V7_PRIVATE bcode_off_t
13229-
bcode_op_target(struct bcode_builder *bbuilder, uint8_t op) {
13252+
/*
13253+
* Appends an op requiring a branch target. See bcode_add_target.
13254+
*
13255+
* This function is used only internally, but used in a complicated mix of
13256+
* configurations, hence the commented V7_PRIVATE
13257+
*/
13258+
/*V7_PRIVATE*/ bcode_off_t bcode_op_target(struct bcode_builder *bbuilder,
13259+
uint8_t op) {
1323013260
bcode_op(bbuilder, op);
1323113261
return bcode_add_target(bbuilder);
1323213262
}
1323313263

13234-
V7_PRIVATE void bcode_patch_target(struct bcode_builder *bbuilder,
13235-
bcode_off_t label, bcode_off_t target) {
13264+
/*V7_PRIVATE*/ void bcode_patch_target(struct bcode_builder *bbuilder,
13265+
bcode_off_t label, bcode_off_t target) {
1323613266
memcpy(bbuilder->ops.buf + label, &target, sizeof(target));
1323713267
}
1323813268

13239-
#ifndef V7_NO_FS
13269+
/*V7_PRIVATE*/ void bcode_serialize(struct v7 *v7, struct bcode *bcode,
13270+
FILE *out) {
13271+
(void) v7;
13272+
(void) bcode;
13273+
13274+
fwrite(BIN_BCODE_SIGNATURE, sizeof(BIN_BCODE_SIGNATURE), 1, out);
13275+
bcode_serialize_func(v7, bcode, out);
13276+
}
1324013277

1324113278
static void bcode_serialize_varint(int n, FILE *out) {
1324213279
unsigned char buf[8];
@@ -13275,14 +13312,6 @@ static void bcode_serialize_func(struct v7 *v7, struct bcode *bcode,
1327513312
fwrite(vec->p, vec->len, 1, out);
1327613313
}
1327713314

13278-
V7_PRIVATE void bcode_serialize(struct v7 *v7, struct bcode *bcode, FILE *out) {
13279-
(void) v7;
13280-
(void) bcode;
13281-
13282-
fwrite(BIN_BCODE_SIGNATURE, sizeof(BIN_BCODE_SIGNATURE), 1, out);
13283-
bcode_serialize_func(v7, bcode, out);
13284-
}
13285-
1328613315
static size_t bcode_deserialize_varint(const char **data) {
1328713316
size_t ret = 0;
1328813317
int len = 0;
@@ -13337,8 +13366,6 @@ V7_PRIVATE void bcode_deserialize(struct v7 *v7, struct bcode *bcode,
1333713366
const char *data) {
1333813367
data = bcode_deserialize_func(v7, bcode, data);
1333913368
}
13340-
13341-
#endif
1334213369
#ifdef V7_MODULE_LINES
1334313370
#line 1 "./src/eval.c"
1334413371
#endif

0 commit comments

Comments
 (0)