AUG JFA ITN prace domowe, jfa odpowiedzi 13

background image

W

ykªad

13.

Analiza

skªadnio

w

a

Odwrotna

nota ja

p

olsk

a

(ONP)

to

sp

osób

zapisu

wyra»e«,

w

którym

na

jpierw

p

o

da

jem

y

argumen

t

y

,

a

p

otem

op

era j.

Je»eli

wiadomo

ile

argumen

w

ma

op

era je

(a

w

przy-

padku

op

era ji

arytmet

y zn

y

h

tak

jest



ma

one

p

o

dw

a

argumen

t

y),

to

w

ONP

nie

p

otrzebne

na

wiasy

.

Na

przykªad,

wyra»enie

2∗(3+5)

zapisane

w

ONP

ma

p

osta¢

2 3 5 + ∗

.

Nota

b

ene,

wyra»enie

zapisane

w

ONP

to

goto

wy

program

dla

maszyn

y

stoso

w

ej,

patrz

‚

wi zenia.

Napisz

sp

e yk

a j

(dla

Lex'a

i

Bison'a)

analizatora,

który

w

zyta

wyra»enie

arytme-

t

y zne

w

standardo

w

ej

(inkso

w

ej)

nota ji

i

wypisze

je

w

ONP

.

Analizator

leksyk

aln

y

jest

taki

sam,

jak

w

przypadku

k

alkulatora

dla

wyra»e«

arytme-

t

y zn

y

h:

%{

#in lude

<string.h>

#in lude

<stdlib.h>

//

Defini je

»etonów

po hodz¡ e

z

Bisona

#in lude

"onp.tab.h"

%}

INT

[0-9℄+

%%

{

\

INT}

{

yylval=atoi(yytext);

return

NUM;

}

[

\

t℄

{

/*

Ni

*/

}

[

\

n℄|.

{

return

yytext[0℄;

}

%%

Analizator

skªadnio

wy

ob

ho

dzi

drzew

o

wypro

w

adzenie

w

p

orz¡dku

p

ostkso

wym.

W

y-

star zy

wi ,

»e

w

w

zªa

h

o

dp

o

wiada

j¡ y

h

pro

duk

jom

generuj¡ ym

op

era je

arytme-

t

y zne

b

dzie

wypisyw

i

h

sym

b

ole



tªuma zenie

na

ONP

argumen

w

t

y

h

op

era ji

zostaªo

wypisane

w

trak

ie

przet

w

arzania

o

dp

o

wiada

j¡ y

h

im

p

o

ddrzew.

18

background image

%{

#in lude

<stdio.h>

#in lude

<strings.h>

%}

%token

NUM

%%

input:

/*

ni

*/

|

input

line

;

line:

'

\

n'

|

exp

'

\

n'

{

printf

("

\

n");

}

;

exp

:

exp

'+'

skl

{

printf("+

");

}

|

exp

'-'

skl

{

printf("-

");

}

|

skl

;

skl

:

skl

'*'

zy

{

printf("*

");

}

|

skl

'/'

zy

{

printf("/

");

}

|

zy

;

zy

:

NUM

{

printf("%d

",

$1);

}

|

'('

exp

')'

;

%%

main()

{

yyparse();

}

yyerror(s)

har

*s;

{

fprintf(stderr,

"%s

\

n",

s);

}

19


Wyszukiwarka

Podobne podstrony:
AUG JFA ITN prace domowe, jfa odpowiedzi 8
AUG JFA ITN prace domowe jfa-odpowiedzi-3
AUG JFA ITN prace domowe jfa-odpowiedzi-12
AUG JFA ITN prace domowe, jfa odpowiedzi 5
AUG JFA ITN prace domowe jfa-odpowiedzi-6
AUG JFA ITN prace domowe jfa-odpowiedzi-5
AUG JFA ITN prace domowe jfa-odpowiedzi-4
AUG JFA ITN prace domowe jfa-odpowiedzi-1
AUG JFA ITN prace domowe, jfa odpowiedzi 2
AUG JFA ITN prace domowe jfa-odpowiedzi-11
AUG JFA ITN prace domowe jfa-odpowiedzi-8
AUG JFA ITN prace domowe, jfa odpowiedzi 3
AUG JFA ITN prace domowe, jfa odpowiedzi 1
AUG JFA ITN prace domowe, jfa odpowiedzi 11
AUG JFA ITN prace domowe, jfa odpowiedzi 6
AUG JFA ITN prace domowe, jfa odpowiedzi 4
AUG JFA ITN prace domowe, jfa odpowiedzi 7
AUG JFA ITN prace domowe, jfa odpowiedzi 9
AUG JFA ITN prace domowe, jfa odpowiedzi 12

więcej podobnych podstron