Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Des nouvelles du compilateur ? | |
| | Auteur | Message |
---|
Pedro
Nombre de messages : 1595 Date d'inscription : 19/01/2014
| Sujet: Des nouvelles du compilateur ? Dim 2 Juin 2019 - 9:12 | |
| @Jack.
J'aimerais bien avoir quelques nouvelles du compilateur. As-tu pû avancer sur ce projet ? Merci. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Des nouvelles du compilateur ? Sam 22 Juin 2019 - 12:51 | |
| J'ai essayé de compiler un petit code Panoramic utilisant des fichiers texte. Et la commande FILE_WRITELN ne passe pas: message d'erreur suivant: (157) call of unknown SUBJe pense qu'il manquent encore pas mal d'éléments dans l'implémentation actuelle ! Exemple: - Code:
-
fichier$ = "HtmlDocument.dat" if file_exists(html_attente$)=0 file_open_write 1,html_attente$ file_writeln("<!DOCTYPE html>") file_writeln("<html>") file_writeln("<head>") file_writeln("<title>Générateur HTML</title>") file_writeln("</head>") file_writeln("<body>") file_writeln("") file_writeln("<h1>En attente...</h1>") file_writeln("") file_writeln("</body>") file_writeln("</html>") file_close 1 end_if | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Des nouvelles du compilateur ? Sam 22 Juin 2019 - 13:18 | |
| Heu Klaus... ce n'est pas plutôt : FILE_WRITELN 1, "xxxxx" | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Des nouvelles du compilateur ? Sam 22 Juin 2019 - 13:32 | |
| Ah, mais c'est bien sûr... Je ne suis pas encore pleinement opérationnel, la preuve ! Désolé pour cette alerte. Cependant, n'ayant pas encore l'habitude du compilateur, je suis perplexe devant la liste d'erreurs de compilation au sujet du code suivant: - Code:
-
' CreateHtmlDocument.bas
label close0, TV_event label nouveau, enregistrer, enregistrer2, ouvrir, fermer label sortir, modattrib, choixelem, choixattrib
dim TV%, SP1%, SP2%, WB% dim res%, txt$, ind%, child%, ClickFlag%, s$, s1$, p%, noeud%, PM%, i%, WBhnd% dim OldCell$, NewCell$, ligattrib%, att$, name$, value$, ligelem%, elem$, url$ dim html_attente$, fichier$ dim M1% : m1% = 0 - 1 html_attente$ = "CreateHtmlDocument_attente.html" fichier$ = "HtmlDocument.dat" if file_exists(html_attente$)=0 file_open_write 1,html_attente$ file_writeln 1,"<!DOCTYPE html>" file_writeln 1,"<html>" file_writeln 1,"<head>" file_writeln 1,"<title>Générateur HTML</title>" file_writeln 1,"</head>" file_writeln 1,"<body>" file_writeln 1,"" file_writeln 1,"<h1>En attente...</h1>" file_writeln 1,"" file_writeln 1,"</body>" file_writeln 1,"</html>" file_close 1 end_if url$ = "file:///"+dir_current$+"\"+html_attente$
dll_on "KGF.dll"
full_space 0 caption 0,"Création document HTML: "+fichier$ on_close 0,close0
edit 17 : hide 17 : on_change 17,TV_event
main_menu 100 sub_menu 101 : parent 101,100 : caption 101,"Fichier" sub_menu 102 : parent 102,101 : caption 102,"Nouveau" : on_click 102,nouveau sub_menu 103 : parent 103,101 : caption 103,"Enregistrer" : on_click 103,enregistrer sub_menu 104 : parent 104,101 : caption 104,"Enregistrer sous..." : on_click 104,enregistrer2 sub_menu 105 : parent 105,101 : caption 105,"Ouvrir..." : on_click 105,ouvrir sub_menu 106 : parent 106,101 : caption 106,"Fermer" : on_click 106,fermer sub_menu 108 : parent 108,101 : caption 108,"-" sub_menu 109 : parent 109,101 : caption 109,"Sortir" : on_click 109,sortir
SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,0,0,170,height_client(0)) SP2% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP2%,170,0,width_client(0)-340,height_client(0))
memo 18 : top 18,200 : left 18,200 : width 18,150 : height 18,100 : bar_both 18 : hide 18 list 19 : top 19,200 : left 19,0 : width 19,150 : height 19,200: on_click 19,modattrib list 21 : top 21,400 : left 21,0 : width 21,150 : height 21,200 : on_click 21,choixelem : inactive 21 item_add 21,"Elements:" item_add 21,"title" item_add 21,"h1" item_add 21,"p" list 22 : top 22,600 : left 22,0 : width 22,150 : height 22,200 : on_click 22,choixattrib : inactive 22 item_add 22,"Attributs:"
res% = dll_call4("AttachToScrollPanel",SP1%,handle(18),0,0) res% = dll_call4("AttachToScrollPanel",SP1%,handle(19),0,200) res% = dll_call4("AttachToScrollPanel",SP1%,handle(21),0,400) res% = dll_call4("AttachToScrollPanel",SP1%,handle(22),0,600) WB% = dll_call1("WB_Create",handle(0)) res% = dll_call5("WB_Locate",WB%,170,0,width_client(0),height_client(0)) WBhnd% = dll_call2("WB_Function",WB%,8) res% = dll_call2("WB_Url",WB%,adr(url$)) res% = dll_call4("AttachToScrollPanel",SP2%,WBhnd%,0,0)
save_dialog 31 : filter 31,"Projet document HTML|*.dat" open_dialog 32 : filter 32,"Projet document HTML|*.dat" end
nouveau: if TV%<>0 message "Un document est déjà ouvert." return end_if TV% = dll_call2("CreateHtmlTreeView",handle(0),1) res% = dll_call4("SetTreeViewOptions",TV%,1,1,0)
res% = dll_call5("ResizeTreeView",TV%,0,0,150,200)
txt$ = file_extract_name$(fichier$) s$ = file_extract_extension$(fichier$) txt$ = left$(txt$,len(txt$)-len(s$)) ind% = dll_call4("AddTreeViewRootNode",TV%,adr(txt$),1,1) name$ = "!DOCTYPE" value$ = "html" res% = dll_call5("TreeViewNodeAttribute",TV%,2,ind%,adr(name$),adr(value$)) txt$ = "Head" res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),3,1) res% = dll_call3("SelectTreeViewNode",TV%,ind%,0) txt$ = "Body" res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),4,1)
res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17)) res% = dll_call3("SelectTreeViewNode",TV%,ind%,1) active 21 active 22 return enregistrer: s$ = fichier$ res% = dll_call2("SaveTreeViewToFile",TV%,adr(s$)) return enregistrer2: s$ = file_name$(31) if s$="_" then return if lower$(file_extract_extension$(s$))<>".dat" then return if file_exists(s$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return end_if fichier$ = s$ caption 0,"Création document HTML: "+fichier$ gosub enregistrer return ouvrir: if TV%<>0 message "Un document est déjà ouvert." return end_if
TV% = dll_call2("CreateHtmlTreeView",handle(0),1) res% = dll_call4("SetTreeViewOptions",TV%,1,1,0) res% = dll_call5("ResizeTreeView",TV%,0,0,150,200) active 21 active 22 s$ = file_name$(31) if s$="_" then return if lower$(file_extract_extension$(s$))<>".dat" then return if file_exists(s$)=0 message "Ce fichier n'existe pas." return end_if fichier$ = s$ caption 0,"Création document HTML: "+fichier$ html_attente$ = "CreateHtmlDocument_attente.html" res% = dll_call2("WB_Url",WB%,adr(url$)) res% = dll_call2("LoadTreeViewFromFile",TV%,adr(fichier$)) res% = dll_call3("SelectTreeViewNode",TV%,0,1) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17)) res% = dll_call3("GetTreeViewInformation",TV%,9,handle(19)) return fermer: TV% = dll_call2("DeleteTreeView",TV%,0) inactive 21 inactive 22 html_attente$ = "CreateHtmlDocument_attente.html" fichier$ = "HtmlDocument.dat" url$ = "file:///"+dir_current$+"\"+html_attente$ caption 0,"Création document HTML: "+fichier$ res% = dll_call2("WB_Url",WB%,adr(url$)) clear 19 return
if 1=2 PM% = dll_call1("CreateTVPopupMenu",handle(17)) s$ = "popup ligne 1" res% = dll_call4("CreateTVPopupMenuItem",PM%,1,0,adr(s$)) s$ = "popup ligne 2" res% = dll_call4("CreateTVPopupMenuItem",PM%,1,0,adr(s$)) res% = dll_call4("SetTreeViewOptions",TV%,1,9,PM%) : ' popup menu end_if
end
close0: res% = dll_call2("DeleteTreeView",TV%,0) res% = dll_call1("WB_Delete",WB%) SP2% = dll_call1("DeleteScrollPanel",SP2%) ' res% = dll_call1("DeleteTVPopupMenu",PM%) return TV_event: s$ = text$(17) item_add 18,"TV1: "+s$
s1$ = string$(200," ") res% = dll_call3("GetTreeViewInformation",TV%,5,adr(s1$)) s1$ = trim$(s1$) if len(s1$)>0 then item_add 18," "+s1$ res% = dll_call3("GetTreeViewInformation",TV%,9,handle(19)) if left$(s$,8)="editing," s$ = mid$(s$,9,len(s$)) p% = instr(s$,",") noeud% = val(left$(s$,p%-1)) OldCell$ = mid$(s$,p%+1,len(s$)) ' item_add 18,"Old "+str$(noeud%)+": "+OldCell$ return end_if if left$(s$,7)="edited," : ' exemple: on interdit la saisie d'un "$" s$ = mid$(s$,8,len(s$)) p% = instr(s$,",") noeud% = val(left$(s$,p%-1)) NewCell$ = mid$(s$,p%+1,len(s$)) p% = instr(NewCell$,"$") while p%>0 NewCell$ = mid$(NewCell$,1,p%-1)+mid$(NewCell$,p%+1,len(NewCell$)) p% = instr(NewCell$,"$") end_while res% = dll_call4("ChangeTreeViewNodeText",TV%,2,0,adr(NewCell$)) item_add 18,"New "+str$(noeud%)+": "+NewCell$ return end_if return
sortir: gosub close0 terminate modattrib: ligattrib% = item_index(19) att$ = trim$(item_read$(19,ligattrib%)) if left$(att$,10)="Attributs:" then return message "Attribut: "+att$ return choixelem: ligelem% = item_index(21) if ligelem%=1 then return elem$ = trim$(item_read$(21,ligelem%))
s$ = string$(100," ") ind% = dll_call3("GetTreeViewInformation",TV%,5,adr(s$)) if ind%=0 then return : ' ne pas autoriser l'ajout d'éléments dans la racine ! ' res% = dll_call3("SelectTreeViewNode",TV1%,ind%,0) txt$ = elem$ res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),4,1) return choixattrib: ligattrib% = item_index(22) if ligattrib%=1 then return att$ = trim$(item_read$(22,ligattrib%)
return
Les erreurs listées dans le fichier error.txt: - Citation :
- CreateHtmlDocument.bas(232) error 33: Expected 'END IF', found 'End'
End Sub ^ CreateHtmlDocument.bas(233) error 58: Illegal inside functions, found 'Sub' Sub L_CHOIXELEM ^ CreateHtmlDocument.bas(237) error 58: Illegal inside functions, found 'Sub' Sub L_CLOSE0 ^ CreateHtmlDocument.bas(242) error 58: Illegal inside functions, found 'Sub' Sub L_ENREGISTRER ^ CreateHtmlDocument.bas(246) error 58: Illegal inside functions, found 'Sub' Sub L_ENREGISTRER2 ^ CreateHtmlDocument.bas(250) error 58: Illegal inside functions, found 'Sub' Sub L_FERMER ^ CreateHtmlDocument.bas(261) error 58: Illegal inside functions, found 'Sub' Sub L_MODATTRIB ^ CreateHtmlDocument.bas(266) error 58: Illegal inside functions, found 'Sub' Sub L_NOUVEAU ^ CreateHtmlDocument.bas(270) error 58: Illegal inside functions, found 'Sub' Sub L_OUVRIR ^ CreateHtmlDocument.bas(274) error 58: Illegal inside functions, found 'Sub' Sub L_SORTIR ^ CreateHtmlDocument.bas(274) error 123: Too many errors, exiting
Ce sont tous les labels évènement. Apparemment, le compilateur génère une structure SUB L_xxx pour chacun de ces labels. Mais où est l'erreur que j'ai commise ? En version interprétée, ça marche très bien ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Des nouvelles du compilateur ? Sam 22 Juin 2019 - 19:08 | |
| J'ai réussi à obtenir une compilation correcte, en modifiant mon source Panoramic de façon empirique et selon les souvenirs qui me restaient des infos initiales de Jack: 1. séparer les commandes en "sections": labels d'abord, puis DIM, puis déclaration de tous les objets, puis code exécutable, puis END, puis les routines évènement 2. il n'y a pas de GOSUB. J'ai remplacé en copiant le code à l'endroit voulu; plus tard j'essayerai les SUBs. 3. il n'y a pas de IF...THEN. A remplacer par IF...END_IF 4. il n'y a pas de possibilité de faire des RETURN multiples dans un sousprogramme. J'essayerai plus tard de placer le code de chaque sous-programmes dans une SUB et de faire des EXIT_SUB. Ainsi, mon programme devient ceci: - Code:
-
' CreateHtmlDocument.bas
label close0, TV_event label nouveau, enregistrer, enregistrer2, ouvrir, fermer label sortir, modattrib, choixelem, choixattrib
dim TV%, SP1%, SP2%, WB% dim res%, txt$, ind%, child%, ClickFlag%, s$, s1$, p%, noeud%, PM%, i%, WBhnd% dim OldCell$, NewCell$, ligattrib%, att$, name$, value$, ligelem%, elem$, url$ dim html_attente$, fichier$, ok% dim M1% : m1% = 0 - 1
html_attente$ = "CreateHtmlDocument_attente.html" fichier$ = "HtmlDocument.dat" if file_exists(html_attente$)=0 file_open_write 1,html_attente$ file_writeln 1,"<!DOCTYPE html>" file_writeln 1,"<html>" file_writeln 1,"<head>" file_writeln 1,"<title>Générateur HTML</title>" file_writeln 1,"</head>" file_writeln 1,"<body>" file_writeln 1,"" file_writeln 1,"<h1>En attente...</h1>" file_writeln 1,"" file_writeln 1,"</body>" file_writeln 1,"</html>" file_close 1 end_if url$ = "file:///"+dir_current$+"\"+html_attente$
full_space 0 caption 0,"Création document HTML: "+fichier$ on_close 0,close0
edit 17 : hide 17 : on_change 17,TV_event
main_menu 100 sub_menu 101 : parent 101,100 : caption 101,"Fichier" sub_menu 102 : parent 102,101 : caption 102,"Nouveau" : on_click 102,nouveau sub_menu 103 : parent 103,101 : caption 103,"Enregistrer" : on_click 103,enregistrer sub_menu 104 : parent 104,101 : caption 104,"Enregistrer sous..." : on_click 104,enregistrer2 sub_menu 105 : parent 105,101 : caption 105,"Ouvrir..." : on_click 105,ouvrir sub_menu 106 : parent 106,101 : caption 106,"Fermer" : on_click 106,fermer sub_menu 108 : parent 108,101 : caption 108,"-" sub_menu 109 : parent 109,101 : caption 109,"Sortir" : on_click 109,sortir
memo 18 : top 18,200 : left 18,200 : width 18,150 : height 18,100 : bar_both 18 : hide 18 list 19 : top 19,200 : left 19,0 : width 19,150 : height 19,200: on_click 19,modattrib list 21 : top 21,400 : left 21,0 : width 21,150 : height 21,200 : on_click 21,choixelem : inactive 21 item_add 21,"Elements:" item_add 21,"title" item_add 21,"h1" item_add 21,"p" list 22 : top 22,600 : left 22,0 : width 22,150 : height 22,200 : on_click 22,choixattrib : inactive 22 item_add 22,"Attributs:"
save_dialog 31 : filter 31,"Projet document HTML|*.dat" open_dialog 32 : filter 32,"Projet document HTML|*.dat"
dll_on "KGF.dll"
SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,0,0,170,height_client(0)) SP2% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP2%,170,0,width_client(0)-340,height_client(0))
res% = dll_call4("AttachToScrollPanel",SP1%,handle(18),0,0) res% = dll_call4("AttachToScrollPanel",SP1%,handle(19),0,200) res% = dll_call4("AttachToScrollPanel",SP1%,handle(21),0,400) res% = dll_call4("AttachToScrollPanel",SP1%,handle(22),0,600)
end
nouveau: if TV%<>0 message "Un document est déjà ouvert." else TV% = dll_call2("CreateHtmlTreeView",handle(0),1) res% = dll_call4("SetTreeViewOptions",TV%,1,1,0)
res% = dll_call5("ResizeTreeView",TV%,0,0,150,200)
txt$ = file_extract_name$(fichier$) s$ = file_extract_extension$(fichier$) txt$ = left$(txt$,len(txt$)-len(s$)) ind% = dll_call4("AddTreeViewRootNode",TV%,adr(txt$),1,1) name$ = "!DOCTYPE" value$ = "html" res% = dll_call5("TreeViewNodeAttribute",TV%,2,ind%,adr(name$),adr(value$)) txt$ = "Head" res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),3,1) res% = dll_call3("SelectTreeViewNode",TV%,ind%,0) txt$ = "Body" res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),4,1)
res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17)) res% = dll_call3("SelectTreeViewNode",TV%,ind%,1) active 21 active 22 end_if return enregistrer: s$ = fichier$ res% = dll_call2("SaveTreeViewToFile",TV%,adr(s$)) return enregistrer2: s$ = file_name$(31) if s$<>"_" if lower$(file_extract_extension$(s$))=".dat" ok% = 1 if file_exists(s$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 ok% = 0 end_if end_if if ok%=1 fichier$ = s$ caption 0,"Création document HTML: "+fichier$ s$ = fichier$ res% = dll_call2("SaveTreeViewToFile",TV%,adr(s$)) end_if end_if end_if return ouvrir: if TV%<>0 message "Un document est déjà ouvert." else
TV% = dll_call2("CreateHtmlTreeView",handle(0),1) res% = dll_call4("SetTreeViewOptions",TV%,1,1,0) res% = dll_call5("ResizeTreeView",TV%,0,0,150,200) active 21 active 22 s$ = file_name$(31) if s$<>"_" if lower$(file_extract_extension$(s$))=".dat" if file_exists(s$)=0 message "Ce fichier n'existe pas." else fichier$ = s$ caption 0,"Création document HTML: "+fichier$ html_attente$ = "CreateHtmlDocument_attente.html" res% = dll_call2("WB_Url",WB%,adr(url$)) res% = dll_call2("LoadTreeViewFromFile",TV%,adr(fichier$)) res% = dll_call3("SelectTreeViewNode",TV%,0,1) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17)) res% = dll_call3("GetTreeViewInformation",TV%,9,handle(19)) end_if end_if end_if end_if return fermer: TV% = dll_call2("DeleteTreeView",TV%,0) inactive 21 inactive 22 html_attente$ = "CreateHtmlDocument_attente.html" fichier$ = "HtmlDocument.dat" url$ = "file:///"+dir_current$+"\"+html_attente$ caption 0,"Création document HTML: "+fichier$ res% = dll_call2("WB_Url",WB%,adr(url$)) clear 19 return
close0: res% = dll_call2("DeleteTreeView",TV%,0) res% = dll_call1("WB_Delete",WB%) SP2% = dll_call1("DeleteScrollPanel",SP2%) return TV_event: s$ = text$(17) item_add 18,"TV1: "+s$
s1$ = string$(200," ") res% = dll_call3("GetTreeViewInformation",TV%,5,adr(s1$)) s1$ = trim$(s1$) if len(s1$)>0 item_add 18," "+s1$ end_if res% = dll_call3("GetTreeViewInformation",TV%,9,handle(19)) if left$(s$,8)="editing," s$ = mid$(s$,9,len(s$)) p% = instr(s$,",") noeud% = val(left$(s$,p%-1)) OldCell$ = mid$(s$,p%+1,len(s$)) ' item_add 18,"Old "+str$(noeud%)+": "+OldCell$ else if left$(s$,7)="edited," : ' exemple: on interdit la saisie d'un "$" s$ = mid$(s$,8,len(s$)) p% = instr(s$,",") noeud% = val(left$(s$,p%-1)) NewCell$ = mid$(s$,p%+1,len(s$)) p% = instr(NewCell$,"$") while p%>0 NewCell$ = mid$(NewCell$,1,p%-1)+mid$(NewCell$,p%+1,len(NewCell$)) p% = instr(NewCell$,"$") end_while res% = dll_call4("ChangeTreeViewNodeText",TV%,2,0,adr(NewCell$)) item_add 18,"New "+str$(noeud%)+": "+NewCell$ end_if end_if return
sortir: res% = dll_call2("DeleteTreeView",TV%,0) res% = dll_call1("WB_Delete",WB%) SP2% = dll_call1("DeleteScrollPanel",SP2%) terminate return modattrib: ligattrib% = item_index(19) att$ = trim$(item_read$(19,ligattrib%)) if left$(att$,10)<>"Attributs:" message "Attribut: "+att$ end_if return choixelem: ligelem% = item_index(21) if ligelem%>1 elem$ = trim$(item_read$(21,ligelem%))
s$ = string$(100," ") ind% = dll_call3("GetTreeViewInformation",TV%,5,adr(s$)) if ind%>0 : ' ne pas autoriser l'ajout d'éléments dans la racine ! ' res% = dll_call3("SelectTreeViewNode",TV1%,ind%,0) txt$ = elem$ res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),4,1) end_if end_if return choixattrib: ligattrib% = item_index(22) if ligattrib%<>1 att$ = trim$(item_read$(22,ligattrib%)) end_if return
Ca passe à la compilation et l'EXE est généré. Il peut être lancé et la majeure partie du code est opérationnel. Il reste un problème d'appel des fonctions de DLL, certainement lié à ce que Jack a mentionné au sujet du passage de paramètres de chaînes de caractères, et j'attends la publication de la version que Jack vient d'annoncer pour corriger cela - ce ne sera plus très complique. Une remarque personnelle: à la compilation, on obtient un fichier de texte contenant les messages d'erreur. C'est bien, mais les messages n'ont pas forcément un lien très évident avec le source Panoramic. C'est sûrement dû au faut que le compilateur proprement-dit ne connaît pas Panoramic, mais seulement le langage intermédiaire utilisé pour cette phase. Faudra que je m'y habitue. | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Des nouvelles du compilateur ? Dim 23 Juin 2019 - 8:00 | |
| Ce sont les messages d'erreur de FreeBASIC. Pour les interpréter il faudrait avoir le code FreeBASIC généré. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Des nouvelles du compilateur ? Dim 23 Juin 2019 - 11:19 | |
| D'accord - mais comme on n'a pas accès au code source FreeBasic généré, ça reste plutôt abstrait. Certains messages permettent de retrouver la ligne Panoramic (ceux liés à un problème de syntaxe ou de type de données dans une expression), mais ceux liés à la structure même du programme restent mystérieux. J'ai dû procéder par tatonnements pour découvrir que le THEN n'existe pas dans la version compilée, tout comme des RETURN dans le corps d'un sousprogramme, et il y en a d'autres. Et encore... pour mon petit code d'essai (250 lignes), c'était relativement simple. J'imagine la difficulté que rencontre Pedro pour convertir des codes de plusieurs milliers de lignes...
C'est dommage. Le compilateur Panorami est certainement un outil puissant, mais en l'état, il me semble difficile à mettre en oeuvre. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Des nouvelles du compilateur ? Dim 23 Juin 2019 - 15:25 | |
| Bonjour Klaus ! N'oublie pas que la version que nous utilisons date d’août 2017. Soit pratiquement 2 ans. Je pense que Jack a pas mal avancé depuis ! Et c'est peut être aussi pour cette raison qu'il attends de mettre une version en ligne... | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Des nouvelles du compilateur ? Mar 25 Juin 2019 - 18:47 | |
| _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Contenu sponsorisé
| Sujet: Re: Des nouvelles du compilateur ? | |
| |
| | | | Des nouvelles du compilateur ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |