Skip to content

Commit 109eb8b

Browse files
committed
refactoring
1 parent 2856f39 commit 109eb8b

File tree

25 files changed

+182
-176
lines changed

25 files changed

+182
-176
lines changed

core/json.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,13 @@ static inline HkValue json_to_value(HkVM *vm, cJSON *json)
7979
switch (json->type)
8080
{
8181
case cJSON_False:
82-
val = HK_FALSE_VALUE;
82+
val = hk_bool_value(false);
8383
break;
8484
case cJSON_True:
85-
val = HK_TRUE_VALUE;
85+
val = hk_bool_value(true);
8686
break;
8787
case cJSON_NULL:
88-
val = HK_NIL_VALUE;
88+
val = hk_nil_value();
8989
break;
9090
case cJSON_Number:
9191
val = hk_number_value(json->valuedouble);
@@ -101,7 +101,7 @@ static inline HkValue json_to_value(HkVM *vm, cJSON *json)
101101
while (json_elem)
102102
{
103103
HkValue elem = json_to_value(vm, json_elem);
104-
hk_array_inplace_add_element(arr, elem);
104+
hk_array_inplace_append_element(arr, elem);
105105
json_elem = json_elem->next;
106106
}
107107
val = hk_array_value(arr);
@@ -130,7 +130,7 @@ static inline HkValue json_to_value(HkVM *vm, cJSON *json)
130130
}
131131
break;
132132
default:
133-
val = HK_NIL_VALUE;
133+
val = hk_nil_value();
134134
break;
135135
}
136136
return val;

core/lists.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ static void front_call(HkVM *vm, HkValue *args)
210210
hk_vm_check_argument_userdata(vm, args, 1);
211211
hk_return_if_not_ok(vm);
212212
LinkedList *list = (LinkedList *) hk_as_userdata(args[1]);
213-
HkValue elem = list->head ? list->head->elem : HK_NIL_VALUE;
213+
HkValue elem = list->head ? list->head->elem : hk_nil_value();
214214
hk_vm_push(vm, elem);
215215
}
216216

@@ -219,7 +219,7 @@ static void back_call(HkVM *vm, HkValue *args)
219219
hk_vm_check_argument_userdata(vm, args, 1);
220220
hk_return_if_not_ok(vm);
221221
LinkedList *list = (LinkedList *) hk_as_userdata(args[1]);
222-
HkValue elem = list->tail ? list->tail->elem : HK_NIL_VALUE;
222+
HkValue elem = list->tail ? list->tail->elem : hk_nil_value();
223223
hk_vm_push(vm, elem);
224224
}
225225

core/selectors.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,9 @@ static inline HkArray *poll_selector_poll(PollSelector *selector, int timeout)
177177
if (!revents) continue;
178178
HkUserdata *udata = (HkUserdata *) selector->udatas[i];
179179
HkArray *event = hk_array_new_with_capacity(2);
180-
hk_array_inplace_add_element(event, hk_userdata_value(udata));
181-
hk_array_inplace_add_element(event, hk_number_value(revents));
182-
hk_array_inplace_add_element(arr, hk_array_value(event));
180+
hk_array_inplace_append_element(event, hk_userdata_value(udata));
181+
hk_array_inplace_append_element(event, hk_number_value(revents));
182+
hk_array_inplace_append_element(arr, hk_array_value(event));
183183
++j;
184184
}
185185
end:

docs/grammar.ebnf

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ assign_call ::= NAME subsc* assign_op expr
3131
| NAME subsc* subsc '=' expr
3232
| NAME ( subsc | call )* call
3333

34-
struct_decl ::= 'struct' NAME '{' ( string | NAME ( ',' string | NAME )* )? '}'
34+
struct_decl ::= 'struct' NAME '{' ( STRING | NAME ( ',' STRING | NAME )* )? '}'
3535

36-
fn_decl ::= 'fn' NAME '(' ( NAME ( ',' NAME )* )? ')' ( '=>' expr ";" | block )
36+
fn_decl ::= 'fn' NAME '(' params? ')' ( '=>' expr ";" | block )
37+
38+
params ::= NAME ( ',' NAME )*
3739

3840
del_stmt ::= 'del' NAME subsc* '[' expr ']' ';'
3941

@@ -99,15 +101,15 @@ primary_expr ::= literal
99101
| subsc_call
100102
| group_expr
101103

