//Auto-generated by /usr/bin/smokegen. DO NOT EDIT.
#include <qscintilla2_includes.h>
#include <typeinfo>

#include <smoke.h>
#include <qsci_smoke.h>

class __internal_SmokeClass {};

namespace __smokeqsci {

class x_QsciLexerCustom : public QsciLexerCustom, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCustom*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerCustom*)this)->QsciLexerCustom::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerCustom*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCustom*>(this))) {
            void* xret = this->QsciLexerCustom::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QsciLexerCustom::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QsciLexerCustom::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QsciLexerCustom::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QsciLexerCustom::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCustom*>(this))) {
            int xret = this->QsciLexerCustom::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QsciLexerCustom* QsciLexerCustom(QObject*)
        x_QsciLexerCustom* xret = new x_QsciLexerCustom((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerCustom(QObject* x1) : QsciLexerCustom(x1) {}
    void x_9(Smoke::Stack x) {
        // void setStyling(int, int)
        this->QsciLexerCustom::setStyling((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // void setStyling(int, const QsciStyle&)
        this->QsciLexerCustom::setStyling((int)x[1].s_int,*(const QsciStyle*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // void startStyling(int, int)
        this->QsciLexerCustom::startStyling((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // virtual void styleText(int, int) = 0
        this->styleText((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // virtual void setEditor(QsciScintilla*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCustom*>(this))) {
            this->QsciLexerCustom::setEditor((QsciScintilla*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setEditor((QsciScintilla*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_14(Smoke::Stack x) {
        // virtual int styleBitsNeeded() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCustom*>(this))) {
            int xret = ((const x_QsciLexerCustom*)this)->QsciLexerCustom::styleBitsNeeded();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexerCustom*)this)->styleBitsNeeded();
            x[0].s_int = xret;
        }
    }
    static void x_15(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerCustom::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_16(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerCustom::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_17(Smoke::Stack x) {
        // QsciLexerCustom* QsciLexerCustom()
        x_QsciLexerCustom* xret = new x_QsciLexerCustom((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_18(Smoke::Stack x) {
        // void startStyling(int)
        this->QsciLexerCustom::startStyling((int)x[1].s_int,(int)0);
        (void)x; // noop (for compiler warning)
    }
    static void x_19(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerCustom::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(591, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerCustom::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(592, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerCustom::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(597, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCustom::qt_metacall(x1, x2, x3);
    }
    virtual void styleText(int x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_int = x2;
        this->_binding->callMethod(602, (void*)this, x, true /*pure virtual*/);
    }
    virtual void setEditor(QsciScintilla* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(603, (void*)this, x)) return;
        this->QsciLexerCustom::setEditor(x1);
    }
    virtual int styleBitsNeeded() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(604, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCustom::styleBitsNeeded();
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(218, (void*)this, x, true /*pure virtual*/);
        return (const char*)x[0].s_class;
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(219, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::lexer();
    }
    virtual int lexerId() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(220, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::lexerId();
    }
    virtual const char* autoCompletionFillups() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(222, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::autoCompletionFillups();
    }
    virtual QStringList autoCompletionWordSeparators() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(223, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(225, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockEnd(x1);
    }
    virtual int blockLookback() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(226, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::blockLookback();
    }
    virtual const char* blockStart(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(227, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(228, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(229, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::braceStyle();
    }
    virtual bool caseSensitive() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::caseSensitive();
    }
    virtual QColor color(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(231, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::color(x1);
    }
    virtual bool eolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(232, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::eolFill(x1);
    }
    virtual QFont font(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(233, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::font(x1);
    }
    virtual int indentationGuideView() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(234, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::indentationGuideView();
    }
    virtual const char* keywords(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(235, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::keywords(x1);
    }
    virtual int defaultStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(236, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::defaultStyle();
    }
    virtual QString description(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        this->_binding->callMethod(237, (void*)this, x, true /*pure virtual*/);
        QString* xptr = (QString*)x[0].s_class;
        QString xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QColor paper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(238, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::paper(x1);
    }
    virtual QColor defaultColor(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(240, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(241, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(243, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(245, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultPaper(x1);
    }
    virtual void refreshProperties() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(253, (void*)this, x)) return;
        this->QsciLexer::refreshProperties();
    }
    virtual const char* wordCharacters() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(255, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::wordCharacters();
    }
    virtual void setAutoIndentStyle(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->QsciLexer::setAutoIndentStyle(x1);
    }
    virtual void setColor(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QsciLexer::setColor(x1, x2);
    }
    virtual void setEolFill(bool x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_bool = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->QsciLexer::setEolFill(x1, x2);
    }
    virtual void setFont(const QFont& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->QsciLexer::setFont(x1, x2);
    }
    virtual void setPaper(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->QsciLexer::setPaper(x1, x2);
    }
    virtual bool readProperties(QSettings& x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(267, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::readProperties(x1, x2);
    }
    virtual bool writeProperties(QSettings& x1, const QString& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(268, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::writeProperties(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(7, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(8, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(9, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(10, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(11, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(12, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(13, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QsciLexerCustom() { this->_binding->deleted(60, (void*)this); }
};
void xcall_QsciLexerCustom(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerCustom *xself = (x_QsciLexerCustom*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QsciLexerCustom::x_3(args);	break;
        case 4: x_QsciLexerCustom::x_4(args);	break;
        case 5: x_QsciLexerCustom::x_5(args);	break;
        case 6: x_QsciLexerCustom::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerCustom::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: x_QsciLexerCustom::x_15(args);	break;
        case 16: x_QsciLexerCustom::x_16(args);	break;
        case 17: x_QsciLexerCustom::x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: x_QsciLexerCustom::x_19(args);	break;
        case 20: delete (QsciLexerCustom*)xself;	break;
    }
}
class x_QsciLexerD : public QsciLexerD, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerD*)this)->QsciLexerD::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerD*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            void* xret = this->QsciLexerD::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QsciLexerD::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QsciLexerD::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QsciLexerD::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QsciLexerD::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            int xret = this->QsciLexerD::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QsciLexerD* QsciLexerD(QObject*)
        x_QsciLexerD* xret = new x_QsciLexerD((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerD(QObject* x1) : QsciLexerD(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->language();
            x[0].s_class = (void*)xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // const char* lexer() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // QStringList autoCompletionWordSeparators() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            QStringList xret = ((const x_QsciLexerD*)this)->QsciLexerD::autoCompletionWordSeparators();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_QsciLexerD*)this)->autoCompletionWordSeparators();
            x[0].s_class = (void*)new QStringList(xret);
        }
    }
    void x_12(Smoke::Stack x) {
        // const char* blockEnd(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // const char* blockStart(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_14(Smoke::Stack x) {
        // const char* blockStartKeyword(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::blockStartKeyword((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->blockStartKeyword((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_15(Smoke::Stack x) {
        // int braceStyle() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            int xret = ((const x_QsciLexerD*)this)->QsciLexerD::braceStyle();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexerD*)this)->braceStyle();
            x[0].s_int = xret;
        }
    }
    void x_16(Smoke::Stack x) {
        // const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->wordCharacters();
            x[0].s_class = (void*)xret;
        }
    }
    void x_17(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            QColor xret = ((const x_QsciLexerD*)this)->QsciLexerD::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerD*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_18(Smoke::Stack x) {
        // bool defaultEolFill(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            bool xret = ((const x_QsciLexerD*)this)->QsciLexerD::defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerD*)this)->defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_19(Smoke::Stack x) {
        // QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            QFont xret = ((const x_QsciLexerD*)this)->QsciLexerD::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerD*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_20(Smoke::Stack x) {
        // QColor defaultPaper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            QColor xret = ((const x_QsciLexerD*)this)->QsciLexerD::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerD*)this)->defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_21(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerD*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_22(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            QString xret = ((const x_QsciLexerD*)this)->QsciLexerD::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerD*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    void x_23(Smoke::Stack x) {
        // void refreshProperties()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            this->QsciLexerD::refreshProperties();
            (void)x; // noop (for compiler warning)
        } else {
            this->refreshProperties();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_24(Smoke::Stack x) {
        // bool foldAtElse() const
        bool xret = ((const x_QsciLexerD*)this)->QsciLexerD::foldAtElse();
        x[0].s_bool = xret;
    }
    void x_25(Smoke::Stack x) {
        // bool foldComments() const
        bool xret = ((const x_QsciLexerD*)this)->QsciLexerD::foldComments();
        x[0].s_bool = xret;
    }
    void x_26(Smoke::Stack x) {
        // bool foldCompact() const
        bool xret = ((const x_QsciLexerD*)this)->QsciLexerD::foldCompact();
        x[0].s_bool = xret;
    }
    void x_27(Smoke::Stack x) {
        // virtual void setFoldAtElse(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            this->QsciLexerD::setFoldAtElse((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setFoldAtElse((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_28(Smoke::Stack x) {
        // virtual void setFoldComments(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            this->QsciLexerD::setFoldComments((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setFoldComments((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_29(Smoke::Stack x) {
        // virtual void setFoldCompact(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            this->QsciLexerD::setFoldCompact((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setFoldCompact((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_30(Smoke::Stack x) {
        // bool readProperties(QSettings&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            bool xret = this->QsciLexerD::readProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->readProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_31(Smoke::Stack x) {
        // bool writeProperties(QSettings&, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerD*>(this))) {
            bool xret = ((const x_QsciLexerD*)this)->QsciLexerD::writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerD*)this)->writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_32(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerD::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_33(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerD::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_34(Smoke::Stack x) {
        // QsciLexerD* QsciLexerD()
        x_QsciLexerD* xret = new x_QsciLexerD((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_35(Smoke::Stack x) {
        // const char* blockEnd() const
        const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::blockEnd((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_36(Smoke::Stack x) {
        // const char* blockStart() const
        const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::blockStart((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_37(Smoke::Stack x) {
        // const char* blockStartKeyword() const
        const char* xret = ((const x_QsciLexerD*)this)->QsciLexerD::blockStartKeyword((int*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_38(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerD::staticMetaObject;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Default;
    }
    static void x_40(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Comment;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::CommentLine;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::CommentDoc;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::CommentNested;
    }
    static void x_44(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Number;
    }
    static void x_45(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Keyword;
    }
    static void x_46(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::KeywordSecondary;
    }
    static void x_47(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::KeywordDoc;
    }
    static void x_48(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Typedefs;
    }
    static void x_49(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::String;
    }
    static void x_50(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::UnclosedString;
    }
    static void x_51(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Character;
    }
    static void x_52(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Operator;
    }
    static void x_53(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::Identifier;
    }
    static void x_54(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::CommentLineDoc;
    }
    static void x_55(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::CommentDocKeyword;
    }
    static void x_56(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::CommentDocKeywordError;
    }
    static void x_57(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::BackquoteString;
    }
    static void x_58(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::RawString;
    }
    static void x_59(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::KeywordSet5;
    }
    static void x_60(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::KeywordSet6;
    }
    static void x_61(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerD::KeywordSet7;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(611, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerD::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(612, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerD::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(617, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerD::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldAtElse(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(637, (void*)this, x)) return;
        this->QsciLexerD::setFoldAtElse(x1);
    }
    virtual void setFoldComments(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(638, (void*)this, x)) return;
        this->QsciLexerD::setFoldComments(x1);
    }
    virtual void setFoldCompact(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(639, (void*)this, x)) return;
        this->QsciLexerD::setFoldCompact(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(619, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(620, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::lexer();
    }
    virtual int lexerId() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(220, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::lexerId();
    }
    virtual const char* autoCompletionFillups() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(222, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::autoCompletionFillups();
    }
    virtual QStringList autoCompletionWordSeparators() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(621, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerD::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(622, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::blockEnd(x1);
    }
    virtual int blockLookback() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(226, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::blockLookback();
    }
    virtual const char* blockStart(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(623, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(624, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(625, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerD::braceStyle();
    }
    virtual bool caseSensitive() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::caseSensitive();
    }
    virtual QColor color(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(231, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::color(x1);
    }
    virtual bool eolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(232, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::eolFill(x1);
    }
    virtual QFont font(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(233, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::font(x1);
    }
    virtual int indentationGuideView() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(234, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::indentationGuideView();
    }
    virtual const char* keywords(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(631, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::keywords(x1);
    }
    virtual int defaultStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(236, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::defaultStyle();
    }
    virtual QString description(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(632, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerD::description(x1);
    }
    virtual QColor paper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(238, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::paper(x1);
    }
    virtual QColor defaultColor(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(627, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerD::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(628, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerD::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(629, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerD::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(630, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerD::defaultPaper(x1);
    }
    virtual void setEditor(QsciScintilla* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(251, (void*)this, x)) return;
        this->QsciLexer::setEditor(x1);
    }
    virtual void refreshProperties() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(633, (void*)this, x)) return;
        this->QsciLexerD::refreshProperties();
    }
    virtual int styleBitsNeeded() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(254, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::styleBitsNeeded();
    }
    virtual const char* wordCharacters() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(626, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerD::wordCharacters();
    }
    virtual void setAutoIndentStyle(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->QsciLexer::setAutoIndentStyle(x1);
    }
    virtual void setColor(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QsciLexer::setColor(x1, x2);
    }
    virtual void setEolFill(bool x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_bool = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->QsciLexer::setEolFill(x1, x2);
    }
    virtual void setFont(const QFont& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->QsciLexer::setFont(x1, x2);
    }
    virtual void setPaper(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->QsciLexer::setPaper(x1, x2);
    }
    virtual bool readProperties(QSettings& x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(640, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerD::readProperties(x1, x2);
    }
    virtual bool writeProperties(QSettings& x1, const QString& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(641, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerD::writeProperties(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(7, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(8, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(9, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(10, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(11, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(12, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(13, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QsciLexerD() { this->_binding->deleted(61, (void*)this); }
};
void xcall_QsciLexerD(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerD *xself = (x_QsciLexerD*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QsciLexerD::x_3(args);	break;
        case 4: x_QsciLexerD::x_4(args);	break;
        case 5: x_QsciLexerD::x_5(args);	break;
        case 6: x_QsciLexerD::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerD::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: xself->x_25(args);	break;
        case 26: xself->x_26(args);	break;
        case 27: xself->x_27(args);	break;
        case 28: xself->x_28(args);	break;
        case 29: xself->x_29(args);	break;
        case 30: xself->x_30(args);	break;
        case 31: xself->x_31(args);	break;
        case 32: x_QsciLexerD::x_32(args);	break;
        case 33: x_QsciLexerD::x_33(args);	break;
        case 34: x_QsciLexerD::x_34(args);	break;
        case 35: xself->x_35(args);	break;
        case 36: xself->x_36(args);	break;
        case 37: xself->x_37(args);	break;
        case 38: x_QsciLexerD::x_38(args);	break;
        case 39: x_QsciLexerD::x_39(args);	break;
        case 40: x_QsciLexerD::x_40(args);	break;
        case 41: x_QsciLexerD::x_41(args);	break;
        case 42: x_QsciLexerD::x_42(args);	break;
        case 43: x_QsciLexerD::x_43(args);	break;
        case 44: x_QsciLexerD::x_44(args);	break;
        case 45: x_QsciLexerD::x_45(args);	break;
        case 46: x_QsciLexerD::x_46(args);	break;
        case 47: x_QsciLexerD::x_47(args);	break;
        case 48: x_QsciLexerD::x_48(args);	break;
        case 49: x_QsciLexerD::x_49(args);	break;
        case 50: x_QsciLexerD::x_50(args);	break;
        case 51: x_QsciLexerD::x_51(args);	break;
        case 52: x_QsciLexerD::x_52(args);	break;
        case 53: x_QsciLexerD::x_53(args);	break;
        case 54: x_QsciLexerD::x_54(args);	break;
        case 55: x_QsciLexerD::x_55(args);	break;
        case 56: x_QsciLexerD::x_56(args);	break;
        case 57: x_QsciLexerD::x_57(args);	break;
        case 58: x_QsciLexerD::x_58(args);	break;
        case 59: x_QsciLexerD::x_59(args);	break;
        case 60: x_QsciLexerD::x_60(args);	break;
        case 61: x_QsciLexerD::x_61(args);	break;
        case 62: delete (QsciLexerD*)xself;	break;
    }
}
class x_QsciLexerDiff : public QsciLexerDiff, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerDiff*)this)->QsciLexerDiff::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerDiff*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            void* xret = this->QsciLexerDiff::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QsciLexerDiff::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QsciLexerDiff::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QsciLexerDiff::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QsciLexerDiff::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            int xret = this->QsciLexerDiff::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QsciLexerDiff* QsciLexerDiff(QObject*)
        x_QsciLexerDiff* xret = new x_QsciLexerDiff((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerDiff(QObject* x1) : QsciLexerDiff(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            const char* xret = ((const x_QsciLexerDiff*)this)->QsciLexerDiff::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerDiff*)this)->language();
            x[0].s_class = (void*)xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // const char* lexer() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            const char* xret = ((const x_QsciLexerDiff*)this)->QsciLexerDiff::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerDiff*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            const char* xret = ((const x_QsciLexerDiff*)this)->QsciLexerDiff::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerDiff*)this)->wordCharacters();
            x[0].s_class = (void*)xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            QColor xret = ((const x_QsciLexerDiff*)this)->QsciLexerDiff::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerDiff*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_13(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerDiff*>(this))) {
            QString xret = ((const x_QsciLexerDiff*)this)->QsciLexerDiff::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerDiff*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    static void x_14(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerDiff::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_15(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerDiff::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_16(Smoke::Stack x) {
        // QsciLexerDiff* QsciLexerDiff()
        x_QsciLexerDiff* xret = new x_QsciLexerDiff((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_17(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerDiff::staticMetaObject;
    }
    static void x_18(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::Default;
    }
    static void x_19(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::Comment;
    }
    static void x_20(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::Command;
    }
    static void x_21(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::Header;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::Position;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::LineRemoved;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::LineAdded;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerDiff::LineChanged;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(673, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerDiff::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(674, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerDiff::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(679, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerDiff::qt_metacall(x1, x2, x3);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(681, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerDiff::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(682, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerDiff::lexer();
    }
    virtual int lexerId() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(220, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::lexerId();
    }
    virtual const char* autoCompletionFillups() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(222, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::autoCompletionFillups();
    }
    virtual QStringList autoCompletionWordSeparators() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(223, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(225, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockEnd(x1);
    }
    virtual int blockLookback() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(226, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::blockLookback();
    }
    virtual const char* blockStart(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(227, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(228, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(229, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::braceStyle();
    }
    virtual bool caseSensitive() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::caseSensitive();
    }
    virtual QColor color(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(231, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::color(x1);
    }
    virtual bool eolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(232, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::eolFill(x1);
    }
    virtual QFont font(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(233, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::font(x1);
    }
    virtual int indentationGuideView() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(234, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::indentationGuideView();
    }
    virtual const char* keywords(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(235, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::keywords(x1);
    }
    virtual int defaultStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(236, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::defaultStyle();
    }
    virtual QString description(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(685, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerDiff::description(x1);
    }
    virtual QColor paper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(238, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::paper(x1);
    }
    virtual QColor defaultColor(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(684, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerDiff::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(241, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(243, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(245, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultPaper(x1);
    }
    virtual void setEditor(QsciScintilla* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(251, (void*)this, x)) return;
        this->QsciLexer::setEditor(x1);
    }
    virtual void refreshProperties() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(253, (void*)this, x)) return;
        this->QsciLexer::refreshProperties();
    }
    virtual int styleBitsNeeded() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(254, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::styleBitsNeeded();
    }
    virtual const char* wordCharacters() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(683, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerDiff::wordCharacters();
    }
    virtual void setAutoIndentStyle(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->QsciLexer::setAutoIndentStyle(x1);
    }
    virtual void setColor(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QsciLexer::setColor(x1, x2);
    }
    virtual void setEolFill(bool x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_bool = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->QsciLexer::setEolFill(x1, x2);
    }
    virtual void setFont(const QFont& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->QsciLexer::setFont(x1, x2);
    }
    virtual void setPaper(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->QsciLexer::setPaper(x1, x2);
    }
    virtual bool readProperties(QSettings& x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(267, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::readProperties(x1, x2);
    }
    virtual bool writeProperties(QSettings& x1, const QString& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(268, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::writeProperties(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(7, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(8, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(9, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(10, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(11, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(12, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(13, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QsciLexerDiff() { this->_binding->deleted(62, (void*)this); }
};
void xcall_QsciLexerDiff(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerDiff *xself = (x_QsciLexerDiff*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QsciLexerDiff::x_3(args);	break;
        case 4: x_QsciLexerDiff::x_4(args);	break;
        case 5: x_QsciLexerDiff::x_5(args);	break;
        case 6: x_QsciLexerDiff::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerDiff::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: x_QsciLexerDiff::x_14(args);	break;
        case 15: x_QsciLexerDiff::x_15(args);	break;
        case 16: x_QsciLexerDiff::x_16(args);	break;
        case 17: x_QsciLexerDiff::x_17(args);	break;
        case 18: x_QsciLexerDiff::x_18(args);	break;
        case 19: x_QsciLexerDiff::x_19(args);	break;
        case 20: x_QsciLexerDiff::x_20(args);	break;
        case 21: x_QsciLexerDiff::x_21(args);	break;
        case 22: x_QsciLexerDiff::x_22(args);	break;
        case 23: x_QsciLexerDiff::x_23(args);	break;
        case 24: x_QsciLexerDiff::x_24(args);	break;
        case 25: x_QsciLexerDiff::x_25(args);	break;
        case 26: delete (QsciLexerDiff*)xself;	break;
    }
}
class x_QsciLexerFortran : public QsciLexerFortran, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerFortran*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerFortran*)this)->QsciLexerFortran::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerFortran*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerFortran*>(this))) {
            void* xret = this->QsciLexerFortran::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QsciLexerFortran::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QsciLexerFortran::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QsciLexerFortran::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QsciLexerFortran::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerFortran*>(this))) {
            int xret = this->QsciLexerFortran::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QsciLexerFortran* QsciLexerFortran(QObject*)
        x_QsciLexerFortran* xret = new x_QsciLexerFortran((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerFortran(QObject* x1) : QsciLexerFortran(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerFortran*>(this))) {
            const char* xret = ((const x_QsciLexerFortran*)this)->QsciLexerFortran::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerFortran*)this)->language();
            x[0].s_class = (void*)xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // const char* lexer() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerFortran*>(this))) {
            const char* xret = ((const x_QsciLexerFortran*)this)->QsciLexerFortran::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerFortran*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerFortran*>(this))) {
            const char* xret = ((const x_QsciLexerFortran*)this)->QsciLexerFortran::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerFortran*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_12(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerFortran::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_13(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerFortran::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_14(Smoke::Stack x) {
        // QsciLexerFortran* QsciLexerFortran()
        x_QsciLexerFortran* xret = new x_QsciLexerFortran((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_15(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerFortran::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(699, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerFortran::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(700, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerFortran::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(705, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerFortran::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldCompact(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(734, (void*)this, x)) return;
        this->QsciLexerFortran77::setFoldCompact(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(707, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerFortran::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(708, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerFortran::lexer();
    }
    virtual int lexerId() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(220, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::lexerId();
    }
    virtual const char* autoCompletionFillups() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(222, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::autoCompletionFillups();
    }
    virtual QStringList autoCompletionWordSeparators() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(223, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(225, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockEnd(x1);
    }
    virtual int blockLookback() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(226, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::blockLookback();
    }
    virtual const char* blockStart(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(227, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(228, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(725, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerFortran77::braceStyle();
    }
    virtual bool caseSensitive() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::caseSensitive();
    }
    virtual QColor color(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(231, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::color(x1);
    }
    virtual bool eolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(232, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::eolFill(x1);
    }
    virtual QFont font(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(233, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::font(x1);
    }
    virtual int indentationGuideView() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(234, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::indentationGuideView();
    }
    virtual const char* keywords(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(709, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerFortran::keywords(x1);
    }
    virtual int defaultStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(236, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::defaultStyle();
    }
    virtual QString description(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(731, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerFortran77::description(x1);
    }
    virtual QColor paper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(238, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::paper(x1);
    }
    virtual QColor defaultColor(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(726, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerFortran77::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(727, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerFortran77::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(728, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerFortran77::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(729, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerFortran77::defaultPaper(x1);
    }
    virtual void setEditor(QsciScintilla* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(251, (void*)this, x)) return;
        this->QsciLexer::setEditor(x1);
    }
    virtual void refreshProperties() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(732, (void*)this, x)) return;
        this->QsciLexerFortran77::refreshProperties();
    }
    virtual int styleBitsNeeded() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(254, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::styleBitsNeeded();
    }
    virtual const char* wordCharacters() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(255, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::wordCharacters();
    }
    virtual void setAutoIndentStyle(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->QsciLexer::setAutoIndentStyle(x1);
    }
    virtual void setColor(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QsciLexer::setColor(x1, x2);
    }
    virtual void setEolFill(bool x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_bool = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->QsciLexer::setEolFill(x1, x2);
    }
    virtual void setFont(const QFont& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->QsciLexer::setFont(x1, x2);
    }
    virtual void setPaper(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->QsciLexer::setPaper(x1, x2);
    }
    virtual bool readProperties(QSettings& x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(735, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerFortran77::readProperties(x1, x2);
    }
    virtual bool writeProperties(QSettings& x1, const QString& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(736, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerFortran77::writeProperties(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(7, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(8, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(9, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(10, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(11, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(12, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(13, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QsciLexerFortran() { this->_binding->deleted(63, (void*)this); }
};
void xcall_QsciLexerFortran(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerFortran *xself = (x_QsciLexerFortran*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QsciLexerFortran::x_3(args);	break;
        case 4: x_QsciLexerFortran::x_4(args);	break;
        case 5: x_QsciLexerFortran::x_5(args);	break;
        case 6: x_QsciLexerFortran::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerFortran::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: x_QsciLexerFortran::x_12(args);	break;
        case 13: x_QsciLexerFortran::x_13(args);	break;
        case 14: x_QsciLexerFortran::x_14(args);	break;
        case 15: x_QsciLexerFortran::x_15(args);	break;
        case 16: delete (QsciLexerFortran*)xself;	break;
    }
}

}
