private boolean maySkipASI(CommonToken lastToken,ObservableXtextTokenStream tokens){
  int countDownFrom=lastToken.getTokenIndex();
  for (int i=countDownFrom - 1; i >= 0; i--) {
    Token prevToken=tokens.get(i);
    if (prevToken.getChannel() == Token.DEFAULT_CHANNEL) {
      if (mandatoryASI.get(prevToken.getType())) {
        return false;
      }
      return true;
    }
  }
  return true;
}

private boolean maySkipASI ( CommonToken lastToken , ObservableXtextTokenStream tokens ) { int countDownFrom = lastToken . getTokenIndex ( ) ; for ( int i = countDownFrom - 1 ; i >= 0 ; i -- ) { Token prevToken = tokens . get ( i ) ; if ( prevToken . getChannel ( ) == Token . DEFAULT_CHANNEL ) { if ( mandatoryASI . get ( prevToken . getType ( ) ) ) { return false ; } return true ; } } return true ; }
prevent asis to be skipped at certain locations , e . g . after a return keyword .
