Page 1 sur 2

PureBasic ++

Publié : mer. 31/juil./2013 18:42
par Emperor
Salut à tous!

Je suis présentement en train de faire un pré-compilateur, nommé PureBasic++, permettant l'ajout de fonctionnalités diverses à PureBasic, fonctionnalités que je trouve manquantes en ce qui me concerne (sans pour autant que leur manque soit paralysant au développement d'applications). Voilà, donc si vous avez des suggestions, elles sont les bienvenues, et éventuellement le code sera public (pour l'instant c'est trop dégueux pour que j'ose déposer ici cette chose...)

Ce qui sera ajouté:
  1. Le type booléen, auquel on peut seulement attribuer 'TRUE' ou 'FALSE' (donc pas de 0/1, #true/#false, 0/n [où 'n' est un nombre de l'ensemble des réels.....])
  • Ajout automatique des 'declare' pour les procédures
  • Des enumeration nommées (du style: NamedEnumeration <nom de l'énumeration>....EndNamedEnumeration
  • Commentaires multilignes Ajouté
  • Gestion du multiligne
Ainsi qu'éventuellement dans un jour plus ou moins rapproché (pourquoi pas rêver? :P ):
  1. Classes avec héritage multiple
  • Override de procédures
  • Overload d'opérateurs
  • Système de templates

Re: PureBasic ++

Publié : mer. 31/juil./2013 20:59
par SPH
Pond nous un code ou un exe pour que l'on puisse se faire une idee. Mais ca a l'air prometteur; du moins quand tu auras commencé :wink:

Re: PureBasic ++

Publié : mer. 31/juil./2013 21:03
par Backup
Emperor a écrit :
  • Ajout automatique des 'declare' pour les procédures
ça .. j'en revendique la paternité .... (Present dans mon editeur EPB depuis le debut ) ;)
Des enumeration nommées (du style: NamedEnumeration <nom de l'énumeration>....EndNamedEnumeration
soit je n'ai oas compris le concept , soit je ne voit pas l'interet 8O ...

on peut deja "nommer" en ajoutant un commentaire ....

Enumeration ; les gadgets
...
....
...
Endenumeration

qu'appel tu
Gestion du multiligne
??
Le type booléen, auquel on peut seulement attribuer 'TRUE' ou 'FALSE'
le seul truc qui manque au booleen c'est le 'Peut etre' .... :)

Re: PureBasic ++

Publié : jeu. 01/août/2013 2:44
par falsam
Bonjour emperor.
Emperor a écrit :Ce qui sera ajouté:
Le type booléen, auquel on peut seulement attribuer 'TRUE' ou 'FALSE' (donc pas de 0/1, #true/#false, 0/n [où 'n' est un nombre de l'ensemble des réels.....)
Tout comme le dit Dobro, un booléen ne peut prendre que les valeurs 1 ou 0 (#True ou #False). Un booléen qui prend les valeurs de 0/n ..... ben c'est plus un booléen.
Emperor a écrit :Des enumeration nommées (du style: NamedEnumeration <nom de l'énumeration>....EndNamedEnumeration
Je n'en vois pas l’intérêt étant donné que ça existe déjà.

Code : Tout sélectionner

Enumeration
    #GadgetInfo ; Sera 0
    #GadgetText ; Sera 1
    #GadgetOK   ; Sera 2
EndEnumeration
Emperor a écrit :Ajout automatique des 'declare' pour les procédures
Pourquoi pas :)
Emperor a écrit :Commentaires multilignes
Faudra bien l'écrire ce commentaire ? Il fera quoi de plus ton précompilateur ? ajouter les ; ?
Emperor a écrit :Gestion du multiligne
je suppose que tu parles d'une ligne de code sur plusieurs lignes. Dobro a intégré cette fonctionnalité dans son editeur EPB et c'est aussi une fonctionnalité qui existe dans l’éditeur officiel comme le montre le code suivant.

Code : Tout sélectionner

Enumeration
  #Mainform
EndEnumeration

Define.l Event

Global WindowStyle.i=#PB_Window_MinimizeGadget|
                     #PB_Window_MaximizeGadget|
                     #PB_Window_ScreenCentered|
                     #PB_Window_SizeGadget

Procedure Open_MainForm()
  OpenWindow(#Mainform, 0, 0,
             500, 400, 
             "New Form",
             WindowStyle)
EndProcedure

Open_MainForm()

Repeat
  Event  = WaitWindowEvent(10)
  
  Select Event        
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
Emperor a écrit :Système de templates
Cette fonctionnalité existe aussi dans l'éditeur officiel depuis le Menu outils puis item Modèles.

Re: PureBasic ++

Publié : jeu. 01/août/2013 8:47
par Backup
c'est quoi les "Templates" ? 8O

Re: PureBasic ++

Publié : jeu. 01/août/2013 10:54
par falsam
Dobro a écrit :c'est quoi les "Templates" ? 8O
Les Templates (En anglais modèles ou gabarits) sont des exemples de codes que tu intègres dans ton éditeur depuis le Menu outils puis item Modèles (Alt + M). Ces exemples ou portions de codes que tu as préparé vont te permettre de de diminuer de manière significative les temps de conception d'un programme.

Lors de la création d'un modèle tu devras donner un nom puis tu intègres la portion de code qui t'intéresse. Tu peux aussi laisser un commentaire et tu enregistre le tout.

Autres fonctionnalités intéressantes : Création de dossiers à l'intérieur du system de templates ainsi que la possibilité de trier les templates avec les icônes représentants les flèches.

Quand tu rédiges un code tu presses la combinaison de touche Alt + M et tu choisis ta portion en double cliquant dessus qui viendra se placer au point d'insertion de ton curseur.

Re: PureBasic ++

Publié : jeu. 01/août/2013 12:16
par Backup
ok merci ,

perso j'ai une bibliotheque de codes exemple , je pioche dedans par copier-collé ...
:)

Re: PureBasic ++

Publié : jeu. 01/août/2013 12:18
par falsam
Dobro a écrit :ok merci ,

perso j'ai une bibliotheque de codes exemple , je pioche dedans par copier-collé ...
:)
Pas besoin de le préciser je le savais Dobro :mrgreen:

Re: PureBasic ++

Publié : jeu. 01/août/2013 13:11
par Fred
A mon avis, il veut plutot parler de ca:

http://www.siteduzero.com/informatique/ ... -templates

Re: PureBasic ++

Publié : jeu. 01/août/2013 13:41
par G-Rom
+1

Les templates c'est super en C++ , par exemple , si c'était en PB :

Code : Tout sélectionner

template structure T
structrure Vector
 x.T
 y.T
endstructure

myVector.Vector<f> ; de type float
myVector\x = #PI
myVector\y = #PI

myVector2.Vector<i> ; de type integer
myVector2\x = mouse_x
myVector2\y = mouse_y

etc...

Re: PureBasic ++

Publié : jeu. 01/août/2013 19:07
par Emperor
Oula, je ne pensais pas que j'aurais autant de réponses! Bon:

Les templates pour moi ce n'est pas des snippets (ce que vous appellez les modèles de code) ce sont plutôt comme Fred a dit, basé sur le C++ (ou encore sur les génériques de Java). +1 pour moi aussi G-Rom, les templates (ainsi que la couche objet si j'y parviens (je vais y parvenir, je dois rester positif lol)) vont m'être extrêmement pratique.

Le type booléen en effet ne peut être autre que TRUE/FALSE, j'ai mal formulé ce que je voulais dire par là. Je veux tout simplement ajouter de la cohérence dans le code car exemple je ne trouve pas normal que la fonction eof retourne n'importe quoi lorsqu'on atteint la fin du fichier.

Pour les énumérations nommées, je vous invite à vous informer sur les enum de c/c++, java, etc... Seulement, le terme énumeration nommée n'est pas plus évocateur pour moi que pour vous ( :oops: ), c'est que je n'ai pas réfléchi sur la façon de nommer ce terme.

Pour Dobro, en effet tu es le père des declare automatiques ça je ne te l'enlève pas haha :P

Le multiligne, puisque que PB le gère désormais (cela m'a glissé sous les yeux) je l'oublierai probablement, quoi que j'aime mieux l'emploi de '_' pour dire que l'instruction continue sur l'autre ligne, c'est plus facile pour moi de lire le code.

Le projet est commencé mais seulement dans mes temps libres qui se font rares ces temps-ci.... mais bon les commentaires multilignes sont implémentés:

Code : Tout sélectionner

;/* c
o
m
m
e
n
t
a
i
r
e */
Et la merveille avec mon parser peu efficace pour l'instant, c'est que je peux faire cela (comme en c++):

Code : Tout sélectionner

procedure jean_guy(param.l, ;/* param2.s */)
Bien entendu la coloration syntaxique n'est pas efficace dans ce cas là...

Re: PureBasic ++

Publié : ven. 02/août/2013 0:05
par Fred
Si tu veux parser du code PB à moindre mal, tu peux utiliser la lib SyntaxHighlitning.dll dans le rep "SDK/Syntax Highlighting" (y'a un exemple pour creer un code html, mais tu peux potentiellement faire ce que tu veux avec)

Re: PureBasic ++

Publié : ven. 02/août/2013 10:47
par djes
C'est toujours bien ce genre de projet, au moins pour l'envie de faire avancer les choses, même si moi je préfère les trucs "natifs" qui m'évitent trente six ajouts "post-installation". D'autant que PB évolue vite, quand même ! Au fait, pour le booléen, faudrait s'entendre sur la valeur du #TRUE... 1, -1, #PI, Sqr(2)... ? :mrgreen:

Re: PureBasic ++

Publié : ven. 02/août/2013 14:33
par Micoute
Merci falsam, je me coucherai moins bête ce soir et j'ai essayer de mettre des modèles et de les utiliser : c'est de la balle comme diraient mes enfants !

Merci encore.

Re: PureBasic ++

Publié : ven. 02/août/2013 15:29
par Emperor
Fred a écrit :Si tu veux parser du code PB à moindre mal, tu peux utiliser la lib SyntaxHighlitning.dll dans le rep "SDK/Syntax Highlighting" (y'a un exemple pour creer un code html, mais tu peux potentiellement faire ce que tu veux avec)
C'est cool merci Fred! :D
djes a écrit :... Au fait, pour le booléen, faudrait s'entendre sur la valeur du #TRUE... 1, -1, #PI, Sqr(2)... ? :mrgreen:
Haha :P , comme j'ai dit, un nombre de l'ensemble des réels (en tout cas, l'ensemble qui contient tous les nombres possibles, mes cours de maths se font loin!)