+ Added support for Tetris paddle, Guitar Hero grip and easy piano controller
+ Added sdmmc support for reading DSi internal SD card
+ i2c communication functions for DSi
+ Added some time handling related examples
* Improved timing functions
* Some small bug fixes and improvements, both in library and examples
- Removed unused SVN macros from header and license infos to save space :)
git-svn-id: trunk@16879 -
- search GetEnumerator method in records too (while searching a enumerator for structure)
- allow enumerator operator return type to be a record
- copy/adapt enumerator helpers from tobjectdef to tabstractrecorddef
+ test
git-svn-id: trunk@16807 -
- allow operator also if return type match the structure type (before at least one parameter had to match)
- search both operands symbol tables for a suitable assignment operator
- test
based on patch of Blaise Thorn (issue #0018490)
git-svn-id: trunk@16762 -
- store type parameter in parasymtable, push it to the symtablestack before parsing arguments and return type
- move procedure/function declaration parsing to procvar_dec subroutine
- don't skip parasymtable while searching types because they store type parameters now
- add TParaSymTable.ReadOnly field to prevent adding defs into symtable. Add defs to the parent symtable in this case (we are adding this symtable to stack to read type parameters only, add defs should go to parent in this case as it was before)
git-svn-id: trunk@16719 -
- change id_type to single_type in readImplementedInterfacesAndProtocols to allow use of interface specializations inside class parent block
- change single_type boolean arguments to set, add stoParseClassParent option to that set
- move parse_generic variable assignment from parse_object_members to outer routine to setup it before parsing class parents
- return paticular generic in generate_specialization instead of undefineddef to pass class/interface checks inside parent class block
- add test for delphi mode
- modify tw11431 to be syntatically correct
git-svn-id: trunk@16706 -
change is that it is now also allowed to specify an external name for
formal external class definitions, but if they are later mixed with
regular class definitions the external names have to match.
o because the "external" status of methods is now set while parsing the
class rather than afterwards, some procdir compatibility checks had to
be inlined because they only have to be performed for
* also adapted the syntax for external cppclasses in the same way
* fixed return type of NSObject.retainCount and NSObject.hash
(NSUInteger instead of cint)
* moved "patches" directory from cocoaint/src to cocoaint/utils/cocoa-skel
so they are used by the conversion script when re-parsing the headers
* updated Objective-C header parser script to
o use the new external class syntax
o not write inheritance information for root classes (NSObject, NSProxy)
o use internal translation tables for some conflicting method names that
are named specially in objcbase.pp
and updated parsed headers
* fixed rtl/inc/objcbase.pp and tests to conform to the new external class
syntax
git-svn-id: trunk@16684 -
- add tarraysymtable to store generic type symbols
- process generic and specialize declarations similar to generic records and classes
- fix insert_generic_parameter_types to use def passed in argument instead of current_structdef because generic array type can't be assigned to the current_structdef variable
- increase ppu version because of arraydef changes
- tests
git-svn-id: trunk@16681 -
- remove testcurobject hack and perform a check only for regular fields
- move is_holded_by to interface and rename it to is_owned_by
- don't check static symbols in _needs_init_final because they always point to symbols registered on unit level
- don't check object type in id_type, read_named_type when we are looking for type of structure member - the only check will be performed for record/object fields now
+ tests
git-svn-id: trunk@16646 -
* Link rtti to ancestor by writing rtti of ancestor as a field of type tkObject and offset zero. This is a cheat from formal point of view (as it replaces inheritance with aggregation), but is fine for the intended purpose of representing memory layout. Now RTL can handle entire instance of descendant object, and such objects can be statically allocated without leaks.
* Bypass finalization in inherited object destructors, as the instance is now entirely finalized in outermost destructor.
+ test
git-svn-id: trunk@16632 -
- add delphi operator tokens into token enum
- move optoken search from parse_proc_dec to parse_proc_head and add delphi operator name search
- map delphi operators to existent fpc operators and skip some delphi operators for now
- implement store operators in record symtable and search in it
git-svn-id: trunk@16624 -