Defining a "followed by" operator or function in Ruby

A

Andy Elvey

Hi all -
As part of doing a parsing lib in Ruby, I want to create a "followed
by" operator or function. In other words, I want to be able to specify
that (say) "foo" must be followed by n or more occurrences of "bar".

Something like this -
"foo".(0,+) "bar" would match zero or more occurrences of "foo" followed
by "bar". So, it would match "foo" , "foo" "bar", "foo" "bar" "bar" ...
and so on.

"foo".(0,1) "bar" would match zero or one occurrences of "foo" followed
by "bar".

So, how could this be done?
Very many thanks in advance!
- Andy
 
B

Brian Candler

Something like this -
"foo".(0,+) "bar" would match zero or more occurrences of "foo" followed
by "bar". So, it would match "foo" , "foo" "bar", "foo" "bar" "bar" ...
and so on.

"foo".(0,1) "bar" would match zero or one occurrences of "foo" followed
by "bar".

Are you talking about regular expression syntax?

(foo){0,}(bar){1,} # or (foo)?(bar)+
(foo){0,1}bar # or (foo)?bar

See http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UL

Otherwise, if you are writing a parser for some language of your own
devising, then you are free to implement whatever syntax you wish. Buy a
good book on language and compiler design.
 
A

Andy Elvey

Brian said:
Are you talking about regular expression syntax?

(foo){0,}(bar){1,} # or (foo)?(bar)+
(foo){0,1}bar # or (foo)?bar

See http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UL

Otherwise, if you are writing a parser for some language of your own
devising, then you are free to implement whatever syntax you wish. Buy a
good book on language and compiler design.
Hi Brian -
Thanks very much for that - it should be a big help!
Bye for now -
- Andy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,794
Messages
2,569,641
Members
45,355
Latest member
SJLChristi

Latest Threads

Top