mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-01 12:50:45 +01:00
rtl: add enumerators to the basic classes tests: add enumerators test which compiles and work both by fpc and dcc compiler: + start for-in loop implementation: implement for-in loop for types (enumerations and ranges), strings, arrays and sets. todo: perform type checking, optimize array and string loops - use temp for expression, implement for-in loop for classes test: + add a simple test for the 'for-in' loop compiler: fix string for-in loop. now it uses a temp variable to store string expression result complier: fix for-in array loop. use a temp variable for the loop expression only if loop is not an open array loop complier: continue enumerator implementation: + add operator enumerator which give an ability to add enumerator for an existent type (for example to override builtin string enumerator) + add class enumerator support via delphi compatible GetEnumerator method + enumerator class/object template (function MoveNext: Boolean; property Current) + tests compiler: fix for-in loop for arrays. delphi does not copy arrays to a temp variable and it is possible to change array during loop. + test compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class compiler: enumerator directive support: + allow to mark methods and properties by 'enumerator MoveNext' and 'enumerator Current' modifiers. Parser checks return types and duplicates. + prefer *marked* by enumerator directive methods and properties than GetEnumerator and Current builtin symbols + increase ppu version + test rtl: add IEnumerator and IEnumerable interfaces declarations tests: for-in loop tests: + add small comment at the top of test program compiler: allow 'enumerator MoveNext' for the interface function declaration + test compiler: move all for-in loop helpers to the nflw unit compiler: don't allow the compiler to choose the non-valid enumerator operator for the for-in loop git-svn-id: trunk@14008 - |
||
|---|---|---|
| .. | ||
| dummyas.pp | ||
| fixlog.pp | ||
| fixmsg.pp | ||
| fixnasm.pp | ||
| fixtab.pp | ||
| fpc.cft | ||
| fpc.mpw | ||
| fpc.pp | ||
| fpccfg.inc | ||
| fpcfg.inc | ||
| fpcmkcfg.pp | ||
| fpcsubst.pp | ||
| fpimpdef.pp | ||
| fpinc.cfg | ||
| fpinc.ini | ||
| fpini.inc | ||
| gia64reg.pp | ||
| gppc386.pp | ||
| Makefile | ||
| Makefile.fpc | ||
| mk68kreg.pp | ||
| mkarmins.pp | ||
| mkarmreg.pp | ||
| mkavrreg.pp | ||
| mkmpsreg.pp | ||
| mkppcreg.pp | ||
| mkspreg.pp | ||
| mkx86ins.pp | ||
| mkx86reg.pp | ||
| msg2inc.pp | ||
| msgdif.pp | ||
| msgused.pl | ||
| ppudump.pp | ||
| ppufiles.pp | ||
| ppumove.pp | ||
| README.txt | ||
| samplecfg | ||
| usubst.pp | ||
This directory contains some utilities that are used during the
development of the Free Pascal Compiler.
msg2inc : Convert a compiler message file (errorX.msg) to .inc files to
include it as the default language in the compiler. It can
also convert the .msg to .tex for inclusion the documentation
nasmconv : Convert a Nasm insns.dat to i386tab.inc so it can be used with
the compiler
makecfg : This script will make the samplecfg for linux installations
msgdif : analyzes the differences between two msg files
msgdif errore.msg errord.msg
will print out new error msg, removed old ones
and will create a new file new.msg that will
contain the new error messages (supposing TeX comment is after
the message line itself)
removed messages are prepended by "%%% "
(they can be useful in case on error enum renaming !)