102-
literal ::= 'nil' | 'false' | 'true' | number | string
104+
literal ::= 'nil' | 'false' | 'true' | NUMBER | STRING
103105

104106
array_constructor ::= '[' ( expr ( ',' expr )* )? ']'
105107

106-
struct_constructor ::= '{' ( string | NAME ':' expr ( ',' string | NAME ':' expr )* )? '}'
108+
struct_constructor ::= '{' ( STRING | NAME ':' expr ( ',' STRING | NAME ':' expr )* )? '}'
107109

108-
anonymous_struct ::= 'struct' '{' ( string | NAME ( ',' string | NAME )* )? '}'
110+
anonymous_struct ::= 'struct' '{' ( STRING | NAME ( ',' STRING | NAME )* )? '}'
109111

110-
anonymous_fn ::= '|' ( NAME ( ',' NAME )* )? '|' ( '=>' expr | block )
112+
anonymous_fn ::= '|' params? '|' ( '=>' expr | block )
111113
| '||' ( '=>' expr | block )
112114

113115
if_expr ::= ( 'if' | 'if!' ) '(' expr ')' expr 'else' expr

docs/grammar.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ stmt ::= import_stmt
198198
| block
199199
200200
import_stmt ::= 'import' NAME ( 'as' NAME )? ';'
201-
| 'import' STRING 'as' NAME ';'
202-
| 'import' '{' NAME ( ',' NAME )* '}' 'from' ( NAME | STRING ) ';'
201+
| 'import' string 'as' NAME ';'
202+
| 'import' '{' NAME ( ',' NAME )* '}' 'from' ( NAME | string ) ';'
203203
204204
var_decl ::= 'let' NAME '=' expr
205205
| 'var' NAME ( '=' expr )?
@@ -214,7 +214,9 @@ assign_call ::= NAME subsc* assign_op expr
214214
215215
struct_decl ::= 'struct' NAME '{' ( string | NAME ( ',' string | NAME )* )? '}'
216216
217-
fn_decl ::= 'fn' NAME '(' ( NAME ( ',' NAME )* )? ')' ( '=>' expr ";" | block )
217+
fn_decl ::= 'fn' NAME '(' params? ')' ( '=>' expr ";" | block )
218+
219+
params ::= NAME ( ',' NAME )*
218220
219221
del_stmt ::= 'del' NAME subsc* '[' expr ']' ';'
220222
@@ -288,7 +290,7 @@ struct_constructor ::= '{' ( string | NAME ':' expr ( ',' string | NAME ':' ex
288290
289291
anonymous_struct ::= 'struct' '{' ( string | NAME ( ',' string | NAME )* )? '}'
290292
291-
anonymous_fn ::= '|' ( NAME ( ',' NAME )* )? '|' ( '=>' expr | block )
293+
anonymous_fn ::= '|' params? '|' ( '=>' expr | block )
292294
| '||' ( '=>' expr | block )
293295
294296
if_expr ::= ( 'if' | 'if!' ) '(' expr ')' expr 'else' expr

extensions/crypto.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ static void rc4_encrypt_call(HkVM *vm, HkValue *args)
6565
end:
6666
hk_assert(err || output, "err or output must be non-NULL");
6767
arr = hk_array_new_with_capacity(2);
68-
hk_array_inplace_add_element(arr, err ? HK_NIL_VALUE : hk_string_value(output));
69-
hk_array_inplace_add_element(arr, err ? hk_string_value(err) : HK_NIL_VALUE);
68+
hk_array_inplace_append_element(arr, err ? hk_nil_value() : hk_string_value(output));
69+
hk_array_inplace_append_element(arr, err ? hk_string_value(err) : hk_nil_value());
7070
hk_vm_push_array(vm, arr);
7171
if (!hk_vm_is_ok(vm))
7272
hk_array_free(arr);
@@ -104,8 +104,8 @@ static void rc4_decrypt_call(HkVM *vm, HkValue *args)
104104
end:
105105
hk_assert(err || output, "err or output must be non-NULL");
106106
arr = hk_array_new_with_capacity(2);
107-
hk_array_inplace_add_element(arr, err ? HK_NIL_VALUE : hk_string_value(output));
108-
hk_array_inplace_add_element(arr, err ? hk_string_value(err) : HK_NIL_VALUE);
107+
hk_array_inplace_append_element(arr, err ? hk_nil_value() : hk_string_value(output));
108+
hk_array_inplace_append_element(arr, err ? hk_string_value(err) : hk_nil_value());
109109
hk_vm_push_array(vm, arr);
110110
if (!hk_vm_is_ok(vm))
111111
hk_array_free(arr);

extensions/geohash.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ static void decode_call(HkVM *vm, HkValue *args)
4747
return;
4848
}
4949
HkArray *arr = hk_array_new_with_capacity(2);
50-
hk_array_inplace_add_element(arr, hk_number_value(lat));
51-
hk_array_inplace_add_element(arr, hk_number_value(lon));
50+
hk_array_inplace_append_element(arr, hk_number_value(lat));
51+
hk_array_inplace_append_element(arr, hk_number_value(lon));
5252
hk_vm_push_array(vm, arr);
5353
if (!hk_vm_is_ok(vm))
5454
hk_array_free(arr);

extensions/leveldb.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,15 @@ static void open_call(HkVM *vm, HkValue *args)
160160
HkArray *arr = hk_array_new_with_capacity(2);
161161
if (err)
162162
{
163-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
164-
hk_array_inplace_add_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
163+
hk_array_inplace_append_element(arr, hk_nil_value());
164+
hk_array_inplace_append_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
165165
hk_free(err);
166166
hk_vm_push_array(vm, arr);
167167
return;
168168
}
169169
LeveldbWrapper *wrapper = leveldb_wrapper_new(db);
170-
hk_array_inplace_add_element(arr, hk_userdata_value((HkUserdata *) wrapper));
171-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
170+
hk_array_inplace_append_element(arr, hk_userdata_value((HkUserdata *) wrapper));
171+
hk_array_inplace_append_element(arr, hk_nil_value());
172172
hk_vm_push_array(vm, arr);
173173
}
174174

