Ejemplo n.º 1
0
Archivo: eval.c Proyecto: samsonjs/lake
void init_special_form_handlers(LakeCtx *ctx)
{
  /* define_handler(ctx, "load", &load_special_form); */
  define_handler(ctx, "quote", &_quote);
  define_handler(ctx, "and", &_and);
  define_handler(ctx, "or", &_or);
  define_handler(ctx, "if", &_if);
  define_handler(ctx, "when", &_when);
  define_handler(ctx, "cond", &_cond);
  define_handler(ctx, "set!", &_setB);
  define_handler(ctx, "define", &_define);
  define_handler(ctx, "lambda", &_lambda);
  /* define_handler(ctx, "let", &_let); */
  /* define_handler(ctx, "let!", &_letB); */
  /* define_handler(ctx, "letrec", &_letrec); */
}
Ejemplo n.º 2
0
int main (int argc, char const * argv []) 

{ 
	static char const * optv [] = 
	{ 
		"ceh:p:qv", 
		PUTOPTV_S_FUNNEL, 
		"OpenWRT Makefile Tool", 
		"c\tcontinuation line output", 
		"e\tenumerate fields", 
		"h s\thandler name is (s) [" LITERAL (OWRT_NAME_HANDLER) "]", 
		"p s\tpackage name is (s) [" LITERAL (OWRT_NAME_PACKAGE) "]", 
		"q\tsuppress routine messages", 
		"v\tenable verbose messages", 
		(char const *)(0)
	}; 
	char const * handler = OWRT_NAME_HANDLER; 
	char const * package = OWRT_NAME_PACKAGE; 
	signed vectorsize = OWRT_SIZE_VECTOR; 
	signed buffersize = OWRT_SIZE_BUFFER; 
	void (* function) () = invoke_handler; 
	flag_t flags = (flag_t)(0); 
	signed c; 
	while (~ (c = getoptv (argc, argv, optv))) 
	{ 
		switch (c) 
		{ 
		case 'c': 
			_setbits (flags, OWRT_ONELINE); 
			break; 
		case 'e': 
			function = enumerate; 
			break; 
		case 'h': 
			handler = optarg; 
			break; 
		case 'p': 
			package = optarg; 
			break; 
		case 'q': 
			_setbits (flags, OWRT_SILENCE); 
			break; 
		case 'v': 
			_setbits (flags, OWRT_VERBOSE); 
			break; 
		default: 
			break; 
		} 
	} 
	argc -= optind; 
	argv += optind; 
	if (!argc) 
	{ 
		define_handler (handler, package); 
	} 
	while ((argc) && (* argv)) 
	{ 
		if (efreopen (* argv, "rb", stdin)) 
		{ 
			function (vectorsize, buffersize, flags); 
		} 
		argc--; 
		argv++; 
	} 
	exit (0); 
}