Differences

This shows you the differences between two versions of the page.

Link to this comparison view

alf:teme:tema3 [2021/04/18 22:27]
diana.ghindaoanu [Appel de fonction]
alf:teme:tema3 [2022/04/08 12:28] (current)
diana.ghindaoanu [Erreurs]
Line 6: Line 6:
 Date limite: ** 25 avril, 23:55 ** \\ Date limite: ** 25 avril, 23:55 ** \\
 Points: ** 2 points ** de la note finale \\ Points: ** 2 points ** de la note finale \\
-Téléchargez le devoir: [[https://​classroom.github.com/​a/​4lETpoEI ​| GitHub Devoir 3]] \\+Téléchargez le devoir: [[https://​classroom.github.com/​a/​UyBDhRP9 ​| GitHub Devoir 3]] \\
 Téléchargement tardif: ** 1 point / jour ** (maximum 2 jours) \\ Téléchargement tardif: ** 1 point / jour ** (maximum 2 jours) \\
 </​note>​ </​note>​
Line 646: Line 646:
  
 ===== BONUS ===== ===== BONUS =====
 +
 +Pour **0.5** points supplémentaires,​ implémentez une fonctionnalité pour le traitement des //​**erreurs**//​.
  
 ==== Erreurs ==== ==== Erreurs ====
Line 665: Line 667:
 } }
 </​code>​ </​code>​
- 
-<​note>​Les lignes sont numérotées à partir de 1</​note>​ 
  
 === Syntax === === Syntax ===
Line 681: Line 681:
 </​code>​ </​code>​
  
-<​note ​important>+<​note>​
 La liste des erreurs doit être inclue dans un noeud de l'AST ayant la structure suivante: La liste des erreurs doit être inclue dans un noeud de l'AST ayant la structure suivante:
  
Line 692: Line 692:
 </​note>​ </​note>​
  
-<note warning> + 
-Les noms de jetons seront différents pour chacun d'​entre vous, donc ils seront ignorés par le checker. Il vérifiera seulement que vous avez un jeton dans la liste. +==== CONDITIONS ====
-</​note>​+
  
 <​note>​Les lignes sont numérotées à partir de 1</​note>​ <​note>​Les lignes sont numérotées à partir de 1</​note>​
  
-<hidden+<note important
-===== Bonus ===== +Sur GitHubvous devez télécharger les fichiers suivants
- +  * index.ts 
-Pour ** 0.5p ** supplémentairesimplémentez+  * Alf.g4 
- +  * AlfLexer.ts 
-Ajoutez un prétraitement à la sourceOn a: +  * AlfListener.ts 
-  * register +  * AlfParser.ts 
-  * if then / else / endif +  * AlfVisitor.ts 
-  * unregister +  ​* tout autre fichier supplémentaire que vous avez créé pour traiter votre code
- +
-=== register === +
-Enregistre une valeur dans un identifiant+
- +
-<​code>​ +
-&​register identifier value +
-</​code>​ +
- +
-L'​identifiant sera remplacé dans le programme par la valeur (textuellement)+
- +
-=== if === +
-Vérifie si un identifiant est enregistré et a une valeur et l'​ajoute dans le code source jusqu'​à else ou endif. Else est facultatif+
- +
-<​code>​ +
-&​register platform ... +
- +
-... +
- +
-&if platform = windows  +
-p <- "​Windows" ​ {this source is ignored if platform is not windows} +
-&else +
-p <- "​Linux" ​ {this source ​code is ignored if platform is not linux} +
-&end +
-</​code>​ +
- +
-=== unregister === +
-Annule la valeur d'un identifiant. +
- +
-<​code>​ +
-&​register N value +
- +
-... +
- +
-&​unregister N +
- +
-#N is undefined#​ +
-</​code>​ +
- +
-<​note>​ +
-Toutes les étiquettes de prétraitement sont sur une ligne distincte.+
 </​note>​ </​note>​
  
-<​note>​ +<​note ​warning
-Le bonus ne sera attribué ​que si tous les autres tests réussissent.+Les noms de jetons seront différents pour chacun d'​entre vous, donc ils seront ignorés par le checker. Il vérifiera seulement ​que vous avez un jeton dans la liste.
 </​note>​ </​note>​
  
  
  
