public virtual Parser build() { Parser parser = new Parser(); // decide what to show AAction.displaySemi = true; AAction.displayStack = false; // this is default so redundant // action used for namespaces, classes, and functions PushStack push = new PushStack(repo); // capture namespace info DetectNamespace detectNS = new DetectNamespace(); detectNS.add(push); parser.add(detectNS); // capture class info DetectClass detectCl = new DetectClass(); detectCl.add(push); parser.add(detectCl); // capture function info DetectFunction detectFN = new DetectFunction(); detectFN.add(push); parser.add(detectFN); // handle entering anonymous scopes, e.g., if, while, etc. DetectAnonymousScope anon = new DetectAnonymousScope(); anon.add(push); parser.add(anon); // handle leaving scopes DetectLeavingScope leave = new DetectLeavingScope(); PopStack pop = new PopStack(repo); leave.add(pop); parser.add(leave); // parser configured return parser; }
public virtual Parser build() { Parser parser = new Parser(); Print print = new Print(); DetectNamespace detectNS = new DetectNamespace(); detectNS.add(print); parser.add(detectNS); DetectClass detectCl = new DetectClass(); detectCl.add(print); parser.add(detectCl); /////////////////////////////////////////////////// // If you wanted to show member functions you // might do that something like this: // DetectFunction detectFN = new DetectFunction(parser.ScopeStack()); // PrintFunction printFunction = new PrintFunction(); // detectFN.add(printFunction); // parser.add(detectFN); return parser; }
public virtual Parser build() { Parser parser = new Parser(); // decide what to show AAction.displaySemi = true; AAction.displayStack = false; // this is default so redundant // action used for namespaces, classes, and functions PushStack push = new PushStack(repo); // capture namespace info DetectNamespace detectNS = new DetectNamespace(); detectNS.add(push); parser.add(detectNS); // capture class info DetectClass detectCl = new DetectClass(); detectCl.add(push); parser.add(detectCl); //capture delegate DetectDelegate detectDL = new DetectDelegate(); detectDL.add(push); parser.add(detectDL); // capture function info DetectFunction detectFN = new DetectFunction(); detectFN.add(push); parser.add(detectFN); DetectEnum detectEN = new DetectEnum(); detectEN.add(push); parser.add(detectEN); //capture complexity DetectComp complex = new DetectComp(); complex.add(push); parser.add(complex); // handle entering anonymous scopes, e.g., if, while, etc. DetectAnonymousScope anon = new DetectAnonymousScope(); anon.add(push); parser.add(anon); // handle leaving scopes DetectLeavingScope leave = new DetectLeavingScope(); PopStack pop = new PopStack(repo); leave.add(pop); parser.add(leave); // parser configured return(parser); }
public virtual Parser build() { Parser parser = new Parser(); AAction.displaySemi = true; AAction.displayStack = false; // this is default so redundant PushStack push = new PushStack(repo); DetectNamespace detectNS = new DetectNamespace(); detectNS.add(push); parser.add(detectNS); DetectClass detectCl = new DetectClass(); detectCl.add(push); parser.add(detectCl); DetectFunction detectFN = new DetectFunction(); detectFN.add(push); parser.add(detectFN); DetectScope detectScop = new DetectScope(); detectScop.add(push); parser.add(detectScop); DetectScopeWithoutBraces detectScopWB = new DetectScopeWithoutBraces(); detectScopWB.add(push); parser.add(detectScopWB); DetectAnonymousScope anon = new DetectAnonymousScope(); anon.add(push); parser.add(anon); DetectLeavingScopeWithoutBraces leaveWB = new DetectLeavingScopeWithoutBraces(); PopStack popWB = new PopStack(repo); leaveWB.add(popWB); parser.add(leaveWB); DetectLeavingScope leave = new DetectLeavingScope(); PopStack pop = new PopStack(repo); leave.add(pop); parser.add(leave); return parser; }
public virtual Parser build() { Parser parser = new Parser(); //UserType userType = new UserType(); // decide what to show AAction.displaySemi = false; AAction.displayStack = false; // false is default // action used for namespaces, classes, and functions PushStack push = new PushStack(repo); // capture namespace info DetectNamespace detectNS = new DetectNamespace(); detectNS.add(push); parser.add(detectNS); // capture class info DetectClass detectCl = new DetectClass(); //SaveUserDefinedType save = new SaveUserDefinedType(UserType.getUserDefinedSet()); detectCl.add(push); //detectCl.add(save); parser.add(detectCl); //// handle inheritance detection //DetectInheritance detectInheritance = new DetectInheritance(); //UpdateCoupling update = new UpdateCoupling(repo); //detectInheritance.add(update); //parser.add(detectInheritance); // capture function info DetectFunction detectFN = new DetectFunction(); detectFN.add(push); parser.add(detectFN); // handle entering anonymous scopes, e.g., if, while, etc. DetectAnonymousScope anon = new DetectAnonymousScope(); anon.add(push); parser.add(anon); // show public declarations //DetectPublicDeclar pubDec = new DetectPublicDeclar(); //SaveDeclar print = new SaveDeclar(repo); //pubDec.add(print); //parser.add(pubDec); // handle leaving scopes DetectLeavingScope leave = new DetectLeavingScope(); PopStack pop = new PopStack(repo); leave.add(pop); parser.add(leave); //this rule detects variable declaration and instantiation for coupling DetectAssociation detectAssociation = new DetectAssociation(); UpdateCoupling update = new UpdateCoupling(repo); detectAssociation.add(update); parser.add(detectAssociation); // 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 inheritance, aggregation, composition and using PushStackRelationship push = new PushStackRelationship(repo); // capture Inheritance info DetectInheritance detectNS = new DetectInheritance(); detectNS.add(push); parser.add(detectNS); // capture class info DetectClass detectCl = new DetectClass(); detectCl.add(push); parser.add(detectCl); // capture Aggr info DetectAggregation detectAG = new DetectAggregation(); detectAG.add(push); parser.add(detectAG); // capture Composition info DetectComposition detectCP = new DetectComposition(); detectCP.add(push); parser.add(detectCP); // capture Using info DetectUsing detectUs = new DetectUsing(); detectUs.add(push); parser.add(detectUs); // parser configured return parser; }
public virtual Parser build() { Parser parser = new Parser(); AAction.displaySemi = false; AAction.displayStack = false; // this is default so redundant PushStack push = new PushStack(repo); // capture namespace info DetectNamespace detectNS = new DetectNamespace(); detectNS.add(push); parser.add(detectNS); // capture struct info DetectStruct detectSt = new DetectStruct(); detectSt.add(push); parser.add(detectSt); // capture enum info DetectEnum detectEn = new DetectEnum(); detectEn.add(push); parser.add(detectEn); // capture delegate info DetectDelegate detectDl = new DetectDelegate(); detectDl.add(push); parser.add(detectDl); // capture class info DetectClass detectCl = new DetectClass(); detectCl.add(push); parser.add(detectCl); // capture function info DetectFunction detectFN = new DetectFunction(); detectFN.add(push); parser.add(detectFN); // handle entering anonymous scopes, e.g., if, while, etc. DetectAnonymousScope anon = new DetectAnonymousScope(); anon.add(push); parser.add(anon); // capture array info DetectArray detectArr = new DetectArray(); detectArr.add(push); parser.add(detectArr); // handle leaving scopes DetectLeavingScope leave = new DetectLeavingScope(); PopStack pop = new PopStack(repo); leave.add(pop); parser.add(leave); // capture bracelessscope info DetectBraceLess detectBL = new DetectBraceLess(); detectBL.add(push); parser.add(detectBL); // parser configured return parser; }
public virtual Parser build()//Virtual function returns reference to parser ss { Parser parser = new Parser(); // decide what to show AAction.displaySemi = false; //Change here to see things running ss AAction.displayStack = false; // false is default // action used for namespaces, classes, and functions PushStack push = new PushStack(repo); // capture namespace info DetectNamespace detectNS = new DetectNamespace(); detectNS.add(push); parser.add(detectNS);//one rule one action // capture delegate info DetectDelegate detectDG = new DetectDelegate(); detectDG.add(push); parser.add(detectDG); // capture Alias info DetectAlias detectAL = new DetectAlias(); detectAL.add(push); parser.add(detectAL); // capture class info DetectClass detectCl = new DetectClass(); detectCl.add(push); parser.add(detectCl); // capture function info DetectFunction detectFN = new DetectFunction(); detectFN.add(push); parser.add(detectFN); // handle entering anonymous scopes, e.g., if, while, etc. DetectAnonymousScope anon = new DetectAnonymousScope(); anon.add(push); parser.add(anon); // show public declarations DetectPublicDeclar pubDec = new DetectPublicDeclar(); SaveDeclar print = new SaveDeclar(repo); pubDec.add(print); parser.add(pubDec); // handle leaving scopes DetectLeavingScope leave = new DetectLeavingScope(); PopStack pop = new PopStack(repo); leave.add(pop); parser.add(leave); // parser configured return(parser); }