Eric, 

I've updated the coapp toolkit PropertySheet  code to support parsing the 
format for Autopackage (sample: http://j.mp/mkoWkn  ) and actually another use 
I have in building a tool to simplify shallowforking (called pTk... sample 
http://j.mp/lz5aha ). 

The format is pretty damn nice--my earlier parser only needed a couple tweaks 
to get everything you and I needed.

It's also pretty simple to use--sample : http://j.mp/mvS9M6 (You can even 
persist out the property sheet back to disk with .Save()  :D)

Generally the property sheet is a collection of rules, each rule can have a 
Selector, Class, Id and Parameter (defined along the lines of css)

You can just do rule queries using linq (ie... from rule in propertySheet where 
rule.Selector == "pkg" select rule ) or you can use the indexer[] on the 
propertysheet.

Each rule can have a number of properties. A property has a name (which can 
contain letters, numbers, dashes) and a Value (which really can be compound 
(lvalue = rvalue), expression (surrounded in parenthesis ), a collection of 
strings or simply a string value) -- check out the Rule class, it's pretty 
simple. 


As I mentioned, the syntax for the file is largely compatible with css, with a 
few notable exceptions:
- block comments /* */ as well as double slashes // are supported for comments 
- string values can be quoted, (as both halves of a compound value)... example: 
http://j.mp/j1DWme ... Happy, sad, and silly are all pretty much the same
- supports c# style @"strings"  (noted by 'fudge' in the sample)
- it's pretty damn backslash friendly. 
- expressions are values that are surrounded in parenthesis () ... ie 
({$CURRENT}-1) .. you'll get the contents (sans whitespace) but it doesn't 
provide any magic to evaluate that for you. I'm sure we can whip something up 
with dynamic code if you need to..

G

   

-----Original Message-----
From: coapp-developers-bounces+garretts=microsoft....@lists.launchpad.net 
[mailto:coapp-developers-bounces+garretts=microsoft....@lists.launchpad.net] On 
Behalf Of Garrett Serack
Sent: Wednesday, April 27, 2011 1:14 PM
To: Philip Allison
Cc: coapp-developers
Subject: Re: [Coapp-developers] Input for Autopackage

We've actually got a parser in CoApp already that handles this format for 
another purpose (which is kinda why we went this way), so in the immediate 
future we'll rely on that.

I have another case I may be using this too, so it's nice that we have some 
overlap.

G
________________________________________
From: Philip Allison [mangobr...@googlemail.com]
Sent: Wednesday, April 27, 2011 11:34 AM
To: Garrett Serack
Cc: Eric Schultz; coapp-developers
Subject: Re: [Coapp-developers] Input for Autopackage

IMHO the quality of parsing & validation is just as important as the file 
format itself.  I'd be happy to put up with most things in terms of file 
format, on the proviso that if I get it wrong, autopackage does a reasonable 
job of telling me what's wrong and where in the file it is.  FWIW I quite like 
the example syntax - it reminds me of what libconfuse accepts.  In fact, it 
might be worth seeing if you could just use libconfuse itself; I can't remember 
if it comes with VS build files, but I've definitely used it on Windows before, 
and it's small, self-contained & liberally licensed.


_______________________________________________
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


_______________________________________________
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