code: Rule inlineIfExpressionChaining() {
  		return Sequence(
  				conditionalOrExpressionChaining().label("head"),
  				set(),
  				Optional(
  						Sequence(
  								Sequence(Ch('?'), TestNot(FirstOf(Ch('.'), Ch(':'), Ch('?')))).label("operator1"),
  								group.basics.optWS(),
  								assignmentExpressionChaining().label("tail1"),
  								Ch(':').label("operator2"),
  								group.basics.optWS(),
  								inlineIfExpressionChaining().label("tail2")
  								)),
  				set(actions.createInlineIfExpression(value("head"),
  						node("Optional/Sequence/operator1"), node("Optional/Sequence/operator2"),
  						value("Optional/Sequence/tail1"), value("Optional/Sequence/tail2"))),
  				group.basics.optWS());
  	}
docs: P13
  
  @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#15.25">JLS section 15.25</a>