Vous êtes sur la page 1sur 4

Analyse lexical

a : lettre alphabétique {a..z A..Z}.

c : un chiffre {0..9}

Grammaire :

SaT1|+T4|-T4|cT2|*T6|/T6|<T7|>T7|=T7|:T3|AT9

A( | ) | ; | , |.

T1cT1|aT1|_E1

T2cT2|.E2

T3=T0

T4cT2

T5cT5

T7=T8

E1aT1|cT1

E2cT5

a c - * / + - = < > ( ) , ; .
S T1 T2 T6 T6 T4 T4 T T7 T7 T9 T9 T9 T T9
7 9
T1 T1 T1 E1
T2 T2 E2
T3 T
0
T4 T2
T5 T5
T6
T7 T
8
T8
T9
T0
E1 T1 T1
E2 T5
Etat signification
S Mot vide
T1 Identificateur
T2 Constante entière
T3 Séparateur
T4 Opérateur arithmétique
T5 Constante réelle
T6 Opérateur arithmétique
T7 Opérateur conditionnel
T8 Opérateur conditionnel
T9 séparateur
T0 Affectation

Mots clés

CODE, START, END, INT, REAL, BOOLEAN, CHAR, STRING, WHEN, DO,
OTHERWISE, WHILE, EXECUTE, FOR.

L’automate d’état fini

E1
T9
_
a|c
c T8
T1 (|)|,|;|.
a
=
a <|>|=
S
T7
c

*|/
T2

. +|- :

c T4
E2
T6
c T3
c T5
T0
Analyse syntaxique
Idt : identificateur.

Const : constante entière ou réelle.

Opt : opérateur

Grammaire

<program>  CODE <idt> ; <PD> START <PI> END.

<idt>  idt

//<PD>  <D> | <D><PD>| Ƹ

<D>  <type> <ListeIdt> | CONST <idt> = <const> ;

<const>  const

<type>  Int | Real | Boolean | Char | String

//<ListeIdt>  <idt> , <ListeIdt> | <idt> ;

//<PI>  <I> | <I> <PI>

<I><idt> :=<exp> ; |

WHEN ( <exp> ) DO <I> OTHERWISE <I> |

WHILE <exp> EXECUTE <I> |

FOR ( <exp> ; <exp> ; <exp> ) <I>

<exp><A><opt><A> | <idt>

<opt>opt

<A><idt> | <const>

Factorisation :

<PD>  <D> | <D><PD>| Ƹ <PD><D> <PD>’ | Ƹ

<PD>’ Ƹ|<PD>

<ListeIdt>  <idt> , <ListeIdt> | <idt> ; <ListeIdt> <idt><ListeIdt> ‘

<ListeIdt> ‘  , <ListeIdt> | ;

<PI>  <I> | <I> <PI>  <PI><I> <PI>’

<PI>’<PI> | Ƹ
Calcule de débuts et de suivants :

Débuts Suivants
<program> CODE #
<idt> idt = , ; := ) EXECUTE Opt
<const> const Opt ; ) EXECUTE
<PD> Int, Real, Boolean, Char, String, START
CONST, Ƹ
<PD>’ Int, Real, Boolean, Char, String,
CONST, Ƹ
<D> Int, Real, Boolean, Char, String, Int, Real, Boolean, Char, String,
CONST CONST, Ƹ, START
<Type> Int, Real, Boolean, Char, String Idt
<I> Idt, WHILE, WHEN, FOR OTHERWISE, Idt, WHILE,
WHEN, FOR, Ƹ, END
<PI> Idt, WHILE, WHEN, FOR END
<PI>’ Idt, WHILE, WHEN, FOR, Ƹ
<ListeIdt> Idt, Int, Real, Boolean, Char, String,
CONST, Ƹ
<ListeIdt> ‘ «,»,; Int, Real, Boolean, Char, String,
CONST, Ƹ
<exp> Idt, const ; ) EXECUTE
<opt> opt
<A> Idt, const Opt ; ) EXECUTE

Vous aimerez peut-être aussi