«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2004

Re: C++ Pitanje za profesora||asistenta

by Dragan Bojic
sreda, 24. novembar 2004 - 17:42.

Vracanje vrednosnog dela tokena u yylval je standardni yacc mehanizam
rada sa takozvanim semantickim vrednostima (
dodatnim podacima uz gramaticke simbole).
Posto yacc realizuje parser u vidu potisnog automata, sa sadrzajem yyval
desava se neko automatsko kopiranje u element statickog niza koji
izigrava stack, prebrisavanje u tom nizu drugom vrednoscu i sl.

Da rezimiram, mora se koristiti yyval i njegov tip ne moze biti klasa
ili smart pointer, nego neki prost tip, ili struktura ili obican
pointer. Ako je ovo poslednje, onda pointer treba da sluzi samo za
pristup, a kreiranje i unistavanje objekata treba da se rade nezavisno
od tog pointera (koji ima i potencijalne kopije na parserskom steku).




On Wed, 24 Nov 2004, Vlada wrote:

> Meni se nesto bas nije svidela ona struktura yylval, pa sam sve to odradio
> preko klasa i nasledjivanja (kad je C++ - neka bude kompletno u tom ruhu):
> Symbol->Identificator,Operator,Number,ChrConst
> ...tako da mi yylex() funkcija postavi odgovarajuci pointer na instancu
> klase pronadjenog simbola... i.t.d.
>
> I sada se pitam da li ce to otezati pisanje parser-a.
> Odnosno nisam bas Dovoljno siguran da Nece, pa molim za savet.
> Da'l da menjam ili ne ?
>
> pozdrav,
> Vlada
> _________________________________________________________________
> ::: Wednesday, November 24, 2004, 12:17:45 PM :::
> :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
> DB> Ne, nego kako pise.
> >> Za javu ste bas naglasili da vrednost tokena bude String za SVE tokene, a
> >> u tekstu domaceg za C++ se pominje struct koji bi popunjavali po potrebi sa
> >> int, char itd. Da li mozemo i mi u C++ da sve bacamo u jedan string (da yylval
> >> bude samo tipa char[100])?
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
> -----------------------------------------------------------------
>
>