namespace JSDOC {
+ public enum ScopeParserMode {
+ BUILDING_SYMBOL_TREE,
+ PASS2_SYMBOL_TREE
+ }
+
+
public class ScopeParser : Object {
-
+ TokenStream ts;
Gee.ArrayList<string> warnings;
bool debug = false;
string[] idents;
+
+ Scope global ;
+ ScopeParserMode mode;
+ //braceNesting : 0,
+ Gee.HashMap<int,Scope> indexedScopes;
+ bool munge = true;
+
+
+
public ScopeParser(TokenStream ts) {
this.ts = ts; // {TokenStream}
this.warnings = new Gee.ArrayList<string>();
+ this.globalScope = new Scope(-1, false, -1, '');
+ this.indexedScopes = new Gee.HashMap<int,Scope>();
+
//this.indexedg = {};
//this.timer = new Date() * 1;
this.idents = {
// defaults should not be initialized here =- otherwise they get duped on new, rather than initalized..
- ts : false,
- global : false,
- mode : "", //"BUILDING_SYMBOL_TREE",
- braceNesting : 0,
- indexedScopes : false,
- munge: true,
+
-
- buildSymbolTree : function()
+ void buildSymbolTree()
{
//println("<PRE>");
this.globalScope = new Scope(-1, false, -1, '');
- this.indexedScopes = { 0 : this.globalScope };
+ this.indexedScopes = new Gee.HashMap<int,Scope>();
+ this.indexedScopes.set(0, this.globalScope );
+
+ this.mode = ScopeParserMode.BUILDING_SYMBOL_TREE;
- this.mode = 'BUILDING_SYMBOL_TREE';
this.parseScope(this.globalScope);
//print("---------------END PASS 1 ---------------- ");
- },
- mungeSymboltree : function()
+ }
+
+ void mungeSymboltree()
{
if (!this.munge) {
this.ts.rewind();
this.braceNesting = 0;
- this.mode = 'PASS2_SYMBOL_TREE';
+ this.mode = PASS2_SYMBOL_TREE;
//println("MUNGING?");