Sei sulla pagina 1di 3

(1)

E  TE’
E’ +TE’ | €
T  FT’
T’  *FT’ | €
F ( E ) | ID

First( E )={(,ID}
First( E’ )={+, €}
First( T )={(,ID}
First( T’ )={*, €}
First( F )={(,ID}

Follow( E )={$,)}
Follow ( E’ )={ $,)}
Follow ( T )={ +,$,)}
Follow ( T’ )={ +,$,)}
Follow ( F )={ +,*,$,)}

Parsing Table

ID + * ( ) $
E E  TE’ E  TE’
E’ E’ +TE’ E’ € E’ €
T T  FT’ T  FT’
T’ T’ € T’  *FT’ T’ € T’ €
F F ID F ( E )
Statement : ID+ID*ID

Stack Input Output (action)


$E ID+ID*ID$ E  TE’
$E’T ID+ID*ID$ T  FT’
$E’ T’ F ID+ID*ID$ F ID
$E’ T’ ID ID+ID*ID$ Pop, advance
$E’ T’ +ID*ID$ T’ €
$E’ +ID*ID$ E’ +TE’
$E’ T + +ID*ID$ Pop, advance
$E’ T ID*ID$ T  FT’
$E’ T’ F ID*ID$ FID
$E’ T’ ID ID*ID$ Pop, advance
$E’ T’ *ID$ T’  *FT’
$E’ T’ F * *ID$ Pop, advance
$E’ T’ F ID$ FID
$E’ T’ ID ID$ Pop, advance
$E’ T’ $ T’ €
$E’ $ E’ €
$ $ accept

Statement: (ID+ID)*ID

(2)

S(S) S | €

First(S)={(, €}

Follow(S)={$,)}

( ) $
S S(S) S S€ S€

Statement : (()())

(3)

SS (S) | €

Solution for left recursive

S  S’

S’  (S) S’ | €

First(S)={(, €}

First(S’)={(, €}
Follow(S)={$,)}

Follow(S’)={$, )}

( ) $
S S  S’ S€ S€
S’ S’  (S) S’ S€ S€
Statement : (()())

Potrebbero piacerti anche