FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 4:52

» KGF_dll - nouvelles versions
par Klaus Hier à 23:05

» Mah-Jong européen new-look
par Minibug Hier à 22:31

» track_bar circulaire
par Klaus Hier à 13:54

» API Windows
par Klaus Hier à 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 COMPILATEUR V 0.9 beta 10 du 29 aout 2017

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3, 4, 5  Suivant
AuteurMessage
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Sam 8 Juil 2017 - 17:50

Une nouvelle version de travail du compilateur est disponible ici :

http://panoramic-language.pagesperso-orange.fr/PANORAMIC_COMPILER_EDITOR.zip

C'est une version béta, donc pas encore utilisable pour la production.

COMPILATEUR V 0.9 beta 6 du 3 août 2017, basée sur PANORAMIC V 0.9.28i12

A - Contraintes provisoires :

A.1 - le nom du fichier source doit avoir un nom de 64 caractères maximum.
A.2 - l'exécutable généré se trouve dans le répertoire de l'éditeur.

B - Différences avec l'interpréteur :

B.1 - CHAIN
CHAIN agit sur un exécutable et non sur un source.
Si le fichier désigné par CHAIN n’existe pas, il n’y a pas d’affichage d’erreur.

B.2 - PRINT n'accepte ni virgule, ni point virgule.
print "valeur =";a%
est à remplacer par
print "valeur ="+str$(a%)

B.3 - Fichiers TEXTE
FILE_WRITELN N,V n'accepte que des variables V$ chaine de caractères
FILE_READ N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READ$(N)
FILE_READLN N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READLN$(N)

B.4 -Taille d'un tableau défini par une variable
Définir la taille d'un tableau avec une autre variable n'est pas possible. La taille doit être un nombre.

B.5 - Définir des variables de même nom mais de type différent n'est pas accepté.
dim a%,a$,a n'est pas accepté

B.6 - Ce qui n'est pas implémenté :
NUMBER_CURRENT_LINE
VARIABLE()
LABEL()
TRACE_ON
TRACE_OFF
FREE
PEEK()
POKE
FILEBIN_BLOCK_READ
FILEBIN_BLOCK_WRITE

B.7 - Une erreur de débordement de tableau à l'exécution n'est pas signalée.

B.8 - INPUT fait apparaître une fenêtre de saisie.

B.9 - A$=123 n'est plus accepté, il faut mettre des guillemets : A$="123"

_________________
username : panoramic@jack-panoramic password : panoramic123


Dernière édition par Jack le Mar 29 Aoû 2017 - 20:32, édité 8 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Pedro Alvarez

avatar

Nombre de messages : 882
Date d'inscription : 19/01/2014

MessageSujet: Compilateur.   Sam 8 Juil 2017 - 18:22

Bonjour.

Je viens de réaliser un test de vitesse avec le code suivant, tout en sachant que le fichier contient 426.000 lignes:

Code:
dim a$, d$, f$, k%

d$=time$

dlist 1
file_load 1,"dico_français_allemand.txt"

for k%=1 to count(1)
    if mod(k%,1000)=0 then caption 0,str$(k%)
    a$=item_read$(1,k%)
next k%
f$=time$
message d$+":"+f$

Voici les résultats:

. Avec l'éditeur normal: 28 sec.
. Avec le compilateur: 0 sec.

Mais, déjà un problème avec le compilateur.
J'obtiens l'erreur 'More if than end_if' avec mon programme principal.
Alors que l'éditeur normal ne signalé aucune erreur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Sam 8 Juil 2017 - 21:36

Il semble que cette version du compilateur n’aime plus les SUB.
Le code suivant se compile parfaitement avec l’ancienne version 0.1 alpha du 18 mai 2014.


Code:

Init()
end
SUB Init()
    message "Hello !"
END_SUB

Mais, avec la nouvelle version

Erreur :
 

