Parser.opBinary

dsl for transforming results of a parser

  1. Parser opBinary(Variant[] function(Variant[] objects) toCall)
    class Parser(T)
    opBinary
    (
    string op
    )
    (
    Variant[] function(
    Variant[] objects
    )
    toCall
    )
    if (
    op == "^^"
    )
  2. Parser opBinary(Parser rhs)
  3. Parser opBinary(Parser rhs)

Examples

transforming from regexp string to integer

1 import unit_threaded;
2 import std.conv;
3 
4 auto res = (regex("\\d+") ^^ (input) {
5     return variantArray(input[0].get!string.to!int);
6 }).parse("123");
7 res.success.shouldBeTrue;
8 res.results[0].shouldEqual(123);

Meta