-//<script type="text/javascript">
-
XObject = imports.XObject.XObject;
DocComment = imports.DocComment.DocComment;
-// circular references..
-///Options = imports.BuildDocs.Options;
-//Parser = imports.Parser.Parser;
-//Symbol = imports.Symbol.Symbol;
+
/**
+ * The point of this class is to store and manage all the symbols
+ *
* @scope JSDOC
* @class ScopeSet
- * The point of this class is to store and manage all the symbols
+ *
*
*/
this.resolveMemberOf();
this.resolveAugments();
},
-
- resolveBorrows : function() {
+ /**
+ * Resolve borrows -
+ * = it reads 'inherits' loops thorugh it.. not sure yet what it does..
+ *
+ */
+ resolveBorrows : function()
+ {
for (p in this._index) {
var symbol = this._index[p];
}
}
},
-
- resolveMemberOf : function() {
+ /**
+ * puts all the properties, cfg, ??events and methods into the owning class.
+ *
+ *
+ */
+ resolveMemberOf : function()
+ {
for (var p in this._index) {
var symbol = this.getSymbol(p);
if (parts) {
symbol.memberOf = parts[1];
symbol.name = parts[2];
- }
- // like bar is a memberOf foo
- else {
+
+ // like bar is a memberOf foo
+ } else {
var joiner = symbol.memberOf.charAt(symbol.memberOf.length-1);
if (!/[.#-]/.test(joiner)) symbol.memberOf += ".";
symbol.isInner = false;
break;
- case '-' :
+ case '-' : // WTF is this about???
symbol.isStatic = false;
symbol.isInner = true;
break;
symbol.memberOf = symbol.memberOf.substr(0, symbol.memberOf.length-1);
}
- //print("looking for memberOf: " + symbol.memberOf + " FOR " + symbol.alias);
+ //print("looking for memberOf: " + symbol.memberOf + " FOR " + symbol.alias);
// add to parent's methods or properties list
if (symbol.memberOf) {
+
var container = this.getSymbol(symbol.memberOf);
if (!container) {
if (SymbolSet.isBuiltin(symbol.memberOf)) {
container = imports.ScopeNamer.ScopeNamer.addBuiltin(symbol.memberOf);
}
else {
- // print("symbol NOT a BUILT IN - createing a container");
+ print("symbol NOT a BUILT IN - createing a container " + symbol.memberOf);
// Eg. Ext.y.z (missing y)
// we need to add in the missing symbol...
- container = new imports.Symbol.Symbol(symbol.memberOf, [], "OBJECT", new DocComment(""));
- //container.isNamespace = true;
+ container = new imports.Symbol.Symbol(symbol.memberOf, [], "OBJECT",
+ new DocComment("@namespace " + symbol.memberOf));
+ container.isNamespace = true;
this.addSymbol( container );
+ if (container.addMember(symbol)) {
+ //print("DELETE (added to container..): " + container.alias + ' => ' + symbol.alias);
+ this.deleteSymbol(symbol.alias);
+ }
// print(container.toSource());
//container = this.getSymbol(symbol.memberOf);
// fake container ... so dont ad symbols to it..
continue;
- container = false;
+ //container = false;
//LOG.warn("Can't document "+symbol.name +" as a member of undocumented symbol "+symbol.memberOf+".");
//LOG.warn("We only have the following symbols: \n" +
// this.keys.toSource());
this.deleteSymbol(symbol.alias);
}
}
+ continue;
}
+
+ // not a member of.. let's log them...
+ print("NOT able to resolve memberOf: " + symbol.alias);
+
+
}
},
+
+ /**
+ * sort out inhertied stuff...
+ * a) calls buildAugmentsList to find out what this class extends.
+ * b) adds to symbol.inheritsFrom.
+ * c) calls sybmol.inherit / symbol.addConfig to each of the child props..
+ */
resolveAugments : function() {
// does this sort out multiple extends???
for (var p in this._index) {
this.buildAugmentsList(symbol); /// build heirachy of inheritance...
if (symbol.alias == "_global_" || symbol.is("FILE")) continue;
+ //print(JSON.stringify(symbol.augments, null, 4));
+
var augments = symbol.augments;
for(var ii = 0, il = augments.length; ii < il; ii++) {
var contributer = this.getSymbol(augments[ii]);
// imports.BuildDocs.Options.LOG.warn("Can't resolve augments: Circular reference: "+symbol.alias+" inherits from "+contributer.alias+" more than once.");
//}
//else {
- var cmethods = contributer.methods;
- var cproperties = contributer.properties;
- var cfgs = contributer.cfgs;
- for (var ci = 0, cl = cmethods.length; ci < cl; ci++) {
- symbol.inherit(cmethods[ci]);
- }
- for (var ci = 0, cl = cproperties.length; ci < cl; ci++) {
- symbol.inherit(cproperties[ci]);
- }
- for (var ci in cfgs) {
- symbol.addConfig(cfgs[ci]);
- }
-
+
+ var cmethods = contributer.methods;
+ var cproperties = contributer.properties;
+ var cfgs = contributer.cfgs;
+ for (var ci = 0, cl = cmethods.length; ci < cl; ci++) {
+ symbol.inherit(cmethods[ci]);
+ }
+ for (var ci = 0, cl = cproperties.length; ci < cl; ci++) {
+ symbol.inherit(cproperties[ci]);
+ }
+ for (var ci in cfgs) {
+ symbol.addConfig(cfgs[ci]);
+ }
+
//}
}
})
SymbolSet.isBuiltin = function(name) {
- return (SymbolSet.isBuiltin.coreObjects.indexOf(name) > -1);
+ return (SymbolSet.isBuiltin_coreObjects.indexOf(name) > -1);
}
// private
-SymbolSet.isBuiltin.coreObjects = [
+SymbolSet.isBuiltin_coreObjects = [
// '_global_',
'Array', 'Boolean', 'Date', 'Function',
'Math', 'Number', 'Object', 'RegExp', 'String'
];
-
-SymbolSet.LOG = false; // reference to parser ??? might not be needed..
\ No newline at end of file
+/**
+ * reference to parser ??? might not be needed..
+ */
+SymbolSet.LOG = false;
\ No newline at end of file