def test_primitiveTypeRef(self): g = JavaGrammar() self._parseStringTest(g.typeExpression(), 'boolean', Schema.BooleanTypeRef()) self._parseStringTest(g.typeExpression(), 'byte', Schema.ByteTypeRef()) self._parseStringTest(g.typeExpression(), 'short', Schema.ShortTypeRef()) self._parseStringTest(g.typeExpression(), 'int', Schema.IntTypeRef()) self._parseStringTest(g.typeExpression(), 'long', Schema.LongTypeRef()) self._parseStringTest(g.typeExpression(), 'char', Schema.CharTypeRef()) self._parseStringTest(g.typeExpression(), 'float', Schema.FloatTypeRef()) self._parseStringTest(g.typeExpression(), 'double', Schema.DoubleTypeRef())
def test_genericTypeExp(self): g = JavaGrammar() self._parseStringTest( g.typeExpression(), 'ArrayList<Integer>', Schema.GenericTypeExp( target='ArrayList', args=[Schema.ClassOrInterfaceTypeRef(name='Integer')])) self._parseStringTest( g.typeExpression(), 'ArrayList<Integer,Double>', Schema.GenericTypeExp( target='ArrayList', args=[ Schema.ClassOrInterfaceTypeRef(name='Integer'), Schema.ClassOrInterfaceTypeRef(name='Double') ])) self._parseStringTest( g.typeExpression(), 'X.ArrayList<Integer>', Schema.MemberTypeExp( target=Schema.ClassOrInterfaceTypeRef(name='X'), member=Schema.GenericTypeExp( target='ArrayList', args=[Schema.ClassOrInterfaceTypeRef(name='Integer')]))) self._parseStringTest( g.typeExpression(), 'ArrayList<Integer>.X', Schema.MemberTypeExp( target=Schema.GenericTypeExp( target='ArrayList', args=[Schema.ClassOrInterfaceTypeRef(name='Integer')]), member=Schema.ClassOrInterfaceTypeRef(name='X'))) self._parseStringTest( g.typeExpression(), 'Vector<ArrayList<Integer>>', Schema.GenericTypeExp( target='Vector', args=[ Schema.GenericTypeExp( target='ArrayList', args=[Schema.ClassOrInterfaceTypeRef(name='Integer')]) ])) self._parseStringTest( g.typeExpression(), 'ArrayList<Integer[]>', Schema.GenericTypeExp( target='ArrayList', args=[ Schema.ArrayTypeExp( itemTypeExp=Schema.ClassOrInterfaceTypeRef( name='Integer')) ])) self._parseStringTest( g.typeExpression(), 'ArrayList<int[]>', Schema.GenericTypeExp( target='ArrayList', args=[Schema.ArrayTypeExp(itemTypeExp=Schema.IntTypeRef())])) self._parseStringTest( g.typeExpression(), 'ArrayList<? extends Q>', Schema.GenericTypeExp( target='ArrayList', args=[ Schema.WildCardTypeArgument( extendsOrSuper='extends', typeExp=Schema.ClassOrInterfaceTypeRef(name='Q')) ])) self._parseStringTest( g.typeExpression(), 'ArrayList<? super Q>', Schema.GenericTypeExp( target='ArrayList', args=[ Schema.WildCardTypeArgument( extendsOrSuper='super', typeExp=Schema.ClassOrInterfaceTypeRef(name='Q')) ])) self._parseStringTest( g.typeExpression(), 'ArrayList<?>', Schema.GenericTypeExp( target='ArrayList', args=[ Schema.WildCardTypeArgument( extendsOrSuper='super', typeExp=Schema.ClassOrInterfaceTypeRef(name='Q')) ])) self._parseStringFailTest(g.typeExpression(), 'ArrayList<int>')
def intTypeRef(self): return Keyword(Keywords.intKeyword).action( lambda input, begin, end, x, bindings: Schema.IntTypeRef())