@@ -208,14 +208,14 @@ static void put_call(HkVM *vm, HkValue *args)
208208
HkArray *arr = hk_array_new_with_capacity(2);
209209
if (err)
210210
{
211-
hk_array_inplace_add_element(arr, HK_FALSE_VALUE);
212-
hk_array_inplace_add_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
211+
hk_array_inplace_append_element(arr, hk_bool_value(false));
212+
hk_array_inplace_append_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
213213
hk_free(err);
214214
hk_vm_push_array(vm, arr);
215215
return;
216216
}
217-
hk_array_inplace_add_element(arr, HK_TRUE_VALUE);
218-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
217+
hk_array_inplace_append_element(arr, hk_bool_value(true));
218+
hk_array_inplace_append_element(arr, hk_nil_value());
219219
hk_vm_push_array(vm, arr);
220220
}
221221

@@ -239,14 +239,14 @@ static void get_call(HkVM *vm, HkValue *args)
239239
HkArray *arr = hk_array_new_with_capacity(2);
240240
if (err)
241241
{
242-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
243-
hk_array_inplace_add_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
242+
hk_array_inplace_append_element(arr, hk_nil_value());
243+
hk_array_inplace_append_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
244244
hk_free(err);
245245
hk_vm_push_array(vm, arr);
246246
return;
247247
}
248-
hk_array_inplace_add_element(arr, hk_string_value(hk_string_from_chars(value_length, value)));
249-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
248+
hk_array_inplace_append_element(arr, hk_string_value(hk_string_from_chars(value_length, value)));
249+
hk_array_inplace_append_element(arr, hk_nil_value());
250250
hk_free(value);
251251
hk_vm_push_array(vm, arr);
252252
}
@@ -270,14 +270,14 @@ static void delete_call(HkVM *vm, HkValue *args)
270270
HkArray *arr = hk_array_new_with_capacity(2);
271271
if (err)
272272
{
273-
hk_array_inplace_add_element(arr, HK_FALSE_VALUE);
274-
hk_array_inplace_add_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
273+
hk_array_inplace_append_element(arr, hk_bool_value(false));
274+
hk_array_inplace_append_element(arr, hk_string_value(hk_string_from_chars(-1, err)));
275275
hk_free(err);
276276
hk_vm_push_array(vm, arr);
277277
return;
278278
}
279-
hk_array_inplace_add_element(arr, HK_TRUE_VALUE);
280-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
279+
hk_array_inplace_append_element(arr, hk_bool_value(true));
280+
hk_array_inplace_append_element(arr, hk_nil_value());
281281
hk_vm_push_array(vm, arr);
282282
}
283283

