blob: 01aacce4da7025ae8b79358ddc00ff9da4136461 (
plain)
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
|
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include "token.h"
#include "interpret.h"
#include "../data/stack.h"
#include "../data/hash.h"
typedef struct {
Hash *p_hash_functions;
} Functions;
Functions* functions_new();
void functions_delete(Functions *p_functions);
void functions_init(Functions *p_functions);
/* p_array_lhs / i_lhs_idx carry array-element LHS context for arr[i] = val;
* pass NULL / 0 for plain assignment or non-assignment operators. */
void function_process(Interpret *p_interp, Token *p_token_op,
Token *p_token_op2, Stack *p_stack_args,
int i_args, Token *p_array_lhs, int i_lhs_idx);
_Bool function_is_buildin(Token *p_token_ident);
void function_process_buildin(Interpret *p_interpret,
Token *p_token_ident,
Stack *p_stack_args);
_Bool function_is_self_defined(Interpret *p_interpret);
void function_process_self_defined(Interpret *p_interpret,
Token *p_token_ident);
#endif /* FUNCTIONS_H */
|