Block Comments

Discussion in 'Ruby' started by yesteray, Jul 18, 2009.

  1. yesteray

    yesteray Guest

    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?
    yesteray, Jul 18, 2009
    #1
    1. Advertising

  2. yesteray

    Tim Hunter Guest

    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/
    Tim Hunter, Jul 18, 2009
    #2
    1. Advertising

  3. On 7/18/09, yesteray <> 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.
    Caleb Clausen, Jul 19, 2009
    #3
  4. On Jul 18, 5:27=A0pm, Tim Hunter <> 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
    Yossef Mendelssohn, Jul 20, 2009
    #4
  5. yesteray

    Tim Hunter Guest

    Yossef Mendelssohn wrote:
    > On Jul 18, 5:27 pm, Tim Hunter <> 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/
    Tim Hunter, Jul 20, 2009
    #5
  6. On Jul 20, 5:34=A0pm, Tim Hunter <> 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
    Yossef Mendelssohn, Jul 21, 2009
    #6
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    1,095
  2. John Salerno

    why no block comments in Python?

    John Salerno, Mar 8, 2006, in forum: Python
    Replies:
    18
    Views:
    39,673
    Roy Smith
    Mar 11, 2006
  3. morrell
    Replies:
    1
    Views:
    936
    roy axenov
    Oct 10, 2006
  4. Monk
    Replies:
    10
    Views:
    1,438
    Michael Wojcik
    Apr 20, 2005
  5. Replies:
    4
    Views:
    575
    Dr John Stockton
    Jun 3, 2006
Loading...

Share This Page