From: Peter M. <pet...@hc...> - 2005-02-10 15:31:51
|
All, I've been looking at the spec. I found these things which look like typos. http://yaml.org/spec/ 1. In "Example 4.49. Completely Empty Flow Nodes", it looks like you've used the same key twice for a map. (In the left hand example, a mapping node is terminated by a "]", which doesn't look so good either.) http://yaml.org/type/int.html 2. One of the regular expressions for ints doesn't look right. Is this missing a parenthesis? [-+]?(0|[1-9])[0-9_]*) # (base 10) Apart from that, it looks great. Cheers, Peter |
From: Andy B. <yam...@th...> - 2005-02-10 21:02:00
|
On Thu, 2005-02-10 at 22:31 +0700, Peter Murphy wrote: > http://yaml.org/type/int.html > > 2. One of the regular expressions for ints doesn't look right. Is this > missing a parenthesis? > > [-+]?(0|[1-9])[0-9_]*) # (base 10) > > Apart from that, it looks great. I'm new here ... The thing that stands out to me in this regular expression (and the others) is that there are three ways to represent zero: 0, -0 and +0 (very, uh, ones-complement, heh). Is this the intent? Be careful where you put that missing parenthesis. If it's in the wrong place, then it will be difficult to tell base 8 numbers from base 10. Although I'm not sure this can be fixed just by moving the groupings around. Short of the above issue, I think |[-+]?0[0-8_]+ # (base 8) |[-+]?(0|[1-9][0-9_]*) # (base 10) will do it (although I, personally, would add more parens to lessen ambiguity about the binding of alternation (which I can never remember)) Also, don't base 8 numbers have digits in the range 0 through 7? The [0-8_]+ should be [0-7_]+ in the octal line, right? Andy. |
From: Oren Ben-K. <or...@be...> - 2005-02-11 21:03:11
|
On Thursday 10 February 2005 17:31, Peter Murphy wrote: > http://yaml.org/spec/ > > 1. In "Example 4.49. Completely Empty Flow Nodes"... This is already fixed in the CVS version. > 2. One of the regular expressions for ints doesn't look right. Is > this missing a parenthesis? > > [-+]?(0|[1-9])[0-9_]*) # (base 10) More like has an extra one... Andy Bakun got it right: > ... I think > > |[-+]?0[0-8_]+ # (base 8) > |[-+]?(0|[1-9][0-9_]*) # (base 10) > > will do it Exactly. Also: > ... don't base 8 numbers have digits in the range 0 through 7? The > [0-8_]+ should be [0-7_]+ in the octal line, right? <blush>Quite right</blush>. I just fixed the int spec and uploaded it. Thanks! Other issues: > ... I, personally, would add more parens to lessen ambiguity about the > binding of alternation (which I can never remember) Listing each in a separate line also seems to drive the point nicely. It would probably be best to do a pass on all the regexps and write them in true //x format (with insignificant white space, and comments, and so on). When we get to it... > The thing that stands out to me in this regular expression (and the > others) is that there are three ways to represent zero: 0, -0 and +0 > (very, uh, ones-complement, heh). Is this the intent? It is semi-intentional :-) There's no good reason to disallow it that I can see. All three mean "zero", though. On the other hand, if someone wants to load +0.0 and -0.0 to IEEE "positive zero" and "negative zero", he's welcome to it. Have fun, Oren Ben-Kiki |