module Ripl::MultiLine::RubyParser
# # # This multi-line implementation uses IRB’s RubyLex parser
works on: 1.8 analyze features: [:literal, :string] [:literal, :hash] [:statement] [:forced] notes: statement could also be [
Constants
- ERROR_MESSAGES
- VERSION
Public Instance Methods
multiline?(string)
click to toggle source
# File lib/ripl/multi_line/ruby_parser.rb, line 25 def multiline?(string) return [:forced] if string =~ /;\s*\Z/ # force multi line with ; ::RubyParser.new.parse(string) false # string was parsable, no multi-line rescue ::Racc::ParseError [:statement] rescue SyntaxError => e ERROR_MESSAGES.each{ |type, message| return type if message === e.message } false # syntax error not multi-line relevant end