Esempio n. 1
0
 def test_arrayTypeExp(self):
     g = JavaGrammar()
     self._parseStringTest(
         g.typeExpression(), 'float []',
         Schema.ArrayTypeExp(itemTypeExp=Schema.FloatTypeRef()))
     self._parseStringTest(
         g.typeExpression(), 'float [][]',
         Schema.ArrayTypeExp(itemTypeExp=Schema.ArrayTypeExp(
             itemTypeExp=Schema.FloatTypeRef())))
     self._parseStringTest(
         g.typeExpression(), 'ArrayList []',
         Schema.ArrayTypeExp(itemTypeExp=Schema.ClassOrInterfaceTypeRef(
             name='ArrayList')))
     self._parseStringTest(
         g.typeExpression(), 'ArrayList<Integer> []',
         Schema.ArrayTypeExp(itemTypeExp=Schema.GenericTypeExp(
             target='ArrayList',
             args=[Schema.ClassOrInterfaceTypeRef(name='Integer')])))
     self._parseStringTest(
         g.typeExpression(), 'java.util.List []',
         Schema.ArrayTypeExp(itemTypeExp=Schema.MemberTypeExp(
             target=Schema.MemberTypeExp(
                 target=Schema.ClassOrInterfaceTypeRef(name='java'),
                 member=Schema.ClassOrInterfaceTypeRef(name='util')),
             member=Schema.ClassOrInterfaceTypeRef(name='List'))))
Esempio n. 2
0
 def test_typeClassExp(self):
     g = JavaGrammar()
     self._parseStringTest(
         g.primary(), 'float.class',
         Schema.TypeClassExp(typeExp=Schema.FloatTypeRef()))
     self._parseStringTest(
         g.primary(), 'ArrayList<Integer>.class',
         Schema.TypeClassExp(typeExp=Schema.GenericTypeExp(
             target='ArrayList',
             args=[Schema.ClassOrInterfaceTypeRef(name='Integer')])))
     self._parseStringTest(g.primary(), 'void.class', Schema.VoidClassExp())
Esempio n. 3
0
 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>')
Esempio n. 4
0
 def genericTypeCall(self):
     return ( self.simpleName() + Literal( '<' ) + SeparatedList( self.genericTypeArgument(), 0, -1, SeparatedList.TrailingSeparatorPolicy.NEVER ) + Literal( '>' ) ).action( \
             lambda input, begin, end, x, bindings: Schema.GenericTypeExp( target=x[0], args=x[2] ) )