10

Click here to load reader

JVM Hardcore - Part 07 - Parsing (Productions stack states)

Embed Size (px)

Citation preview

Page 1: JVM Hardcore - Part 07 - Parsing (Productions stack states)

3 + 5

Pointeur sur le prochain caractère à lire

Expression à analyser : EOF

Page 2: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Expression

3 + 5

Pointeur sur le prochain caractère à lire

État de la pile de productions avant

État initial

Note : la table de productions contient des instances des types indiqués

Expression à analyser : EOF

Page 3: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Expression

3 + 5

Pointeur sur le prochain caractère à lire

État de la pile de productions avant / après

État initial

Note : la table de productions contient des instances des types indiqués

Expression à analyser : EOF

Page 4: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Expression

3 + 5

Pointeur sur le prochain caractère à lire

État de la pile de productions avant / après exécution des méthodes pop()

Production p = pop()

État initial

1

Note : la table de productions contient des instances des types indiqués

Expression à analyser : EOF

Page 5: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Expression

3 + 5

Digit

Operator

Digit

Pointeur sur le prochain caractère à lire

État de la pile de productions avant / après exécution des méthodes pop() et produce()

p.produce()

Production p = pop()

État initial

1 2

Note : la table de productions contient des instances des types indiqués

Expression à analyser : EOF

Page 6: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Expression

3 + 5

Digit

Operator

Digit

Pointeur sur le prochain caractère à lire

État de la pile de productions avant / après exécution des méthodes pop() et produce()

Valeur retournée : null

p.produce()

Production p = pop()

État initial

1 2

3

Note : la table de productions contient des instances des types indiqués

Expression à analyser : EOF

Page 7: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Digit

Operator

Digit

3 + 5

Operator

Digit

État de la pile de productions avant / après exécution des méthodes pop() et produce()

Valeur retournée : EventType.DIGIT

p.produce()

Production p = pop()

1 2

3

Expression à analyser :

X

EOF

Pointeur sur le prochain caractère à lire

Note : la table de productions contient des instances des types indiqués

Aucune modification de la pile X

Page 8: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Operator

Digit

3 + 5

Digit

État de la pile de productions avant / après exécution des méthodes pop() et produce()

Valeur retournée : EventType.OPERATOR

p.produce()

Production p = pop()

1 2

3

Expression à analyser :

X

EOF

Pointeur sur le prochain caractère à lire

Note : la table de productions contient des instances des types indiqués

Aucune modification de la pile X

Page 9: JVM Hardcore - Part 07 - Parsing (Productions stack states)

Digit

3 + 5

État de la pile de productions avant / après exécution des méthodes pop() et produce()

Valeur retournée : EventType.DIGIT

p.produce()

Production p = pop()

2

3

Expression à analyser :

X

1

EOF

Pointeur sur le prochain caractère à lire

Note : la table de productions contient des instances des types indiqués

Aucune modification de la pile X

Page 10: JVM Hardcore - Part 07 - Parsing (Productions stack states)

3 + 5

Pointeur sur le prochain caractère à lire

État de la pile de productions avant / après exécution des méthodes pop() et produce()

Note : la table de productions contient des instances des types indiqués

Expression à analyser :

Aucune modification de la pile X

EOF

La pile de productions étant vide, l’analyse est terminée