fact	id_fonction	fact
(	symbole	PARENTHESE_OUVRANTE
entier	mot_clef	entier
$f	id_variable	$f
)	symbole	PARENTHESE_FERMANTE
{	symbole	ACCOLADE_OUVRANTE
si	mot_clef	si
$f	id_variable	$f
=	symbole	EGAL
1	nombre	1
|	symbole	OU
$f	id_variable	$f
=	symbole	EGAL
0	nombre	0
alors	mot_clef	alors
{	symbole	ACCOLADE_OUVRANTE
retour	mot_clef	retour
1	nombre	1
;	symbole	POINT_VIRGULE
}	symbole	ACCOLADE_FERMANTE
sinon	mot_clef	sinon
{	symbole	ACCOLADE_OUVRANTE
retour	mot_clef	retour
fact	id_fonction	fact
(	symbole	PARENTHESE_OUVRANTE
$f	id_variable	$f
-	symbole	MOINS
1	nombre	1
)	symbole	PARENTHESE_FERMANTE
*	symbole	FOIS
$f	id_variable	$f
;	symbole	POINT_VIRGULE
}	symbole	ACCOLADE_FERMANTE
}	symbole	ACCOLADE_FERMANTE
main	id_fonction	main
(	symbole	PARENTHESE_OUVRANTE
)	symbole	PARENTHESE_FERMANTE
entier	mot_clef	entier
$a	id_variable	$a
;	symbole	POINT_VIRGULE
{	symbole	ACCOLADE_OUVRANTE
$a	id_variable	$a
=	symbole	EGAL
lire	mot_clef	lire
(	symbole	PARENTHESE_OUVRANTE
)	symbole	PARENTHESE_FERMANTE
;	symbole	POINT_VIRGULE
ecrire	mot_clef	ecrire
(	symbole	PARENTHESE_OUVRANTE
fact	id_fonction	fact
(	symbole	PARENTHESE_OUVRANTE
$a	id_variable	$a
)	symbole	PARENTHESE_FERMANTE
)	symbole	PARENTHESE_FERMANTE
;	symbole	POINT_VIRGULE
}	symbole	ACCOLADE_FERMANTE
	symbole	FIN
