• Aucun résultat trouvé

Exemple: Analyse lexicale de acc>=7.23

N/A
N/A
Protected

Academic year: 2022

Partager "Exemple: Analyse lexicale de acc>=7.23"

Copied!
31
0
0

Texte intégral

(1)

Exemple: Analyse lexicale de acc>=7.23

Nous disposons des automates suivants pour l’analyse lexicale:

1 2 3

other letter

letter | digit

* return(gettoken(), install_id())

1

2

3

=

<

return(relop, LE)

4

> return(relop, NE)

5

other *

return(relop, LT)

= 6 return(relop, EQ)

8

= return(relop, GE)

other *

return(relop, GT) 7

>

(2)

1 2 3 4 5 8 E

6 7

digit return(gettoken(), NUM)

1 2 5

other digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

1 digit 2 other 3

digit

* return(gettoken(), NUM)

(3)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

(4)

1 2 3 other

letter

letter | digit

* return(gettoken(), install_id())

Essayons le premier automate On s’apprˆete `a lire a

(5)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 3

other letter

letter | digit

* return(gettoken(), install_id())

On a lu a

On s’apprˆete `a lire c

(6)

1 2 3 other

letter

letter | digit

* return(gettoken(), install_id())

On a lu c

On s’apprˆete `a lire c

(7)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 3

other letter

letter | digit

* return(gettoken(), install_id())

On a lu c

On s’apprˆete `a lire >

(8)

1 2 3 other

letter

letter | digit

* return(gettoken(), install_id())

On a lu >

On a atteint un ´etat acceptant

(9)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 3

other letter

letter | digit

* return(gettoken(), install_id())

On retourne le dernier caract`ere lu Nouveau Jeton: identificateur ‘acc’

(10)

On avance token start apr`es le jeton pour se pr´eparer `a lire le prochain jeton

(11)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 3

other letter

letter | digit

* return(gettoken(), install_id())

On essaie de lire le prochain jeton avec le premier automate Celui-ci refuse imm´ediatement l’entr´ee

Essayons le prochain automate

(12)

1

2

3

=

<

return(relop, LE)

4

> return(relop, NE)

5

other *

return(relop, LT)

= 6 return(relop, EQ)

8

= return(relop, GE)

9

other *

return(relop, GT) 7

>

(13)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1

2

3

=

<

return(relop, LE)

4

> return(relop, NE)

5

other *

return(relop, LT)

= 6 return(relop, EQ)

8

= return(relop, GE)

other *

7

>

(14)

1

2

3

=

<

return(relop, LE)

4

> return(relop, NE)

5

other *

return(relop, LT)

= 6 return(relop, EQ)

8

= return(relop, GE)

9

other *

return(relop, GT) 7

>

(15)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

Nouveau Jeton: op´erateur relationnel ‘GE’

(16)

On avance token start apr`es le jeton pour se pr´eparer `a lire le prochain jeton

(17)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 3

other letter

letter | digit

* return(gettoken(), install_id())

On essaie de lire le prochain jeton avec le premier automate Celui-ci refuse imm´ediatement l’entr´ee

Essayons le prochain automate

(18)

1

2

3

=

<

return(relop, LE)

4

> return(relop, NE)

5

other *

return(relop, LT)

= 6 return(relop, EQ)

8

= return(relop, GE)

9

other *

return(relop, GT) 7

>

(19)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

Le second automate refuse imm´ediatement l’entr´ee.

Essayons le prochain automate

(20)

1 2 8 other digit

digit

* 3

.

4 digit

digit

5 E

E

6 + | -

7 digit

digit

digit return(gettoken(), NUM)

On s’apprˆete `a lire 7

(21)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 8

other digit

digit

* 3

.

4 digit

digit

5 E

E

6 + | -

7 digit

digit

digit return(gettoken(), NUM)

On a lu 7

On s’apprˆete `a lire ‘.’

(22)

1 2 8 other digit

digit

* 3

.

4 digit

digit

5 E

E

6 + | -

7 digit

digit

digit return(gettoken(), NUM)

On a lu ‘.’

On s’apprˆete `a lire 2

(23)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 8

other digit

digit

* 3

.

4 digit

digit

5 E

E

6 + | -

7 digit

digit

digit return(gettoken(), NUM)

On a lu 2

On s’apprˆete `a lire 3

(24)

1 digit 2 other 8 digit

* 3

.

4 digit

digit

E 5 E

+ | - 6

7 digit

digit

digit return(gettoken(), NUM)

On a lu 3

On a tout lu mais on n’est pas dans un ´etat acceptant: l’automate refuse!

Essayons le prochain automate

(25)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 5

other digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

On s’apprˆete `a lire 7

(26)

1 2 5 other

digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

On a lu 7

On s’apprˆete `a lire ‘.’

(27)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 5

other digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

On a lu ‘.’

On s’apprˆete `a lire 2

(28)

1 2 5 other

digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

On a lu 2

On s’apprˆete `a lire 3

(29)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

1 2 5

other digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

On a lu 3

On s’apprˆete `a lire le caract`ere ‘fin de l’entr´ee’

(30)

1 2 5 other

digit

digit

* 3

.

4 digit

digit

return(gettoken(), NUM)

On a atteint un ´etat acceptant

Nouveau Jeton: constante num´erique ‘7.23’

(31)

Exemple: Analyse lexicale de acc>=7.23

token start

input a c c > = 7 . 2 3 $

forward ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

Fin de l’entr´ee

Références

Documents relatifs

Calculer

Does there exist an e-safe semi-adaptive token transfer algorithm without information exchange, working in time o (n log n) if both links and nodes can

D´ ecrire par une ´ equation cart´ esienne (ou un syst` eme d’´ equations cart´ esiennes) chacun des sous-espaces vectoriels suivants de R 3 ou R 4.. Montrer que chacune des

PR ´ EPARATION DES DONN ´ EES Pour pouvoir manipuler ce fichier (et faire des statistiques dessus), il faut le stocker dans une variable de type un peu sp´ ecial qu’on

En itérant 672 fois Ω’, il ne restera plus qu’un carré de 2 × 2 jetons permettant une

Sur un échiquier de taille illimitée 81 jetons sont placés sur chacune des cases d'un carré 9 x 9.Comme dans le casse-tête du Solitaire, le jeu consiste,à chaque coup,à faire

Sur un échiquier de taille illimitée 81 jetons sont placés sur chacune des cases d'un carré 9 x 9.Comme dans le casse-tête du Solitaire, le jeu consiste,à chaque coup,à faire

On choisit au hasard un des élèves de ce lycée (tous les élèves ont la même probabilité d’être choisis).3. a) Calculer la probabilité que l’élève