Interpréteur de syntaxe

Contenu du snippet

Salut a tous!!

Pour mettre les chose en clair, ce code n'est pas une mise à jour de LVL++Editor.
Ce code est moins déguisé d'artifice et rentre plus dans le vif du sujet:

le code analyse ligne par ligne le richedit ou un fichier et
interprète les commandes tapées.

Je n'ai pas utiliser de parser juste un composant de colorisation
qui n'est n'est pas obligatoire vu que vous pouvez le remplacer par un TRichEdit, les autres composants sont à installer et voilà.
Rien de bien intéressant, juste des utilitaires, un composant pour associer une extention au programme, et un composant qui facilite la manipulation de chaines String. Mais bon, le code peut être allégé je sais
mais je n'ai pas les connaissance requises pour le faire, désolé.

Sachez aussi qu'une partie du code est de foxy, mtanil m'avait donné un coup de main sur 2 ou 3 trucs, alors je les remercie.
Un fichier Tutorial.lvl et disponible dans le zip. Ouvrez le avec LevelScript.exe.

Source / Exemple :


Mise à Jour Level Script 

Pour
afficher un message:

msg "ton message"

Pour
faire une pause:

stp !1000!

Variable
+ et - :

LevelScript
fonctionne avec 2 Variable (Ouais pas grand chose....)

+: -valeur- ou -:
+valeur+

exemple:

+: -Valeur-

bouton "+"   //la Caption du bouton
affichera "Valeur"

Pour
créer une Form:

titre "LvlMe"
autosize: .oui.
//dimension de la fenetre automatique activé

trans: !235!
//Opacité de la fenêtre

h: !100!
//Hauteur

w: !230!
//Largeur

t: !250!
//Position Vertical

l: !250!
//Position horizontal

Pour créer un Label:

label
"Password:"  //Creation et Caption du label

labl: !10!
//Position Horizontal

labt: !15!
//Position Vertical

labh: !20!
//Hauteur

Pour créer un Edit:

edit ""

edtl: !10!
//Position Horizontal

edtt: !25!
//Position Vertical

edtw: !130!
//Largeur

edtxt
//valeur de l'Edit

Pour créer un Bouton:

bouton "Analyser"
//Creation et Caption du bouton

btnl: !150!
//Position Horizontal

btnt: !25!
//Position Vertical

btnw: !70!
//Largeur

btnh: !22!
//Hauteur

btnclick: $=$ +edtxt+ -password- @!!Good!!!@ |!!Bad!!|
//Procedure de Clique

Procédure Clique:

btnclick: $=$ +edtxt+ -password- @!!Good!!!@ |!!Bad!!|
//Procedure de Clique

$=$ 
//Type de Condition

+edtxt+
//variable +edtxt+ que l'on compare

-password-
//avec la variable -password-

@!!Good!!!@ 
//Si egal a la contition alors afficher le message !!Good!! entre les @ (AltGr+0)

|!!Bad!!|
//Sinon on affiche le message !!Bad!! entre le | (AltGr+6)

Procédure Clique avec saut sur un autre script:

btnclick: $=$ +edtxt+ -password- >ok.lvl> <bad.lvl<

...

...

-> "ok.lvl"
//Si egal alors on va sur un nouveau script ok.lvl qui doit se trouvé avec
run.lvl

<bad.lvl&lt<
//Sinon on va sur un autre script bad.lvl

Saut sur un autre script:

-> "ok.lvl"
//Ferme le script en cours ensuite il ouvre et execute le script 'ok.lvl'

Fermer le script:

fin
//Kill l'application

Pseudo-Compilation:

Ouvrir un Script, dans le menu [Action]->[Compile Script] et enregistrez le avec
le nom 'run.lvl' dans
un répertoire .

Le Script d'entrée se nomme toujours run.lvl

Faite de même avec vos autre Script si il y en a avec leur nom initial.

une fois fini, dans le menu [Action]->[Generate Executable] et enregistrez le
dans le même répertoire que vos Scripts

Pseudo-Compiler.

Et
voilà executez le....Je vous laisse regardez

Conclusion :


Bon voilà, bien sur je suis loin du résultat que je veux obtenir mais,
comme je l'ai dit, c'est un projet a long termes.

Voilà, si vous avez des choses a dire, laissez vos commentaires, constructifs si possible.

Je ne peux pas Upload la source car elle est trop grosse (2 062,93 ko)

donc pour accéder au lien de téléchargement

http://www.craft-koderz.org/programs.php?dir=concepts

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.