irb(main):005> Parser::CurrentRuby.new.tokenize(Parser::Source::Buffer.new("", source: "class C\n# foo\nend\n"))
=>
[s(:class,
s(:const, nil, :C), nil, nil),
[#<Parser::Source::Comment :2:1 "# foo">],
[[:kCLASS, ["class", #<Parser::Source::Range 0...5>]],
[:tCONSTANT, ["C", #<Parser::Source::Range 6...7>]],
[:tCOMMENT, ["# foo", #<Parser::Source::Range 8...13>]],
[:tNL, [nil, #<Parser::Source::Range 7...8>]],
[:kEND, ["end", #<Parser::Source::Range 14...17>]],
[:tNL, [nil, #<Parser::Source::Range 17...18>]]]]
In the following code:
I would expect the newline token after the
Cconstant to be emitted before the comment token, but it is the opposite:I can work around this, but I just want to clarify what the rule is here?