SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Sidebar

 /*    *[[newsandtodos|News & TODOs]] */
 /*    *[[faq]] */
 /*    *[[glossary]] */
 /*    *[[classesandinterfaces|Classes & Interfaces]] */
 /*    *[[astelements|AST Elements]]  */
 /*    *[[feature implementation]] */
 /*    *[[diagrams]] */
 /*    *[[papers]]  */
 /*    *[[http://roots.iai.uni-bonn.de/research/logicaj/javadoc|JavaDoc]] */
 /*    *[[limitations]]  */
    * <label internal>[[.:internal:start|INTERNAL]]</label>

Pointcuts

Basic Pointcuts

The language core contains three basic pointcuts: stmt, expression and declaration. These pointcuts can match all static join point shadows within a base program. For the description of the join points within the basic pointcuts codepatterns are used.

Codepatterns

Codepatterns consist of a piece of Java code which can contain logic meta variables. A codepattern must be a complete syntax element.

Logic meta variables (LMV)

LMVs can replace full syntax elements.

Java Code Matching codepattern
statement a(); b(); c();
a(); i++; c();
a(); for(int i=0; i<10;i++){}
a(); ?anyStmt; c();
' '
' '
expression
declaration
Modifier private int field;
public static int foo(int i){}
?modifier int field;
??modifier int foo(int i){ }
Type
Identifier
Basic Pointcut Description Example
stmt(jp, codepattern) Captures all statements within methods matching the codepattern stmt(?jp, for(?init;?test,??update){??stmts})
expr(jp, codepattern) Captures all expressions within methods matching the codepattern expr(?jp, ?a == ?b)
decl(jp, codepattern) Captures all interface declarations (classes, methods,fields) matching the codepattern decl(?jp, private ?type ?name)
Auxiliary Pointcut
equals(LMV,LMV)Checks whether the strings A and B are equal equals(?jp1, ?jp2)

Advice

research/logicaj/2/syntax.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019