To minimize the number of operations, I would do something like the below (this also includes check for additional
previous tokens after which a { is the start of a literal hash) as well as incorporates the if statement for RPAREN that follows. 
The code below is from the top of my mind and untested.

<pre>
# Push comment for { or  (, but only if { is not the opening of a literal hash
case final_token.name
when :LBRACE
  raise "a manifest cannot begin with an opening brace" if @previous_token.nil?
  case @previous_token.name
  when :FARROW # =>
  when :PARROW # +>
  when :EQUALS  # =
  when :NOTEQUAL # !=
  when :ISEQUAL # ==
  when :COMMA # ,
  when :LPAREN # (
  else
    commentpush
  end
when :LPAREN # (
  commentpush
when :RPAREN # )
  commentpop
end
</pre>

It is important to verify that the new solution is not slower than the original by running a simple benchmark