Class: RubyParserStuff::RubyParser

### Home Classes Methods

### In Files

- lib/ruby_parser_extras.rb

### Parent

Object

### Namespace

- CLASS RubyParserStuff::RubyParser::SyntaxError

### Methods

- ::for_current_ruby
- ::new
- #parse
- #process
- #reset

### Files

- Manifest.txt
- README.txt

### Class/Module Index

Quicksearch

- RubyParserStuff
- RubyParserStuff::Environment
- RubyParserStuff::Keyword
- RubyParserStuff::Keyword::KWtable
- RubyParserStuff::Ruby18Parser
- RubyParserStuff::Ruby19Parser
- RubyParserStuff::Ruby20Parser
- RubyParserStuff::Ruby21Parser
- RubyParserStuff::RubyParser
- RubyParserStuff::RubyParser::SyntaxError
- RubyParserStuff::Sexp
- RubyParserStuff::StackState
- RubyParserStuff::String
- RubyLexer
- RubyLexer::ScanError
- RPStringScanner
- Ruby18Parser
- Ruby19Parser
- Ruby20Parser
- Ruby21Parser

No matching classes.

# RubyParserStuff::RubyParser

RubyParser is a compound parser that first attempts to parse using the 1.9 syntax parser and falls back to the 1.8 syntax parser on a parse error.

### Public Class Methods

for_current_ruby() click to toggle source

    # File lib/ruby_parser_extras.rb, line 1373
    def self.for_current_ruby
      case RUBY_VERSION
      when /^1\.8/ then
        Ruby18Parser.new
      when /^1\.9/ then
        Ruby19Parser.new
      when /^2.0/ then
        Ruby20Parser.new
      when /^2.1/ then
        Ruby21Parser.new
      else
        raise "unrecognized RUBY_VERSION #{RUBY_VERSION}"
      end
    end

new() click to toggle source

    # File lib/ruby_parser_extras.rb, line 1345
    def initialize
      @p18 = Ruby18Parser.new
      @p19 = Ruby19Parser.new
      @p20 = Ruby20Parser.new
      @p21 = Ruby21Parser.new
    end

### Public Instance Methods

parse(s, f = "(string)", t = 10) click to toggle source
Alias for: process
process(s, f = "(string)", t = 10) click to toggle source

    # File lib/ruby_parser_extras.rb, line 1352
    def process s, f = "(string)", t = 10
      e = nil
      [@p21, @p20, @p19, @p18].each do |parser|
        begin
          return parser.process s, f, t
        rescue Racc::ParseError, RubyParser::SyntaxError => exc
          e = exc
        end
      end
      raise e
    end

Also aliased as: parse
reset() click to toggle source

    # File lib/ruby_parser_extras.rb, line 1366
    def reset
      @p18.reset
      @p19.reset
      @p20.reset
      @p21.reset
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.