Kiwi Engine
VM for interpreter
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
KEFrame.h
Go to the documentation of this file.
1 
8 #ifndef KEFRAME_H
9 #define KEFRAME_H
10 
11 #include <Coconut/Coconut.h>
12 #include "KEForwarders.h"
13 #include "KEObject.h"
14 
16 struct KEFrame {
20  struct CNObjectList slotList ;
21 } ;
22 
28 struct KEFrame *
29 KEAllocateFrame(struct CNResource * resource) ;
30 
35 static inline void
36 KERetainFrame(struct KEFrame * dst)
37 {
38  KERetainObject(&(dst->superClass)) ;
39 }
40 
45 static inline void
46 KEReleaseFrame(struct KEFrame * dst)
47 {
48  KEReleaseObject(&(dst->superClass)) ;
49 }
50 
56 static inline struct CNResource *
57 KEResourceOfFrame(struct KEFrame * src)
58 {
59  return KEResourceOfObject(&(src->superClass)) ;
60 }
61 
67 static inline const struct CNListItem *
68 KEFirstSlotInFrame(struct KEFrame * src)
69 {
70  return CNFirstListObject(&(src->slotList)) ;
71 }
72 
78 static inline const struct CNListItem *
79 KECentinelSlotInFrame(struct KEFrame * src)
80 {
81  return CNCentinelListObject(&(src->slotList)) ;
82 }
83 
96 CNBoolean
97 KEAddValueToThisFrame(struct KEFrame * dst, const struct CNFixedString * ident, const struct KEValue * val, struct KELineInfo * linfo) ;
98 
109 CNBoolean
110 KEAddSlotToThisFrame(struct KEFrame * dst, struct KESlot * src) ;
111 
120 CNBoolean
121 KEUpdateValueInThisFrame(struct KEFrame * dst, const struct CNFixedString * ident, const struct KEValue * val) ;
122 
131 CNBoolean
132 KEUpdateValueInFrame(struct KEFrame * dst, struct KEPath * path, const struct KEValue * val) ;
133 
141 struct KEValue *
142 KEValueInThisFrame(struct KEFrame * frame, const struct CNFixedString * ident) ;
143 
151 struct KEValue *
152 KEValueInFrame(struct KEFrame * frame, struct KEPath * path) ;
153 
154 #endif /* KEFRAME_H */
struct KEFrame * KEAllocateFrame(struct CNResource *resource)
Alloxate KEPath object.
KEProgram class.
Definition: KELineInfo.h:19
CNBoolean KEUpdateValueInThisFrame(struct KEFrame *dst, const struct CNFixedString *ident, const struct KEValue *val)
Update value in frame pointed by the identifier.
CNBoolean KEAddSlotToThisFrame(struct KEFrame *dst, struct KESlot *src)
Add slot to frame.
Definition: KEFrame.h:16
CNBoolean KEAddValueToThisFrame(struct KEFrame *dst, const struct CNFixedString *ident, const struct KEValue *val, struct KELineInfo *linfo)
Add slot to frame.
Define KEObject class.
Definition: KEObject.h:42
CNBoolean KEUpdateValueInFrame(struct KEFrame *dst, struct KEPath *path, const struct KEValue *val)
Set value to frame pointed by the path.
struct KEValue * KEValueInFrame(struct KEFrame *frame, struct KEPath *path)
Get value in frame pointed by path.
Definition: KEValue.h:40
struct KEValue * KEValueInThisFrame(struct KEFrame *frame, const struct CNFixedString *ident)
Get value in frame pointed by identifier.
struct KEObject superClass
Definition: KEFrame.h:18
struct CNObjectList slotList
Definition: KEFrame.h:20
Forward declarations of the data type in KiwiEngine.
Definition: KEPath.h:16
Definition: KESlot.h:17