ES4 Grammar
You might have an old cached copy of grammar.pdf. The first two issues were resolved in a previous version. I had a pending fix to the third issue. I made NamespaceAttribute a PrimaryName. That way you can use namespace qualified references as a namespace attribute.
I've posted the latest and greatest, dated 14-oct-2007.
Thanks,
An HTML attachment was scrubbed... URL: esdiscuss/attachments/20071015/e15406fe/attachment-0002
Thanks - that update seems like it has moved on in quite a few areas.
Yes, but it should be stabilizing somewhat now. The latest update tries to bring the grammar in sync with the accepted proposals, which are now frozen.
Using PrimaryName as a NamespaceAttribute allows for the case you¹ve identified package and namespace qualified namespace identifiers. E.g.:
import flash.utils.*;
flash.utils.flash_proxy function helper ( ) { ... }
Or the analog using namespaces:
namespace Utils;
Utils namespace Proxy;
Utils::Proxy function helper () { ... }
In both cases the qualified name must resolve to a namespace value during the definition phase (that is before verification or evaluation).
This is probably for Jeff, but I'll send to the list anyway.
I was doing a scrub through the latest posted grammar and may have a few small edits.
QualifiedNameIdentifier includes the tokens "" and OverloadedOperator. However, overloaded operator includes "" also. Is the "*' token therefore multiply resolved?
AttributeIdentifier in PrimaryExpression (production 110) should be AttributeName
The production on 414 under NamespaceAttribute has:
Path . Identifier Identifier
But Path already encompasses this. So you can replace these two lines with just "Path"
Same in productions on lines 417+418
Let me know if I have any of this wrong.