• 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

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

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

Calculer

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

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

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