UnrealScript Language Test is a collection of classes that contain various forms of UnrealScript constructions.
The purpose of this collection is to provide a reference set for UnrealScript parsers\compilers. Besides valid constructions it also contains a couple of examples of bugs in the stock UnrealScript compiler and "unwanted" but accepted constructions.
Download
- CVS Package
- http://home.elmuerte.com/cgi-bin/cvsweb/UnrealScript_LanguageTest/UnrealScript_LanguageTest.zip?tarball=1
- CVS Access
- :pserver:anonymous@home.elmuerte.com:/usr/local/cvsroot module: UnrealScript_LanguageTest
- or browse the CVS repository online
- http://home.elmuerte.com/cgi-bin/cvsweb/UnrealScript_LanguageTest/
Packages
The collection has been split up in a couple of packages for easy usage.
Package | Description |
uslt_base | Base UnrealScript, should be supported by all versions. UnrealScript compilers and parsers should at least accept these constructions. |
uslt_base_bugs | Valid UnrealScript but doesn't compile at all or not correct. |
uslt_base_errors | Invalid or improper UnrealScript, but does compile. |
uslt_ue2* | UnrealEngine2 only cases. |
uslt_ue3* | Contains constructions only available in UnrealEngine3. |
usltx_* | Vendor specific packages, see below |
Vendor specific packages
These packages may not have been fully tested to compile. They mainly have been constructed based on the script source of the games.
Package | Description |
usltx_unreal2 | Constructions only available in Unreal 2 by Legend Entertainment |
usltx_irrational | UnrealScript additions made by Irrational Games for Tribes: Vengeance and SWAT 4 |
TODO
For the following items a construction has yet to be made:
- [test] .EnumCount
If you are missing a construction (either valid, bug or error) please describe them so I can test it and add it.
Evolution: Here's a couple I've come across:
1. Attempting to access an iterator expression through a null context results in a pretty nasty crash.
2. pretty sure you can't use consts (and perhaps enums as well) in defaultproperties.
Wormbo: Enums work in default properties.
Wormbo: If a delegate is declared as 'final', any calls to the delegate will be final function calls to the delegate function's default implementation instead of calling whichever function is currently assigned to the delegate property. So basically a "final delegate" is identical to a "final function" – assigning stuff to the delegate property has no effect.
Wormbo: Appearantly porkmanii on BUF found a new bug: 180881
if (Profile != none && !Profile.IsPreset) { if (ed_ProfileName.GetText() != "") }
Seems like that code compiled without error even though it definitely shouldn't.
El Muerte: yep, a minor bug. It should be at followed by either ; or {
Related Topics
- Legacy:UnrealScript Language Test/Discussion – archived discussions about certain tests\errors\bugs
- UnrealScript
- UnrealScript Grammar