module php/reflect/common/function imports php/reflect/oo/classes strategies /** * Succeeds if the current term is an instance of PHP function * Since this is an abstract class there are no instances */ instanceof-PHPFunction = fail /** * Properties */ strategies /** * Returns the name of the function * * @type Function Object -> String */ get-name(s) = instanceof-PHPFunction; get-reference-ast ; s get-function-name = ?FunctionDecl(<id>, _, _) <+ ?FunctionDeclRef(<id>, _, _) /** * Returns the body of the function * * @type Function Object -> AST */ get-body(s) = instanceof-PHPFunction; get-reference-ast ; s get-function-body = ?FunctionDecl(_, _, <id>) <+ ?FunctionDeclRef(_, _, <id>) /** * Returns the number of parameters of the function * * @type Function object -> Int */ get-param-count(s) = instanceof-PHPFunction; s ; length /** * Returns the parameters of the function * * @type Function object -> List(Param) */ get-params(s) = instanceof-PHPFunction; get-reference-ast ; s param-match = ?FunctionDecl(_,<id>, _) <+ ?FunctionDeclRef(_,<id>, _) /** * AST representation */ strategies /** * Returns the AST of the function. * * @type Function Object -> AST */ get-ast = instanceof-PHPFunction; get-reference-ast get-reference-ast = instanceof-PHPFunction; classes_get-instance-field(|"reference-ast") set-reference-ast(|refast) = instanceof-PHPFunction; classes_set-instance-field(|"reference-ast", refast)