BCJ – 2 – Installation et premiers tests

Télécharger les sources et le compilateur à partir de github

Dézipper dans un répertoire vide ou utiliser la commande git :

TypeScript

On a le résultat suivant:

cb.bat est le fichier de commandes pour compiler un source basilic sous Windows.

Pour vérifier que tout fonctionne correctement, tester le programme helloworld en tapant la commande:

cb helloworld

On obtient

C:\Users\geo\Documents\demobcj>cb helloworld

C:\Users\geo\Documents\demobcj>java -jar cb.jar helloworld.bcj
Chemin du source a compiler ................= helloworld.bcj
Compilation complete .......................= false
Repertoire du compilateur ..................= bc/
Generation de la methode main ..............= true
Afficher la table des symboles .............= false
Nb max d'elements de la table des symboles .= 20000
Compilation ................................= boolean=bc/core/cbboolean.bcj
Compilation ................................= int=bc/core/cbint.bcj
Compilation ................................= string=bc/core/cbstring.bcj
Compilation ................................= double=bc/core/cbdouble.bcj
Compilation ................................= long=bc/core/cblong.bcj
Compilation ................................= byte=bc/core/cbbyte.bcj
Compilation ................................= system=bc/core/cbsystem.bcj
Compilation ................................= console=bc/core/cbconsole.bcj
Compilation ................................= stringvector=bc/core/cbstringvector.bcj
Compilation ................................= conversions=bc/core/cbconversions.bcj
Compilation ................................= lexical=bc/core/cblexical.bcj
Compilation ................................= datetime=bc/core/cbdatetime.bcj
Compilation ................................= filedirectory=bc/core/cbfiledirectory.bcj
Compilation ................................= textfile=bc/core/cbtextfile.bcj
Compilation ................................= inifile=bc/core/cbinifile.bcj
Compilation ................................= arraytools=bc/core/cbarraytools.bcj
Compilation ................................= stringhashmap=bc/core/cbstringhashmap.bcj
Compilation ................................= stringstack=bc/core/cbstringstack.bcj
Compilation ................................= zip=bc/core/cbzip.bcj
Compilation ................................= ___dependances___=cbdependances.bcj
Compilation ................................= helloworld=helloworld.bcj
Nombre d'elements de la table des symboles .= 1024
Duree de compilation .......................= 0 minute(s) 2 seconde(s) 218 ms
Nombre de lignes compilees .................= 3977
Vitesse de compilation (nb lignes / sec )...= 1793
*** COMPILATION REUSSIE ***

C:\Users\geo\Documents\demobcj>javac helloworld.java

Exécuter ensuite le programme

C:\Users\geo\Documents\demobcj>java helloworld
Hello world!

Remarques

  • Le compilateur cb.jar génère du code Java compatible avec la version 8 minimum.
  • Le fichier cb.bat suppose que l’interpréteur et le compilateur Java sont accessibles par les règles standards du système. Si ce n’est pas le case modifier les règles de recherche ou (plus facile) utiliser des chemins absolus dans le fichier cb.bat.

Linux

Pour faire un équivalent linux de cb.bat, il suffit de remplacer les symboles % par le symbole $ et de rendre le fichier cb.bat exécutable par la commande:

chmod +x cb.bat

Pour exécuter sous Linux :

./cb.bat nom du fichier sans suffixe

Fichiers de la distribution:

  • cb.bcj : le compilateur basilic, utile uniquement si l’on souhaite modifier le langage basilic
  • cbdependances.bcj : fichier généré automatiquement par le compilateur
  • cbdochtml.bcj et cbgendoc.bcj : fichiers permettant de générer la documentation des différents modules.
  • cbinstall.bcj : programme permettant de générer un fichier zip pour déployer une nouvelle version de basilic
  • helloworld.bcj : le programme de démonstration
  • grimeco_doc_001.pdf : documentation des modules
  • Le répertoire cb contient l’ensemble des sources des modules ainsi que la documentation. Les deux fichiers main.txt et newmain.txt peuvent être modifiés; ils contiennent la ou les instructions insérées automatiquement par le compilateur dans respectivement la methode main java et le constructeur principal.

Génération de la documentation

Compiler les fichiers cbgendoc.bcj et cbdochtml.bcj, cbgendoc et cbdochtml

C:\Users\geo\Documents\demobcj>cb cbgendoc

C:\Users\geo\Documents\demobcj>java -jar cb.jar cbgendoc.bcj
Chemin du source a compiler ................= cbgendoc.bcj
Compilation complete .......................= false
Repertoire du compilateur ..................= bc/
Generation de la methode main ..............= true
Afficher la table des symboles .............= false
Nb max d'elements de la table des symboles .= 20000
Compilation ................................= cbgendoc=cbgendoc.bcj
Nombre d'elements de la table des symboles .= 1068
Duree de compilation .......................= 0 minute(s) 0 seconde(s) 401 ms
Nombre de lignes compilees .................= 237
Vitesse de compilation (nb lignes / sec )...= 591
*** COMPILATION REUSSIE ***

C:\Users\geo\Documents\demobcj>javac cbgendoc.java

C:\Users\geo\Documents\demobcj>cb cbdochtml

