module php/reflect/common/class
imports
php/reflect/oo/classes
strategies
/**
* Succeeds if the current term is an instance of PHP class
* Since this is an abstract class there are no instances
*/
instanceof-PHPClass =
fail
/**
* Properties
*/
strategies
/**
* Returns the name of the class
*
* @type Class Object -> String
*/
get-name(s) = instanceof-PHPClass;
get-reference-ast
; s
get-class-name =
?Class(_, <id>, _, _)
/**
* Returns the name of the class
* it extends (if any)
*
* @type Class Object -> String
*/
get-extends(s) = instanceof-PHPClass;
get-reference-ast
; s
get-extends-name =
?Class(_, _, Some(Extends(<id>)), _)
/**
* Returns the instance-variables of this class
*
* @type Class Object -> List(InstanceVariable)
*/
get-instance-variables(s) = instanceof-PHPClass;
get-reference-ast
; collect-all(s)
match-instance-variable =
?InstanceVariable(_)
strategies
/**
* Returns all functions.
*
* @type Class Object -> List(Function Object)
*/
get-functions = instanceof-PHPClass;
classes_get-instance-field(|"function-table")
; hashtable-values
/**
* @param Name of the function (String)
* @type Class Object -> Class Object
*/
get-function(|name) = instanceof-PHPClass;
classes_get-instance-field(|"function-table")
; hashtable-get(|name)
/**
* @param Function Object
* @type Class Object -> Class Object
*/
add-function(|function) = instanceof-PHPClass;
where(
classes_get-instance-field(|"function-table")
; where(name := <get-name> function)
; hashtable-put(|name, function)
)
strategies
/**
* Returns the parent of a class object (if any)
*
* @type Class Object -> Class Object
*/
get-class-parent = instanceof-PHPClass; ?class;
extends := <get-extends> class
; env := <get-php-environment>
; <get-class(|extends)> env
/**
* AST representation
*/
strategies
/**
* Returns the AST of the function.
*
* @type Function Object -> AST
*/
get-ast = instanceof-PHPClass;
get-reference-ast
get-reference-ast = instanceof-PHPClass;
classes_get-instance-field(|"reference-ast")
set-reference-ast(|refast) = instanceof-PHPClass;
classes_set-instance-field(|"reference-ast", refast)