================================================================================ Empty comment ================================================================================ // -------------------------------------------------------------------------------- (source_file (line_comment)) ================================================================================ Single comment ================================================================================ // This is a comment -------------------------------------------------------------------------------- (source_file (line_comment)) ================================================================================ Multiple comments ================================================================================ // This is a comment // This is a second comment -------------------------------------------------------------------------------- (source_file (line_comment) (line_comment)) ================================================================================ Empty block comment ================================================================================ /**/ -------------------------------------------------------------------------------- (source_file (block_comment)) ================================================================================ Whitespace block comment ================================================================================ /* */ -------------------------------------------------------------------------------- (source_file (block_comment)) ================================================================================ Block comment ================================================================================ /* This is a comment */ -------------------------------------------------------------------------------- (source_file (block_comment)) ================================================================================ Block comment with slashes ================================================================================ /* /// */ -------------------------------------------------------------------------------- (source_file (block_comment)) ================================================================================ Block comment with asterisks ================================================================================ /* *** */ -------------------------------------------------------------------------------- (source_file (block_comment)) ================================================================================ Block comment is not recursive ================================================================================ /* /* */ -------------------------------------------------------------------------------- (source_file (block_comment)) ================================================================================ Unterminated comment ================================================================================ /* -------------------------------------------------------------------------------- (source_file (ERROR)) ================================================================================ Comment end-delimiter only ================================================================================ */ -------------------------------------------------------------------------------- (source_file (ERROR (UNEXPECTED '*')))