Parsing ruby-code with the ruby-interpreter itself

Discussion in 'Ruby' started by cies, Oct 24, 2006.

  1. cies

    cies Guest

    at the moment most code editors are using sets of regexps, and other
    difficult stuff to do highlighting and syntax error checking...

    i was (naturally) thinking: why?

    ruby already contains a nice parser for parsing ruby!
    would it be possible to build hooks into the ruby-interpreter for code-editors?

    i was thinking a small interface exposed by a (both c and ruby)
    library, that allows other programs (mainly code editors for as far as
    i can imagine) to make use of the relatively fast, and standard
    compliant ruby parser that is already in ruby...

    searching the net i found nothing that does this. yet i might have
    searched in the wrong direction.

    well, i'm not a good C coder, i tried to look at ruby's internals to
    figure to find out if i could make a patch... but no; i can't, i got
    too dizzy ;)

    am i suggesting a small layer over the parse.{c,y} and lex.c, or am
    suggesting a much bigger project?


    thanks for reading all the way up to the end,
    cies breijs.


    --
    "Computer games don't affect kids; I mean if Pac-Man affected us as
    kids, we'd all be running around in darkened rooms, munching magic
    pills and listening to repetitive electronic music." -- Kristian
    Wilson (Nintendo, Inc), 1989
     
    cies, Oct 24, 2006
    #1
    1. Advertising

  2. On Tue, 24 Oct 2006 13:23:47 +0200, cies <> wrote:

    > at the moment most code editors are using sets of regexps, and other
    > difficult stuff to do highlighting and syntax error checking...
    >
    > i was (naturally) thinking: why?
    >
    > ruby already contains a nice parser for parsing ruby!
    > would it be possible to build hooks into the ruby-interpreter for
    > code-editors?
    >
    > i was thinking a small interface exposed by a (both c and ruby)
    > library, that allows other programs (mainly code editors for as far as
    > i can imagine) to make use of the relatively fast, and standard
    > compliant ruby parser that is already in ruby...
    >
    > searching the net i found nothing that does this. yet i might have
    > searched in the wrong direction.


    There are multiple libraries that do things like that:

    First there is Ripper. It works by putting its own hooks into parse.y and
    then providing a SAX-like interface. I am not sure about its status and
    how complete it is.

    Then there are RubyNode and ParseTree, which wrap Ruby's internal NODEs.
    They can both take a string, parse it using Ruby's parser (without
    executing it) and then return the resulting NODE tree. The downside of
    this approach is that comments are ignored, because they are not
    represented in the NODE tree, otherwise it works quite good.

    Dominik
     
    Dominik Bathon, Oct 24, 2006
    #2
    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. Mike
    Replies:
    4
    Views:
    490
    Roedy Green
    Aug 26, 2005
  2. NotGiven
    Replies:
    0
    Views:
    509
    NotGiven
    Sep 17, 2004
  3. Replies:
    5
    Views:
    416
    Cedric LEMAIRE
    Sep 3, 2003
  4. mr_cross
    Replies:
    11
    Views:
    620
    dorayme
    Oct 11, 2006
  5. Replies:
    3
    Views:
    767
    Ziga Seilnacht
    Jan 3, 2007
Loading...

Share This Page