⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fincnode.h

📁 FinC编译器源代码
💻 H
字号:
#ifndef _FINC_NODE_H_#define _FINC_NODE_H_#include <tiny/global.h>#include <tiny/object.h>#include <tiny/string.h>#include <finc/fincconfig.h>#include <finc/fincdata.h>typedef struct _FinCFunc FinCFunc;typedef struct _FinCNode FinCNode;#include <finc/fincfunc.h>#define FinC_NODE(obj) ((FinCNode*) obj)typedef enum{	FinCNodeType_None,	FinCNodeType_Block,	FinCNodeType_Data,	FinCNodeType_Func,	FinCNodeType_Type,	FinCNodeType_Identifier} FinCNodeType;struct _FinCNode{    Object parent;    FinCNodeType node_type;    FinCData* data;    FinCFunc* func;    FinCType* type;    String* identifier;    Bool check;    Bool constant;        String* source_file;    unsigned int source_line;    Vector* vector_node;};FinCNode* finc_node_new ();FinCNode* finc_node_new_func (unsigned char* p_name);FinCNode* finc_node_new_name (unsigned char* p_name);FinCNode* finc_node_new_type (String* p_typename, FinCArrayType p_array, unsigned int p_size);FinCNode* finc_node_new_char (unsigned char p_char);FinCNode* finc_node_new_string (unsigned char* p_text);FinCNode* finc_node_new_integer (unsigned int p_int);#ifdef USING_FLOATFinCNode* finc_node_new_float (float p_value);#endif#ifdef USING_DOUBLEFinCNode* finc_node_new_double (double p_value);#endifFinCNode* finc_node_new_long (long p_long);FinCNode* finc_node_new_bool (Bool p_bool);FinCNode* finc_node_new_pointer (void* p_ptr);void finc_node_destroy (Object* self);#define finc_node_add(node1, node2) vector_append ((node1)->vector_node, (Object*)(node2))#define finc_node_check(node, type) (node)->node_type == (type)? TRUE : FALSEvoid finc_node_evaluate (FinCNode* self);#define finc_node_get( node, index) (FinCNode*)vector_at( (node)->vector_node, (index) )#define finc_node_get_size( node ) vector_get_size( (node)->vector_node )FinCData* finc_node_take_data (FinCNode* self);#define finc_node_set_constant(node) (node)->constant = TRUE#define finc_node_set_block(node) (node)->node_type = FinCNodeType_Blockvoid finc_node_set_data (FinCNode* self, FinCData* p_data);void finc_node_set_func (FinCNode* self, String* p_name);void finc_node_set_type (FinCNode* self, FinCType* p_type);void finc_node_set_identifier (FinCNode* self, String* p_identifier);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -