/**
  * @see parser.IDLParserVisitor#visit(ASTvalue_forward_decl, Object)
  * @param data the buildinfo of the container
  */
 public Object visit(ASTvalue_forward_decl node, Object data) {
     CheckParameterForBuildInfo(data, node);
     // is possible to do with reflection emit, because interface and class inheritance can be specified later on with setParent() and AddInterfaceImplementation()
     Scope enclosingScope = ((BuildInfo) data).GetBuildScope();
     Symbol forSymbol = enclosingScope.getSymbol(node.getIdent());
     // check if type is known from a previous run over a parse tree --> if so: skip
     if (m_typeManager.CheckSkip(forSymbol)) { 
         return null; 
     }
     
     // create only the type-builder, but don't call createType()
     if (!(m_typeManager.IsTypeDeclarded(forSymbol))) { // if the full type declaration already exists, ignore fwd decl
         // it's no problem to add later on interfaces this type should implement and the base class this type should inherit from with AddInterfaceImplementation / set parent
         // here: specify no inheritance, because not known at this point
         CreateOrGetValueDcl(forSymbol, null, Type.EmptyTypes, 
                             node.isAbstract(), true);
     }
     return null;
 }