Syntax Validation Using Parsing Table

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 15

Syntax Validation using

Parsing Table
Context Free Grammar
S  D V ;
D int | float | char
V  id, V | id

Parsing Table
a) Parsing table is consists of rows and columns
b) Non terminal symbol is represented by row wise
c) Terminal symbol is represented by column wise
d) A cell of parsing table is representing right hand side
string of a production
S  D V ;
D int | float | char
V  id, V | id

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;
$
$
$
$
$
$
$
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;
$;VD int id,id ;
$
$
$
$
$
$
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;
$;VD int id,id ;
$ ; V int int id, id ;
$
$
$
$
$
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;
$;VD int id,id ;
$ ; V int int id, id ;
$;V id , id ;
$
$
$
$
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;
$;VD int id,id ;
$ ; V int int id, id ;
$;V id , id ;
$ ; V , id id, id ;
$
$
$
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;
$;VD int id,id ;
$ ; V int int id, id ;
$;V id , id ;
$ ; V , id id, id ;
$;V id ;
$
$
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S int a,b;$
$;VD int id,id ;$
$ ; V int int id, id ;$
$;V id , id ;$
$ ; V , id id, id ;$
$;V id ;$
$ ; id id ;$
$ $
Top Down parsing using parsing Table

int char float id , ; $


S S-> DV; S->DV; S->DV;
D D->int D- D->float
>char
V V->id,V|id

Stack Input String


$S float f1, f2$
$;VD float id, id$
$ ; V float float id, id$
$;V id , id$
$ ; V , id id, id$
$;V id $
$ ; id id $
$; $
Left Recursion and Left Factoring
Left recursion is said to be present in given production
if left hand side not terminal is first symbol in right
hand side of string.
Example A  A α
B  B a B | C

Left Factoring is nothing but the replacement or


substitution of common string present in right hand
side of production.
Elimination of Left Recursion

A  A α | β where α , β are strings and A is non


terminal.

After Elimination of Left Recursion


A  β A ‘
A’  α A’ | ε
S  DV
D  int | float | char
V  V , id | id

V  id V ‘
V’  , id V’ | ε

After Eliminating left Recursion


S  DV
D  int | float | char
V  id V’
V’  , id V’ | ε
Left Factoring
A  α A1 | α B1

A  α A’
A’  A1 | B1

Example
A  ab A B | ab C

A  ab A’
A’  A B | C

You might also like