finclib.c

来自「FinC is Fava in C! A C-like syntax langu」· C语言 代码 · 共 119 行

C
119
字号
#include <finclib.h>#include <fincsys.h>void finc_init(){	g_finc_app_global = finc_app_new ();	finc_sys_init ();}void finc_set_path(unsigned char* path){}void finc_exit(){	unref (g_finc_app_global);}void finc_insert_struct(){}void finc_insert_var(){}void finc_remove_var(){}#include <finctype.h>void finc_insert_func(unsigned char* p_name, void* p_func, unsigned char* p_rettype, ...){	va_list marker;	FinCFunc* l_func;	FinCField* l_field;	FinCType* l_type;	String* l_name;	unsigned char* l_paramtype;	unsigned char* l_paramname;	l_func = finc_app_add_func_native (g_finc_app_global, p_name, p_func);	l_func->ret_type = finc_type_new_name (p_rettype, FinCArrayType_None, 0);	va_start (marker, p_rettype);	l_paramtype = va_arg(marker, unsigned char*);	while (l_paramtype)	{		if (strcmp (l_paramtype, "...") == 0)			l_func->opt_param = TRUE;		else		{			l_paramname = va_arg (marker, unsigned char*);			l_type = finc_type_new_name (l_paramtype, FinCArrayType_None, 0);			l_name = string_new ();			string_set_str (l_name, l_paramname);			l_field = finc_field_new (l_name, l_type);			unref (l_type);			unref (l_name);			finc_func_add_param (l_func, l_field);			unref (l_field);		}		l_paramtype = va_arg(marker, unsigned char*);	}	va_end (marker);}void finc_call_func(){}void finc_run_script(unsigned char* filename){	FinCNode* l_node;	FinCFunc* l_func;	String* l_filename;	String* l_name;	l_filename = string_new ();	string_set_str (l_filename, filename);	l_node = finc_lang_load (l_filename);	if (l_node)	{		finc_node_evaluate (l_node);		unref (l_node);		l_name = string_new ();		string_set_str (l_name, "main");		l_func = finc_app_get_func (g_finc_app_global, l_name);		unref (l_name);		if (l_func)		{			finc_func_call (l_func, NULL);			unref (l_func);		}		else		{			printf ("Function 'main' not founded\n");		}	}	unref (l_filename);}void finc_run_string(unsigned char* str){}void finc_mem_debug(){}

⌨️ 快捷键说明

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