Flex&Bison
Fermé
                    
        
     
             
                    adelgh123
    
        
    
                    Messages postés
            
                
     
             
            2
        
            
                                    Statut
            Membre
                    
                -
                                     
thefloflo64 Messages postés 663 Date d'inscription Statut Membre Dernière intervention -
        thefloflo64 Messages postés 663 Date d'inscription Statut Membre Dernière intervention -
        III) Traiter sur machine les trois questions suivantes.
Soit la grammaire G=(Vt, Vn, P, S) définie par :
Vt={int , real , boolean , array , ref , struct , var , type ,
Of , [ , ] , , , ; , : , = , identificateur , nombre}
Vn= {ListDeclaration , Declaration , ListIdentificateur ,
DefinitionType , ListeChamps}
P={
ListDeclaration -> ListDeclaration ; Declaration
| Declaration
Declaration -> var ListIdentificateur : DefinitionType
| type identificateur = DefinitionType
ListIdentificateur -> ListIdentificateur , identificateur
| identificateur
DefinitionType -> int
| real
| boolean
| array [ nombre ] of DefinitionType
| ref DefinitionType
| struct ListeChamps end
ListeChamps -> ListeChamps ; ListeChamps
| identificateur : DefinitionType
}
S= ListDeclaration
1) Ecrire une spécification lexicale renfermant un main() qui ne fait qu'appeler que le
lexer pour tester l’analyseur généré sur des fichiers contenant des déclarations
définies selon la grammaire G précédemment définie. Faire également des tests sur
des exemples qui aboutissent à des erreurs lexicales.
2) Ecrire une spécification syntaxique bison renfermant un main() qui ne fait
qu'appeler que le parseur pour tester l’analyseur généré sur des exemples bien
choisis. Faire des tests pour afficher aussi des erreurs syntaxiques.
3) Modifier les spécifications flex et bison précédente et les intégrer avec un unique
main() pour afficher les éventuelles erreurs rencontrées ou sinon la table des
identifiants trouvés dans le fichier passé en paramètre renfermant une liste de
déclarations. Tester sur divers exemples bien choisis.
Exemple :
Voici le contenu de fichier à analyser :
var var0, var1 : integer;
vreal : real;
tab : array[ 10 ] of boolean ;
et la table des identificateurs à afficher :
1
2
3
4
-->
-->
-->
-->
var0
var1
vreal
tab
                
            
                
    
    
    
        Soit la grammaire G=(Vt, Vn, P, S) définie par :
Vt={int , real , boolean , array , ref , struct , var , type ,
Of , [ , ] , , , ; , : , = , identificateur , nombre}
Vn= {ListDeclaration , Declaration , ListIdentificateur ,
DefinitionType , ListeChamps}
P={
ListDeclaration -> ListDeclaration ; Declaration
| Declaration
Declaration -> var ListIdentificateur : DefinitionType
| type identificateur = DefinitionType
ListIdentificateur -> ListIdentificateur , identificateur
| identificateur
DefinitionType -> int
| real
| boolean
| array [ nombre ] of DefinitionType
| ref DefinitionType
| struct ListeChamps end
ListeChamps -> ListeChamps ; ListeChamps
| identificateur : DefinitionType
}
S= ListDeclaration
1) Ecrire une spécification lexicale renfermant un main() qui ne fait qu'appeler que le
lexer pour tester l’analyseur généré sur des fichiers contenant des déclarations
définies selon la grammaire G précédemment définie. Faire également des tests sur
des exemples qui aboutissent à des erreurs lexicales.
2) Ecrire une spécification syntaxique bison renfermant un main() qui ne fait
qu'appeler que le parseur pour tester l’analyseur généré sur des exemples bien
choisis. Faire des tests pour afficher aussi des erreurs syntaxiques.
3) Modifier les spécifications flex et bison précédente et les intégrer avec un unique
main() pour afficher les éventuelles erreurs rencontrées ou sinon la table des
identifiants trouvés dans le fichier passé en paramètre renfermant une liste de
déclarations. Tester sur divers exemples bien choisis.
Exemple :
Voici le contenu de fichier à analyser :
var var0, var1 : integer;
vreal : real;
tab : array[ 10 ] of boolean ;
et la table des identificateurs à afficher :
1
2
3
4
-->
-->
-->
-->
var0
var1
vreal
tab
        A voir également:         
- Flex&Bison
- En attente de validation free flex 2024 - Forum Free mobile
- Chrome os flex - Guide
- Jbl tune flex ecouteur gauche ne fonctionne plus - Forum Casque et écouteurs
- Comment connecter le deuxième écouteur sans fil JBL Free ? - Forum Casque et écouteurs
- Allumer jbl wave flex sans boitier - Forum Casque et écouteurs
 
    
    
    
    
