Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents the infix expression, postfix expression and prefix expression.
#id: id
the unique ID assigned to this fact.
#parent: id
ID of the parent node.
#encl: methodT, constructorT, classInitializerT, fieldT, classT
ID of the fact that represents the enclosing element. (classT if used in a memberValueT)
[#arg1,…]: expression
list of the operands of this expression.
operatorName: atom
the operator of this expression (!,+,-,/,*,«,…).
pos: number
postfix expression: 1
infix expression: 0
prefix expression: -1
void expression(){ int i = 0; i++; //corresponding code line to operationT }
methodT(#encl, ..., 'expression', [], type(basic, void, 0), [], ...). execT(#parent, ..., #encl, #id). operationT(#id, #parent, #encl, [#arg1], '++', 1). identT(#arg1, #id, #encl, 'i', ...).
ast_node_def('Java',operationT,[ ast_arg(id, mult(1,1,no ), id, [operationT]), % <-- convention!!! ast_arg(parent, mult(1,1,no ), id, [id]), % <-- convention!!! ast_arg(encl, mult(1,1,no ), id, [methodT, constructorT, classInitializerT,fieldT,classT]), ast_arg(args, mult(1,1,ord), id, [expressionType]), ast_arg(op, mult(1,1,no ), attr, [atom]), ast_arg(pos, mult(1,1,no ), attr, [number]) ]).