PureBasic ++

Programmation d'applications complexes
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

PureBasic ++

Message 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
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: PureBasic ++

Message 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:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: PureBasic ++

Message 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' .... :)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: PureBasic ++

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: PureBasic ++

Message par Backup »

c'est quoi les "Templates" ? 8O
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: PureBasic ++

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: PureBasic ++

Message par Backup »

ok merci ,

perso j'ai une bibliotheque de codes exemple , je pioche dedans par copier-collé ...
:)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: PureBasic ++

Message 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:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: PureBasic ++

Message par Fred »

A mon avis, il veut plutot parler de ca:

http://www.siteduzero.com/informatique/ ... -templates
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: PureBasic ++

Message 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...
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

Re: PureBasic ++

Message 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à...
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: PureBasic ++

Message 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)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: PureBasic ++

Message 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:
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: PureBasic ++

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

Re: PureBasic ++

Message 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!)
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
Répondre