-===== Testing ===== 
  
-Les devoir seront testés automatiquement en utilisant un ensemble de tests publics et privés. 
- 
-==== Tests publics ==== 
- 
-Vous pouvez télécharger les tests publics du GitHub [[https://​github.com/​upb-fils/​alf/​tree/​master/​Devoir/​alf|repository]]. 
- 
-Pour exécuter les tests, téléchargez le contenu du repository dans le dossier avec les devoir. Entrez dans dossier //verify// et exécutez ./​run_all.sh. 
- 
-<code bash> 
-cd verify 
-./​run_all.sh 
-</​code>​ 
- 
-Vous aurez besoin de bash pour ça. Vous pouvez utiliser Linux ou [[https://​msdn.microsoft.com/​fr-fr/​commandline/​wsl/​install_guide|Windows Linux Subsystem]]. 
- 
-<​note>​ 
-Pour installer nodejs sous Linux ou Windows Linux Subsystem, procédez comme suit: 
- 
-<code bash> 
-wget https://​nodejs.org/​dist/​v6.10.0/​node-v6.10.0-linux-x64.tar.xz 
-tar xvfJ node-v6.10.0-linux-x64.tar.xz 
-cd node-v6.10.0-linux-x64 
-sudo cp -R * /usr 
-</​code>​ 
-  ​ 
-</​note>​ 
- 
-==== Tests privés ==== 
-Lors du téléchargement des devoir, il se peut que nous ayons des tests privés à faire passer. //​vmchecker//​ les exécutera. 
- 
-<​note>​ 
-Vous pouvez toujours télécharger les devoir autant de fois que vous le souhaitez jusqu'​à la date limite. Cela va exécuter tous les tests pour vous et afficher le résultat. 
-</​note>​ 
- 
-===== Télécharger les devoir ===== 
-Le devoir doit être téléchargé sur [[https://​vmchecker.cs.pub.ro|vmchecker]]. Connectez-vous avec votre nom d'​utilisateur moodle, sélectionnez le cours //Automates et Langages Formelles (FILS)// et téléchargez [[#​homework-archive|homework archive]]. 
- 
-==== Readme ==== 
-Le fichier readme a le format suivant: 
- 
-<​code>​ 
-Nom complet 
-Groupe 
- 
-Une explication comment vous avez écrit vos devoir, qu'​utilisiez-vous,​ quelles sont les idées principales. 
-</​code>​ 
- 
- 
-==== Archive des devoir ==== 
-Pour télécharger vos devoir, vous avez les instructions suivantes: 
- 
-  - Créez une archive zip (pas rar, ace, 7zip ou autre) contenant: 
-      * votre fichier principal (défini dans package.json) 
-      * vos fichiers javascript (*.js) 
-      * votre fichiers l et y (grammar.l et grammar.y) 
-      * le fichier package.json 
-      * le fichier Readme 
-  - Connectez-vous avec [[https://​vmchecker.cs.pub.ro|vmchecker]] 
-  - Sélectionnez le cours //Automates et Langages Formelles (FILS)// 
-  - Sélectionnez //3. Langage Alf// 
-  - Téléchargez l'​archive 
- 
- 
-<​note>​ 
-L'​archive doit contenir les fichiers dans sa racine, pas dans un dossier. NE PAS archiver un dossier avec les fichiers, archiver DIRECTEMENT les fichiers. 
- 
-NE PAS inclure //​node_modules//​. 
-</​note>​ 
- 
-Lorsque l'​archive est téléchargée,​ vmchecker exécutera: 
- 
-<code bash> 
-unzip archive.zip homework 
-cd homework 
-npm install 
-echo '{ "​node":​true,​ "​loopfunc":​ true, "​esnext":​true }' > .jshintrc 
-jshint *.js 
-jison grammar.y grammar.l -o grammar.js 
-</​code>​ 
  
-</​hidden>​ 
alf/teme/tema3.1618774068.txt.gz · Last modified: 2021/04/18 22:27 by diana.ghindaoanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0