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

import unit_threaded;
import std.conv;

auto res = (regex("\\d+") ^^ (input) {
    return variantArray(input[0].get!string.to!int);
}).parse("123");
res.success.shouldBeTrue;
res.results[0].shouldEqual(123);

Meta