From: Oren Ben-K. <or...@ri...> - 2001-11-19 07:16:54
|
It turns out one can't write the following key/value pair: -10: Key is minus ten The problem is that '-' is a sequence entry indicator. We have the following options: 1. Accept that such keys must be written as: ? ! \ -12 : Key is minus ten Ugly, but should be rare... 2. Allow '-' <in_line_non_space> at start of keys: seq: - 10 map: -10 : Key is minus ten This is really confusing and would be a terrible special case to specify in the productions. 3. Allow '-' as first character if there is a property: ! -12 : Key is minus ten While not as bad as the above it is still a strange special case to specify and explain. 4. Use '@' for sequence entries and '%' for map keys: seq: @ 10 map: -10 : Key is minus ten % ! \ -11 : Key is minus eleven Technically elegant but doesn't look that good. Besides it uses the holy @ and % characters :-) 5. Use something else for a sequence entry indicator. We could use '*' and use '^' for aliases: list: * &01 -10 * ^01 Actually, not bad: * Using '^' for aliases drives the point home that they aren't pointers. * Using '*' for bulleting list entries can be seen as an improvement. * We've given up on plain scalars starting with '*' anyway once we decided aliases weren't implicit-whatevers, so we aren't losing anything. Thoughts? Have fun, Oren Ben-Kiki |
From: Clark C . E. <cc...@cl...> - 2001-11-19 07:32:21
|
On Mon, Nov 19, 2001 at 09:17:37AM +0200, Oren Ben-Kiki wrote: | -10: Key is minus ten Why not? Our indicator is "- " for lists. | 2. Allow '-' <in_line_non_space> at start of keys: | | seq: | - 10 | map: | -10 : Key is minus ten | | This is really confusing and would be a terrible special | case to specify in the productions. Yes, not fun with the productions. But from the user's persective, one isn't likely to make the mistake... and if it is made, an error is almost certainly forth coming. | 5. Use something else for a sequence entry indicator. | We could use '*' and use '^' for aliases: | | list: | * &01 -10 | * ^01 This is fine with me. We may want to change ^ for the alias mechanism anyway. ;) | * Using '^' for aliases drives the point home that they aren't pointers. | * Using '*' for bulleting list entries can be seen as an improvement. | * We've given up on plain scalars starting with '*' anyway once we decided | aliases weren't implicit-whatevers, so we aren't losing anything. Right. Let's do the indicator swap as suggested. Best, Clark |
From: Clark C . E. <cc...@cl...> - 2001-11-19 07:35:28
|
| | 5. Use something else for a sequence entry indicator. | | We could use '*' and use '^' for aliases: | | | | list: | | * &01 -10 | | * ^01 | | | | - Using '^' for aliases drives the point home that they aren't pointers. | | - Using '*' for bulleting list entries can be seen as an improvement. | | - We've given up on plain scalars starting with '*' anyway once we decided | | aliases weren't implicit-whatevers, so we aren't losing anything. | | Right. Let's do the indicator swap... I converted a few documents. I must say, the minus is easier reading. It's almost whitespace; also it looks like the '---' divider. Best, Clark |
From: Brian I. <in...@tt...> - 2001-11-19 08:55:35
|
On 19/11/01 09:17 +0200, Oren Ben-Kiki wrote: > It turns out one can't write the following key/value pair: > > -10: Key is minus ten > > The problem is that '-' is a sequence entry indicator. We have the following > options: This is a consequence of dropping quotes from our scalar types. This is such a rare occurance that I'm more than happy to use our new quoting methods. > 1. Accept that such keys must be written as: > > ? ! \ > -12 > : Key is minus ten > > Ugly, but should be rare... Yes. I am in favor of using our existing syntax to overcome little problems like this. I don't like it when we completely turn upside down on the drop of a hat. Besides, there are a couple other alternatives you can use. 1B) Look for ':' before '-' when determining the type of collection. - -10: minus ten foo: bar 1C) Use explicit typing: - !map -10: minus ten foo: bar > 2. Allow '-' <in_line_non_space> at start of keys: > > seq: > - 10 > map: > -10 : Key is minus ten > > This is really confusing and would be a terrible special case to specify in > the productions. And I'm really not in favor of relying on whitespace (Satan) any more than we need to. Clark: '- foo' is the canonical emmission, but '-foo' should still parse. > > 3. Allow '-' as first character if there is a property: > > ! -12 : Key is minus ten > > While not as bad as the above it is still a strange special case to specify > and explain. It's fine. > 4. Use '@' for sequence entries and '%' for map keys: > > seq: > @ 10 > map: > -10 : Key is minus ten > % ! \ > -11 > : Key is minus eleven > > Technically elegant but doesn't look that good. Besides it uses the holy @ > and % characters :-) You'll thank me for this one day, Oren! BTW, I really like the choice of '?' for key indicator. '?' and ':' go nicely together. > > 5. Use something else for a sequence entry indicator. We could use '*' and > use '^' for aliases: > > list: > * &01 -10 > * ^01 > > Actually, not bad: > * Using '^' for aliases drives the point home that they aren't pointers. > * Using '*' for bulleting list entries can be seen as an improvement. > * We've given up on plain scalars starting with '*' anyway once we decided > aliases weren't implicit-whatevers, so we aren't losing anything. I don't mind switching '*' for '^'. But I'm a big fan of '-' for seq bullets. Let's definitely not change this. '*' is just pretty ugly period. Let's get in the state of mind of wrapping up the spec for implementation and testing. I want this to be a fairly uneventful week. Please. Cheers, Brian |
From: Clark C . E. <cc...@cl...> - 2001-11-19 09:10:56
|
On Mon, Nov 19, 2001 at 12:55:30AM -0800, Brian Ingerson wrote: | | Clark: '- foo' is the canonical emmission, but '-foo' should still parse. | Just checked the current productions, and you are right; this wasn't true a few months back. Hmm. I think it probably should be an error... | BTW, I really like the choice of '?' for key indicator. | '?' and ':' go nicely together. Yes. It's making me happy. | I don't mind switching '*' for '^'. But I'm a big fan of '-' for | seq bullets. Let's definitely not change this. '*' is just pretty | ugly period. Let's just leave them both, no? | Let's get in the state of mind of wrapping up the | spec for implementation and testing. I want this | to be a fairly uneventful week. Please. We have two things to sort through on the information model side: a) How to give collections that are used as a key some sort of value so that they can be uniquely accounted for. b) Sorting out the transfer method vs type family item. I think (a) may be solved by a recursive comparison if a "=" key isn't provided. I think (b) will probably result in a two-layer information model where we have a scalar/collection in the lowest layer and then distinguish between map/list, int/float/string etc in the next layer up. I still havn't wrapped my head around transfer method and what its impact is... That said... I don't see any huge events which would cause turbulence for implementation. Best, Clark |