Revision: 350
----
- Résolution du bug de False qui valait True ;
- Résolution de bugs d'AV dans TSepiConvertOperation ;
- La majeure partie de TDelphiParametersNode a été généralisée dans TSepiParametersNode et TSepiDelphiLikeParametersNode ;
- TSepiAddressOfOpNode prend en charge l'adressage d'une référence de méthode ;
- Script de test remanié.
Revision: 349
----
- Factorisation des comportements communs à TSepiTypeOperationPseudoRoutine et TSepiCastPseudoRoutine dans deux classes TSepiValueBackedPseudoRoutine et TSepiOneParamValueBackedPseudoRoutine ;
- Ajout d'une classe TSepiCastOrConvertPseudoRoutine ;
- TDelphiParametersNode utilise TSepiCastOrConvertPseudoRoutine au lieu d'une méthode dédiée pour gérer les transtypages explicites.
Revision: 348
----
- TSepiCustomComputedValue.SetValueType désalloue la constante en cas de changement de type non compatible ;
- Introduction d'un type spécifique au compilateur TSepiEmptySetType, pour représenter les ensembles vides non typés ;
- TSepiSetBuilder utilise ce type tant qu'il est vide - il recalcule sa constante à chaque changement de type ;
- ISepiValue.Finalize complètement supprimée, puisqu'elle n'avait de raison d'être que pour ces ensembles vides non typés.
Revision: 347
----
Emplois de System.TypeInfo dans SepiExpressions.pas remplacés par les champs de SystemUnit.
Revision: 346
----
ISepiCastPseudoRoutine et ISepiTypeOperationPseudoRoutine supprimées. Les classes TSepiCastPseudoRoutine et TSepiTypeOperationPseudoRoutine implémentent à la place ISepiWantingParams et ISepiReadableValue, ce qui apporte un comportement plus générique.
Revision: 345
----
Instructions d'assignations remplacées par une expression exécutable d'assignation.
Revision: 344
----
- ISepiCallable supprimée et remplacée par une interface plus générale ISepiWantingParams ;
- Les paramètres de ISepiProperty et ISepiWantingParams sont de type ISepiExpression au lieu de ISepiValue ;
- Ajout d'une interface ISepiExecutable qui représente une expression qui peut être exécutée ;
- Suppression de l'instruction TSepiCall au profit d'une instruction TSepiExecuteExpression ;
- Suppression de l'interface ISepiDirectValue.
Revision: 343
----
Correction d'un bug de TSepiVariable qui n'enregistrait pas sa propriété IsConst.
Revision: 342
----
Toutes les classes de SepiDelphiCompiler.pas ont été préfixées par TDelphi.
Revision: 341
----
La majeure partie de TUnaryOpNode a été factorisée vers SepiStdCompilerNodes.TSepiDelphiLikeUnaryOpNode et TSepiAddressOfOpNode.
Revision: 340
----
La majeure partie de TBinaryOpNode a été factorisée vers SepiStdCompilerNodes.TSepiDelphiLikeBinaryOpNode.
Revision: 339
----
- Les messages d'erreur impliquant des types utilisent DisplayName au lieu de Name ;
- Compilation des paramètres d'une signature déplacée vers SepiStdCompilerNodes.pas ;
- Compilation de l'implémentation d'une méthode déplacée vers SepiStdCompilerNodes.pas.
Revision: 338
----
TVisibilityNode factorisé vers SepiStdCompilerNodes.TSepiChangeVisibilityNode.
Revision: 337
----
TSetValueNode déplacé vers SepiStdCompilerNodes.TSepiSetValueNode.
Revision: 336
----
TPropertyNode et Co. factorisés vers SepiStdCompilerNodes.pas.
Revision: 335
----
TFieldNode déplacé vers SepiStdCompilerNodes.TSepiClassFieldNode.
Revision: 334
----
Gestion des méthodes et des redirecteurs de méthodes factorisée dans SepiStdCompilerNodes.pas.
Revision: 333
----
Le compilateur profite maintenant des informations de vie des variables locales pour les compacter, au moyen d'un algorithme de coloriage de graphe.
Revision: 332
----
Instructions try..except et try..finally factorisées dans SepiStdCompilerNodes.pas.
Revision: 331
----
Déplacement de TForInstructionNode vers SepiStdCompilerNodes.TSepiForInstructionNode et autres classes.
Revision: 330
----
Déplacement des noeuds d'instructions d'appel de méthode et d'assignation vers SepiStdCompilerNodes.pas.
Revision: 329
----
Déplacement des noeuds pour les instructions begin..end, liste d'instructions, if..then..else, while..do, repeat..until, raise vers SepiStdCompilerNodes.pas.
Revision: 328
----
- Quelques suppressions de code inutile de SepiDelphiCompiler.pas ;
- Revue de la compilation d'un GUID d'interface.
Revision: 327
----
Ajout d'une propriété DisplayName dans TSepiMeta et d'une propriété Description dans TSepiType.
Revision: 326
----
TTypeDescNode et TTypeDescriptorNode remplacés par une seule classe TSepiTypeDefinitionNode.
Revision: 325
----
Factorisation de la construction des records et de leurs champs dans SepiStdCompilerNodes.pas.
Revision: 324
----
Généralisation de l'usage des IdentifierDecl dans la compilation des unités Delphi.
Revision: 323
----
Déplacement de TRoutineDeclNode vers SepiStdCompilerNodes.TSepiMethodDeclarationNode. Cette classe devra encore être étendue pour accepter les déclarations de méthodes en général (pas seulement les routines).
Revision: 322
----
TMethodKind remplacé par un nouveau type dédié TSepiSignatureKind.
Revision: 321
----
- Quelques constantes de SepiDelphiCompilerConsts.pas déplacées et renommées vers SepiReflectionCore.pas et SepiMembers.pas ;
- Quelques classes supplémentaires dans SepiStdCompilerNodes.pas ;
- TDelphiSourceNode supprimé, ainsi que les routines de StrToX de TRootNode ;
- TInSignatureNode et TSignatureNode remplacés par TSepiSignatureBuilderNode.
Revision: 320
----
Avancement des factorisations de SepiDelphiCompiler.pas vers SepiStdCompilerNodes.pas.
Revision: 319
----
Début d'une rationalisation des noeuds des compilateurs, en factorisant un maximum de comportement commun entre tous les compilateurs dans SepiCompiler/SepiStdCompilerNodes.pas.
Revision: 318
----
Ajout de {$D-,L-} dans les analyseurs syntaxiques produits par SepiParserGenerator.
Revision: 317
----
Ajout d'une méthode TSepiType.Equals qui permet de tester si deux types sont exactement identiques, i.e. leurs valeurs ont la même structure interne.
Revision: 316
----
- Le compilateur Delphi utilise un TFormatSettings propre plutôt que de modifier DecimalSeparator ;
- Prise en charge complète des directives de compilation {$MINEMUMSIZE} et {$Z}.
Revision: 315
----
Généralisation de SepiDelphiCompiler.CompileDelphiSource en SepiCompilerUtils.CompileSepiSource.
Revision: 314
----
TSepiCustomLexer ne fait plus tout seul NextTerminal dans son AfterConstruction.
Revision: 313
----
Déplacement de certaines fonctionnalités implémentées dans SepiDelphiCompiler.pas vers SepiParseTrees.pas et SepiCompilerUtils.pas.
Partager