Fun
0.41.5
The programming language that makes You have fun
Main Page
Data Structures
Files
File List
Globals
Loading...
Searching...
No Matches
src
vm
arrays
index_of.c
Go to the documentation of this file.
1
/*
2
* This file is part of the Fun programming language.
3
* https://fun-lang.xyz/
4
*
5
* Copyright 2025 Johannes Findeisen <you@hanez.org>
6
* Licensed under the terms of the Apache-2.0 license.
7
* https://opensource.org/license/apache-2-0
8
*/
9
30
31
case
OP_INDEX_OF
: {
32
Value
needle = pop_value(vm);
33
Value
arr
= pop_value(vm);
34
if
(
arr
.type !=
VAL_ARRAY
) {
35
fprintf
(stderr,
"Runtime type error: INDEX_OF expects (array, value)\n"
);
36
exit
(1);
37
}
38
int
idx
=
array_index_of
(&
arr
, &needle);
39
free_value
(
arr
);
40
free_value
(needle);
41
push_value
(vm,
make_int
(
idx
));
42
break
;
43
}
array_index_of
int array_index_of(const Value *v, const Value *needle)
Find the index of the first occurrence of an element in an array.
Definition
array_utils.c:47
OP_INDEX_OF
@ OP_INDEX_OF
Definition
bytecode.h:113
arr
array_clear & arr
Definition
clear.c:38
free_value
free_value(arr)
push_value
push_value(vm, make_int(idx))
idx
int idx
Definition
index_of.c:38
Value
Tagged union representing a Fun value.
Definition
value.h:68
make_int
Value make_int(int64_t v)
Construct a Value representing a 64-bit integer.
Definition
value.c:51
VAL_ARRAY
@ VAL_ARRAY
Definition
value.h:55
fprintf
#define fprintf
Definition
vm.c:200
exit
#define exit(code)
Definition
vm.c:230
Generated on
for Fun by
1.16.1