Informations

Description du code

Information sur l'utilisation des fichiers de scripts. Compilateur LSD010

Code source ou contenu du fichier

  1. Ouvrir un terminal et se placer dans le répertoire project
  2. Les commandes sont considérées comme scripts, il suffit de cliquer dessus sous linux.
  3. Les principales commandes sont les suivantes :
  4. - build : compiler le compilateur
  5. - clean : supprimer les fichiers de compilation et ne garder que la source et l'exécutable
  6. - clean-all : clean + suppression de l'exécutable
  7. - release : générer un tar.gz avec horodateur pour une soumission à l'automate
  8. attention "release" supprime source/lsd10, il faut faire un "build" après si on veut utiliser le compilateur
  9. - source/lsd10 : utiliser le compilateur lsd10 (analyse du fichier code.t si présent) pour autant qu'un build ait été effectué
  10.  
  11. Fichiers :
  12. - ast.html : affichage de l'arbre du dernier appel de source/lsd10 pour du debug
  13. - ast.xml : affichage de l'arbre du dernier appel de source/lsd10 pour du debug,
  14. sans feuille de style, on peut étendre ou collapse les noeuds
  15. - lsd10.pm : fichier à ouvrir avec la p-machine, p-code du dernier appel de source/lsd10
  16. - astLSD10.dot : fichier nécessaire à la génération d'une image
  17. - lsd10_ImgXXX.jpg : image de l'arbre syntaxique de l'appel de source/lsd10 au moment XXX
  18. - symbolsTable.html : affichage des données de la table des symboles
  19.  
  20. Pour ne pas générer les fichiers, ouvrir source/common.h et ajuster les différentes valeurs
  21.  
  22. Exemple d'affichage sur le terminal
  23.  
  24. steph@astate:~/dev/compiler/project$ ./build
  25. steph(1000) on astate [running linux-gnu]
  26. Compile lsd10 code
  27.  
  28.  
  29. Removing possible previous compiled files ...
  30. Cleaning executable file ...
  31.  
  32.  
  33. Compiling Yacc file ...
  34.  
  35.  
  36. Compiling Lex file ...
  37.  
  38.  
  39. Compiling C files ...
  40.  
  41.  
  42. Done
  43.  
  44.  
  45. steph@astate:~/dev/compiler/project$ source/lsd10
  46. ;
  47. ;
  48. ; LSD010 Compiler [SSHD09]
  49. ;
  50. ;
  51. ; Creating Symbols Table
  52. ; Using Test file...true
  53. ; Calling yyparse()
  54. ; End of yyparse execution
  55. ;
  56. ; Filling Table of symbol...
  57. ; Printing AST into ast.html file ... (console.c, col 147); ...OK HTML printed
  58. ; Printing AST into ast.xml file ... (console.c, col 169); ...OK XML printed
  59. ; Generating AST Graph from ast.xml into astLSD10.dot file ... (digraphHelper.c, col 104); ...OK Graph printed
  60. ; Generating image from dot file : dot -Tjpg -olsd10_Img20104237153.jpg astLSD10.dot
  61. ; Checking types...
  62. ; ...OK Types check done
  63. ;
  64. ; Generating p-code...
  65. ; Open p-code file...OK
  66. ; Message : 'ssp 2 (0 & 1) + memory used for variables (2 temporary locations for modulo algorithm)' On pcode.c, Line 165
  67. ssp 0
  68. mst 0
  69. cup 0 @func_main_1
  70. ujp @prg_end_0
  71. ; Message : 'pcodeGenValue Functions (400) (parsed code, line 1)' On pcode.c, Line 231
  72. ;GEN_VALUE 400
  73. ; Message : 'pcodeGenValue Function (401) (parsed code, line 1)' On pcode.c, Line 231
  74. ;GEN_VALUE 401
  75. ;NODE_TYPE_FUNCTION main loc 1
  76. define @func_main_1
  77. ssp 9
  78. ujp @body_main_1
  79. define @body_main_1
  80. ; Message : 'pcodeGenValue Structural node (-2) (parsed code, line 8)' On pcode.c, Line 231
  81. ;GEN_VALUE -2
  82. ; Message : 'pcodeGenValue Type declarations (405) (parsed code, line 3)' On pcode.c, Line 231
  83. ;GEN_VALUE 405
  84. ; Message : 'pcodeGenValue Type declaration (406) (parsed code, line 3)' On pcode.c, Line 231
  85. ;GEN_VALUE 406
  86. ; Message : 'pcodeGenValue Type declarations (405) (parsed code, line 3)' On pcode.c, Line 231
  87. ;GEN_VALUE 405
  88. ; Message : 'pcodeGenValue Type declaration (406) (parsed code, line 3)' On pcode.c, Line 231
  89. ;GEN_VALUE 406
  90. ; Message : 'pcodeGenValue function body (407) (parsed code, line 8)' On pcode.c, Line 231
  91. ;GEN_VALUE 407
  92. ; Message : 'pcodeGenValue NODE_TYPE_LEXICAL_FOR_STMT (415) (parsed code, line 7)' On pcode.c, Line 231
  93. ;GEN_VALUE 415
  94. ; Message : 'pcodeGenValue function body (407) (parsed code, line 8)' On pcode.c, Line 231
  95. ;GEN_VALUE 407
  96. retf
  97. ;NODE_TYPE_FUNCTION main END
  98. ; Message : 'end of program' On pcode.c, Line 189
  99. define @prg_end_0
  100. stp
  101. ; [0x8da9008] id=' main', location= 0, type 300 isFunction 403 next= 0x8dadea8 ast_parent=0x8dade10 pcode_mem_place 1
  102. ; [0x8dadea8] id=' j', location= 0, type 302 isFunction 406 next= 0x8daded0 ast_parent=0x8daddb0 pcode_mem_place 1
  103. ; [0x8daded0] id=' i', location= 0, type 302 isFunction 406 next= 0x8dadef8 ast_parent=0x8daddb0 pcode_mem_place 2
  104. ; S->next is NULL' (null)', location=-1, type -1 isFunction 414 next= (nil) ast_parent= (nil)
  105. ; ...OK P-code generated
  106. ;
  107. ;
  108. ; Warning : 'Print table of symbole not requested (use DEB_I level minimum to print it)' On lsd10.y, Line 628
  109. ; -------------------------------------------------------------
  110. ; Cleaning memory...
  111. ; ...OK Memory cleaned
  112. ;
  113. ;
  114. ; Parsing started at Fri Apr 23 07:15:03 2010
  115. ; 631 lines 9983 chars parsed in 0 seconds
  116. ; Verbose set on "P-code generation" level
  117. ; That's All Folks!
  118. OK
  119. steph@astate:~/dev/compiler/project$

Autres extraits de codes en texte simple

Document créé le 05/10/2009, dernière modification le 28/10/2018
Source du document imprimé : https://www.gaudry.be/sniplet-rf-lsd010/project/readme.txt.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.