At the request of Tim, I've done some tweaking of the lambda expression support 
in propertysheets (so, pTk and Autopackage files)

Previously, you could expand out a collection as a collection of key/value 
pairs via a template:

#define {
    colors: {
        "red" , "green"
    };
};

someRule {
    someProperty : {
         colors => "label" = "value is ${each}";
    };

    someotherProperty : {
         colors => "label-${each}" = "value is ${each}";
    };
};


which would expand out to:

someRule {
    someProperty : {
        "label" =  {
            "value is red",
            "value is green"
        };
    };
    someotherProperty : {
        "label-red" = "value is red";
        "label-green" = "value is green";
    };
};

Now, I've enhanced the collection support so that it can take multiple 
collections :

#define {
    platforms: {
        x86 , x64
    };
    compilers: {
        vc7 , vc8, vc9
    };

};

someRule {
    someProperty : {
        (compilers, platforms)  => "permutations" = "do something with 
compiler=${0} and platform=${1}";
    };
};

which would expand out to:

someRule {
    someProperty : {
        permutations =  {
            "do something with compiler=vc7 and platform=x86",
            "do something with compiler=vc8 and platform=x64",
            "do something with compiler=vc9 and platform=x86",
            "do something with compiler=vc7 and platform=x64",
            "do something with compiler=vc8 and platform=x86",
            "do something with compiler=vc9 and platform=x64",

        };
    };
};

It can multiplex multiple collections, and

Tim will likely have a field day simplifying the .buildinfo files with this, 
and that will help explain how it's useful...

Oh, and I've made trailing semicolons after a close brace { optional.

G


_______________________________________________
Mailing list: https://launchpad.net/~coapp-developers
Post to     : coapp-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~coapp-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to