PHP Class Pinq\Analysis\ExpressionAnalyser

Author: Elliot Levin ([email protected])
Inheritance: extends Pinq\Expressions\ExpressionVisitor, implements Pinq\Analysis\IExpressionAnalyser
Show file Open project: timetoogo/pinq Class Usage Examples

Protected Properties

Property Type Description
$analysis SplObjectStorage | Pinq\Analysis\IType[]
$analysisContext Pinq\Analysis\IAnalysisContext
$metadata SplObjectStorage
$typeSystem Pinq\Analysis\ITypeSystem

Public Methods

Method Description
__construct ( Pinq\Analysis\ITypeSystem $typeSystem )
analyse ( Pinq\Analysis\IAnalysisContext $analysisContext, Expression $expression )
createAnalysisContext ( Pinq\Expressions\IEvaluationContext $evaluationContext )
getTypeSystem ( )
visitArgument ( ArgumentExpression $expression )
visitArray ( ArrayExpression $expression )
visitArrayItem ( ArrayItemExpression $expression )
visitAssignment ( AssignmentExpression $expression )
visitBinaryOperation ( BinaryOperationExpression $expression )
visitCast ( CastExpression $expression )
visitClassConstant ( ClassConstantExpression $expression )
visitClosure ( ClosureExpression $expression )
visitConstant ( ConstantExpression $expression )
visitEmpty ( EmptyExpression $expression )
visitField ( FieldExpression $expression )
visitFunctionCall ( FunctionCallExpression $expression )
visitIndex ( IndexExpression $expression )
visitInvocation ( InvocationExpression $expression )
visitIsset ( IssetExpression $expression )
visitMethodCall ( MethodCallExpression $expression )
visitNew ( NewExpression $expression )
visitParameter ( ParameterExpression $expression )
visitReturn ( ReturnExpression $expression )
visitStaticField ( StaticFieldExpression $expression )
visitStaticMethodCall ( StaticMethodCallExpression $expression )
visitTernary ( TernaryExpression $expression )
visitThrow ( Pinq\Expressions\ThrowExpression $expression )
visitUnaryOperation ( UnaryOperationExpression $expression )
visitUnset ( UnsetExpression $expression )
visitValue ( ValueExpression $expression )
visitVariable ( VariableExpression $expression )

Protected Methods

Method Description
addTypeOperation ( Expression $expression, Pinq\Analysis\ITypeOperation $typeOperation )
validateStaticClassName ( Expression $expression, $type )

Private Methods

Method Description
verifyConstantDefined ( $constantName )

Method Details

__construct() public method

public __construct ( Pinq\Analysis\ITypeSystem $typeSystem )
$typeSystem Pinq\Analysis\ITypeSystem

addTypeOperation() protected method

protected addTypeOperation ( Expression $expression, Pinq\Analysis\ITypeOperation $typeOperation )
$expression Pinq\Expressions\Expression
$typeOperation Pinq\Analysis\ITypeOperation

analyse() public method

public analyse ( Pinq\Analysis\IAnalysisContext $analysisContext, Expression $expression )
$analysisContext Pinq\Analysis\IAnalysisContext
$expression Pinq\Expressions\Expression

createAnalysisContext() public method

public createAnalysisContext ( Pinq\Expressions\IEvaluationContext $evaluationContext )
$evaluationContext Pinq\Expressions\IEvaluationContext

getTypeSystem() public method

public getTypeSystem ( )

validateStaticClassName() protected method

protected validateStaticClassName ( Expression $expression, $type )
$expression Pinq\Expressions\Expression

visitArgument() public method

public visitArgument ( ArgumentExpression $expression )
$expression Pinq\Expressions\ArgumentExpression

visitArray() public method

public visitArray ( ArrayExpression $expression )
$expression Pinq\Expressions\ArrayExpression

visitArrayItem() public method

public visitArrayItem ( ArrayItemExpression $expression )
$expression Pinq\Expressions\ArrayItemExpression

visitAssignment() public method

public visitAssignment ( AssignmentExpression $expression )
$expression Pinq\Expressions\AssignmentExpression

visitBinaryOperation() public method

public visitBinaryOperation ( BinaryOperationExpression $expression )
$expression Pinq\Expressions\BinaryOperationExpression

visitCast() public method

public visitCast ( CastExpression $expression )
$expression Pinq\Expressions\CastExpression

visitClassConstant() public method

public visitClassConstant ( ClassConstantExpression $expression )
$expression Pinq\Expressions\ClassConstantExpression

visitClosure() public method

public visitClosure ( ClosureExpression $expression )
$expression Pinq\Expressions\ClosureExpression

visitConstant() public method

public visitConstant ( ConstantExpression $expression )
$expression Pinq\Expressions\ConstantExpression

visitEmpty() public method

public visitEmpty ( EmptyExpression $expression )
$expression Pinq\Expressions\EmptyExpression

visitField() public method

public visitField ( FieldExpression $expression )
$expression Pinq\Expressions\FieldExpression

visitFunctionCall() public method

public visitFunctionCall ( FunctionCallExpression $expression )
$expression Pinq\Expressions\FunctionCallExpression

visitIndex() public method

public visitIndex ( IndexExpression $expression )
$expression Pinq\Expressions\IndexExpression

visitInvocation() public method

public visitInvocation ( InvocationExpression $expression )
$expression Pinq\Expressions\InvocationExpression

visitIsset() public method

public visitIsset ( IssetExpression $expression )
$expression Pinq\Expressions\IssetExpression

visitMethodCall() public method

public visitMethodCall ( MethodCallExpression $expression )
$expression Pinq\Expressions\MethodCallExpression

visitNew() public method

public visitNew ( NewExpression $expression )
$expression Pinq\Expressions\NewExpression

visitParameter() public method

public visitParameter ( ParameterExpression $expression )
$expression Pinq\Expressions\ParameterExpression

visitReturn() public method

public visitReturn ( ReturnExpression $expression )
$expression Pinq\Expressions\ReturnExpression

visitStaticField() public method

public visitStaticField ( StaticFieldExpression $expression )
$expression Pinq\Expressions\StaticFieldExpression

visitStaticMethodCall() public method

public visitStaticMethodCall ( StaticMethodCallExpression $expression )
$expression Pinq\Expressions\StaticMethodCallExpression

visitTernary() public method

public visitTernary ( TernaryExpression $expression )
$expression Pinq\Expressions\TernaryExpression

visitThrow() public method

public visitThrow ( Pinq\Expressions\ThrowExpression $expression )
$expression Pinq\Expressions\ThrowExpression

visitUnaryOperation() public method

public visitUnaryOperation ( UnaryOperationExpression $expression )
$expression Pinq\Expressions\UnaryOperationExpression

visitUnset() public method

public visitUnset ( UnsetExpression $expression )
$expression Pinq\Expressions\UnsetExpression

visitValue() public method

public visitValue ( ValueExpression $expression )
$expression Pinq\Expressions\ValueExpression

visitVariable() public method

public visitVariable ( VariableExpression $expression )
$expression Pinq\Expressions\VariableExpression

Property Details

$analysis protected property

protected SplObjectStorage|IType[],Pinq\Analysis $analysis
return SplObjectStorage | Pinq\Analysis\IType[]

$analysisContext protected property

protected IAnalysisContext,Pinq\Analysis $analysisContext
return Pinq\Analysis\IAnalysisContext

$metadata protected property

protected SplObjectStorage $metadata
return SplObjectStorage

$typeSystem protected property

protected ITypeSystem,Pinq\Analysis $typeSystem
return Pinq\Analysis\ITypeSystem