Block Comments

Y

yesteray

What text, if any, is allowed on the the line after the =begin and
=end delimiters of block comments?

I have code that looks like this:

=begin Hello
=end Goodbye
p "I work"

and it prints "I work" on these versions of Ruby:

ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
ruby 1.9.0 (2008-07-25 revision 18217) [i686-darwin9.5.2]
jruby 1.3.0 (ruby 1.8.6p287) (2009-06-03 5dc2e22) (Java HotSpot(TM)
Client VM 1.5.0_19) [i386-java]

Normally I wouldn't think about this anymore, but he ruby-parser gem
(2.0.2) throws an error:

ruby_parser-2.0.2/lib/ruby_lexer.rb:385:in `rb_compile_error':
embedded document meets end of file. near line 1: "
Hello" (SyntaxError)

although it works if you remove the text after the =end.

Based on a cursory grepping of the sources, Ruby 1.9 source
(ruby-1.9.1-p129) never uses any text on the same line as the =begin
or =end delimiters and Rubyspec doesn't have any tests around block
comments. Rubyspec does have some =begin "Text", but not =end "Text"
comment delimiters.

I'd like to fix the ruby-parser gem, but this seems to be something of
a grey area. I've never seen anything that requires Ruby to accept or
reject =end Text delimiters on block comments, but the de facto
standard and practice seem to be in conflict. The standard is to
accept text after the =end; the practice seems to be to not do it.

Thoughts?
 
T

Tim Hunter

yesteray said:
What text, if any, is allowed on the the line after the =begin and
=end delimiters of block comments?

_The Ruby Programming Language_ specifically says that text can follow
=begin and =end as long as it's separated by at least one blank, and
shows an example of both =begin and =end statements will additional text
on the same line. The text is treated as part of the comment.
 
C

Caleb Clausen

What text, if any, is allowed on the the line after the =begin and
=end delimiters of block comments?

I have code that looks like this:

=begin Hello
=end Goodbye
p "I work"

and it prints "I work" on these versions of Ruby:

ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
ruby 1.9.0 (2008-07-25 revision 18217) [i686-darwin9.5.2]
jruby 1.3.0 (ruby 1.8.6p287) (2009-06-03 5dc2e22) (Java HotSpot(TM)
Client VM 1.5.0_19) [i386-java]

Normally I wouldn't think about this anymore, but he ruby-parser gem
(2.0.2) throws an error:

ruby_parser-2.0.2/lib/ruby_lexer.rb:385:in `rb_compile_error':
embedded document meets end of file. near line 1: "
Hello" (SyntaxError)

although it works if you remove the text after the =end.

RedParse doesn't have this bug, tho there is a more obscure problem
with =begin blocks that I haven't figured out yet.
 
Y

Yossef Mendelssohn

_The Ruby Programming Language_ specifically says that text can follow
=3Dbegin and =3Dend as long as it's separated by at least one blank, and
shows an example of both =3Dbegin and =3Dend statements will additional t= ext
on the same line. The text is treated as part of the comment.

This appears to be an answer to the question possibly posed by
willfully ignoring everything following the first paragraph of the
post, including the code example.
 
T

Tim Hunter

Yossef said:
This appears to be an answer to the question possibly posed by
willfully ignoring everything following the first paragraph of the
post, including the code example.

The OP says "What text, if any, is allowed on the the line after the
=begin and =end delimiters of block comments?," and "I've never seen
anything that requires Ruby to accept or reject =end Text delimiters on
block comments." My response was a quote from an authoritative
reference. Based on the lack of follow-up I assumed my response was
adequate.

Perhaps I was wrong. What do you think the OP was asking? What's your
answer to his question?
 
Y

Yossef Mendelssohn

The OP says "What text, if any, is allowed on the the line after the
=3Dbegin and =3Dend delimiters of block comments?," and "I've never seen
anything that requires Ruby to accept or reject =3Dend Text delimiters on
block comments." My response was a quote from an authoritative
reference. Based on the lack of follow-up I assumed my response was
adequate.

Perhaps I was wrong. What do you think the OP was asking? What's your
answer to his question?

Somehow my earlier reading seemed to focus on the lack of vertical
space between the =3Dend line and the code line beneath it, and I was
completely wrong about the point of the question.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,990
Messages
2,570,211
Members
46,796
Latest member
SteveBreed

Latest Threads

Top