public virtual Parser build()
        {
            Parser parser = new Parser();

            // decide what to show
            AAction.displaySemi = false;
            AAction.displayStack = false;  // this is default so redundant

            // action used for inheritance, composition, aggregation, and using
            PushStackRelation push = new PushStackRelation(repo);

            // capture namespace info
            DetectNamespace detectNS = new DetectNamespace();
            detectNS.add(push);
            parser.add(detectNS);

            //capture inheritance data
            DetectInheritance detectIN = new DetectInheritance();
            detectIN.add(push);
            parser.add(detectIN);

            DetectClass detectCl = new DetectClass();
            detectCl.add(push);
            parser.add(detectCl);

            //capture composition data
            DetectComposition detectComp = new DetectComposition();
            detectComp.add(push);
            parser.add(detectComp);

            //capture Aggregation data
            DetectAggregation detectagg = new DetectAggregation();
            detectagg.add(push);
            parser.add(detectagg);

            //capture Using data
            DetectUsing detectUS = new DetectUsing();
            detectUS.add(push);
            parser.add(detectUS);

            // parser configured
            return parser;
        }
        public virtual Parser build()
        {
            Parser parser = new Parser();
            // decide what to show
            AAction.displaySemi = false;
            AAction.displayStack = false;  // this is default so redundant

            // action used for namespaces, classes, and functions, complexity
            PushStack push = new PushStack(repo);

            // capture namespace info
            DetectNamespace detectNS = new DetectNamespace();
            detectNS.add(push);
            parser.add(detectNS);

            // capture delegate
            DetectDelegate detectDG = new DetectDelegate();
            detectDG.add(push);
            parser.add(detectDG);

            // capture class info
            DetectClass detectCl = new DetectClass();
            detectCl.add(push);
            parser.add(detectCl);

            // parser configured
            return parser;
        }