argv ==> stdin (fast)

Lawrence W. McVoy mcvoy at rsch.WISC.EDU
Thu Nov 20 11:52:14 AEST 1986


Hi there.  I'm using lex & yacc to do some work for me and I can't 
quite get it.   The scanner & parser part works, but only if it's 
getting input from stdin.  I diddled lex.yy.c to change the getc(yyin)
call in the input() define to call my routine which feed sit characters 
from argv.  This works if I call yylex() from main, but if yyparse calls 
it then I get a "syntax error".  The same program works if I don't
diddle the input() routine.  And I can't figure out what's wrong
with my diddling.....

So, I'm stuck.  Does anyone have a cute way to feed a short byte stream
to stdin backwards?  Or a better solution?  I'm not willing to do 
anything as kludgey as

	#!/bin/sh

	cat << EOF | my_problem_program
	$*
	EOF

But that is _exactly_ what I want to do, only faster (no sh start up).
I suppose I could do the fork() and feed the child the command line as 
stdin, but even that is sort of yucko.

All suggestions welcome, and apologies to unix-wizards, but I figure you
don't read unix-questions anymore :-(

-- 
Larry McVoy 	        mcvoy at rsch.wisc.edu, 
      		        {seismo, topaz, harvard, ihnp4, etc}!uwvax!mcvoy

"They're coming soon!  Quad-stated guru-gates!"



More information about the Comp.unix.wizards mailing list