D’ailleurs, je n’ai pas pu compilé aucun code contenant la déclaration d’une SUB avec cette version, alors que tout marchait corectement avec l'ancienne Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Dim 9 Juil 2017 - 14:59

Avec la version du compilateur V 0.1 alpha 4 du 18 mai 2014, j’obtiens le

Le beau paysage:
 

Avec cette version : Not correct SUB name    Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Dim 9 Juil 2017 - 18:08

DLL_ON ===> ERREUR:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Dim 9 Juil 2017 - 19:59

Vu que je n'ai jamais tester le compilateur avant(pas trouvé de lien pour le télécharger), je n'étais pas certain que ce soit normal, je ne pensais pas qu'il étais aussi avançé en terme de développement.
Cette version m'intéresse, les limitations ne sont pas contraignantes à part la B.4 pour moi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10253
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Dim 9 Juil 2017 - 20:08

Citation :
DLL_ON ===> ERREUR:
Je réagis "de mémoire", et je retire tout si je me trompe. Mais, j'ai le vague souvenir que Jack avait dut un jour que le compilateur ne gérait pas les DLLs par DLL_ON... As-tu essayé les commandes LIBRARY et Co ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Dim 9 Juil 2017 - 20:35

Le bug sur DLL_ON a été corrigé dans la Version 0.1 alpha 3
Voir ici
Je viens de vérifié avec le code suivant.
La compilation est OK.
L’exécution est OK.

Code:

rem ============================================================================
rem             Afficher la boite de dialogue A propos
rem ============================================================================
label Apropos
dim titre$,msg$,about%
Button 10 : top 10,20 : left 10,500 : font_bold 10 : caption 10,"&A propos"
on_click 10,Apropos
end
rem ============================================================================
Apropos:
   dll_on "shell32"
   about% = dll_call4("ShellAboutA",handle(0), adr(titre$),adr(msg$),39)
   ' les nombres impaires 3,5,7,...31,33,... représentent l'icône dans le About
   dll_off
return
rem ============================================================================

Par contre, cette version ne reconnait ni SUB ni DLL_ON.
C’est à Jack de trancher.

J'ai des dizaines de codes qui marchaient parfaitement sur l'ancienne version, mais rien ne va plus avec la toute dernière ! Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Lun 10 Juil 2017 - 20:56

La version COMPILATEUR V 0.9 beta 4 du 10 juillet 2017 est disponible au téléchargement.

Elle corrige 2 bugs de la version beta 3, qui étaient dus à des erreurs de "copier/coller":

- il est possible d'utiliser les SUBs

- DLL_ON ne provoque plus d'erreur.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Pedro Alvarez

avatar

Nombre de messages : 882
Date d'inscription : 19/01/2014

MessageSujet: Compilateur.   Lun 10 Juil 2017 - 21:22

Bonsoir.

Jack, j'obtiens toujours l'erreur (6) More if than end_if.

Sous l'interpréteur, aucune erreur signalée.

Et avec le code suivant, Panoramic a cessé de fonctionner.

Code:
Init()
end
SUB Init()
    message "Hello !"
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Lun 10 Juil 2017 - 23:26

