I have a few points to belatedly make on this thread:
 
1. The 'specifications' folder of the 'flex-external' repository has a spec for 
MXML 2006 and 2009. It's incomplete, but it's the best one that exists. If you 
find that it doesn't answer your questions about which elements are allowed 
inside which elements, please let me know where specific information is missing 
or wrong and I'll try to improve the spec.
 
2. In the new Falcon compiler, MXMLNodeBase, the abstract base class for all 
nodes in the MXML syntax tree, has a method called processChildTag() which gets 
overridden in each subclass to process the allowed child tags (i.e., elements). 
For example, if you look at this method in MXMLDeclarationsNode (which 
represents <fx:Declarations>) you can see that MXMLComponentNode (representing 
<fx:Component>), MXMLModelNode (representing <fx:Model>), and MXMLInstanceNode 
(representing tags like <s:Button> and <fx:int>) are allowed, while all other 
tags are disallowed. Since Falcon hasn't been completed, this may or may not 
match the logic in the old compiler and in the spec, but the information still 
may be of some use to you. In any case, if you're using Falcon, your code 
hinting will match what the compiler allows. Are you working to incorporate 
Falcon into an IDE, or the old compiler?
 
3. In my opinion, code-hinting logic belongs in Falcon, and it would be great 
it you would add it there rather than in one particular IDE. Falcon was always 
intended to be a code-intelligence engine to support IDE editing, and not just 
a compiler.
 
- Gordon
 
                                          

Reply via email to