🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: at.fido.linux
Article #2143

Re: Lex

#2143
From: Joachim Fabini
Date: Wed, 13 Dec 1995 00:00
59 lines
2298 bytes
Walter Fuehrer wrote:
> 
> Hallo!
> 
> Kennt sich wer etwas naeher mit LEX aus?
> 
> STDIN wird mit fgets gelesen und einer Prozedur: get_key_event uebergeben.
> Diese Prozedur sollte dann in dem von LEX generierten C-Module stehen und die
> Auswertungen der Tokens zurueckliefern (Das bedeutet, dass nicht
> standardmaessig von STDIN gelesen werden soll).
> 
> Wie muss nun diese Prozedur in das LEX-Prg. eingebunden werden und wie kann
> dabei verhindert werden, dassss von STDIN gelesen wird?
> 
> Danke im voraus!
> 
> Ciao,    Walter

	Hallo Walter!
	Ein Tip - schau Dir einmal die manualpage zu flex an - da sind 
ein paar sehr gute Beispiele drin.
 	Abgesehen davon - der FILE* von dem (f)lex liesst ist global
definiert. (yyin) Dh. Du kannst mit 

yyin = fopen("filename", r);


direkt vom File statt von stdin lesen.

	Ich habe das einmal gebraucht, um ein Programm beim start
entweder von einem File oder von stdin lesen zu lassen.
	
int main(int argc, char **argv)
{
  FILE *fp;

  if(argc > 1) 
	/* parameter soll filename sein ... */
	if((yyin = fopen(argv[1], "r")) == NULL) {
	   perror("...."); exit(1);
	}
  else
	yyin = stdin; /* waere eigentlich nicht einmal notwendig */

  return yylex();
}

Vielleicht hilft Dir das weiter ...

--Jo 
******************************************************************
Joachim Fabini
jo@vmars.tuwien.ac.at
e9027595@stud1.tuwien.ac.at
******************************************************************
"Programming graphics in X is like finding sqrt(pi) using Roman
numerals."
                              -- Henry Spencer
******************************************************************
Technical Details
Message-ID: <30CEE4A7.41C6@vmars.tuwien.ac.at>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <MSGID_2=3A313=2F17.4=40fidonet.org_ac0abe7b@fidonet>

Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit
X-Google-Thread: 109314,c92afb313aace26b
X-Google-Attributes: gid109314,public
From: Joachim Fabini <jo@vmars.tuwien.ac.at>
Subject: Re: Lex
Date: 1995/12/13
Message-ID: <30CEE4A7.41C6@vmars.tuwien.ac.at>
X-Deja-AN: 121717903
references: <MSGID_2=3A313=2F17.4=40fidonet.org_ac0abe7b@fidonet>
to: Walter Fuehrer <Walter.Fuehrer@2-313-17-4.st.co.at>
content-type: text/plain; charset=us-ascii
organization: Vienna University of Technology, Austria
mime-version: 1.0
newsgroups: at.fido.linux
x-mailer: Mozilla 2.0b1 (X11; I; OSF1 V2.1 alpha)