mirror of
https://github.com/twiglet/cs2j.git
synced 2025-01-18 13:15:17 +01:00
make has_boxed_rep explicit in translation templates for primitive types, "guessing" wasn't working out
This commit is contained in:
parent
63addf1b1c
commit
a3b3e67d76
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>boolean</Java>
|
<Java>boolean</Java>
|
||||||
<BoxedJava>Boolean</BoxedJava>
|
<BoxedJava>Boolean</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>byte</Java>
|
<Java>byte</Java>
|
||||||
<BoxedJava>Byte</BoxedJava>
|
<BoxedJava>Byte</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>char</Java>
|
<Java>char</Java>
|
||||||
<BoxedJava>Character</BoxedJava>
|
<BoxedJava>Character</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>double</Java>
|
<Java>double</Java>
|
||||||
<BoxedJava>Double</BoxedJava>
|
<BoxedJava>Double</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>double</Java>
|
<Java>double</Java>
|
||||||
<BoxedJava>Double</BoxedJava>
|
<BoxedJava>Double</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>short</Java>
|
<Java>short</Java>
|
||||||
<BoxedJava>Short</BoxedJava>
|
<BoxedJava>Short</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>int</Java>
|
<Java>int</Java>
|
||||||
<BoxedJava>Integer</BoxedJava>
|
<BoxedJava>Integer</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>long</Java>
|
<Java>long</Java>
|
||||||
<BoxedJava>Long</BoxedJava>
|
<BoxedJava>Long</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>byte</Java>
|
<Java>byte</Java>
|
||||||
<BoxedJava>Byte</BoxedJava>
|
<BoxedJava>Byte</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>float</Java>
|
<Java>float</Java>
|
||||||
<BoxedJava>Float</BoxedJava>
|
<BoxedJava>Float</BoxedJava>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
<Class has_boxed_rep="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:www.twigletsoftware.com:schemas:txtemplate:1:0">
|
||||||
<Imports />
|
<Imports />
|
||||||
<Java>long</Java>
|
<Java>long</Java>
|
||||||
<BoxedJava>Long</BoxedJava>
|
<BoxedJava>Long</BoxedJava>
|
||||||
|
@ -1998,12 +1998,18 @@ namespace Twiglet.CS2J.Translator.TypeRep
|
|||||||
|
|
||||||
// True if we have a separate representation for boxed and unboxed versions
|
// True if we have a separate representation for boxed and unboxed versions
|
||||||
// (true for primitive types like int)
|
// (true for primitive types like int)
|
||||||
[XmlIgnore]
|
private bool hasBoxedRep = false;
|
||||||
|
[XmlAttribute("has_boxed_rep")]
|
||||||
|
[System.ComponentModel.DefaultValueAttribute(false)]
|
||||||
public bool HasBoxedRep
|
public bool HasBoxedRep
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Java != BoxedJava;
|
return hasBoxedRep;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
hasBoxedRep = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2132,6 +2138,7 @@ namespace Twiglet.CS2J.Translator.TypeRep
|
|||||||
IsUnboxedType = copyFrom.IsUnboxedType;
|
IsUnboxedType = copyFrom.IsUnboxedType;
|
||||||
Variant = copyFrom.Variant;
|
Variant = copyFrom.Variant;
|
||||||
BoxedJava = copyFrom.BoxedJava;
|
BoxedJava = copyFrom.BoxedJava;
|
||||||
|
HasBoxedRep = copyFrom.HasBoxedRep;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected TypeRepTemplate(string tName, string[] tParams, string[] usePath, AliasRepTemplate[] aliases, string[] imports, string javaTemplate)
|
protected TypeRepTemplate(string tName, string[] tParams, string[] usePath, AliasRepTemplate[] aliases, string[] imports, string javaTemplate)
|
||||||
@ -2212,6 +2219,7 @@ namespace Twiglet.CS2J.Translator.TypeRep
|
|||||||
{
|
{
|
||||||
InstantiatedTypes[i] = args[TypeParams[i]];
|
InstantiatedTypes[i] = args[TypeParams[i]];
|
||||||
}
|
}
|
||||||
|
BoxedJava = TemplateUtilities.SubstituteInType(BoxedJava,args);
|
||||||
base.Apply(args);
|
base.Apply(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1815,7 +1815,7 @@ type returns [TypeRepTemplate dotNetType, List<CommonTree> argTrees, CommonTree
|
|||||||
$boxedTree = $magicBoxedType.tree;
|
$boxedTree = $magicBoxedType.tree;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-> { $PrimitiveRep::primitiveTypeAsObject && !hasRank && !String.IsNullOrEmpty($dotNetType.BoxedJava) }? ^(TYPE[$t.token, "TYPE"] IDENTIFIER[$t.token,$dotNetType.BoxedJava] '*'* '?'?)
|
-> { $PrimitiveRep::primitiveTypeAsObject && !hasRank && $dotNetType.HasBoxedRep && !String.IsNullOrEmpty($dotNetType.BoxedJava) }? ^(TYPE[$t.token, "TYPE"] IDENTIFIER[$t.token,$dotNetType.BoxedJava] '*'* '?'?)
|
||||||
-> ^(TYPE[$t.token, "TYPE"] predefined_type? type_name? 'void'? rank_specifiers? '*'* '?'?)
|
-> ^(TYPE[$t.token, "TYPE"] predefined_type? type_name? 'void'? rank_specifiers? '*'* '?'?)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user