fpc/rtl/java
Jonas Maebe 13b0ac91d9 + generate java.lang.Enum descendant classes for Pascal enum types
o these classes get an "enum" flag in the class files
   o these classes get a class field (whose type is that same enum
     class) per enum in the type, which also gets the "enum" flag
   o those class fields are initialised in the class constructor
     with the name of the enum and their order in the declaration
   o if the enum has jumps in FPC (lowest value is not 0, or not
     all values are contiguous), then we add an extra field
     to hold the FPC ordinal value of the enum
   o these classes get a class field valled $VALUES that contains
     a reference to the aforementioned class fields in order of
     declaration (= ordinal->instance mapping, JDK-mandated)
   o apart from the JDK-mandated instance methods (values, valueOf),
     also add FPCOrdinal (returns FPC ordinal value; same as order
     of declaration in case of no jumps) instance method and FPCValueOf
     (returns enum corresponding to FPC ordinal value) static class
     method
   o the mapping between FPC ordinals and enum instances in case of
     jumps is stored in a hashmap whose size is the next prime number
     greater or equal than the number of enum elements
   o moved several extra JDK types to the system unit for the enum
     support, and for future boxing and Java set support
   o several new synthetic method identifiers to generate the enum class
     methods/constructor/class constructor
   o enums with jumps are ordered by FPC ordinal value in the JVM
     $VALUES array so that the java.lang.Enum.doCompare() method
     will properly compare them

git-svn-id: branches/jvmbackend@18616 -
2011-08-20 08:15:28 +00:00
..
astringh.inc + shortstring support for the JVM target (including accessing character 0 as 2011-08-20 08:11:28 +00:00
astrings.inc + support for pointers to types that are implicit pointer types in the JVM 2011-08-20 08:11:49 +00:00
compproc.inc + shortstring support for the JVM target (including accessing character 0 as 2011-08-20 08:11:28 +00:00
java_sys.inc + generate java.lang.Enum descendant classes for Pascal enum types 2011-08-20 08:15:28 +00:00
java_sysh.inc + generate java.lang.Enum descendant classes for Pascal enum types 2011-08-20 08:15:28 +00:00
jdk15.inc + generate java.lang.Enum descendant classes for Pascal enum types 2011-08-20 08:15:28 +00:00
jdk15.pas + generate java.lang.Enum descendant classes for Pascal enum types 2011-08-20 08:15:28 +00:00
jdynarrh.inc + shortstring support for the JVM target (including accessing character 0 as 2011-08-20 08:11:28 +00:00
jint64.inc + support for qword div/mod via helper (the JVM only supports signed 2011-08-20 08:07:02 +00:00
jmathh.inc + sqr(float) and trunc() support 2011-08-20 07:48:47 +00:00
jrec.inc + support for (only named, for now) records in the JVM target: 2011-08-20 08:00:50 +00:00
jrech.inc + support for (only named, for now) records in the JVM target: 2011-08-20 08:00:50 +00:00
Makefile * fixed fpc_unicodestr_compare_equal (has to return 0 in case of 2011-08-20 08:04:11 +00:00
Makefile.fpc + jdk15 unit with jdk 1.5 header translation 2011-08-20 08:08:21 +00:00
objpas.pp
rtl.cfg
rtti.inc + shortstring support for the JVM target (including accessing character 0 as 2011-08-20 08:11:28 +00:00
sstringh.inc + shortstring support for the JVM target (including accessing character 0 as 2011-08-20 08:11:28 +00:00
sstrings.inc + support for pointers to types that are implicit pointer types in the JVM 2011-08-20 08:11:49 +00:00
system.pp + support for pointers to types that are implicit pointer types in the JVM 2011-08-20 08:11:49 +00:00
ustringh.inc * commented out unimplemented pos() variant 2011-08-20 08:11:22 +00:00
ustrings.inc + support for pointers to types that are implicit pointer types in the JVM 2011-08-20 08:11:49 +00:00