Use [] instead of [0] in structures.
[ilari-esolangs.git] / class.h
blob419998aa239095a83ae2c77eb481cd76812be092
1 #ifndef _class__h__included__
2 #define _class__h__included__
4 #include <stdlib.h>
6 /* Class table entry. */
7 struct class;
9 /******************************************************************************
11 * DESCRIPTION:
12 * Search for class with given number.
14 * PARAMETERS:
15 * number Number of class to search.
17 * RETURN VALUE:
18 * Class structure, or NULL if no such class exists.
20 *****************************************************************************/
21 struct class* class_search(size_t number);
23 /******************************************************************************
25 * DESCRIPTION:
26 * Register new class(es).
28 * PARAMETERS:
29 * class The class to register.
31 *****************************************************************************/
32 void class_register(struct class* class);
34 /******************************************************************************
36 * DESCRIPTION:
37 * Unregister all classes.
39 *****************************************************************************/
40 void class_unregister_all();
42 /******************************************************************************
44 * DESCRIPTION:
45 * Create class.
47 * PARAMETERS:
48 * fields Number of fields.
49 * locals Number of locals.
50 * instructions Instructions array.
51 * ins_len Instructions array length.
53 * RETURN VALUE:
54 * The made class object.
56 *****************************************************************************/
57 struct class* class_make(size_t fields, size_t locals,
58 unsigned char* instructions, size_t ins_len);
60 /******************************************************************************
62 * DESCRIPTION:
63 * Get number of fields in class.
65 * PARAMETERS:
66 * class The class to interrogate.
68 * RETURN VALUE:
69 * Number of fields.
71 *****************************************************************************/
72 size_t class_field_count(struct class* class);
74 /******************************************************************************
76 * DESCRIPTION:
77 * Get number of locals in class.
79 * PARAMETERS:
80 * class The class to interrogate.
82 * RETURN VALUE:
83 * Number of locals.
85 *****************************************************************************/
86 size_t class_local_count(struct class* class);
88 /******************************************************************************
90 * DESCRIPTION:
91 * Get number of instructions in class.
93 * PARAMETERS:
94 * class The class to interrogate.
96 * RETURN VALUE:
97 * Number of instructions.
99 *****************************************************************************/
100 size_t class_ins_count(struct class* class);
102 /******************************************************************************
104 * DESCRIPTION:
105 * Get instruction from class.
107 * PARAMETERS:
108 * class The class to interrogate.
109 * position The position of instruction (zero based).
111 * RETURN VALUE:
112 * The instruction, or 0 if index is out of range.
114 *****************************************************************************/
115 unsigned char class_get_ins(struct class* class, size_t position);
118 #endif