Moi c'est bizarre après les erreurs de la version du 8/7 j'ai supprimé la sub de mon programme, transformée en s/p, et j'obtiens les mêmes erreurs avec cette version-ci.
Le programme T2P.bas (conversion d'un fichier texte en pdf à l'aide d'une ressource externe texttopdf.exe):
Code:
LABEL Quit,Chf,Chs,Coltex,Vtx,Convert,Chpol,Chpol1,Aide
DIM f$,fr$,fnt$,ftmp$,sz%,nbc%,el%,i%,a$,rc$
DIM t2p$,nl%,fm$,q$
rc$ = CHR$(13)+CHR$(10)
ftmp$ = "C:\UTIL\Textetmp.txt"
t2p$ = "C:\UTIL\text2pdf.exe": ' utilitaire de conversion texte -> pdf
fm$ = "C:\UTIL\Textmp.txt"
q$ = CHR$(34)

BORDER_SMALL 0: WIDTH 0,360: HEIGHT 0,240: FONT_NAME 0,"Arial": FONT_BOLD 0
  COLOR 0,190,255,255
  CAPTION 0,"-   CONVERSION   FICHIER   TEXTE   EN   PDF   -"
ALPHA 1: TOP 1,2: CAPTION 1,"Fichier texte à convertir en PDF (ou                                ) :"
BUTTON 2: HEIGHT 2,18: WIDTH 2,90: LEFT 2,195: CAPTION 2,"'Coller' le texte"
  ON_CLICK 2,Coltex
EDIT 3: TOP 3,18: WIDTH 3,WIDTH_CLIENT(0)-60: FONT_NAME 3,"Consolas": ON_CLICK 3,Chf
BUTTON 8: WIDTH 8,50: TOP 8,TOP(3): LEFT 8,WIDTH(3)+5: CAPTION 8,"Voir"
    ON_CLICK 8,Vtx
MEMO 4: HIDE 4: WIDTH 4,1000
OPEN_DIALOG 5: FILTER 5,"Fichier texte|*.txt"
SAVE_DIALOG 6: FILTER 6,"Fichier PDF|*.pdf"
ALPHA 10: TOP 10,TOP(3)+29: CAPTION 10,"  Conversion en PDF  ": COLOR 10,255,255,0
a$ = "                                                      Taille        Colonnes   Espacement"
ALPHA 11: TOP 11,TOP(10)+12: CAPTION 11,a$
a$ = "        Police                              caractères     (1 ou 2)      lignes (pix.)"
ALPHA 17: TOP 17,TOP(11)+12: CAPTION 17,a$
EDIT 12: TOP 12,TOP(17)+15: WIDTH 12,150: TEXT 12,"Arial": ON_CLICK 12,Chpol
SPIN 13: TOP 13,TOP(12): LEFT 13,LEFT(12)+WIDTH(12)+5: WIDTH 13,50
    POSITION 13,10
SPIN 14: TOP 14,TOP(13): LEFT 14,LEFT(13)+WIDTH(13)+15: WIDTH 14,50
    MIN 14,1: MAX 14,2: POSITION 14,2
SPIN 15: TOP 15,TOP(14): LEFT 15,LEFT(14)+WIDTH(14)+15: WIDTH 15,50
    MIN 15,1: MAX 15,100: POSITION 15,12
ALPHA 20: TOP 20,TOP(15)+28: CAPTION 20,"Fichier pdf résultat :"
EDIT 21: TOP 21,TOP(20)+16: WIDTH 21,WIDTH(3): FONT_NAME 21,"Consolas"
    ON_CLICK 21,Chs
BUTTON 22: TOP 22,TOP(21): WIDTH 22,WIDTH(8): LEFT 22,LEFT(8): CAPTION 22,"Voir"
    ON_CLICK 22,Vtx
BUTTON 30: TOP 30,HEIGHT(0)-75: LEFT 30,WIDTH(0)/2-80: CAPTION 30,"Convertir"
    ON_CLICK 30,Convert
BUTTON 35: TOP 35,HEIGHT(0)-65: LEFT 35,5: WIDTH 35,35: CAPTION 35,"Aide"
    ON_CLICK 35,Aide
BUTTON 40: TOP 40,TOP(35): LEFT 40,WIDTH(0)-95: CAPTION 40,"Quitter"
    ON_CLICK 40,Quit
FORM  50: HIDE 50: BORDER_HIDE 50: TOP 50,TOP(12)+HEIGHT(12)+25: LEFT 50,8
    WIDTH 50,160: HEIGHT 50,340
LIST 51: PARENT 51,50: FULL_SPACE 51
   FONT_NAMES_LOAD 4
   FOR i% = 1 TO COUNT(4)
       a$ = ITEM_READ$(4,i%): IF LEFT$(a$,1)<>"@" THEN ITEM_ADD 51,a$
   NEXT i%
   CLEAR 4: ON_CLICK 51,Chpol1
DLIST 60
END
' ==============================================================================
' ==============================================================================
Quit:
  TERMINATE
' ==============================================================================
Chf:
  f$ = FILE_NAME$(5)
  IF f$ = "" THEN RETURN
  TEXT 3,f$
RETURN
' ==============================================================================
Chs:
  fr$ = FILE_NAME$(6)
  IF fr$ = "" THEN RETURN
  TEXT 21,fr$
RETURN
' ==============================================================================
Coltex:
  CLEAR 4: CLIPBOARD_PASTE 4
  FILE_OPEN_WRITE 1,ftmp$
      FOR i% = 1 TO COUNT(4): FILE_WRITELN 1,ITEM_READ$(4,i%): NEXT i%
  FILE_CLOSE 1
  TEXT 3,ftmp$
  f$ = ftmp$
RETURN
' ==============================================================================
Vtx:
  i% = NUMBER_CLICK
  IF i% = 8
      f$ = TEXT$(3)
      IF f$ = "" OR FILE_EXISTS(f$) = 0 THEN MESSAGE "Pas de fichier !": RETURN
      EXECUTE_WAIT "Notepad.exe "+f$
  ELSE
      fr$ = TEXT$(21)
      IF fr$ = "" OR FILE_EXISTS(fr$) = 0 THEN MESSAGE "Pas de fichier !": RETURN
      EXECUTE_WAIT fr$
  END_IF
RETURN
' ==============================================================================
Convert:
  f$ = TEXT$(3): ' Fichier txt d'origine
  fnt$ = TEXT$(12): ' Police
  sz% = POSITION(13): ' Taille caractères
  nbc% = POSITION(14): ' nombre de colonnes
  el% = POSITION(15): ' écartement lignes, en points (standard = 12)
  fr$ = TEXT$(21): IF FILE_EXISTS(fr$) = 1 THEN FILE_DELETE fr$
  CLEAR 60: FILE_LOAD 60,f$: nl% = COUNT(60): ' nb de lignes
  FILE_OPEN_WRITE 1,fm$
      FOR i% = 1 TO nl%: FILE_WRITELN 1,ITEM_READ$(60,i%): NEXT i%
      IF nbc% = 2
          FOR i% = 1 TO nl%: FILE_WRITELN 1,ITEM_READ$(60,i%): NEXT i%: ' autre colonne
      END_IF
  FILE_CLOSE 1
  IF el% = 0 THEN el% = 12: ' écartement lignes, en points
  a$ = "-f"+q$+fnt$+q$+" -s"+STR$(sz%)+" -A4 -I -l"+STR$(nl%)
  a$ = a$+" -"+STR$(nbc%)+" -v"+STR$(el%)
  EXECUTE_WAIT "cmd.exe /c "+t2p$+" "+a$+" "+fm$+" >"+fr$
  FILE_DELETE fm$  
  IF FILE_EXISTS(fr$) = 0
      MESSAGE "Erreur, fichier résultat non créé !"
  ELSE
      EXECUTE_WAIT fr$
  END_IF
RETURN
' ==============================================================================
Chpol:
  SHOW 50
RETURN
' ==============================================================================
Chpol1:
  TEXT 12,ITEM_INDEX$(51)
  HIDE 50
RETURN
' ==============================================================================
Aide:
  a$ = "-   CONVERSION   D'UN   FICHIER   TEXTE   EN   PDF   -"+rc$
  a$=a$+"     ================================"+rc$+rc$
  a$=a$+"1)  Cliquer pour choisir le fichier texte source"+rc$
  a$=a$+"   ou 'Coller' le texte depuis le presse-papier."+rc$
  a$=a$+"   Il est possible de 'Voir' ce texte dans Notepad, de le rectifier"+rc$
  a$=a$+"   (mise en forme, orthographe, etc.) éventuellement et de le"+rc$
  a$=a$+"   réécrire avant conversion."+rc$+rc$
  a$=a$+"2)  Conversion en PDF :"+rc$
  a$=a$+"   Choisir la police et la taille de caractères"+rc$
  a$=a$+"   Choisir le nombre de colonnes (1 colonne, ou 2 colonnes"+rc$
  a$=a$+"     identiques côte-à-côte sur une page A4)."+rc$
  a$=a$+"   Ajuster éventuellement l'espacement entre lignes, en pixels"+rc$
  a$=a$+"     (la valeur normale est de 12)."+rc$
  a$=a$+"   Donner le nom et le chemin du fichier pdf résultat (cliquer"+rc$
  a$=a$+"     la zone)."+rc$
  a$=a$+"Lancer la conversion (très rapide) : bouton 'Convertir'"+rc$
  a$=a$+"-> le résultat s'affiche automatiquement, pour vérification."+rc$+rc$
  a$=a$+"On peut forcer un aperçu du résultat : bouton 'Voir'"+rc$
  a$=a$+"En fonction du résultat, on peut modifier un ou plusieurs"+rc$
  a$=a$+"paramètres, puis relancer la conversion autant de fois que"+rc$
  a$=a$+"nécessaire."+rc$
  a$=a$+"            ---------------------------------------------------"+rc$
  a$=a$+"Ressources utilisées :"+rc$
  a$=a$+"- un répertoire C:\UTIL"+rc$
  a$=a$+"- le programme utilitaire text2pdf.exe dans C:\UTIL"+rc$
  MESSAGE a$
RETURN
' ==============================================================================
et les erreurs obtenues (error.txt)
T2P.bas(256) error 33: Expected 'END IF', found 'End'
End Sub
   ^
T2P.bas(257) error 58: Illegal inside functions, found 'Sub'
Sub L_CHPOL
   ^
T2P.bas(260) error 58: Illegal inside functions, found 'Sub'
Sub L_CHPOL1
   ^
T2P.bas(264) error 58: Illegal inside functions, found 'Sub'
Sub L_CHS
   ^
T2P.bas(268) error 58: Illegal inside functions, found 'Sub'
Sub L_COLTEX
   ^
T2P.bas(279) error 58: Illegal inside functions, found 'Sub'
Sub L_CONVERT
   ^
T2P.bas(313) error 58: Illegal inside functions, found 'Sub'
Sub L_QUIT
   ^
T2P.bas(318) error 58: Illegal inside functions, found 'Sub'
Sub L_VTX
   ^
T2P.bas(325) error 58: Illegal inside functions, found 'declare'
declare function WinMain _
^
T2P.bas(330) error 67: Array not dimensioned, before '('
end WinMain(GetModuleHandle(null),null,Command(),SW_NORMAL)
           ^
T2P.bas(330) error 123: Too many errors, exiting

C'est bizarre, une erreur à chaque sous-programme (il me parle de Sub pour chacun ??)
et une erreur 'found End i/o End_If' ?
Ce programme se lance sans erreur tel quel dans Panoramic_Editor.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Lun 10 Juil 2017 - 23:45

L’utilisation des SUBs : OK
DLL_ON : OK

Par contre DIM_LOCAL provoque une erreur





PS :
Chez moi, le code donné par Perdo se compile et s'exécute correctement.
Pas de "Panoramic a cessé ..."
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Ven 14 Juil 2017 - 17:00

@JL35:
Après analyse de ton source, le problème vient du fait que tu as 3 sous-programmes qui ont plusieurs fois "RETURN":
Il s'agit de Chf, Chs et Vtx.

par exemple:

Chf:
 f$ = FILE_NAME$(5)
 IF f$ = "" THEN RETURN
 TEXT 3,f$
RETURN

Je vais voir comment résoudre ce problème car je n'avais pas prévu ce cas de figure...

Il y a aussi un sous programme qui ne passe pas:

Quit:
 TERMINATE

Le compilateur est beaucoup plus strict que l'interpréteur, et un RETURN est OBLIGATOIRE.

Il y a une différence fondamentale entre les deux.
L'interpréteur va exécuter TERMINATE et va s'arrêter, peut importe qu'il y ait un RETURN ou pas ensuite.
Le compilateur lui, n'exécute pas, car son rôle est de traduire le source en langage machine. Lorsqu'il va chercher à traduire le sous-programme Quit en langage machine, il ne trouvera JAMAIS où il se termine. Il va rencontrer un autre sous-programme au lieu de RETURN et va alors déclencher une erreur.

Je vais afficher des libellés d'erreur plus explicites dans ce cas, du type "début de sous-programme au lieu de RETURN"

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
JL35



Nombre de messages : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Ven 14 Juil 2017 - 19:56

Merci Jack d'avoir regardé.
Et je reconnais que mon code n'est pas très structuré avec les RETURN prématurés au milieu des S/P, je vais corriger ça.
De même que le Terminate non suivi de Return, je comprends bien que c'est dans un sous programme, donc il doit y avoir un Return. Je le fais parfois, mais pas toujours (puisque Panoramic_Editor est tolérant...)

Donc tout ça n'est pas bloquant et il suffit de le savoir et de coder en conséquence (de façon logique...).
Merci en tout cas.

PS
J'ai corrigé le source en fonction des remarques ci-dessus (et aussi ôté une utilisation de WIDTH_CLIENT, qui n'est pas reconnu), et j'obtiens une compilation sans erreur.
Je remarque que l'exécutable produit par le compilateur a environ la même taille (~2,2 M) que celui produit par Panoramic_Editor, je pensais qu'il serait bien plus compact (sans l'interpréteur) ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Ven 14 Juil 2017 - 21:36

C'est peut-être un peu hors sujet (quoique), mais ma motivation est celle-ci:
- j'ai écrit ce petit programme pour ma fille qui est enseignante et qui a besoin de convertir de petits textes (des chansons) en pdf, sur une ou deux colonnes.
- je lui ai envoyé l'exécutable en pièce jointe: elle n'a jamais reçu l'email.
- je suis allé chez elle avec le programme sur une clé, quand j'ai voulu le copier sur son pc, Windows Defender (Windows 10) est intervenu en disant en substance "Programme dangereux etc.), et il l'a carrément effacé de ma clé sans rien me demander !!! Et c'est donc Defender qui avait effacé l'email.
- J'avais eu le cas chez moi où Windows Defender m'avait effacé plusieurs exécutables créés avec Panoramic_Editor. Depuis je suis repassé sous Avast et je n'ai plus ce problème.

Je me disais qu'avec le Compilateur, peut-être que Defender ne trouverait pas de raison de supprimer le programme ? mais j'ai des doutes...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 15 Juil 2017 - 10:52

J' ai rencontré une erreur avec Read qui ne veut pas lire des datas $.
Comme je n' ai pas trop suivi  Embarassed, cela a peut être déjà été rapporté et expliqué.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Sam 15 Juil 2017 - 12:22

Bonjour à tous.

@Yannick,

Jack a écrit:
B.3 - Fichiers TEXTE
FILE_WRITELN N,V n'accepte que des variables V$ chaine de caractères
FILE_READ N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READ$(N)
FILE_READLN N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READLN$(N)

C'est peut-être ton problème ?

C'est tout au début de ce post.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 15 Juil 2017 - 13:44

Non Jean Claude,

Ces fonctions sont pour la lecture/écriture d' un fichier.
Mon souci concerne la lecture de DATA avec READ V$ qui renvoie une erreur V$ n' est pas un entier valide quand on lit un String.
donc cela signifie pas de : Data "xxxxx" pour le compilateur.

Code:
dim i%,a$,titre$

titre$ = "Mon appli "
caption 0,titre$

for i%=1 to 5
  read a$
  caption 0,titre$+a$
next i%

end

data "Data 1","Data 2","Data 3","Data 4","Data 5"

De même que si compilateur attend un RETURN après un LABEL, pour RESTORE_LABEL il faudra que les DATA soient entre un LABEL et un RETURN pour ne pas avoir d' erreur.

Une étiquette de renvoie pour un GOTO ne fonctionnera plus non plus.
( à moins que le renvoi se fasse vers un sous programme auquel cas il est préférable d' utiliser GOSUB)

D' ailleurs, je vais me permettre de faire suggestion.
Peut être serait il souhaitable de différencier un LABEL qui est l' étiquette d' un sous programme
d' une ancre qui n' est qu' un marqueur de position.

Un LABEL serait toujours suivit d' un RETURN pour marquer la fin d' un sous programme
alors qu' une ancre serait une simple annotation, ex : *Mon_Ancre ou !Mon_Ancre


Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Sam 15 Juil 2017 - 14:48

Je confirme le problème de DATA soulevé par Yannick.

Le code suivant se compile parfaitement par la version 0.1 alpha du 18 mai 2014.

Code:

dim i%,t$
for i% = 1 to 7
    read t$ : print t$
next i%

data "Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Manchedi"


Pour la version actuelle :



Edit : J'aime bien le manchedi !!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 15 Juil 2017 - 15:48

Merci pour la confirmation Papydall.

affraid Voilà une perle !


la dernière lettre de mon dossier s' est transformé de "t" en "4Twisted Evil
JJN4 donnerait il un coup de main à Jack pour le compilateur ?...
...en tout cas un alien s' est glissé là.
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10253
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   Sam 15 Juil 2017 - 15:59

Tiens, elles sont bizarres, ces 3 lignes séectionnées... Pourquoi enlèves-tu en éventuel backslash, juste pour le remettre ? Fais plutôt:
Code:
if right$(Path$,1)<>"\" then Path$ = Path$ + "\"
à moins que je n'aie pas tout compris...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 15 Juil 2017 - 16:17

@ Klaus,

C' est pour éviter de me retrouver avec un double backslash lorsque le disque ou plutôt la racine est une clé usb.
Cela m' est arrivé plusieurs fois et après les chemins sont invalides.
Depuis, je le fais systématiquement.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 15 Juil 2017 - 16:22

Une autre proposition pour le compilateur.

Une petite sécurité pour être sûr que le fichier à compiler est un fichier sauvegardé.
Sinon il y a un plantage du compilateur et il est impossible de savoir quel processus est à fermer
pour ne pas avoir à redémarrer l' ordi.
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 15 Juil 2017 - 17:20

Bizarre, bizarre, vous avez dit bizarre...
...comme c' est étrange.
Le coupable:
 

le rapport :
Code:
Nouveau_1.bas(156) error 10: Expected '=', found '('
NEWFILELIST()
            ^

un sous programme qui ne lance pas une procédure  scratch Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

Nombre de messages : 882
Date d'inscription : 19/01/2014

MessageSujet: Le compilateur.   Dim 30 Juil 2017 - 18:47

Bonjour.

@Jack.

J'aimerais savoir si tu avais pu avancer sur le compilateur, au vu des derniers messages d'erreur ci-dessus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   

Revenir en haut Aller en bas
 
COMPILATEUR V 0.9 beta 10 du 29 aout 2017
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 5Aller à la page : 1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» compilateur
» PoiLoader 2.4.0 beta qui gère les wav (mais en anglais)
» nouveaux pilote GEFORCE Beta 306.02
» nouveaux pilote GEFORCE Beta 306.63
» iOS 7 beta 3 : optimisations et révélations sur un prochain iPhone

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC Le compilateur :: Le Compilateur-
Sauter vers: