FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Aide-mémoire des mots-clés Panoramic
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Robert Darville Aujourd'hui à 11:46

» demande explication KGF pour imprimer en mm
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar lepetitmarocain Aujourd'hui à 10:28

» Aide-mémoire des mots-clés Panoramic
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Robert Darville Hier à 15:47

» Je ne comprend pas pourquoi la largeur de la scene 3d change
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Klaus Dim 3 Mar 2024 - 9:59

» Tangram-Toukaré
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar jjn4 Mer 28 Fév 2024 - 18:12

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar jjn4 Mer 28 Fév 2024 - 18:09

» KGF_dll - nouvelles versions
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Klaus Mer 28 Fév 2024 - 17:01

» Mes souhaits d'amélioration de Panoramic.
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Pedro Lun 26 Fév 2024 - 18:12

» Petit passage furtif
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar Yannick Lun 26 Fév 2024 - 13:47

» Testez-votre-QI
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar jjn4 Dim 25 Fév 2024 - 17:12

» Utilisation d'Élip
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar jjn4 Sam 24 Fév 2024 - 18:33

» Récapitulatif ludothèque panoramic jjn4
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar jjn4 Sam 24 Fév 2024 - 18:11

» Générateur de mots de passe
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Emptypar mindstorm Mar 20 Fév 2024 - 20:09

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mars 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier
Le Deal du moment :
Coffret dresseur d’élite ETB ...
Voir le deal
56.90 €

 

 COMPILATEUR V 0.9 beta 10 du 29 aout 2017

Aller en bas 
+14
Mike
bignono
Jicehel
Froggy One
jean_debord
Marc
Jean Claude
Yannick
JL35
Klaus
silverman
papydall
Pedro
Jack
18 participants
Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
AuteurMessage
Ouf_ca_passe




Nombre de messages : 285
Age : 75
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: RESTORE LABEL   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 10:13

Bonjour les Panoramicien(ne)s

Je ne comprends pas pourquoi vous terminez votre liste de datas à chaque fois par un RETURN.

Nous ne somme pas dans une procédure mais dans une lecture de DATAs avec un pointeur qui avance et, tant pis, si vous avez mal calculé combien il y en avait.

Cordialement
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 12:34

l' absence de return avec un label: risque de retourner une erreur à la compilation.
label: étant aussi le début d' un sous programme.
A moins que Jack ait corrigé cela Wink .
Revenir en haut Aller en bas
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 12:45

Ouf etc. a écrit:
Je ne comprends pas pourquoi vous terminez votre liste de datas à chaque fois par un RETURN.

En effet les deux RETURN dans le code de Annick ne seront jamais exécutés par le programme.

Quand il 'READ"  fin, le programme quitte la boucle WHILE pour exécuter l'instruction suivante et il trouve RESTORE_LABEL. Il se branche alors à la ligne qui suit ce RESTORE_LABEL; il "READ" les DATA jusqu'à "fin" où il se termine.
Ni le 1er, ni le 2ème RETURN ne sont exécutés.

Pour vous en convaincre, mettez avant ou après ce RETURN, un texte quelconque qui n'a rien à voir avec Panoramic : il n'y aura pas de problème.
Cette remarque concerne l'interpréteur, pas le compilateur!
Pour le compilateur, vous pouvez supprimer purement et simplement le RETURN sans rien y mettre à sa place.

Code:

dim a$
label Voitures,Animaux

list 1
full_space 1

restore_label Animaux
item_add 1,""
item_add 1,"Animaux"
item_add 1,""
read a$
if a$<>"fin" : item_add 1,a$ : end_if
while a$<>"fin"
  read a$
  if a$<>"fin" : item_add 1,a$ : end_if
end_while

pause 2000

restore_label Voitures
item_add 1,""
item_add 1,"Voitures"
item_add 1,""
read a$
if a$<>"fin" : item_add 1,a$ : end_if
while a$<>"fin"
  read a$
  if a$<>"fin" : item_add 1,a$ : end_if
end_while
 
end


Voitures:
Data "Peugeot","Citroën","Renault","Fiat","BMW","fin"
Le RETURN ici est en trop.
Ces lignes de codes ne seront jamais exécutées.
C’est papydall qui le dit
Mais Papydall peut se tromper !
Animaux:
Data "Chien","Coq","Cheval","Mouton","Renard","fin"
RETURN ou non RETURN, ça m’est équilatéralement isocèle !!!


Dernière édition par papydall le Ven 18 Aoû 2017 - 13:04, édité 3 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 12:49

Yannick a écrit:
l' absence de return avec un label: risque de retourner une erreur à la compilation.
label: étant aussi le début d' un sous programme.

Attention : On n'est pas dans un sous-programme appelé par LABEL.
Nous ne sommes même dans une structure LABEL.

RESTORE_LABEL est très différent d'un simple LABEL.

Les RETURN dans ce cas sont en trop, mais ils ne provoquent pas d'erreur, car le programme ne les atteindra jamais.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 13:06

@ Papydall,

Si l' absence de return ne provoque pas/plus d' erreur à la compilation
c' est que Jack a du intervenir car il y a une ou deux versions cela provoquait 
un plantage et une note dans le fichier texte des erreurs.
Wink

Donc si cette absence ne provoque plus de plantage, tant mieux.
Mais, apparemment (car rien n' est moins sûr),  il y a un souci avec restore_label.

Ceci dit, je préfère voir une résolution du pb de timer_on dans la prochaine version.
Ce souci est plus gênant pour la compilation des jeux avec une limite de temps.
Je n' ai pas trouvé de solution palliative au timer.
Laughing
Revenir en haut Aller en bas
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 13:20

Parfaitement exact !
Il y a un problème avec RESTORE_LABEl et aussi avec TIMER.
C’est gênant pour nous, mais Jack y consacre du temps pour y remédier.
On prend notre mal en patience ; mais il sera beaucoup mieux si l’on prendrait notre bien en urgence. tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 13:45

@ Papydall,

Ce n' est pas de l' impatience, juste un ordre de priorité à mes yeux.
Et, je ne fais que ce que Jack demandait il y a peu, des retours sur le compilateur.
Là, je dois avouer que je l' ai servi et même avec du rab.
Laughing

Je pense que Pedro à réagit sur un coup de sang et sans vouloir blesser il a été disons
maladroit dans ces propos.
Je ne lui jetterai pas la première pierre car moi aussi j' ai péché par le passé.
Amen.
lol!
Revenir en haut Aller en bas
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 22:28

Les RETURN de l'exemple sont inutiles. Un RETURN n'est utile que pour terminer un sous-programme et non pas parce qu'il y a un LABEL.

RESTORE_LABEL fonctionne très bien quand les lignes DATA sont placées en tête du programme.
J'ai repris ton exemple avec les DATA en tête:

Code:
dim a$
label Voitures,Animaux

Voitures:
Data "Peugeot","Citroën","Renault","Fiat","BMW","fin"
Animaux:
Data "Chien","Coq","Cheval","Mouton","Renard","fin"

list 1
full_space 1

restore_label ANIMAUX
item_add 1,""
item_add 1,"Animaux"
item_add 1,""
read a$
if a$<>"fin" : item_add 1,a$ : end_if
while a$<>"fin"
  read a$
  if a$<>"fin" : item_add 1,a$ : end_if
end_while

pause 2000

restore_label VOITURES
item_add 1,""
item_add 1,"Voitures"
item_add 1,""
read a$
if a$<>"fin" : item_add 1,a$ : end_if
while a$<>"fin"
  read a$
  if a$<>"fin" : item_add 1,a$ : end_if
end_while
 
end

Cependant, je reconnais qu'il y a un problème quand les lignes DATA sont placées à la fin et le le corrigerai.

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 22:56

Connaissant l'impatience des panoramiciens, je sors la version V 0.9 beta 8 du 18 aout 2017, même si tous les problèmes identifiés n'ont pas encore été résolus.

Cette version est disponible ici :

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

Elle corrige les problèmes suivants identifiés sur le forum :

N°9 : numéro de ligne erroné quand détection d'une ligne IF sans END_IF correspondant
N°14 : PRINT_LOCATE
N°15 : TIMER_ON
N°16 : ON_CLOSE
N°17 : ITEM_SELECT

Il reste à corriger:
- un bug décrit sur le forum : le RESTORE_LABEL qui ne fonctionne pas lorsque les lignes DATA sont placées à la fin du source,
- des problèmes identifiés lors de mes propres tests, sur les commandes:
SNAPSHOT
EXECUTE_WAIT
TRIGGER_KEY_UP
CLIPBOARD_PASTE
TRIGGER_KEY_DOWN

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Webdav username : panoramic@jack-panoramic password : panoramic123


Dernière édition par Jack le Lun 28 Aoû 2017 - 13:38, édité 2 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 23:00

@Jack,

Placer à la fin est une convenance personnel pour ne pas les avoirs au milieu du prgramme
pendant que je code.
Si cela fonctionne en les plaçant en tête, je m' adapterai.
Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 23:04

cheers c' est déjà un grand pas en avant !

Bravo et merci.
Je télécharge dès que je réussi à reprendre possession de ma bécane à mon Minecrafter de fils.
lol!
Revenir en haut Aller en bas
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 23:21

J’ai téléchargé, j’ai testé et c’est OK.
Merci Jack.

Code:

rem ============================================================================
rem         Poème  sur le nombre PI
rem ============================================================================
dim phrase$,mot$,p,rep$
memo 10 : top 10,100 : left 10,50 : font_bold 10 : font_name 10,"tahoma"
font_size 10,14 : font_color 10,0,0,255 : width 10,400 : height 10,200
read phrase$
while phrase$ <> "FIN"
     repeat
       p =  instr(phrase$," ")
       if p > 0
          mot$ = mid$(phrase$,1,p-1)
          rep$ = rep$ + str$(len(mot$))
          phrase$ = mid$(phrase$,p+1,len(phrase$))
       end_if
     until len(phrase$) = 0
     read phrase$  
end_while
rep$ = "PI = " + chr$(13)  + insert$(rep$,".",2)
item_add 10,rep$
rem ============================================================================
data "Que j aime à faire apprendre un nombre utile aux sages "
data "Glorieux Archimède artiste ingénieux "
data "Toi qui de Syracuse aime encore la gloire "
data "Soit ton nom conservé par de savants grimoires "
data "Jadis mystérieux un problème bloquait "
data "Tout l admirable procédé l'œuvre grandiose "
data "que Pythagore découvrit aux anciens grecs "
data "O quadrature vieux tourment du philosophe "
data "Insoluble rondeur trop longtemps vous avez "
data "Défié Pythagore et ses imitateurs "
data "Comment intégrer l'espace bien circulaire "
data "Former un triangle auquel il équivaudra "
data "Nouvelle invention Archimède inscrira "
data "Dedans un hexagone appréciera son aire "
data "Fonction du rayon Pas trop ne s'y tiendra "
data "Dédoublera chaque élément antérieur "
data "Toujours de l'orbe calculée approchera "
data "Définira limite enfin l'arc le limiteur "
data "De cet inquiétant cercle ennemi trop rebelle "
data "Professeur enseignez son problème avec zèle "
data "FIN"
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyVen 18 Aoû 2017 - 23:40

Le code suivant se compile et s’exécute parfaitement.
Il est sensé exécuter une boucle (Loop1()). On en sort avec l’appui de la touche <ESC>.
Si l’utilisateur respecte le code, tout va bien.
Seulement je cherche parfois les petites bêtes volontairement ou involontairement.
Si, au lieu de <ESC> je clique dans le PICTURE, j’obtiens

ceci:


Voici le code

Code:

rem ============================================================================
rem         Animation de courbe de Bézier cubique
rem ============================================================================

Init()
CreateInitpoint()
Loop1()

end
rem ============================================================================
SUB Init()
    dim row(4,2), bezier(101,2)
    dim p1,p2,p3,jp1,jp2,jp3,incp1,incp2,incp3,q1,q2,q3,jq1,jq2,jq3,incq1,incq2,incq3
    p1 = 4 : p2 = 6 : p3 = 5  : jp1 = 0 : jp2 = 0 : jp3 = 0
    incp1 = 0.3 : incp2 = 0.3 : incp3 = 0.3
    q1 = 3 : q2 = 7 : q3 = 4  : jq1 = 0 : jq2 = 0 : jq3 = 0
    incq1 = 0.3 : incq2 = 0.3 : incq3 = 0.3
    width 0,700 : height 0,700: top 0,(screen_y - width(0))/2 : left 0,(screen_x -height(0))/2
    picture 10  : full_space 10 : 2d_target_is 10 : hide 10
    image 20
    caption 0,"<ESC> pour arrêter ........"
END_SUB
rem ============================================================================
' D'abord nous créons 4 points de contrôle espacés également.
' Nous essayons de les mettre plus ou moins dans le même plan horizontal avec
' une compensation aléatoire du point initial.
rem ============================================================================
SUB CreateInitpoint()
    row(0,0) = 300                 : row(0,1) = 300
    row(1,0) = 300 + (rnd(060)-30) : row(1,1) = 270 + (rnd(060)-30)
    row(2,0) = 300 + (rnd(100)-50) : row(2,1) = 110 + (rnd(100)-50)
    row(3,0) = 300 - (rnd(150)-75) : row(3,1) = 200 + (rnd(150)-75)
END_SUB
rem ============================================================================
SUB Loop1()
    repeat
         CreateInterpolated() : ' Interpoler la courbe de Bézier
         DrawCircleOnPath()   : ' Placer des cercles sur la courbe de Bézier
         JigglePoints()       : ' Changer légèrement les 4 points initiaux
         image_recopy()       : ' Pour un affichage sans clignotement
    until scancode = 27
    terminate
END_SUB
rem ============================================================================
' Interpoler la courbe
' Ici nous créons un ensemble à 100 éléments de points interpolés.
' Ceux-ci sont sur la courbe (spline) de Bézier
SUB CreateInterpolated()
    dim_local i,ix,x1,x2,x3,x4,y1,y2,y3,y4
    for i = 0 to 100
        ix = i/100
        x1 = (1-ix)*(1-ix)*(1-ix)*row(0,0) : y1 = (1-ix)*(1-ix)*(1-ix)*row(0,1)
        x2 = 3*(1-ix)*(1-ix)*ix*row(1,0)   : y2 = 3*(1-ix)*(1-ix)*ix*row(1,1)
        x3 = 3*(1-ix)*ix*ix*row(2,0)       : y3 = 3*(1-ix)*ix*ix*row(2,1)
        x4 = ix*ix*ix*row(3,0)             : y4 = ix*ix*ix*row(3,1)
        bezier(i,0) = x1+x2+x3+x4          : bezier(i,1) = y1+y2+y3+y4
    next i
END_SUB
rem ============================================================================
' Créez les cercles de taille diminuante et le miroir
' Pour tous les points sur la courbe de Bézier définie par bezier()
SUB DrawCircleOnPath()
    dim_local i, outer,inner,surf,surf2
    cls : ' Mettre le CLS en REM pour voir des belles images!
    outer = 38
    for i = 0 to 100
        2d_fill_color 255,0,0 : 2d_pen_color 255,0,0
        outer = outer - 0.34 : surf  = 420 + (260-bezier(i,1))
        if surf > 350
           2d_circle bezier(i,0),420+(260-bezier(i,1)),outer
           2d_circle 420+(260-bezier(i,0)),420+(260-bezier(i,1)),outer
        end_if
        if outer < 2
            2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 : inner = 1
        else
            2d_fill_color 164,164,164
            2d_pen_color 164,164,164 : inner = outer -1
        end_if
        if surf > 350
           2d_circle bezier(i,0),420+(260-bezier(i,1)),outer
           2d_circle 420+(260-bezier(i,0)),420+(260-bezier(i,1)),outer
        end_if
    next i
    outer = 38
    for i = 0 to 100
        2d_fill_color 255,0,0 : 2d_pen_color 255,0,0
        outer = outer - 0.34 : surf2 = bezier(i,1)
        if surf2 < 350
           2d_circle bezier(i,0),bezier(i,1),outer
           2d_circle 420+(260-bezier(i,0)),bezier(i,1),outer
        end_if
        if outer < 2
           2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 : inner = 1
        else
           2d_fill_color 255,255,255 : 2d_pen_color 255,255,255 : inner = outer -1
        end_if
        if surf2 < 350
           2d_circle bezier(i,0),bezier(i,1),inner
           2d_circle 420+(260-bezier(i,0)),bezier(i,1),inner
        end_if
    next i
END_SUB
rem ============================================================================
' Compenser les points de contrôle pour donner une impression de mouvement
SUB JigglePoints()
    row(0,0) = 300 : row(0,1) = 300
    if jp1 > p1   then incp1 = -0.2
    if jp1 < 0-p1 then incp1 =  0.2
    if jp2 > p2   then incp2 = -0.2
    if jp2 < 0-p2 then incp2 =  0.2
    if jp3 > p3   then incp3 = -0.2
    if jp3 < 0-p3 then incp3 =  0.2

    jp1 = jp1 + incp1 : jp2  = jp2 + incp2 : jp3 = jp3 + incp3 / 2
    if jq1 > q1   then incq1 = -0.2
    if jq1 < 0-q1 then incq1 =  0.2
    if jq2 > q2   then incq2 = -0.2
    if jq2 < 0-q2 then incq2 =  0.2
    if jq3 > q3   then incq3 = -0.2
    if jq3 < 0-q3 then incq3 =  0.2

    jq1 = jq1 + incq1 : jq2 = jq2 + incq2 : jq3 = jq3 + incq3 / 2
    row(0,0) = row(0,0) - jp3 : row(0,1) = row(0,1) - jq3
    row(1,0) = row(1,0) - jp1 : row(1,1) = row(1,1) - jq1
    row(2,0) = row(2,0) - jp2 : row(2,1) = row(2,1) - jq2
    row(3,0) = row(3,0) - jp3 : row(3,1) = row(3,1) - jq3
END_SUB
rem ============================================================================
SUB image_recopy()
   2d_target_is 10 : 2d_image_copy 20,0,0,width(10),height(10)
   2d_target_is 0  : 2d_image_paste 20,left(10),top(10)
   2d_target_is 10
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptySam 19 Aoû 2017 - 0:22

Problème avec SCANCODE

Le code suivant, affiche 1 avec l'interpréteur en réponse du clic sur le bouton.
Mais avec le compilateur

Spoiler:

Code:

label clic
button 10 : caption 10,"Cliquer" : on_click 10,clic
end
Clic:
   message scancode
return
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptySam 19 Aoû 2017 - 2:16

Avec le compilateur, j' aurai plutôt écrit :
Message str$(scancode)
Pour ne pas brusquer la bête...
lol!
Revenir en haut Aller en bas
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptySam 19 Aoû 2017 - 3:30

Tu as parfaitement raison Yannick.
Avec str$, il n'y a plus d'erreur et la réponse est bien 1.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Pedro

Pedro


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Le compilateur.   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptySam 19 Aoû 2017 - 6:10

Bonjour à tous.

@Jack.

Le code suivant provoque l'erreur 'if without corresponding end_if.
L'erreur est signalée à la 1ère ligne de ce code.

Cette portion de code fait partie intégrante de mon programme général, et l'interpréteur ne signale aucune erreur.

Peut-être y a-t-il un problème avec le 'and' de cette même ligne ?


Code:
            if instr("*son*sa*ses*leur*leurs*","*"+francais$+"*")=-1 and instr(francais$,"sien")=0
                 chaine2$="Le pronom possessif est du même genre que le nom qu'il qualifie."+double_crlf$
                 chaine2$=chaine2$+"Dans la phrase '"+phrase$+"', "+double_crlf$
                 chaine2$=chaine2$+"Le pronom possessif '"+francais$+"' doit être accordé"+double_crlf$
                 chaine2$=chaine2$+"de la même façon que le nom polonais correspondant."+double_crlf$
                 chaine2$=chaine2$+"Indiquez le genre de ce nom polonais."+double_crlf$
                 chaine2$=chaine2$+"Annuler: ne pas traduire ici."+double_crlf$

                 chaine3$=""
                 for kk%=0 to 5
                     chaine3$=chaine3$+type_adjectifs$(kk%)+crlf$
                 next kk%
                 if genre_adjectif$="" then genre_adjectif$=message_input$("Accord du pronom possessif '"+francais$+"'.",chaine2$+chaine3$,"")

                 polonais$=""

                 if instr("*mon*ma*mes*le mien*la mienne*","*"+francais$+"*")>0
                    if genre_adjectif$="masculin singulier" then polonais$="mój"
                    if genre_adjectif$="féminin singulier" then polonais$="moja"
                    if genre_adjectif$="féminin pluriel" then polonais$="moje"
                    if left$(genre_adjectif$,6)="neutre" then polonais$="moje"
                 end_if

                 if instr("*ton*ta*tes*le tien*la tienne*","*"+francais$+"*")>0
                    if genre_adjectif$="masculin singulier" then polonais$="twój"
                    if genre_adjectif$="féminin singulier" then polonais$="twoja"
                    if genre_adjectif$="féminin pluriel" then polonais$="twoje"
                    if left$(genre_adjectif$,6)="neutre" then polonais$="twoje"
                 end_if

                 if instr("*notre*nos*le nôtre*la nôtre*","*"+francais$+"*")>0
                    if genre_adjectif$="masculin singulier" then polonais$="nasz"
                    if genre_adjectif$="féminin singulier" then polonais$="nasza"
                    if genre_adjectif$="neutre singulier" then polonais$="nasze"
                 end_if

                 if instr("*le vôtre*la vôtre*","*"+francais$+"*")>0
                    if genre_adjectif$="masculin singulier" then polonais$="wasz"
                    if genre_adjectif$="féminin singulier" then polonais$="wasza"
                    if genre_adjectif$="neutre singulier" then polonais$="wasze"
                 end_if

                 ' Nominatif.
                 if instr("*mes*tes*ses*nos*vos*","*"+francais+"*")>0
                    chaine2$="Les possessifs masculins personnels forment leur pluriel en '-i'."+double_crlf$
                    chaine2$=chaine2$+"Les autres possessifs forment leur pluriel en '-e'."+double_crlf$
                    chaine3$="Le mot '"+francais$+"' est-il lié à un nom masculin personnel polonais ?"+double_crlf$

                    chaine4$="Dans la phrase '"+phrase$+"',"+double_crlf$

                    chaine5$=""
                    if genre_adjectif$<>"" then chaine5$="Le mot suivant '"+francais$+"' est au "+genre_adjectif$+"."+double_crlf$

                    chaine6$="Au pluriel, on distingue le masculin-personnel (ex: 'des élèves') du masculin-impersonnel," +crlf$
                    chaine6$=chaine6$+"qui comprend le masculin-animal et le masculin-inanimé (ex: 'des chats' ou 'des parcs')."+double_crlf$

                    message(1,0,"Pluriel des possessifs polonais."+double_crlf$+chaine2$+chaine4$+chaine5$+chaine6$+chaine3$)

                    if res%=2
                       if francais$="mes" then polonais$="moi"
                       if francais$="tes" then polonais$="twoi
                       if francais$="ses" then polonais$="swoi"
                       if francais$="nos" then polonais$="nasi"
                       if francais$="vos" then polonais$="wasi"
                          else
                       if francais$="mes" then polonais$="moje"
                       if francais$="tes" then polonais$="twoje"
                       if francais$="ses" then polonais$="swoje"
                       if francais$="nos" then polonais$="nasze"
                       if francais$="vos" then polonais$="wasze"
                    end_if

                 end_if

                 ' type={"mots autres que noms et adjectifs","ms","mp","fs","fp","adjms","adjfs","adjmp","adjfp"}
                 if genre_adjectif$="masculin singulier" then type_mot$="adjms"
                 if genre_adjectif$="masculin pluriel" then type_mot$="adjmp"
                 if genre_adjectif$="féminin singulier" then type_mot$="adjfs"
                 if genre_adjectif$="féminin pluriel" then type_mot$="adjfp"
                 if genre_adjectif$="neutre singulier" then type_mot$="adjns"
                 if genre_adjectif$="neutre pluriel" then type_mot$="adjnp"

                 if polonais$<>""
                    traduction_mot$=polonais$
                    decliner()
                  end_if
              end_if
Revenir en haut Aller en bas
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptySam 19 Aoû 2017 - 16:29

@Pedro Alvarez:

Je viens d'examiner ton code.
Le AND ne pose pas problème et la ligne indiquée en erreur est correcte.

En fait, la ligne qui pose problème est la ligne 61:
Code:
if francais$="tes" then polonais$="twoi
car l'affectation de twoi à polonais$ n'est pas terminée par " : polonais$="twoi"
Cela provoque un déraillement de l'analyseur. Il ne considère pas que cette ligne IF soit terminée et c'est ce qui provoque à tord le "IF without END_IF" sur le bloc supérieur de IF.
La correction de l'analyseur va me prendre quelques jours...

Pour l'interpréteur, tout te semble correct car il n'exécute sans doute pas cette ligne. Le jour où il l'exécutera, il trouvera l'erreur. Pour le compilateur, tout doit être correct avant de générer le code.

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Pedro

Pedro


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Le compilateur.   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptySam 19 Aoû 2017 - 18:54

Bonsoir à tous.

@Jack.

Merci d'avoir analysé rapidement mon code.
Effectivement, la ligne incriminée comportait une erreur, mais, vu que l'interpréteur ne l'exécutait pas, cette erreur ne m'avait pas été signalée.

Je continue mes investigations.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyLun 21 Aoû 2017 - 1:35

Là y a un blême.

j' ai lancé la compilation d' un programme.
tout s' est bien passé, pas de message d' erreur.
compilation ok
puis j' ai fermé le compilateur.

Pb 1
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Captur24

Pb 2
je suis allé chercher mon *.exe dans son dossier et là... affraid
...pas de *.exe. Suspect

un seul fichier : "monlogo.res"
et COMPILER.exe et PANORAMIC.exe sont encore là... Suspect Suspect
Revenir en haut Aller en bas
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyLun 21 Aoû 2017 - 4:01

@Jack

ERREUR:

OK:

Je sais parfaitement bien qu'aucune personne sensée n'essaye de compiler un tel code composé uniquement d'instructions non exécutables, mais je trouve que le comportement du compilateur est somme toute assez bizarre : il ne peut pas accéder au fichier ! Pourquoi ?
Et quel est cet autre processus qui utilise mon fichier ? Embarassed
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyLun 28 Aoû 2017 - 21:22

Voici la version V 0.9 beta 9 du 28 aout 2017, basée sur PANORAMIC V 0.9.28i12.

Elle est disponible ici :

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

Cette version corrige les problèmes suivants identifiés sur le forum :

N°19 : libellé d'erreur dans des IF imbriqués
N°20 : plantage à l'appel d'un SUB

Il reste à corriger:
N° 18 : RESTORE_LABEL avec DATA à la fin
- un bug sur EXECUTE_WAIT

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Pedro

Pedro


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: COMPILATEUR V 0.9 beta 9 du 28 aout 2017.   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyMar 29 Aoû 2017 - 8:20

Bonjour.

@Jack.

Je viens de télécharger la dernière version du compilateur.
J'ai ensuite testé la compilation de mon programme principal, et là, je m'aperçois que ce fameux compilateur ne compilait plus rien du tout.

J'ai donc patienté plus de 5 minutes, on ne sait jamais, et toujours pas de résultat.
Aucune fenêtre DOS habituelle ne s'ouvre.

Merci de la suite.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyMar 29 Aoû 2017 - 11:08

Heu... scratch
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Captur25

Et toujours le message du pointeur invalide en quittant.
Revenir en haut Aller en bas
JL35




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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 EmptyMar 29 Aoû 2017 - 13:07

Yannick, peut-être que 'Fin' et 'fin' ce n'est pas pareil pour le compilateur ...
Revenir en haut Aller en bas
Contenu sponsorisé





COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 4 Empty

Revenir en haut Aller en bas
 
COMPILATEUR V 0.9 beta 10 du 29 aout 2017
Revenir en haut 
Page 4 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» COMPILATEUR version beta 18 du 09/05/2020
» COMPILATEUR version Beta 11 du 22/06/2019
» COMPILATEUR version beta 12 du 18/07/2019
» COMPILATEUR version beta 19 du 9 février 2021
» COMPILATEUR version beta 14 du 19 septembre 2019

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: