Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   Block Comments (http://www.velocityreviews.com/forums/t858617-block-comments.html)

yesteray 07-18-2009 10:19 PM

Block Comments
 
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?


Tim Hunter 07-18-2009 10:27 PM

Re: Block Comments
 
yesteray wrote:
> 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.

--
MagickWand for Ruby - http://magickwand.rubyforge.org/


Caleb Clausen 07-19-2009 09:03 PM

Re: Block Comments
 
On 7/18/09, yesteray <ray.baxter@gmail.com> wrote:
> 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.


Yossef Mendelssohn 07-20-2009 09:51 PM

Re: Block Comments
 
On Jul 18, 5:27=A0pm, Tim Hunter <TimHun...@nc.rr.com> wrote:
> _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.

--
-yossef


Tim Hunter 07-20-2009 10:34 PM

Re: Block Comments
 
Yossef Mendelssohn wrote:
> On Jul 18, 5:27 pm, Tim Hunter <TimHun...@nc.rr.com> wrote:
>> _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.

>
> 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.
>
> --
> -yossef
>
>


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?

--
MagickWand for Ruby - http://magickwand.rubyforge.org/


Yossef Mendelssohn 07-21-2009 12:26 AM

Re: Block Comments
 
On Jul 20, 5:34=A0pm, Tim Hunter <TimHun...@nc.rr.com> wrote:
> 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.

--
-yossef



All times are GMT. The time now is 04:58 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.