[erlang-questions] some language changes

andrew cooke <>
Wed May 23 13:18:57 CEST 2007

any combinator library (not sure from the context if this is what you are
referring to or not - i would expect a regexp library to compile state
machines and so be more efficient than a typical combinator lib) should be
able to do this - here's the equivalent based on code at

test_torbjorn() ->
    T = either(string("now"),
               all_([either(string("plus"), string("minus")),
                     all_([digit(), optional(digit())]),
    assert_equals({ok, ["plus", "42"], ""}, T("plus42hours")),
    assert_equals({fail, equal}, T("plus100hours")).

i wouldn't suggest people use this code (i change it regularly and it has
no documentation!), but if this is unusual and useful i can make something
more "polished".


ps the "_" in "all_" implies string list contents are concatenated rather
than appended (so the "words" remain separate; digit() matches characters
not strings).

> Darius Bacon wrote:
>> ok <> wrote:
>>> So here's how I would like to write that:
>>>      X = seq(any(".?!"), span("\"')]}"),
>>>               alt("\n", "\t", seq(" ",any(" \t\n"))),
>>>               span(" \t\n"))
>> I would, too -- the regexp code I posted the other day exported
>> constructor functions along these lines (even named seq and alt), with
>> the regexp syntax exiled to a separate parser module. It'd be nice if
>> the standard regexp module did this.
>> Darius
> Very nice!
> However, it would be even nicer with some included examples on how to
> run the code... :-)
> Let's say I have the following regexp:
>  "^now/(plus|minus)(\d{1,2})hours/$"
> then:
>  In: "now/plus42hours/"
>  Out: ["plus, "42"]        (or something like that)
>  In: "now/plus100hours/"
>  Out: nomatch
> Can I do it with 'ergex' ?
> Can I do it with any other of the various regexp modules that are
> floating around ?
> Cheers, Tobbe
> _______________________________________________
> erlang-questions mailing list
> http://www.erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list