From: Francis Cianfrocca Date: 2006-05-13T11:44:24+09:00 Subject: Re: lightweigth lexer? ------=_Part_38535_19439200.1147488260522 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline If you look closely at what traditional tools like lex and flex do, you could almost take the input to lex and execute it directly in Ruby! It's no= t much more than a case statement from regular expressions. I'm not sure what you mean by "lightweight" but if you mean "fast": a lot of people who wrote language compilers back in the day (I'm one of them) would often write scanners in hand-tuned C rather than using lex. On 5/12/06, Meador Inge wrote: > > Is there lightweight lexer for Ruby? I have seen a few lexer > generators out there, but I want something simple that can be used > without generating the lexer first. I really just need the basic > functionaliy of matching a pattern and associating an action with that > pattern. For example, I was thinking something like: > class MyLexer < Lexer > rule /a/ do > # action for pattern a > end > rule /b/ do > # action for pattern b > end > rule /c/ do > # action for pattern c > end > end > > l =3D MyLexer.new(input_stream) > l.each_token do |token| > # do something with token > end > > I have something similar to the above that I have created. However, I > wanted to check and see what is out there first before I invested too > much time in it. If no one knows of anything else and\or is interested > in what I have described let me know and I will clean it up and > publish it. > > --Meador > > ------=_Part_38535_19439200.1147488260522--