Rc

 view release on metacpan or  search on metacpan

Rc.xs  view on Meta::CPAN

Node::string()
	CODE:
	RETVAL = THIS->u[0].s;
	OUTPUT:
	RETVAL

MODULE = Rc	PACKAGE = Rc::UnaryCmd

void
Node::kids()
	PPCODE:
	XPUSHs(node_2sv(THIS->u[0].p));

Node *
Node::kid(xx)
	int xx;
	CODE:
	assert(xx==0);
	RETVAL = THIS->u[xx].p;
	OUTPUT:
	RETVAL

MODULE = Rc	PACKAGE = Rc::BinCmd

void
Node::kids()
	PPCODE:
	XPUSHs(node_2sv(THIS->u[0].p));
	XPUSHs(node_2sv(THIS->u[1].p));

Node *
Node::kid(xx)
	int xx;
	CODE:
	assert(xx==0 || xx==1);
	RETVAL = THIS->u[xx].p;
	OUTPUT:
	RETVAL

MODULE = Rc	PACKAGE = Rc::Forin

void
Node::kids()
	PPCODE:
	XPUSHs(node_2sv(THIS->u[0].p));
	XPUSHs(node_2sv(THIS->u[1].p));
	XPUSHs(node_2sv(THIS->u[2].p));

Node *
Node::kid(xx)
	int xx;
	CODE:
	assert(xx==0 || xx==1 || xx==2);
	RETVAL = THIS->u[xx].p;
	OUTPUT:
	RETVAL

MODULE = Rc	PACKAGE = Rc::RedirX

char *
Node::redir()
	PREINIT:
	char *str;
	PPCODE:
	switch(THIS->u[0].i) {
	case rFrom: str="<"; break;
	case rCreate: str=">"; break;
	case rAppend: str=">>"; break;
	case rHeredoc: str="<<"; break;
	case rHerestring: str="<<<"; break;
	default: croak("unknown redir %d", THIS->u[0].i);
	}
	XPUSHs(sv_2mortal(newSVpv(str,0)));

MODULE = Rc	PACKAGE = Rc::Dup

int
Node::left()
	PPCODE:
	XPUSHs(sv_2mortal(newSViv(THIS->u[1].i)));

int
Node::right()
	PPCODE:
	XPUSHs(sv_2mortal(newSViv(THIS->u[2].i)));

MODULE = Rc	PACKAGE = Rc::Redir

int
Node::fd()
	PPCODE:
	XPUSHs(sv_2mortal(newSViv(THIS->u[1].i)));

Node *
Node::targ()
	CODE:
	RETVAL = THIS->u[2].p;
	OUTPUT:
	RETVAL

MODULE = Rc	PACKAGE = Rc::Pipe

void
Node::fds()
	PPCODE:
	XPUSHs(sv_2mortal(newSViv(THIS->u[0].i)));
	XPUSHs(sv_2mortal(newSViv(THIS->u[1].i)));

void
Node::kids()
	PPCODE:
	XPUSHs(node_2sv(THIS->u[2].p));
	XPUSHs(node_2sv(THIS->u[3].p));

Node *
Node::kid(xx)
	int xx;
	CODE:
	assert(xx==0 || xx==1);
	RETVAL = xx==0? THIS->u[2].p : THIS->u[3].p;
	OUTPUT:



( run in 0.995 second using v1.01-cache-2.11-cpan-5511b514fd6 )