Exemplo n.º 1
0
void FunctionType::accept0 (TypeVisitor *v) const
{
  TYPE_D(FunctionType);
  if (v->visit (this))
  {
    acceptType (d->m_returnType.abstractType(), v);

    for (unsigned int i = 0; i < d->m_argumentsSize (); ++i)
      acceptType (d->m_arguments()[i].abstractType(), v);
  }

  v->endVisit (this);
}
Exemplo n.º 2
0
bool FilterItem::acceptCardAttr(const CardInfo *info, CardFilter::Attr attr) const
{
    bool status;

    switch (attr) {
        case CardFilter::AttrName:
            status = acceptName(info);
            break;
        case CardFilter::AttrType:
            status = acceptType(info);
            break;
        case CardFilter::AttrColor:
            status = acceptColor(info);
            break;
        case CardFilter::AttrText:
            status = acceptText(info);
            break;
        case CardFilter::AttrSet:
            status = acceptSet(info);
            break;
        case CardFilter::AttrManaCost:
            status = acceptManaCost(info);
            break;
        default:
            status = true; /* ignore this attribute */
    }

    return status;
}
Exemplo n.º 3
0
void PointerType::accept0 (TypeVisitor *v) const
{
  if (v->visit (this))
    acceptType (d_func()->m_baseType.abstractType(), v);

  v->endVisit (this);
}
Exemplo n.º 4
0
// fully_specified_type
//      : type_specifier
//      | type_qualifier type_specifier
//
bool HlslGrammar::acceptFullySpecifiedType(TType& type)
{
    // type_qualifier
    TQualifier qualifier;
    qualifier.clear();
    acceptQualifier(qualifier);

    // type_specifier
    if (! acceptType(type))
        return false;
    type.getQualifier() = qualifier;

    return true;
}
Exemplo n.º 5
0
// constructor
//      : type argument_list
//
bool HlslGrammar::acceptConstructor(TIntermTyped*& node)
{
    // type
    TType type;
    if (acceptType(type)) {
        TFunction* constructorFunction = parseContext.handleConstructorCall(token.loc, type);
        if (constructorFunction == nullptr)
            return false;

        // arguments
        TIntermAggregate* arguments = nullptr;
        if (! acceptArguments(constructorFunction, arguments)) {
            expected("constructor arguments");
            return false;
        }

        // hook it up
        node = parseContext.handleFunctionCall(arguments->getLoc(), constructorFunction, arguments);

        return true;
    }

    return false;
}