C:\Users\geo\Documents\demobcj>java -jar cb.jar cbdochtml.bcj
Chemin du source a compiler ................= cbdochtml.bcj
Compilation complete .......................= false
Repertoire du compilateur ..................= bc/
Generation de la methode main ..............= true
Afficher la table des symboles .............= false
Nb max d'elements de la table des symboles .= 20000
Compilation ................................= cbdochtml=cbdochtml.bcj
Nombre d'elements de la table des symboles .= 1076
Duree de compilation .......................= 0 minute(s) 0 seconde(s) 438 ms
Nombre de lignes compilees .................= 198
Vitesse de compilation (nb lignes / sec )...= 452
*** COMPILATION REUSSIE ***

C:\Users\geo\Documents\demobcj>javac cbdochtml.java

puis exécuter successivement les commandes cbgendoc et cbdochtml

C:\Users\geo\Documents\demobcj>java cbgendoc
cbgendoc, usage:
   cbgendoc path
   ou path est le chemin d'un fichier de type bcj.ini

C:\Users\geo\Documents\demobcj>java cbgendoc bc/bcj.ini
boolean bc/core/cbboolean.bcj   bc/core/cbboolean.docini
int     bc/core/cbint.bcj       bc/core/cbint.docini
string  bc/core/cbstring.bcj    bc/core/cbstring.docini
double  bc/core/cbdouble.bcj    bc/core/cbdouble.docini
long    bc/core/cblong.bcj      bc/core/cblong.docini
byte    bc/core/cbbyte.bcj      bc/core/cbbyte.docini
system  bc/core/cbsystem.bcj    bc/core/cbsystem.docini
console bc/core/cbconsole.bcj   bc/core/cbconsole.docini
stringvector    bc/core/cbstringvector.bcj      bc/core/cbstringvector.docini
conversions     bc/core/cbconversions.bcj       bc/core/cbconversions.docini
lexical bc/core/cblexical.bcj   bc/core/cblexical.docini
datetime        bc/core/cbdatetime.bcj  bc/core/cbdatetime.docini
filedirectory   bc/core/cbfiledirectory.bcj     bc/core/cbfiledirectory.docini
textfile        bc/core/cbtextfile.bcj  bc/core/cbtextfile.docini
inifile bc/core/cbinifile.bcj   bc/core/cbinifile.docini
arraytools      bc/core/cbarraytools.bcj        bc/core/cbarraytools.docini
stringhashmap   bc/core/cbstringhashmap.bcj     bc/core/cbstringhashmap.docini
stringstack     bc/core/cbstringstack.bcj       bc/core/cbstringstack.docini
zip     bc/core/cbzip.bcj       bc/core/cbzip.docini

C:\Users\geo\Documents\demobcj>java cbdochtml
cbdochtml, usage:
   cbdochtml pathin pathout
   ou pathin est le chemin d'un fichier de type bcj.ini
   ou pathout est le chemin du repertoire de destination des fichiers doc html
 il faut avoir executer cbgendoc prealablement

C:\Users\geo\Documents\demobcj>java cbdochtml bc/bcj.ini bc/doc
arraytools=bc/core/cbarraytools.docini pathout=bc/doc/arraytools.html
boolean=bc/core/cbboolean.docini pathout=bc/doc/boolean.html
byte=bc/core/cbbyte.docini pathout=bc/doc/byte.html
console=bc/core/cbconsole.docini pathout=bc/doc/console.html
conversions=bc/core/cbconversions.docini pathout=bc/doc/conversions.html
datetime=bc/core/cbdatetime.docini pathout=bc/doc/datetime.html
double=bc/core/cbdouble.docini pathout=bc/doc/double.html
filedirectory=bc/core/cbfiledirectory.docini pathout=bc/doc/filedirectory.html
inifile=bc/core/cbinifile.docini pathout=bc/doc/inifile.html
int=bc/core/cbint.docini pathout=bc/doc/int.html
lexical=bc/core/cblexical.docini pathout=bc/doc/lexical.html
long=bc/core/cblong.docini pathout=bc/doc/long.html
string=bc/core/cbstring.docini pathout=bc/doc/string.html
stringhashmap=bc/core/cbstringhashmap.docini pathout=bc/doc/stringhashmap.html
stringstack=bc/core/cbstringstack.docini pathout=bc/doc/stringstack.html
stringvector=bc/core/cbstringvector.docini pathout=bc/doc/stringvector.html
system=bc/core/cbsystem.docini pathout=bc/doc/system.html
textfile=bc/core/cbtextfile.docini pathout=bc/doc/textfile.html
zip=bc/core/cbzip.docini pathout=bc/doc/zip.html

Dans le répertoire spécifié lors de l’exécution de la commande gendochtml, les fichiers html constituent la documentation, le point d’entrée est index.html

Règles d’écriture pour la documentation

Lé détection des procédures et de fonctions est réalisée automatiquement. Pour qu’un commentaire puisse être inséré dans la documentation, il suffit qu’il soit de la forme

/*!
Commentaire
pour la documentation
*/

Exemple , le module stringvector :

TypeScript

Documentation html générée:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *