---input--- @id(0) override x:i32 = 1; @ id(1) override y:i32 = 2; @//comment id(1) override z:i32 = 3; @must_use fn foo() -> i32 { return 32; } ---tokens--- '@' Name.Decorator 'id' Name.Decorator '(' Punctuation '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace 'override' Keyword.Declaration ' ' Text.Whitespace 'x' Name ':' Punctuation 'i32' Name.Builtin ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace '@' Name.Decorator ' ' Text.Whitespace 'id' Name.Decorator '(' Punctuation '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace 'override' Keyword.Declaration ' ' Text.Whitespace 'y' Name ':' Punctuation 'i32' Name.Builtin ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '2' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace '@' Name.Decorator '//comment\n' Comment.Single 'id' Name.Decorator '(' Punctuation '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace 'override' Keyword.Declaration ' ' Text.Whitespace 'z' Name ':' Punctuation 'i32' Name.Builtin ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '3' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace '@' Name.Decorator 'must_use' Name.Decorator ' ' Text.Whitespace 'fn' Keyword ' ' Text.Whitespace 'foo' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '->' Punctuation ' ' Text.Whitespace 'i32' Name.Builtin ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace '32' Literal.Number.Integer ';' Punctuation ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace