[#57185] Cipher book for ruby — Shannon Fang <xrfang@...>

Hi all ruby gurus there,

16 messages 2002/12/01

[#57228] What do some of Ruby's symbols mean? — "Gavin Sinclair" <gsinclair@...>

This could do with some community input before going to the FAQ. The format

31 messages 2002/12/01
[#57234] Re: [FAQ] What do some of Ruby's symbols mean? — dblack@... 2002/12/01

Hi --

[#57237] Re: [FAQ] What do some of Ruby's symbols mean? — Shannon Fang <xrfang@...> 2002/12/01

Hi David

[#57246] [Revised] What do some of Ruby's symbols mean? — "Gavin Sinclair" <gsinclair@...>

Thanks for the instant feedback. And apologies for the offensive late-night

11 messages 2002/12/01

[#57337] Memory consumption problem with recursion — squidster@... (Squidster)

Fellow Rubyists/Rubyians/Rubyans,

10 messages 2002/12/02

[#57349] [Revised again] What are the non-alphanumerical symbols in Ruby code? — "Gavin Sinclair" <gsinclair@...>

Folks,

13 messages 2002/12/02

[#57380] Ruby Book for People Who Aren't (Yet) Programmers — "Chris" <nemo@...>

Hello,

11 messages 2002/12/02

[#57403] Newsgroup — Daniel Carrera <dcarrera@...>

Hello,

28 messages 2002/12/02
[#57409] Re: Newsgroup — "Chris Morris" <chrismo@...> 2002/12/02

In addition, this mailing list is a mirror of the newsgroup, so there's no

[#57411] Re: Newsgroup — Daniel Carrera <dcarrera@...> 2002/12/02

Ruby Book for People Who Aren't (Yet) Programmers

[#57412] Re: Newsgroup — Mauricio Fern疣dez <batsman.geo@...> 2002/12/02

On Tue, Dec 03, 2002 at 04:50:10AM +0900, Daniel Carrera wrote:

[#57438] Re: Newsgroup — Daniel Carrera <dcarrera@...> 2002/12/03

> You might already have received it by now. Get used to receiving the

[#57439] Re: Newsgroup — "Gavin Sinclair" <gsinclair@...> 2002/12/03

[#57440] Re: Ruby Book for People Who Aren't (Yet) Programmers — Daniel Carrera <dcarrera@...> 2002/12/03

> I heard a little while back that there might be a Ruby book in the works for

[#57480] Re: Ruby Book for People Who Aren't (Yet) Programmers — Martin DeMello <martindemello@...> 2002/12/03

Daniel Carrera <dcarrera@math.umd.edu> wrote:

[#57598] Class variables problem — Peter Hickman <peter@...>

I have used

16 messages 2002/12/04

[#57694] Re: Ruby Book for People Who Aren't (Yet) Programmers — "Bill Kelly" <billk@...>

Hi,

13 messages 2002/12/05

[#57735] Re: elseif? — "Shannon Fang" <xrfang@...>

How about a vote? I vote to add elseif as an alternative... Least

20 messages 2002/12/05

[#57816] ratlast 0.1 -- embedded FORTH in Ruby — Mark Probert <probertm@...>

18 messages 2002/12/05

[#57826] Re: elseif? — "Ted" <ted@...>

Yuk! Ruby was presented to me as a 'clean' language.

38 messages 2002/12/05

[#57833] on error resume next — Shannon Fang <xrfang@...>

Hi,

22 messages 2002/12/05

[#57856] Buffered output on Windows — "Chris Pine" <nemo@...>

Quick question:

26 messages 2002/12/05

[#58093] Thank God for backups — Daniel Carrera <dcarrera@...>

I was working on the tutorial just now and wanted to delete all the *~

48 messages 2002/12/07
[#58096] Re: Thank God for backups — "Gavin Sinclair" <gsinclair@...> 2002/12/07

From: "Daniel Carrera" <dcarrera@math.umd.edu>

[#58188] The Ruby Way — Daniel Carrera <dcarrera@...>

What do people think of "The Ruby Way"?

18 messages 2002/12/08

[#58394] Ruby BUG when using PStore and fork — Jeremy Henty <jeremy@...>

PStore does not appear to play well with fork. This script

20 messages 2002/12/09

[#58438] warnings -w — Daniel Carrera <dcarrera@...>

Hello,

20 messages 2002/12/10
[#58439] Re: warnings -w — matz@... (Yukihiro Matsumoto) 2002/12/10

Hi,

[#58441] Re: warnings -w — Daniel Carrera <dcarrera@...> 2002/12/10

> It sets $VERBOSE to true, and gives you extra warnings on parsing.

[#58444] Re: warnings -w — matz@... (Yukihiro Matsumoto) 2002/12/10

[#58446] Re: warnings -w — Daniel Carrera <dcarrera@...> 2002/12/10

> |Thanks. Can you give me an example of a parsing warning that it would

[#58447] Re: warnings -w — matz@... (Yukihiro Matsumoto) 2002/12/10

Hi,

[#58473] Problems transporting nil values using XMLRPC (net/http ?) — Martin Hart <martin@...>

12 messages 2002/12/10

[#58479] Pymacs in ruby? — "Mike Campbell" <michael_s_campbell@...>

This is probably way, way OT, but has anyone considered something along the

15 messages 2002/12/10

[#58597] calling a perl script — max <max@...>

hi

17 messages 2002/12/11

[#58657] functional programming "style" — "zesar" <i_wont@...>

i discovered ruby some weeks ago and i have to say now that i'm through with

13 messages 2002/12/11

[#58662] Re: The coolest thing since sliced bread — "Garriss, Michael" <Michael.Garriss@...>

Ugh! Free write forces users into a new editor? I'm lost without Vim.

21 messages 2002/12/11

[#58677] help -- persuade my boss to adopt ruby — Shannon Fang <xrfang@...>

Hi Ruby Lovers,

18 messages 2002/12/11

[#58689] Re: [ANN] jabber4r 0.3.0 (doesn't work with raa-install) — ptkwt@...1.aracnet.com (Phil Tomson)

15 messages 2002/12/11
[#58751] Re: [ANN] jabber4r 0.3.0 (doesn't work with raa-install) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/12/12

In article <20021211171825.GA2345@localhost.localdomain>,

[#58724] Problem loading extensions in OSX 10.2.2 — Dave Thomas <Dave@...>

12 messages 2002/12/12

[#58730] Re: do I really not understand inheritance?? — "Chris Pine" <nemo@...>

AHA!!!

22 messages 2002/12/12
[#58769] Re: do I really not understand inheritance?? — dblack@... 2002/12/12

Hi --

[#58785] Re: do I really not understand inheritance?? — "Chris Pine" <nemo@...> 2002/12/12

Hmm.... I see what you're saying, I think. I was going to give you a

[#58819] Re: do I really not understand inheritance?? — dblack@... 2002/12/12

Hi --

[#58738] Re: help -- persuade my boss to adopt ruby — "Ted" <ted@...>

Dang! Ugly American idioms...

15 messages 2002/12/12
[#58742] Re: help -- persuade my boss to adopt ruby — "Russ Freeman" <russ@...> 2002/12/12

My advice:

[#58804] Re: help -- persuade my boss to adopt ruby — "Shannon Fang" <xrfang@...>

>it's the MATZ'S position that Ruby will never be REAL WORLD language.

102 messages 2002/12/12
[#59295] Re: help -- persuade my boss to adopt ruby — "Rich" <rich@...> 2002/12/17

The problem lies in the fact that these statements are equal:

[#59325] Re: help -- persuade my boss to adopt ruby — Austin Ziegler <austin@...> 2002/12/17

On Tue, 17 Dec 2002 16:49:47 +0900, Rich wrote:

[#59407] Re: help -- persuade my boss to adopt ruby — "Gavin Sinclair" <gsinclair@...> 2002/12/18

From: "Dan Sugalski" <dan@sidhe.org>

[#59161] Re: help -- persuade my boss to adopt ruby — "Hal E. Fulton" <hal9000@...> 2002/12/16

----- Original Message -----

[#59181] Re: help -- persuade my boss to adopt ruby — "Bulat Ziganshin" <bulatz@...> 2002/12/16

Hello Hal,

[#58870] replace setup.rb/install.rb with builtin module — ptkwt@...1.aracnet.com (Phil Tomson)

I proposed this idea last night on the tail-end of another thread and on

10 messages 2002/12/12

[#58913] Inheritance Question — Jim Freeze <jim@...>

Hi

38 messages 2002/12/12
[#58957] Re: Inheritance Question — "Gavin Sinclair" <gsinclair@...> 2002/12/13

From: "Jim Freeze" <jim@freeze.org>

[#58973] Re: Inheritance Question — Jim Freeze <jim@...> 2002/12/13

On Friday, 13 December 2002 at 15:45:27 +0900, Gavin Sinclair wrote:

[#58974] Re: Inheritance Question — ts <decoux@...> 2002/12/13

>>>>> "J" == Jim Freeze <jim@freeze.org> writes:

[#58993] Re: Inheritance Question — ahoward <ahoward@...> 2002/12/13

[#58998] Re: Inheritance Question — ts <decoux@...> 2002/12/13

>>>>> "a" == ahoward <ahoward@fsl.noaa.gov> writes:

[#59002] Re: Inheritance Question — ahoward <ahoward@...> 2002/12/13

On Sat, 14 Dec 2002, ts wrote:

[#59003] Re: Inheritance Question — ts <decoux@...> 2002/12/13

>>>>> "a" == ahoward <ahoward@fsl.noaa.gov> writes:

[#59108] un-extending objects — dblack@...

Hi --

17 messages 2002/12/15

[#59174] Toward ruby-lang.org renewal; trial website offered — matz@... (Yukihiro Matsumoto)

Hi,

33 messages 2002/12/16
[#59202] Re: Toward ruby-lang.org renewal; trial website offered — Trevor.Jenkins@... (Trevor Jenkins) 2002/12/16

On Mon, 16 Dec 2002 14:26:19 +0900, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#59203] Re: Toward ruby-lang.org renewal; trial website offered — Tim Bates <tim@...> 2002/12/16

On Mon, 16 Dec 2002 08:11 pm, Trevor Jenkins wrote:

[#59204] Re: Toward ruby-lang.org renewal; trial website offered — "NAKAMURA, Hiroshi" <nahi@...> 2002/12/16

Hi, all,

[#59343] OT: Functional Language Recommendation — Wai-Sun Chia <waisun.chia@...>

Sorry for the OT post, but I need some advise from some like-minded

23 messages 2002/12/17

[#59392] Re: [OT] RE: help -- persuade my boss to adopt ruby — "Austin Ziegler" <austin@...>

> Ok, I confess: I know nothing about data

10 messages 2002/12/17

[#59508] ANN: FXRuby-1.0.17 Now Available — Lyle Johnson <lyle@...>

-----BEGIN PGP SIGNED MESSAGE-----

15 messages 2002/12/18
[#59518] Re: ANN: FXRuby-1.0.17 Now Available — Jim Freeze <jim@...> 2002/12/18

On Thursday, 19 December 2002 at 2:51:08 +0900, Lyle Johnson wrote:

[#59537] Re: ANN: FXRuby-1.0.17 Now Available — Lyle Johnson <lyle@...> 2002/12/18

Jim Freeze wrote:

[#59568] Re: ANN: FXRuby-1.0.17 Now Available — Jim Freeze <jim@...> 2002/12/19

On Thursday, 19 December 2002 at 7:11:59 +0900, Lyle Johnson wrote:

[#59617] Re: ANN: FXRuby-1.0.17 Now Available — Lyle Johnson <lyle@...> 2002/12/19

Jim Freeze wrote:

[#59635] FXRuby and OS X 10.2 (Re: ANN: FXRuby-1.0.17 Now Available) — Brian Wisti <brian@...> 2002/12/19

Hi Lyle,

[#59564] Test::Unit 0.1.5 — <nathaniel@...>

What with all the holiday cheer going around (who can't be cheerful with

24 messages 2002/12/19
[#59621] Re: [ANN] Test::Unit 0.1.5 — Lyle Johnson <lyle@...> 2002/12/19

nathaniel@NOSPAMtalbott.ws wrote:

[#59625] Re: [ANN] Test::Unit 0.1.5 — <nathaniel@...> 2002/12/19

Lyle Johnson [mailto:lyle@users.sourceforge.net] wrote:

[#59808] ANN: FreeRIDE 0.5.0 Release Candidate 1 — "Curt Hibbs" <curt@...>

[drum roll...]

24 messages 2002/12/23

[#59834] ruby-dev summary 19069-19150 — TAKAHASHI Masayoshi <maki@...>

Hello all,

15 messages 2002/12/24

[#59854] ANN: ruby 1.6.8 — matz@... (Yukihiro Matsumoto)

Hello everyone,

16 messages 2002/12/24

[#59954] 1210 / 100 = 12? what? — Tom Sawyer <transami@...>

can someone explain this to me:

35 messages 2002/12/27
[#59955] Re: 1210 / 100 = 12? what? — Gavin Sinclair <gsinclair@...> 2002/12/27

Hello Tom,

[#59957] Re: 1210 / 100 = 12? what? — Tom Sawyer <transami@...> 2002/12/27

no i didn't realize that. i thought ruby would automatically change it to a

[#59962] Re: 1210 / 100 = 12? what? — Brian Wisti <brian@...> 2002/12/27

Hi Tom,

[#59968] Re: 1210 / 100 = 12? what? — Tom Sawyer <transami@...> 2002/12/27

On Thursday 26 December 2002 11:42 pm, Brian Wisti wrote:

[#59984] Re: 1210 / 100 = 12? what? — Philipp Meier <meier@...> 2002/12/27

On Fri, Dec 27, 2002 at 04:10:59PM +0900, Tom Sawyer wrote:

[#59985] Re: 1210 / 100 = 12? what? — Lloyd Zusman <ljz@...> 2002/12/27

Philipp Meier <meier@meisterbohne.de> writes:

[#60006] Ruby & Preprinted forms - will they work together? — colotechpro@... (John Reed)

I'm a Ruby newbie, but I've decided to write a commercial application

18 messages 2002/12/27

[#60016] Installing Fox, FXRuby and fxscintilla — Daniel Carrera <dcarrera@...>

I want to try out FreeRide, but just installing its dependencies has been

22 messages 2002/12/27
[#60018] Re: Installing Fox, FXRuby and fxscintilla — Lyle Johnson <lyle@...> 2002/12/28

Daniel Carrera wrote:

[#60050] RAA suggestions — Gavin Sinclair <gsinclair@...>

1. Reserve "what's new" for genuinely new packages. Introduce a

15 messages 2002/12/28

[#60146] rbbr 0.2rev1 bombs out! — Wai-Sun Chia <waisun.chia@...>

rbbr is looking for a rbbr/config.rb module which is non-existent..

20 messages 2002/12/30
[#60147] Re: rbbr 0.2rev1 bombs out! — Masao Mutoh <mutoh@...> 2002/12/30

Hi,

[#60149] Re: rbbr 0.2rev1 bombs out! — Wai-Sun Chia <waisun.chia@...> 2002/12/30

Huh?

[#60188] Range#size — Martin DeMello <martindemello@...>

I think I missed something - why is Range#size (and all its synonyms)

19 messages 2002/12/30
[#60210] Re: Range#size — matz@... (Yukihiro Matsumoto) 2002/12/31

Hi,

[#60223] Re: Range#size — Gennady Bystritsky <bystr@...> 2002/12/31

From: Gennady F. Bystritsky <gfb@tonesoft.com>

[#60206] Developing a website — "Shashank Date" <sdate@...>

I am planning to use Ruby to develop a website which will be hosted on

17 messages 2002/12/31

[#60217] ENV.clear — zhoujing@... (TOTO)

I tried

15 messages 2002/12/31

[#60221] win32_popen 0.1 — "Park Heesob" <phasis@...>

Hi, all.

15 messages 2002/12/31

FuzzyParser - Would appreciate review

From: Jim Freeze <jim@...>
Date: 2002-12-19 14:29:14 UTC
List: ruby-talk #59615
Hello:

I have developed a fuzzy parser that uses regular expressions to
partition a text file. It can be used on individual partitions to create
a hierarchical representation of the data. The reason it is called
'fuzzy' is because a grammar can be defined to look for keywords that
define structure while ignoring other parts of the file.

I think it is a good start, but was wondering if it would be of interest
for me to release to the RAA. I would appreciate any comments on it. I
am happy with the code for the most part except I think the initial
parse method is klunky in the way it handles files or array inputs.

The code and testcases are below.

Jim

--- fuzzyparser.rb
#  Author: Jim Freeze
#
# =Description
# FuzzyParser uses regular expressions to partition a file into
# a general hierarchy.
#
# =Revision History
#  JFN 12/17/2002 Birthday
#

if RUBY_VERSION < "1.7.3"
  raise "fuzzyparser.rb requires Ruby 1.7.3 or later"
end

module FuzzyParser
  FP_Line  = Struct.new(:re, :proc)
  FP_Range = Struct.new(:begin_re, :end_re, :proc)

class Parser
  def initialize(grammar)
    @grammar     = grammar
    @filter_mode = false
  end#initialize

  def next_line(&block)
    return nil if @line.nil?
    @line = yield
    @line
  end

  def parse_line(g)
    if g.re.match @line
      g.proc.call(@parse_tree, @line)
      true
    else
      false
    end
  end
  private :parse_line

  def parse_range(g, &block)
    sub = []
    while @line =~ g.begin_re .. @line =~ g.end_re
      g.proc.call(sub, @line)
      next_line(&block)
    end
    @parse_tree << sub unless sub.empty?
    if sub.size > 1
      true
    else
      false
    end
  end
  private :parse_range

  def _parse(&block)
    loop {
      next_line(&block)
        matched = false
        @grammar.each { |g|
          return if @line.nil?
#puts " "*20 + g.class.to_s
#puts " "*20 + g.begin_re.inspect if g.kind_of?(FP_Range)
#puts " "*20 + g.re.inspect if g.kind_of?(FP_Line)
          case g
          when FP_Line
            if matched = parse_line(g)
              next_line(&block)
              retry
            end
          when FP_Range
            if parse_range(g, &block)
# puts " ========== '#{@line.strip}' =============="
              retry
            end
          else
            raise "Unrecognized parser statement #{g.class}" unless 
              matched
          end#case
        }
        raise "No grammar defined for line #{$.}:\n => #{@line}" unless
          matched || @filter_mode
      }
  end
  private :_parse

  def parse(file_or_array)
    @line = ""
    @parse_tree = []

    if file_or_array.kind_of?(Array)
      line_no = -1
      _parse {
        next nil if line_no == file_or_array.size - 1
        file_or_array[line_no+=1]
      }
    else
      File.open(file_or_array) { |f| 
        _parse {  
          next nil if f.eof?
          f.readline 
        } 
      }
    end

    @parse_tree
  end
end#class Parser
end#module FuzzyParser
--- end fuzzyparser.rb


--- begin tc_fuzzyparser.rb
require 'test/unit'
require 'fuzzyparser/fuzzyparser'

class TC_FuzzyParser < Test::Unit::TestCase 
  include FuzzyParser

  INFILE1  = "lines"
  INFILE2  = "lines2"

  GRAMMAR1 = [
    FP_Line.new(/0/, proc { |stack, line| stack << line.strip }),
    FP_Line.new(/1/, proc { |stack, line| stack << line.strip }),
    FP_Line.new(/2/, proc { |stack, line| stack << line.strip }),
    FP_Line.new(/3/, proc { |stack, line| stack << line.strip }),
    FP_Range.new( /4/, /7/, 
      proc { |stack, line| stack << line.strip.strip }),
    FP_Line.new(/8/, proc { |stack, line| stack << line.strip }),
    FP_Line.new(/9/, proc { |stack, line| stack << line.strip }),
  ]
  OUT1 = ["0", "1", "2", "3", ["4", "5", "6", "7"], "8", "9"]
  OUT2 = [{"VERSION"=>"6.00"}, 
          ["BEGIN_HEADER", "line 3", "line 4", "END_HEADER"],
          ["BEGIN_DB", "line 8", "line 9", "line 10", "END_DB"],
          "Sol", "Solitary Line"]

GRAMMAR2 = [
    FP_Line.new(/^\s*$/,  proc { |stack, line| nil }),
    FP_Line.new(/^\s*#/,  proc { |stack, line| nil }),
    FP_Line.new(
      /! VERSION/, 
                          proc { |stack, line|  
                            m = /^!\s*(VERSION)\s+=\s+(.*)$/.match(line.strip) 
                            stack << {m[1]=>m[2]} }
    ),
    FP_Range.new(
      /^BEGIN_HEADER/,   
      /^END_HEADER/, 
                          proc { |stack, line| stack << line.strip }
    ),
    FP_Range.new(
      /^BEGIN_DB/,
      /^END_DB/,
                          proc { |stack, line| stack << line.strip }
    ),
    FP_Line.new(/^Sol/,   proc { |stack, line| stack << line.strip }),
    #FP_Line.new(/^\w+/,   proc { |stack, line| stack << line.strip }),
  ]

GRAMMAR3 = [
    FP_Line.new(/^\s*(line)\s+(\d+)/,  
                          proc { |stack, line| 
                            m = /^\s*(line)\s+(\d+)/.match(line.strip) 
                            stack << {m[1]=>m[2]} }
    ),
    FP_Line.new(/.*/,     proc { |stack, line| nil }),
  ]
  OUT3 = [{"line"=>"3"}, {"line"=>"4"}]

  def set_up
  end

  def tear_down
  end

  def test_lines
    p = FuzzyParser::Parser.new(GRAMMAR1)
    o = p.parse(INFILE1)
    assert_equal(OUT1, o)
    #p o
  end#test_lines

  def test_lines2
    p = FuzzyParser::Parser.new(GRAMMAR2)
    o = p.parse(INFILE2)
    assert_equal(OUT2, o)
    #p o
    p_sub = FuzzyParser::Parser.new(GRAMMAR3) 
    o_sub = p_sub.parse(o[1])
    assert_equal(OUT3, o_sub)
    #p o_sub
  end#test_lines2

end#class TC_FuzzyParser
---end tc_fuzzyparser.rb

--- here are the data files
 > cat lines
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 > cat lines2
 ! VERSION = 6.00
 BEGIN_HEADER
 line 3
 line 4
 END_HEADER

 BEGIN_DB
 line 8
 line 9
 line 10
 END_DB
 Sol
 Solitary Line
 #word 1
 #word 2
 #word 2


-- 
Jim Freeze
----------
Excellent time to become a missing person.

In This Thread

Prev Next