Пример #1
0
int main ()
{
    std::cout << TYPE_ID(foo) << std::endl;
    std::cout << TYPE_ID(bar) << std::endl;

    // The following would not work since fdaf does not exist!
    //std::cout << TYPE_ID(fdaf) << std::endl;

    return 0;
}
static PyObject *t_forwardcharacteriterator_richcmp(t_forwardcharacteriterator *self, PyObject *arg, int op)
{
    int b = 0;
    ForwardCharacterIterator *i;

    if (!parseArg(arg, "P", TYPE_ID(ForwardCharacterIterator), &i))
    {
        switch (op) {
          case Py_EQ:
          case Py_NE:
            b = *self->object == *i;
            if (op == Py_EQ)
                Py_RETURN_BOOL(b);
            Py_RETURN_BOOL(!b);
          case Py_LT:
          case Py_LE:
          case Py_GT:
          case Py_GE:
            PyErr_SetNone(PyExc_NotImplementedError);
            return NULL;
        }
    }

    return PyErr_SetArgsError((PyObject *) self, "__richcmp__", arg);
}
Пример #3
0
static PyObject *t_searchiterator_setText(t_searchiterator *self, PyObject *arg)
{
    UnicodeString *u;
    CharacterIterator *chars;

    if (!parseArg(arg, "W", &u, &self->text))
    {
        STATUS_CALL(self->object->setText(*u, status)); /* ref'd */
        Py_RETURN_NONE;
    }
    else if (!parseArg(arg, "P", TYPE_ID(CharacterIterator), &chars))
    {
        STATUS_CALL(self->object->setText(*chars, status)); /* copied */
        Py_RETURN_NONE;
    }

    return PyErr_SetArgsError((PyObject *) self, "setText", arg);
}
Пример #4
0
static PyObject *t_searchiterator_setBreakIterator(t_searchiterator *self,
                                                   PyObject *arg)
{
    BreakIterator *iterator;

    if (arg == Py_None)
    {
        STATUS_CALL(self->object->setBreakIterator(NULL, status));
        Py_XDECREF(self->iterator); self->iterator = NULL;
        Py_RETURN_NONE;
    }
    if (!parseArg(arg, "p", TYPE_ID(BreakIterator), &iterator, &self->iterator))
    {
        /* ref'd */
        STATUS_CALL(self->object->setBreakIterator(iterator, status));
        Py_RETURN_NONE;
    }

    return PyErr_SetArgsError((PyObject *) self, "setBreakIterator", arg);
}
Пример #5
0
static int t_stringsearch_init(t_stringsearch *self,
                               PyObject *args, PyObject *kwds)
{
    UnicodeString *u0, _u0;
    UnicodeString *u1;
    Locale *locale;
    BreakIterator *iterator;
    RuleBasedCollator *collator;
    CharacterIterator *chars;

    switch (PyTuple_Size(args)) {
      case 3:
        if (!parseArgs(args, "SWP",
                       TYPE_CLASSID(Locale),
                       &u0, &_u0, &u1, &self->text, &locale))
        {
            INT_STATUS_CALL(self->object = new StringSearch(*u0, *u1, *locale,
                                                            NULL, status));
            self->flags = T_OWNED;
            break;
        }
        if (!parseArgs(args, "SWp",
                       TYPE_CLASSID(RuleBasedCollator),
                       &u0, &_u0, &u1, &self->text,
                       &collator, &self->collator))
        {
            INT_STATUS_CALL(self->object = new StringSearch(*u0, *u1, collator,
                                                            NULL, status));
            self->flags = T_OWNED;
            break;
        }
        if (!parseArgs(args, "SpP",
                       TYPE_ID(CharacterIterator),
                       TYPE_CLASSID(Locale),
                       &u0, &_u0, &chars, &self->text, &locale))
        {
            INT_STATUS_CALL(self->object =
                            new StringSearch(*u0, *chars, *locale,
                                             NULL, status));
            self->flags = T_OWNED;
            break;
        }
        if (!parseArgs(args, "Spp",
                       TYPE_ID(CharacterIterator),
                       TYPE_CLASSID(RuleBasedCollator),
                       &u0, &_u0, &chars, &self->text,
                       &collator, &self->collator))
        {
            INT_STATUS_CALL(self->object =
                            new StringSearch(*u0, *chars, collator,
                                             NULL, status));
            self->flags = T_OWNED;
            break;
        }
        PyErr_SetArgsError((PyObject *) self, "__init__", args);
        return -1;
      case 4:
        if (!parseArgs(args, "SWPp",
                       TYPE_CLASSID(Locale),
                       TYPE_ID(BreakIterator),
                       &u0, &_u0, &u1, &self->text,
                       &locale, &iterator, &self->iterator))
        {
            INT_STATUS_CALL(self->object = new StringSearch(*u0, *u1, *locale,
                                                            iterator, status));
            self->flags = T_OWNED;
            break;
        }
        if (!parseArgs(args, "SWpp",
                       TYPE_CLASSID(RuleBasedCollator),
                       TYPE_ID(BreakIterator),
                       &u0, &_u0, &u1, &self->text,
                       &collator, &self->collator,
                       &iterator, &self->iterator))
        {
            INT_STATUS_CALL(self->object = new StringSearch(*u0, *u1, collator,
                                                            NULL, status));
            self->flags = T_OWNED;
            break;
        }
        if (!parseArgs(args, "SpPp",
                       TYPE_ID(CharacterIterator),
                       TYPE_CLASSID(Locale),
                       TYPE_ID(BreakIterator),
                       &u0, &_u0, &chars, &self->text, &locale,
                       &iterator, &self->iterator))
        {
            INT_STATUS_CALL(self->object =
                            new StringSearch(*u0, *chars, *locale,
                                             iterator, status));
            self->flags = T_OWNED;
            break;
        }
        if (!parseArgs(args, "Sppp",
                       TYPE_ID(CharacterIterator),
                       TYPE_CLASSID(RuleBasedCollator),
                       TYPE_ID(BreakIterator),
                       &u0, &_u0, &chars, &self->text,
                       &collator, &self->collator,
                       &iterator, &self->iterator))
        {
            INT_STATUS_CALL(self->object =
                            new StringSearch(*u0, *chars, collator,
                                             iterator, status));
            self->flags = T_OWNED;
            break;
        }
        PyErr_SetArgsError((PyObject *) self, "__init__", args);
        return -1;
      default:
        PyErr_SetArgsError((PyObject *) self, "__init__", args);
        return -1;
    }
        
    if (self->object)
        return 0;

    return -1;
}