SDA SE Wiki

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

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

research:jtransformer:api:java:pefs:3.0:synchronizedt [2018/05/09 01:59] (current)
Line 1: Line 1:
 +{{page>​prologast_bodypef_index&​fullpage&​nofooter}}
 +----
  
 +=== synchronizedT (#id, #parent, #encl, #lock, #​body) ​ ===
 +
 +
 +Represents the synchronized statement.
 +
 +=== Arguments ===
 +== ==
 + ​**#​id:​** id\\ 
 +the unique ID assigned to this fact.
 +
 +**#​parent:​** id\\ 
 +ID of the parent node.
 +
 +**#encl:** [[methodT|methodT]],​ [[constructorT|constructorT]],​ [[classInitializerT|classInitializerT]]\\
 +ID of the enclosing method declaration.
 +
 +**#lock:** [[plastexpression|expression]]\\ ​
 +ID of the expression of this synchronized statement.
 +
 +**#body:** [[blockt|blockT]]\\ ​
 +ID of the body of this synchronized statement.
 +
 +=== Sample Java Source ===
 +== ==
 +<Code lang-java>​
 +...
 +    String s = new String();
 +    synchronized (s) {
 +         ...
 +    }
 +</​Code>​
 +
 +
 +=== Its PEF Representation ===
 +== ==
 +<Code lang-prolog>​
 +synchronizedT(#​id,​ #parent, #​enclMethod,​ #lock, #body).
 +identT(#​lock,​ #id, #​enclMethod,​ '​s',​ ...).
 +blockT(#​body,​ #id, #​enclMethod,​ ...).
 +</​Code>​
 +
 +=== AST Specification ===
 +== ==
 +<​Code>​
 +ast_node_def('​Java',​synchronizedT,​[
 +     ​ast_arg(id, ​    ​mult(1,​1,​no ), id,   ​[synchronizedT]),​ % <-- convention!!!
 +     ​ast_arg(parent,​ mult(1,1,no ), id,   ​[id]),​ % <-- convention!!!
 +     ​ast_arg(encl, ​  ​mult(1,​1,​no ), id,   ​[methodT,​ constructorT,​ classInitializerT]),​
 +     ​ast_arg(lock, ​  ​mult(1,​1,​no ), id,   ​[expressionType]),​
 +     ​ast_arg(block, ​ mult(1,1,no ), id,   ​[blockT])
 +]).
 +</​Code>​
research/jtransformer/api/java/pefs/3.0/synchronizedt.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019