|
From: <fra...@us...> - 2009-07-16 13:17:11
|
Revision: 1763
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1763&view=rev
Author: frankrimlinger
Date: 2009-07-16 13:17:06 +0000 (Thu, 16 Jul 2009)
Log Message:
-----------
Rehab of the rulebase for the new typing system underway. All ports of entry for class names within the SCANNER bytecode classes are being tested, and these names are now all to be resolved at the java source code level. Examples:
NEW: mangoModelTest.multiarray
NEWARRAY: int
ANEWARRAY: mangoModelTest.RefBuster
MULTIANEWARRAY: mangoModelTest.multiarray[][][][]
The issue then becomes, how to unresolve a resolved name, so it becomes suitable input for ClassInfo.getClassInfo()? One might hope that Types.getTypeCode(className, true) would do the trick, but this [[[[null for className= mangoModelTest.multiarray[][][][]. Sadly, getTypeCode expects the input LmangoModelTest.multiarray;[][][][] in order to produce [[[[LmangoModelTest.multiarray; Instead, use FormalTypes.getTypeCode, which inserts the L and ; in the array case before calling super.getTypeCode, (but only if !isBasicType)
All the class name conversion code and code to syntactically detect arrays from array names must be rehabilitated to conform to the new standard. Also, all class names are formally introduced as ClassNameSym objects, which have formal type className. Maintaining discipline with the typing of class names will really help out down the road.
With the rationalization of class names, there is no longer any need for the formal ^Array_Type_Marker subaddress. Instead, the ^className subaddress (changed from ^Type), will just be set up correctly in the first place. Also, the following subaddresses containing information about arrays are renamed as follows:
h.ALength ^Array_Length_Marker -->h.arrayLength ^arrayLength
h.ADimension ^Array_Dimension_Marker --> h.arrayDimension ^arrayDimension
h.ASubLengths ^SubArray_Length_List_Marker --> h.arraySubLengths ^arraySubLengths
The JVM and Module function spaces have been thinned out. Removed functions mostly dealt with cleaning up all the problems with arrays that never will happen now. A rational set of functions can be developed as the system is rebuilt.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/CoreSym.java
branches/mango/Mango/Mango/src/mango/core/RuleResourceManager.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/ClassPtrAsString.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetComponentType.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/IsArrayClassPtr.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/MakeClassPtr.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/RemoveBracket.java
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/PushRefH.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateValueH.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/IntegralArrayFieldType.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashCoreParser.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashEnterpriseAndTranslation.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashLogicAndArithmetic.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashOpcodeSyms.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapPointer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapTracer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapObjectModel.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoInstruction.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoInvokeInstruction.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoMethodPeer.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ANEWARRAY.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/MULTIANEWARRAY.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/NEW.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/NEWARRAY.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/system/System/java/lang/Object_MangoFormal.java
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_Object.java
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/ClassNameType.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClassNameSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mangoModelTest/
branches/mango/Mango/javapathfinder-mango-bridge/mangoModelTest/multiarray.java
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_String.arraySyntax worksheet.txt
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/StripObjectSyntax.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/ClassPtrType.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClassPtrSym.java
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_String.leftBracket worksheet.txt
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|