extensions/mysql.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,15 @@ static void connect_call(HkVM *vm, HkValue *args)
102102
mysql_close(mysql);
103103
mysql_library_end();
104104
hk_incr_ref(err);
105-
result->elements[0] = HK_NIL_VALUE;
105+
result->elements[0] = hk_nil_value();
106106
result->elements[1] = hk_string_value(err);
107107
hk_vm_push_array(vm, result);
108108
return;
109109
}
110110
HkUserdata *udata = (HkUserdata *) mysql_wrapper_new(mysql);
111111
hk_incr_ref(udata);
112112
result->elements[0] = hk_userdata_value(udata);
113-
result->elements[1] = HK_NIL_VALUE;
113+
result->elements[1] = hk_nil_value();
114114
hk_vm_push_array(vm, result);
115115
}
116116

@@ -171,23 +171,23 @@ static void query_call(HkVM *vm, HkValue *args)
171171
{
172172
HkString *err = hk_string_from_chars(-1, mysql_error(mysql));
173173
hk_incr_ref(err);
174-
result->elements[0] = HK_NIL_VALUE;
174+
result->elements[0] = hk_nil_value();
175175
result->elements[1] = hk_string_value(err);
176176
hk_vm_push_array(vm, result);
177177
return;
178178
}
179179
MYSQL_RES *mysql_res = mysql_store_result(mysql);
180180
if (!mysql_res)
181181
{
182-
result->elements[0] = HK_NIL_VALUE;
183-
result->elements[1] = HK_NIL_VALUE;
182+
result->elements[0] = hk_nil_value();
183+
result->elements[1] = hk_nil_value();
184184
hk_vm_push_array(vm, result);
185185
return;
186186
}
187187
HkUserdata *udata = (HkUserdata *) mysql_result_wrapper_new(mysql_res);
188188
hk_incr_ref(udata);
189189
result->elements[0] = hk_userdata_value(udata);
190-
result->elements[1] = HK_NIL_VALUE;
190+
result->elements[1] = hk_nil_value();
191191
hk_vm_push_array(vm, result);
192192
}
193193

@@ -210,10 +210,10 @@ static void fetch_row_call(HkVM *vm, HkValue *args)
210210
char *chars = row[i];
211211
if (!chars)
212212
{
213-
hk_array_inplace_add_element(arr, HK_NIL_VALUE);
213+
hk_array_inplace_append_element(arr, hk_nil_value());
214214
break;
215215
}
216-
HkValue elem = HK_NIL_VALUE;
216+
HkValue elem = hk_nil_value();
217217
switch (fields[i].type)
218218
{
219219
case MYSQL_TYPE_NULL:
@@ -252,7 +252,7 @@ static void fetch_row_call(HkVM *vm, HkValue *args)
252252
default:
253253
break;
254254
}
255-
hk_array_inplace_add_element(arr, elem);
255+
hk_array_inplace_append_element(arr, elem);
256256
}
257257
hk_vm_push_array(vm, arr);
258258
}

extensions/redis.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ static void redis_context_wrapper_deinit(HkUserdata *udata)
3939

4040
static HkValue redis_reply_to_value(redisReply *reply)
4141
{
42-
HkValue result = HK_NIL_VALUE;
42+
HkValue result = hk_nil_value();
4343
switch (reply->type)
4444
{
4545
case REDIS_REPLY_STRING:
@@ -68,7 +68,7 @@ static HkValue redis_reply_to_value(redisReply *reply)
6868
result = hk_number_value((double) reply->integer);
6969
break;
7070
case REDIS_REPLY_NIL:
71-
result = HK_NIL_VALUE;
71+
result = hk_nil_value();
7272
break;
7373
case REDIS_REPLY_DOUBLE:
7474
{
@@ -78,7 +78,7 @@ static HkValue redis_reply_to_value(redisReply *reply)
7878
}
7979
break;
8080
case REDIS_REPLY_BOOL:
81-
result = reply->integer ? HK_TRUE_VALUE : HK_FALSE_VALUE;
81+
result = reply->integer ? hk_bool_value(true) : hk_bool_value(false);
8282
break;
8383
case REDIS_REPLY_MAP:
8484
case REDIS_REPLY_ATTR:

0 commit comments

Comments
 (0)