fpc/compiler/utils
paul aa5a5e79ce merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994:
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 -
2009-11-02 03:24:48 +00:00
..
dummyas.pp * properties properly set 2008-07-28 15:56:23 +00:00
fixlog.pp
fixmsg.pp
fixnasm.pp
fixtab.pp
fpc.cft * FPCAPACHE_1_13 or FPCAPACHE_2_0 define will determine what Apache version is taken 2007-12-30 20:46:27 +00:00
fpc.mpw
fpc.pp * Use ExeSearch instead of FileSearch to find compiler executable 2009-03-22 10:03:03 +00:00
fpccfg.inc * regenerated 2008-01-01 11:07:42 +00:00
fpcfg.inc * fix for #11865 -Oppentium3 2008-08-14 10:24:06 +00:00
fpcmkcfg.pp
fpcsubst.pp
fpimpdef.pp
fpinc.cfg * fix for #11865 -Oppentium3 2008-08-14 10:24:06 +00:00
fpinc.ini + create svn add menu entry in tools menu 2008-05-11 07:36:30 +00:00
fpini.inc * regenerated 2008-05-11 07:36:50 +00:00
gia64reg.pp
gppc386.pp
Makefile * regenerated using latest fpcmake 2009-08-02 18:40:14 +00:00
Makefile.fpc + build instruction table generators 2009-01-26 14:20:49 +00:00
mk68kreg.pp
mkarmins.pp
mkarmreg.pp
mkavrreg.pp Merged revisions 5891-10167,10169-10180 via svnmerge from 2008-02-03 17:21:52 +00:00
mkmpsreg.pp
mkppcreg.pp
mkspreg.pp
mkx86ins.pp
mkx86reg.pp
msg2inc.pp Merged revisions 11894,12317 via svnmerge from 2008-12-10 21:33:53 +00:00
msgdif.pp * patch from KMS, resolves 10147 2008-01-02 09:43:55 +00:00
msgused.pl
ppudump.pp merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
ppufiles.pp
ppumove.pp * fixed deprecated 2007-06-17 20:28:06 +00:00
README.txt * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
samplecfg * -Ratt removed from default fp.cfg - it is not necessary and makes troubles under sparc 2009-02-08 01:00:02 +00:00
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 !)