Thanks for the hint. I've checked and `question_mark`/`questionMark` seem to be doing the same thing (in this case). However, `\n` is processed differently in `tokenize` and in its JRuby's equivalent.

In `tokenize`, `\n` is ignored only in these states of the lexer:
    
    elif ch in "\r\n":
        [...]
        if self.state not in [self.EXPR_BEG, self.EXPR_DOT]:
            [...]
            yield self.emit("LITERAL_NEWLINE")
        continue

In JRuby's `yylex`:

    case '\n':
        [...]
        case EXPR_BEG: case EXPR_FNAME: case EXPR_DOT:
        case EXPR_CLASS: case EXPR_VALUE:
            continue loop;
        }
        [...]

In this case, we are in `EXPR_VALUE` state. `\n` is ignored in JRuby and yields `LITERAL_NEWLINE` in topaz.

I don't have time right now to actually test this assumption, but if this is really the problem, I suspect it impacts more than just ternary operator.