Rule typeVariable() { return Sequence( group.basics.identifier(), Optional(Sequence( Sequence( String("extends"), group.basics.testLexBreak(), group.basics.optWS()), type(), ZeroOrMore(Sequence( Ch('&'), group.basics.optWS(), type())))), set(actions.createTypeVariable(value("identifier"), value("Optional/Sequence/type"), values("Optional/Sequence/ZeroOrMore/Sequence/type")))); }
public Rule nonArrayType() { return FirstOf(primitiveType(), referenceType()); }
public Rule plainReferenceType() { return Sequence( plainReferenceTypePart().label("head"), ZeroOrMore(dotPlainReferenceTypePart().label("tail")), set(actions.createReferenceType(value("head"), values("ZeroOrMore/tail")))); }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.2">JLS section 4.2</a> */ public Rule type() { return Sequence( nonArrayType(), set(), ZeroOrMore(Sequence( Ch('['), group.basics.optWS(), Ch(']'), group.basics.optWS())), set(actions.setArrayDimensionsOfType(value(), texts("ZeroOrMore/Sequence")))).label("type"); }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.3">JLS section 4.3</a> */ public Rule referenceType() { return Sequence( referenceTypePart().label("head"), ZeroOrMore(dotReferenceTypePart().label("tail")), set(actions.createReferenceType(value("head"), values("ZeroOrMore/tail")))); }
public Rule typeVariables() { return Optional(Sequence( Ch('<'), group.basics.optWS(), Optional(Sequence( typeVariable().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), typeVariable().label("tail"))))), Ch('>'), set(actions.createTypeVariables(value("Optional/Sequence/head"), values("Optional/Sequence/ZeroOrMore/Sequence/tail"))), group.basics.optWS())); }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.5">JLS section 4.5</a> */ public Rule typeArguments() { return Optional(Sequence( Ch('<'), group.basics.optWS(), Optional(Sequence( typeArgument().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), typeArgument().label("tail"))))), Ch('>'), set(actions.createTypeArguments(value("Optional/Sequence/head"), values("Optional/Sequence/ZeroOrMore/Sequence/tail"))), group.basics.optWS())).label("typeArguments"); }
public Rule typeArgument() { return FirstOf( type(), Sequence( Ch('?').label("qmark"), group.basics.optWS(), FirstOf(String("extends"), String("super")).label("boundType"), group.basics.testLexBreak(), group.basics.optWS(), type(), set(actions.createWildcardedType(node("qmark"), node("boundType"), text("boundType"), value("type")))), Sequence( Ch('?').label("qmark"), set(actions.createUnboundedWildcardType(node("qmark"))), group.basics.optWS())); } }
public Rule typeArgument() { return FirstOf( type(), Sequence( Ch('?').label("qmark"), group.basics.optWS(), FirstOf(String("extends"), String("super")).label("boundType"), group.basics.testLexBreak(), group.basics.optWS(), type(), set(actions.createWildcardedType(node("qmark"), node("boundType"), text("boundType"), value("type")))), Sequence( Ch('?').label("qmark"), set(actions.createUnboundedWildcardType(node("qmark"))), group.basics.optWS())); } }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.2">JLS section 4.2</a> */ public Rule primitiveType() { return Sequence( rawPrimitiveType(), set(actions.createPrimitiveType(lastText())), group.basics.optWS()); }
Rule typeVariable() { return Sequence( group.basics.identifier(), Optional(Sequence( Sequence( String("extends"), group.basics.testLexBreak(), group.basics.optWS()), type(), ZeroOrMore(Sequence( Ch('&'), group.basics.optWS(), type())))), set(actions.createTypeVariable(value("identifier"), value("Optional/Sequence/type"), values("Optional/Sequence/ZeroOrMore/Sequence/type")))); }
public Rule typeVariables() { return Optional(Sequence( Ch('<'), group.basics.optWS(), Optional(Sequence( typeVariable().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), typeVariable().label("tail"))))), Ch('>'), set(actions.createTypeVariables(value("Optional/Sequence/head"), values("Optional/Sequence/ZeroOrMore/Sequence/tail"))), group.basics.optWS())); }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.5">JLS section 4.5</a> */ public Rule typeArguments() { return Optional(Sequence( Ch('<'), group.basics.optWS(), Optional(Sequence( typeArgument().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), typeArgument().label("tail"))))), Ch('>'), set(actions.createTypeArguments(value("Optional/Sequence/head"), values("Optional/Sequence/ZeroOrMore/Sequence/tail"))), group.basics.optWS())).label("typeArguments"); }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.3">JLS section 4.3</a> */ public Rule referenceType() { return Sequence( referenceTypePart().label("head"), ZeroOrMore(dotReferenceTypePart().label("tail")), set(actions.createReferenceType(value("head"), values("ZeroOrMore/tail")))); }
/** * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#4.2">JLS section 4.2</a> */ public Rule type() { return Sequence( nonArrayType(), set(), ZeroOrMore(Sequence( Ch('['), group.basics.optWS(), Ch(']'), group.basics.optWS())), set(actions.setArrayDimensionsOfType(value(), texts("ZeroOrMore/Sequence")))).label("type"); }