abc.aspectj.ast
Class AmbTypeOrLocal_c

java.lang.Object
  extended by Node_c
      extended by abc.aspectj.ast.ArgPattern_c
          extended by abc.aspectj.ast.AmbTypeOrLocal_c
All Implemented Interfaces:
AmbTypeOrLocal, ArgPattern

public class AmbTypeOrLocal_c
extends ArgPattern_c
implements AmbTypeOrLocal

Represents either a type or a local. This is for arguments of args(..), this(..), target(..) as well as named pointcuts. Instances disambiguate to a Local or TypeNode.

Author:
Oege de Moor, Aske Simon Christensen

Constructor Summary
AmbTypeOrLocal_c(Position pos, TypeNode type)
           
 
Method Summary
 Node disambiguate(AmbiguityRemover ar)
          Disambiguate the expression.
 Node exceptionCheck(ExceptionChecker ec)
          Check exceptions thrown by the expression.
 void prettyPrint(CodeWriter w, PrettyPrinter tr)
           
protected  AmbTypeOrLocal reconstruct(QualifierNode qual)
           
 TypeNode type()
           
 Node typeCheck(TypeChecker tc)
          Type check the expression.
 Node visitChildren(NodeVisitor v)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AmbTypeOrLocal_c

public AmbTypeOrLocal_c(Position pos,
                        TypeNode type)
Method Detail

type

public TypeNode type()
Specified by:
type in interface AmbTypeOrLocal

disambiguate

public Node disambiguate(AmbiguityRemover ar)
                  throws SemanticException
Disambiguate the expression.

Throws:
SemanticException

reconstruct

protected AmbTypeOrLocal reconstruct(QualifierNode qual)

visitChildren

public Node visitChildren(NodeVisitor v)

typeCheck

public Node typeCheck(TypeChecker tc)
               throws SemanticException
Type check the expression.

Throws:
SemanticException

exceptionCheck

public Node exceptionCheck(ExceptionChecker ec)
                    throws SemanticException
Check exceptions thrown by the expression.

Throws:
SemanticException

prettyPrint

public void prettyPrint(CodeWriter w,
                        PrettyPrinter tr)