Elemental Cube

Changelog de graphism_v1.13

menu
English version available below.

--- GRPH 1.9
Ajout des opérateurs as et is, permettant respectivement de caster et de vérifier si l'objet et une instance du type :
- cloneShape[rect] as Rectangle -> retourne un clone de rect sous forme de Rectangle
- rect is Rectangle -> retourne true si rect est un Rectangle, false sinon
Ajout de différents types d'erreurs :
- Lors de l'exécution : InvalidTypeException, CastException, IOException, ReflectionException, InvalidArgumentException, NoPermissionException, UnexpectedException
- Lors de la compilation : ParseError, TypeError, UndeclaredError, InvalidArgumentsError
Les erreurs d'exécution peuvent être utilisés dans les nouvelles commandes #try et #catch :
- #catch permet de récupérer les erreurs d'exécution du #try au lieu de stopper le programme
- Syntaxe : #catch message : erreur1|erreur2|...
Ajout également du '#throw erreur(message)' qui permet de provoquer une erreur lors de l'exécution.
Ajout de la fonction range[], qui utilisé avec #foreach permet de répéter une action un certain nombre de fois :
- #foreach i : range[0 9] // Exécute le bloc 10 fois, avec i = 0, 1, 2, 3, 4, 5, 6, 7, 8 puis 9.
Ajout d'un système de permissions :
- L'utilisateur doit autoriser le script à accéder à ses fichiers
- Ajout de reflect>requiresPermission et reflect>hasPermission
- Graphism demande automatiquement la permission à l'utilisateur lorsqu'une permission est nécessaire
Ajout de l'inférence de type dans les constructeurs :
- 'Polygon poly = (BLACK)' au lieu de 'Polygon poly = Polygon(BLACK)'
- Ne fonctionne que dans les déclarations et les assignements (pas dans les paramètres)
Ajout de la possibilité d'importer une fonction ou une méthode (au lieu de ne pouvoir qu'importer un espace de nom entier).
Plus aucun cast ne retourne de valeur par défaut s'il est impossible, ils renvoient tous des erreurs (sauf boolean et string).
Ajout de la possibilité de caster vers des types constructeurs
Correction de validateAll avec les variables de type constructeur
Correction de la création d'un array vide
Correction de la création d'un array, qui accepte désormais les 'pos' entourés de [] et les sous-array.
Correction de l'autoboxing et unboxing dans les comparaisons &&, ||, et suppression de l'autoboxing et unboxing avec == et !=.
Correction du #goto qui exécutait les fonctions utilisées dans les déclarations de blocs traversés.
Correction des nombres litéraux négatifs.

---

--- GRPH 1.9
Added the operators as and is, allowing respectively to cast and check if the object is an instance of the type:
- cloneShape[rect] as Rectangle -> returns a clone of rect as a Rectangle
- rect is Rectangle -> returns true if rect is a Rectangle, false otherwise
Added different types of errors:
- In runtime: InvalidTypeException, CastException, IOException, ReflectionException, InvalidArgumentException, NoPermissionException, UnexpectedException
- In compile-time: ParseError, TypeError, UndeclaredError, InvalidArgumentsError
Runtime errors can be used in the new commands #try and #catch:
- #catch retrieves runtime errors from the #try instead of stop the script
- Syntax: #catch message : error1|error2|...
Added also '#throw error(message)' which allows to raise a runtime error.
Added the function range[], which, used with #foreach allows to repeat an action a number of times:
- #foreach i : range[0 9] // Executes the block 10 times, with i = 0, 1, 2, 3, 4, 5, 6, 7, 8 then 9.
Added a permission system:
- The user must allow the script to access its files
- Added reflect>requiresPermission and reflect>hasPermission
- Graphism asks automatically the permission to the user when a permission is needed
Added type inference in constructors:
- 'Polygon poly = (BLACK)' instead of 'Polygon poly = Polygon(BLACK)'
- Only works in declarations and in assignments (not in parameters)
Importing a function or a method is now possible (instead of importing an entire namespace).
No more cast returns a default value if it is impossible, they all throws an error (except boolean and string).
Casting to a constructor type is now possible.
Fixed validateAll with constructor type variables.
Fixed creation of an empty array.
Fixed creation of a 'pos' array, which now accepts 'pos' surrounded by [], and sub-arrays.
Fixed autoboxing and unboxing in &&, || comparisons and removed autoboxing and unboxing with == and !=.
Fixed #goto which executed functions used in crossed block's declaration.
Fixed literal negative numbers.