====== MANET Join Point Attributes ====== This page presents the join point attributes available through MANET. After selecting a desired join point, we can use this attributes to perform detailed analyses and filter our results. ^ Join Point ^ Attribute ^ Type ^ Description ^ | arrayAccess | name | String | The name of the array. | | ::: | reference | enum: {read,write} | The type of access. ''a[i]=3'' is considered a write and ''tmp=a[i]'' is considered a read. | | ::: | num_dims | Integer | The number of dimensions used in the array access. | | binaryExpression | operator | String | A string representation of the binary operator. | | body | num_statements | Integer | The number of statements inside the body. | | ::: | num_loops | Integer | The number of loops inside the body. | | ::: | num_for | Integer | The number of //FOR// loops inside the body. | | ::: | num_while | Integer | The number of //WHILE// loops inside the body. | | ::: | num_dowhile | Integer | The number of //DOWHILE// loops inside the body. | | call | name | String | The name of the function being called. | | ::: | num_args | Integer | The number of arguments of the function call. | | ::: | ID | String | A string that uniquely identifies the function call inside the program. | | ::: | return_type | String | A string representation of the return type of the function being called, e.g., ''int''. | | declaration | name | String | The name of the variable being declared. | | ::: | is_array | Boolean | Whether the declared variable is an array. | | ::: | is_pointer | Boolean | Whether the declared variable is a pointer. | | ::: | is_struct | Boolean | Whether the declared variable is a struct. | | ::: | is_primitive | Boolean | Whether the declared variable is not a user-defined type. | | expression | num_oper | Integer | The number of operators used in the expression. | | ::: | num_calls | Integer | The number of function calls in the expression. | | ::: | is_array_access | Boolean | Whether this expression is an array access. | | ::: | has_side_effects| Boolean | Whether this expression has side effects. This is true when a unary operator that has side effects is used, e.g., the prefix increment operator. | | ::: | line | Integer | The line number where this expression is located in the original source file. | | file | name | String | The name of the file. | | function | name | String | The name of the function. | | ::: | return_type | String | A string representation of the return type of the function, e.g., ''int''. | | ::: | line | Integer | The line number where this fucntion is located in the original source file. | | if | rank | String | A string that uniquely identifies this //IF// inside the function. For instance, ''1.1'' would mean the selected //IF// is the first //IF// found inside the first of the outermost conditionals. | | ::: | is_loop_parent | Boolean | Whether the provided **loop** is the parent of this this if. This attribute expects an argument which must be a join point of type **loop**. It is called as if it were a function: ''$if.is_loop_parent($loop)''. | | ::: | is_if_parent | Boolean | Whether the provided **if** is the parent of this this if. This attribute expects an argument which must be a join point of type **if**. It is called as if it were a function: ''$if1.is_if_parent($if2)''. | | loop | type | enum: {for,while,do-while} | The type of the loop. | | ::: | ID | String | A string that uniquely identifies the function call inside the program. | | ::: | num_iterations | Integer | The number of iterations of the loop. If it is not possible to calculate the number of iterations of this loop, this attribute emits a warning and returns the value **-1**. | | ::: | increment_value | Integer | The value of the increment used in the expression step. For instance, in ''for(i=0; i