- From: Cameron McCormack <cam@mcc.id.au>
- Date: Wed, 04 Jan 2012 13:56:32 +1100
- To: Dominique Hazael-Massieux <dom@w3.org>
- CC: public-script-coord@w3.org
Dominique Hazael-Massieux: >> From my reading of the grammar of the latest editors draft of Web IDL, > it doesn't match what the examples show is supposed to be supported. > > For instance, "float or (Date or Event) or (Node or DOMString)?" doesn't > match the "Type" production, since "ParenthesizedUnionType" only appears > in "Type", and not in SingleType. Type => SingleType OptionalUnionTypeParts => PrimitiveType TypeSuffix OptionalUnionTypeParts => "float" TypeSuffix OptionalUnionTypeParts => "float" OptionalUnionTypeParts => "float" UnionTypeParts => "float" "or" SingleType UnionTypeParts ... Ah yeah I see the problem. I think that production should be UnionTypeParts -> "or" Type > Also, I think the usage of parenthesis in types changes the nature of > the grammar. In the example below: > interface Foo { > (DOMString) or (); > }; > you can't determine that "or" is actually the name of an operation until > you hit the empty parenthesis. Actually since "or" is now a keyword, if you want to have an operation named "or" you will need to write it as "_or". Otherwise you would be right. You know it's probably just simpler and neater to require parentheses around any sequence of "or"s. > Also, since "any" is not acceptable in an union type, it probably > shouldn't be allowed in the grammar. OK, here's what I'll replace the grammar with then: Type → SingleType | UnionType SingleType → NonAnyType TypeSuffix | "any" TypeSuffixStartingWithArray NonAnyType → PrimitiveType TypeSuffix | "DOMString" TypeSuffix | identifier TypeSuffix | "sequence" "<" Type ">" Null | "object" TypeSuffix | "Date" TypeSuffix UnionType → "(" UnionMemberType "or" UnionMemberType UnionMemberTypes ")" TypeSuffix UnionMemberType → NonAnyType | "any" "[" "]" TypeSuffix UnionMemberTypes → "or" UnionMemberType UnionMemberTypes | ε Can you verify this is correct?
Received on Wednesday, 4 January 2012 02:59:36 UTC