[#20675] RCR: non-bang equivalent to []= — Tobias Reif <tobiasreif@...>

Hi,

49 messages 2001/09/01
[#20774] Re: RCR: non-bang equivalent to []= — Tobias Reif <tobiasreif@...> 2001/09/03

I wrote:

[#20778] Re: RCR: non-bang equivalent to []= — Kevin Smith <kevinbsmith@...> 2001/09/03

--- Tobias Reif <tobiasreif@pinkjuice.com> wrote:

[#20715] oreilly buch von matz - website online — markus jais <info@...>

hi

43 messages 2001/09/02
[#20717] Re: OReilly Ruby book has snail on cover — ptkwt@...1.aracnet.com (Phil Tomson) 2001/09/02

Actually, thanks for posting it here. I was trying to search OReilly's

[#20922] Re: OReilly Ruby book has snail on cover — Paul Brannan <pbrannan@...> 2001/09/05

On Mon, 3 Sep 2001, Phil Tomson wrote:

[#20768] Minor cgi.rb question — "Hal E. Fulton" <hal9000@...>

I don't have much experience with

25 messages 2001/09/03

[#20770] Calling member methods from C++ — jglueck@... (Bernhard Glk)

Some quetsions have been solved for me, but my message system does not

12 messages 2001/09/03

[#20976] destructor — Frank Sonnemans <ruby@...>

Does Ruby have a destructor as in C++?

25 messages 2001/09/07

[#21218] Ruby objects <-> XML: anyone working on this? — senderista@... (Tobin Baker)

Are there any Ruby analogs of these two Python modules (xml_pickle,

13 messages 2001/09/15

[#21296] nested require files need path internally — Bob Gustafson <bobgus@...>

Version: 1.64

29 messages 2001/09/18
[#21298] Re: nested require files need path internally — David Alan Black <dblack@...> 2001/09/18

Hello --

[#21302] Re: nested require files need path internally — Bob Gustafson <bobgus@...> 2001/09/18

On Tue, 18 Sep 2001, David Alan Black wrote:

[#21303] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/18

Hi,

[#21306] Re: nested require files need path internally — Lars Christensen <larsch@...> 2001/09/18

On Tue, 18 Sep 2001, Yukihiro Matsumoto wrote:

[#21307] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/18

Hi,

[#21331] Re: nested require files need path internally — Paul Brannan <pbrannan@...> 2001/09/18

> The big difference is C++ search done in compile time, Ruby search

[#21340] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/18

Hi,

[#21353] Re: nested require files need path internally — Paul Brannan <pbrannan@...> 2001/09/18

On Wed, 19 Sep 2001, Yukihiro Matsumoto wrote:

[#21366] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/19

Hi,

[#21368] Re: nested require files need path internally — "Julian Fitzell" <julian-ml@...4.com> 2001/09/19

On 19/09/2001 at 10:12 AM matz@ruby-lang.org wrote:

[#21376] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/19

Hi,

[#21406] Re: nested require files need path internally — Paul Brannan <pbrannan@...> 2001/09/19

On Wed, 19 Sep 2001, Yukihiro Matsumoto wrote:

[#21315] Suggestions for new CGI lib — anders@... (Anders Johannsen)

From the comp.lang.ruby thread "Minor cgi.rb question" (2001-09-03), I

21 messages 2001/09/18

[#21413] Ruby/objects book in style of The Little Lisper — Brian Marick <marick@...>

I fell in love with Lisp in the early 80's. Back then, I read a book called

36 messages 2001/09/19
[#21420] Re: Ruby/objects book in style of The Little Lisper — Christopher Sawtell <csawtell@...> 2001/09/20

On 20 Sep 2001 06:19:44 +0900, Brian Marick wrote:

[#21479] Re: Ruby/objects book in style of The Little Lisper — Kevin Smith <kevinbsmith@...> 2001/09/21

--- Christopher Sawtell <csawtell@paradise.net.nz> wrote:

[#21491] SV: Re: Ruby/objects book in style of The Little Lisper — "Mikkel Damsgaard" <mikkel_damsgaard@...> 2001/09/21

[#21494] Re: SV: Re: Ruby/objects book in style of The Little Lisper — Kevin Smith <kevinbsmith@...> 2001/09/21

--- Mikkel Damsgaard <mikkel_damsgaard@mailme.dk> wrote:

[#21510] Re: SV: Re: Ruby/objects book in style of The Little Lisper — Todd Gillespie <toddg@...> 2001/09/22

On Sat, 22 Sep 2001, Kevin Smith wrote:

[#21514] Re: SV: Re: Ruby/objects book in style of The Little Lisper — Kevin Smith <kevinbsmith@...> 2001/09/22

--- Todd Gillespie <toddg@mail.ma.utexas.edu> wrote:

[#21535] irb — Fabio <fabio.spelta@...>

Hello. :) I'm new here, and I have not found an archive of the previous

15 messages 2001/09/22

[#21616] opening a named pipe? — "Avdi B. Grimm" <avdi@...>

I'm having trouble reading from a named pipe in linux. basicly, I'm

12 messages 2001/09/24

[#21685] manipulating "immutable" objects such as Fixnum from within callbacks & al... — Guillaume Cottenceau <gc@...>

Hello,

15 messages 2001/09/25

[#21798] Ruby internal (guide to the source) — "Benoit Cerrina" <benoit.cerrina@...>

Hi,

22 messages 2001/09/28

[ruby-talk:20893] Code Style (a bit long)

From: Charles D Hixson <charleshixsn@...>
Date: 2001-09-04 22:08:29 UTC
List: ruby-talk #20893
I have the beginnings of a string parser here, but the style feels 
wrong.  Is there a more Ruby-esque way to do this that doesn't rely 
on using the built-in Tree function?  (I wouldn't want this to be 
restricted to Ruby syntax.  That's just where I'm starting.)

aFile  =  File.open("riddle.rb", "r")
strings  =  []  ;  str_ndx  =  0
comments  =  []  ;  com_ndx  =  0

AString  = /"|'|%q|%Q/
body  =  ""

#  state table
#  0  normal text
#  1  in a # comment
#  2  in a ' string
#  3  in a " string
#  4  in a ` string  (command string)
#  5  in a %q string (delimited single quote string)
#  6  in a %Q string (delimited double quote string)
#  7  in a / string (regexp pattern)
state  =  0

#  read in the file
str  =  ""
str_ndx  =  0
while  (ch = aFile.getc)
  case  ch.chr
  when  "#"
    str  =  ""
    last  =  ""
    while (c = aFile.getc)  and  (c.chr != "\n")
      str  <<  c
    end
    comments[com_ndx]  =  str
    body  <<  "#comments[#{com_ndx}]\n"  
    com_ndx  +=  1
    last  =  "\n"
  when  "'"
    str  =  ""
    last  =  ""
    while (c2 = aFile.getc)
      c  =  c2.chr
      if  c == "'" and  last == "\\"
        str  <<  c
        last  =  ""
      elsif c == "'"
        str  <<  last
        break
      elsif  (last == "\\") and (c =~ /[abefnrstv]|\\/)
        str  <<  case  c
              when  "a"  then  0x07  #  Bell
              when  "b"  then  0x08  #  Backspace
              when  "e"  then  0x1b  #  Escape
              when  "f"  then  0x0c  #  Formfeed
              when  "n"  then  0x0a  #  New Line
              when  "r"  then  0x0d  #  Carriage Return
              when  "s"  then  0x20  #  Space
              when  "t"  then  0x09  #  Tab
              when  "v"  then  0x0b  #  Vertical Tab
              when  "\\"  then  "\\"  #  BackSlash
              end
        last  =  ""
      else
        str  <<  last
        last  =  c
      end
    end
    strings[str_ndx]  =  str
    body  <<  "strings[#{str_ndx}]"
    str_ndx  +=  1
  when  '"'
    str  =  ""
    last  =  ""
    while (c2 = aFile.getc)
      c  =  c2.chr
      if  c == "\"" and  last == "\\"
        str  <<  c
        last  =  ""
      elsif c == "\""
        str  <<  last
        break
      elsif  (last == "\\") and (c =~ /[abefnrstv]|\\/)
        str  <<  case  c
              when  "a"  then  0x07  #  Bell
              when  "b"  then  0x08  #  Backspace
              when  "e"  then  0x1b  #  Escape
              when  "f"  then  0x0c  #  Formfeed
              when  "n"  then  0x0a  #  New Line
              when  "r"  then  0x0d  #  Carriage Return
              when  "s"  then  0x20  #  Space
              when  "t"  then  0x09  #  Tab
              when  "v"  then  0x0b  #  Vertical Tab
              when  "\\"  then  "\\"  #  BackSlash
              end
        last  =  ""
      elsif (last == "\\") and (c =~ /[0-7]/)
        print "octal parsing not yet implemented"
        str <<  last
        last  ==  c
      elsif (last == "\\") and (c =~ /[xX]/)
        print "hex parsing not yet implemented"
        str <<  last
        last  ==  c
      elsif (last == "\\") and (c =~ "[cC]")
        print "control parsing not yet implemented"
        str <<  last
        last  ==  c
      elsif (last == "\\") and (c == "M")
        print "Meta parsing not yet implemented"
        str <<  last
        last  ==  c
      elsif (last == "\\") and (c == "M")
        print "Meta-control parsing not yet implemented"
        str <<  last
        last  ==  c
      elsif (last == "#") and (c == "{")
        print "expression parsing not yet implemented"
        str <<  last
        last  ==  c
      else
        str  <<  last
        last  =  c
      end
    end
    strings[str_ndx]  =  str
    body  <<  "strings[#{str_ndx}]"
    str_ndx  +=  1
  else
    body  <<  ch
  end  #  case
end  #  while
print  "\nstrings: #{str_ndx}\n", strings.inspect
print  "\ncomments: #{com_ndx}\n", comments.inspect, "\n"
print body


-- 
 Charles Hixson
 
 Copy software legally, the GNU way!
 Use GNU software, and legally make and share copies of software.
 See: 
    http://www.gnu.org
    http://www.redhat.com
    http://www.linux-mandrake.com
    http://www.calderasystems.com
    http://www.linuxapps.com

In This Thread

Prev Next