module php/reflect/version5/interface
imports
php/reflect/oo/classes
/**
* Stratego class support for functions
*/
signature
constructors
PHP5Interface : ClassName
strategies
/**
* Succeeds if the current term is an instance of PHP function
*/
instanceof-PHPInterface =
instanceof-PHP5Interface
instanceof-PHP5Interface =
classes_instanceof(|PHP5Interface())
strategies
/**
* Constructs a new interface.
*
* @type _ -> Function Object
*/
new-php5-interface(|ast) =
<classes_get-class> PHP5Interface()
; classes_new-instance
; classes_set-instance-field(|"reference-ast", ast)
/**
* Properties
*/
strategies
/**
* Returns the name of the interface
*
* @type Interface Object -> String
*/
get-name = instanceof-PHP5Interface;
get-reference-ast
; ?InterfaceDecl(<id>,_,_)
/**
* Returns the names of the functions in the interface
*
* @type Interface Object -> List(String)
*/
get-function-names = instanceof-PHP5Interface;
get-reference-ast
; collect-all( ?InterfaceFunction(_,<id>,_) <+ ?InterfaceFunctionRef(_,<id>,_))
/**
* Returns the parameters of the given function in this interface.
*
* @type String -> List(Param)
*/
get-function-params(|name) = instanceof-PHP5Interface;
get-reference-ast
; oncetd( ?InterfaceFunction(_,name,params)
<+ ?InterfaceFunctionRef(_,name,params)
)
; !params
/**
* AST representation
*/
strategies
/**
* Returns the AST of the function.
*
* @type Function Object -> AST
*/
get-ast = instanceof-PHP5Interface;
get-reference-ast
get-reference-ast = instanceof-PHP5Interface;
classes_get-instance-field(|"reference-ast")
set-reference-ast(|refast) = instanceof-PHP5Interface;
classes_set-instance-field(|"reference-ast", refast)