//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_QsciLexerCMake : public QsciLexerCMake, 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<QsciLexerCMake*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerCMake*)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<QsciLexerCMake*>(this))) {
            void* xret = this->QsciLexerCMake::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 = QsciLexerCMake::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 = QsciLexerCMake::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 = QsciLexerCMake::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 = QsciLexerCMake::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<QsciLexerCMake*>(this))) {
            int xret = this->QsciLexerCMake::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) {
        // QsciLexerCMake* QsciLexerCMake(QObject*)
        x_QsciLexerCMake* xret = new x_QsciLexerCMake((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerCMake(QObject* x1) : QsciLexerCMake(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            const char* xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCMake*)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<QsciLexerCMake*>(this))) {
            const char* xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCMake*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            QColor xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCMake*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_12(Smoke::Stack x) {
        // QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            QFont xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerCMake*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_13(Smoke::Stack x) {
        // QColor defaultPaper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            QColor xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCMake*)this)->defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_14(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            const char* xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCMake*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_15(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            QString xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerCMake*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // void refreshProperties()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            this->QsciLexerCMake::refreshProperties();
            (void)x; // noop (for compiler warning)
        } else {
            this->refreshProperties();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_17(Smoke::Stack x) {
        // bool foldAtElse() const
        bool xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::foldAtElse();
        x[0].s_bool = xret;
    }
    void x_18(Smoke::Stack x) {
        // virtual void setFoldAtElse(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            this->QsciLexerCMake::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_19(Smoke::Stack x) {
        // bool readProperties(QSettings&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            bool xret = this->QsciLexerCMake::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_20(Smoke::Stack x) {
        // bool writeProperties(QSettings&, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCMake*>(this))) {
            bool xret = ((const x_QsciLexerCMake*)this)->QsciLexerCMake::writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerCMake*)this)->writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_21(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerCMake::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_22(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerCMake::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_23(Smoke::Stack x) {
        // QsciLexerCMake* QsciLexerCMake()
        x_QsciLexerCMake* xret = new x_QsciLexerCMake((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_24(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerCMake::staticMetaObject;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::Default;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::Comment;
    }
    static void x_27(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::String;
    }
    static void x_28(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::StringLeftQuote;
    }
    static void x_29(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::StringRightQuote;
    }
    static void x_30(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::Function;
    }
    static void x_31(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::Variable;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::Label;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::KeywordSet3;
    }
    static void x_34(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::BlockWhile;
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::BlockForeach;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::BlockIf;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::BlockMacro;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::StringVariable;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCMake::Number;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(358, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerCMake::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(359, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerCMake::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(364, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCMake::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldAtElse(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(375, (void*)this, x)) return;
        this->QsciLexerCMake::setFoldAtElse(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(366, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCMake::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(367, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCMake::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(371, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCMake::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(372, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCMake::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(368, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCMake::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(369, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCMake::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(370, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCMake::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(373, (void*)this, x)) return;
        this->QsciLexerCMake::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(376, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCMake::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(377, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCMake::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_QsciLexerCMake() { this->_binding->deleted(56, (void*)this); }
};
void xcall_QsciLexerCMake(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerCMake *xself = (x_QsciLexerCMake*)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_QsciLexerCMake::x_3(args);	break;
        case 4: x_QsciLexerCMake::x_4(args);	break;
        case 5: x_QsciLexerCMake::x_5(args);	break;
        case 6: x_QsciLexerCMake::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerCMake::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: x_QsciLexerCMake::x_21(args);	break;
        case 22: x_QsciLexerCMake::x_22(args);	break;
        case 23: x_QsciLexerCMake::x_23(args);	break;
        case 24: x_QsciLexerCMake::x_24(args);	break;
        case 25: x_QsciLexerCMake::x_25(args);	break;
        case 26: x_QsciLexerCMake::x_26(args);	break;
        case 27: x_QsciLexerCMake::x_27(args);	break;
        case 28: x_QsciLexerCMake::x_28(args);	break;
        case 29: x_QsciLexerCMake::x_29(args);	break;
        case 30: x_QsciLexerCMake::x_30(args);	break;
        case 31: x_QsciLexerCMake::x_31(args);	break;
        case 32: x_QsciLexerCMake::x_32(args);	break;
        case 33: x_QsciLexerCMake::x_33(args);	break;
        case 34: x_QsciLexerCMake::x_34(args);	break;
        case 35: x_QsciLexerCMake::x_35(args);	break;
        case 36: x_QsciLexerCMake::x_36(args);	break;
        case 37: x_QsciLexerCMake::x_37(args);	break;
        case 38: x_QsciLexerCMake::x_38(args);	break;
        case 39: x_QsciLexerCMake::x_39(args);	break;
        case 40: delete (QsciLexerCMake*)xself;	break;
    }
}
class x_QsciLexerCPP : public QsciLexerCPP, 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<QsciLexerCPP*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            void* xret = this->QsciLexerCPP::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 = QsciLexerCPP::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 = QsciLexerCPP::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 = QsciLexerCPP::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 = QsciLexerCPP::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<QsciLexerCPP*>(this))) {
            int xret = this->QsciLexerCPP::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) {
        // QsciLexerCPP* QsciLexerCPP(QObject*, bool)
        x_QsciLexerCPP* xret = new x_QsciLexerCPP((QObject*)x[1].s_class,(bool)x[2].s_bool);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerCPP(QObject* x1, bool x2) : QsciLexerCPP(x1, x2) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // QStringList autoCompletionWordSeparators() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            QStringList xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::autoCompletionWordSeparators();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::blockStartKeyword((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            int xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::braceStyle();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexerCPP*)this)->braceStyle();
            x[0].s_int = xret;
        }
    }
    void x_16(Smoke::Stack x) {
        // const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            QColor xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            QFont xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            QColor xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            QString xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerCPP*)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<QsciLexerCPP*>(this))) {
            this->QsciLexerCPP::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_QsciLexerCPP*)this)->QsciLexerCPP::foldAtElse();
        x[0].s_bool = xret;
    }
    void x_25(Smoke::Stack x) {
        // bool foldComments() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::foldComments();
        x[0].s_bool = xret;
    }
    void x_26(Smoke::Stack x) {
        // bool foldCompact() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::foldCompact();
        x[0].s_bool = xret;
    }
    void x_27(Smoke::Stack x) {
        // bool foldPreprocessor() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::foldPreprocessor();
        x[0].s_bool = xret;
    }
    void x_28(Smoke::Stack x) {
        // bool stylePreprocessor() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::stylePreprocessor();
        x[0].s_bool = xret;
    }
    void x_29(Smoke::Stack x) {
        // void setDollarsAllowed(bool)
        this->QsciLexerCPP::setDollarsAllowed((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_30(Smoke::Stack x) {
        // bool dollarsAllowed() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::dollarsAllowed();
        x[0].s_bool = xret;
    }
    void x_31(Smoke::Stack x) {
        // void setHighlightTripleQuotedStrings(bool)
        this->QsciLexerCPP::setHighlightTripleQuotedStrings((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_32(Smoke::Stack x) {
        // bool highlightTripleQuotedStrings() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::highlightTripleQuotedStrings();
        x[0].s_bool = xret;
    }
    void x_33(Smoke::Stack x) {
        // void setHighlightHashQuotedStrings(bool)
        this->QsciLexerCPP::setHighlightHashQuotedStrings((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_34(Smoke::Stack x) {
        // bool highlightHashQuotedStrings() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::highlightHashQuotedStrings();
        x[0].s_bool = xret;
    }
    void x_35(Smoke::Stack x) {
        // void setHighlightBackQuotedStrings(bool)
        this->QsciLexerCPP::setHighlightBackQuotedStrings((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_36(Smoke::Stack x) {
        // bool highlightBackQuotedStrings() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::highlightBackQuotedStrings();
        x[0].s_bool = xret;
    }
    void x_37(Smoke::Stack x) {
        // void setHighlightEscapeSequences(bool)
        this->QsciLexerCPP::setHighlightEscapeSequences((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_38(Smoke::Stack x) {
        // bool highlightEscapeSequences() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::highlightEscapeSequences();
        x[0].s_bool = xret;
    }
    void x_39(Smoke::Stack x) {
        // void setVerbatimStringEscapeSequencesAllowed(bool)
        this->QsciLexerCPP::setVerbatimStringEscapeSequencesAllowed((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_40(Smoke::Stack x) {
        // bool verbatimStringEscapeSequencesAllowed() const
        bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::verbatimStringEscapeSequencesAllowed();
        x[0].s_bool = xret;
    }
    void x_41(Smoke::Stack x) {
        // virtual void setFoldAtElse(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            this->QsciLexerCPP::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_42(Smoke::Stack x) {
        // virtual void setFoldComments(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            this->QsciLexerCPP::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_43(Smoke::Stack x) {
        // virtual void setFoldCompact(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            this->QsciLexerCPP::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_44(Smoke::Stack x) {
        // virtual void setFoldPreprocessor(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            this->QsciLexerCPP::setFoldPreprocessor((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setFoldPreprocessor((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_45(Smoke::Stack x) {
        // virtual void setStylePreprocessor(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            this->QsciLexerCPP::setStylePreprocessor((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setStylePreprocessor((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_46(Smoke::Stack x) {
        // bool readProperties(QSettings&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            bool xret = this->QsciLexerCPP::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_47(Smoke::Stack x) {
        // bool writeProperties(QSettings&, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCPP*>(this))) {
            bool xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerCPP*)this)->writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_48(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerCPP::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_49(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerCPP::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_50(Smoke::Stack x) {
        // QsciLexerCPP* QsciLexerCPP()
        x_QsciLexerCPP* xret = new x_QsciLexerCPP((QObject*)0,(bool)false);
        x[0].s_class = (void*)xret;
    }
    static void x_51(Smoke::Stack x) {
        // QsciLexerCPP* QsciLexerCPP(QObject*)
        x_QsciLexerCPP* xret = new x_QsciLexerCPP((QObject*)x[1].s_class,(bool)false);
        x[0].s_class = (void*)xret;
    }
    void x_52(Smoke::Stack x) {
        // const char* blockEnd() const
        const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::blockEnd((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_53(Smoke::Stack x) {
        // const char* blockStart() const
        const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::blockStart((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_54(Smoke::Stack x) {
        // const char* blockStartKeyword() const
        const char* xret = ((const x_QsciLexerCPP*)this)->QsciLexerCPP::blockStartKeyword((int*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_55(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerCPP::staticMetaObject;
    }
    static void x_56(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Default;
    }
    static void x_57(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveDefault;
    }
    static void x_58(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Comment;
    }
    static void x_59(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveComment;
    }
    static void x_60(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::CommentLine;
    }
    static void x_61(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveCommentLine;
    }
    static void x_62(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::CommentDoc;
    }
    static void x_63(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveCommentDoc;
    }
    static void x_64(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Number;
    }
    static void x_65(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveNumber;
    }
    static void x_66(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Keyword;
    }
    static void x_67(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveKeyword;
    }
    static void x_68(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::DoubleQuotedString;
    }
    static void x_69(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveDoubleQuotedString;
    }
    static void x_70(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::SingleQuotedString;
    }
    static void x_71(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveSingleQuotedString;
    }
    static void x_72(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::UUID;
    }
    static void x_73(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveUUID;
    }
    static void x_74(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::PreProcessor;
    }
    static void x_75(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactivePreProcessor;
    }
    static void x_76(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Operator;
    }
    static void x_77(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveOperator;
    }
    static void x_78(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Identifier;
    }
    static void x_79(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveIdentifier;
    }
    static void x_80(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::UnclosedString;
    }
    static void x_81(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveUnclosedString;
    }
    static void x_82(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::VerbatimString;
    }
    static void x_83(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveVerbatimString;
    }
    static void x_84(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::Regex;
    }
    static void x_85(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveRegex;
    }
    static void x_86(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::CommentLineDoc;
    }
    static void x_87(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveCommentLineDoc;
    }
    static void x_88(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::KeywordSet2;
    }
    static void x_89(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveKeywordSet2;
    }
    static void x_90(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::CommentDocKeyword;
    }
    static void x_91(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveCommentDocKeyword;
    }
    static void x_92(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::CommentDocKeywordError;
    }
    static void x_93(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveCommentDocKeywordError;
    }
    static void x_94(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::GlobalClass;
    }
    static void x_95(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveGlobalClass;
    }
    static void x_96(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::RawString;
    }
    static void x_97(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveRawString;
    }
    static void x_98(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::TripleQuotedVerbatimString;
    }
    static void x_99(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveTripleQuotedVerbatimString;
    }
    static void x_100(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::HashQuotedString;
    }
    static void x_101(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveHashQuotedString;
    }
    static void x_102(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::PreProcessorComment;
    }
    static void x_103(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactivePreProcessorComment;
    }
    static void x_104(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::PreProcessorCommentLineDoc;
    }
    static void x_105(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactivePreProcessorCommentLineDoc;
    }
    static void x_106(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::UserLiteral;
    }
    static void x_107(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveUserLiteral;
    }
    static void x_108(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::TaskMarker;
    }
    static void x_109(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveTaskMarker;
    }
    static void x_110(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::EscapeSequence;
    }
    static void x_111(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCPP::InactiveEscapeSequence;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(398, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerCPP::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(399, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerCPP::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(404, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCPP::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldAtElse(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(438, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldAtElse(x1);
    }
    virtual void setFoldComments(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(439, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldComments(x1);
    }
    virtual void setFoldCompact(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(440, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldCompact(x1);
    }
    virtual void setFoldPreprocessor(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(441, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldPreprocessor(x1);
    }
    virtual void setStylePreprocessor(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(442, (void*)this, x)) return;
        this->QsciLexerCPP::setStylePreprocessor(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(406, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(407, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(408, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCPP::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(409, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(410, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(412, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCPP::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(418, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(419, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCPP::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(414, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCPP::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(415, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCPP::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(416, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCPP::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(417, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCPP::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(420, (void*)this, x)) return;
        this->QsciLexerCPP::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(413, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(443, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCPP::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(444, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCPP::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_QsciLexerCPP() { this->_binding->deleted(57, (void*)this); }
};
void xcall_QsciLexerCPP(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerCPP *xself = (x_QsciLexerCPP*)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_QsciLexerCPP::x_3(args);	break;
        case 4: x_QsciLexerCPP::x_4(args);	break;
        case 5: x_QsciLexerCPP::x_5(args);	break;
        case 6: x_QsciLexerCPP::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerCPP::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: xself->x_32(args);	break;
        case 33: xself->x_33(args);	break;
        case 34: xself->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: xself->x_38(args);	break;
        case 39: xself->x_39(args);	break;
        case 40: xself->x_40(args);	break;
        case 41: xself->x_41(args);	break;
        case 42: xself->x_42(args);	break;
        case 43: xself->x_43(args);	break;
        case 44: xself->x_44(args);	break;
        case 45: xself->x_45(args);	break;
        case 46: xself->x_46(args);	break;
        case 47: xself->x_47(args);	break;
        case 48: x_QsciLexerCPP::x_48(args);	break;
        case 49: x_QsciLexerCPP::x_49(args);	break;
        case 50: x_QsciLexerCPP::x_50(args);	break;
        case 51: x_QsciLexerCPP::x_51(args);	break;
        case 52: xself->x_52(args);	break;
        case 53: xself->x_53(args);	break;
        case 54: xself->x_54(args);	break;
        case 55: x_QsciLexerCPP::x_55(args);	break;
        case 56: x_QsciLexerCPP::x_56(args);	break;
        case 57: x_QsciLexerCPP::x_57(args);	break;
        case 58: x_QsciLexerCPP::x_58(args);	break;
        case 59: x_QsciLexerCPP::x_59(args);	break;
        case 60: x_QsciLexerCPP::x_60(args);	break;
        case 61: x_QsciLexerCPP::x_61(args);	break;
        case 62: x_QsciLexerCPP::x_62(args);	break;
        case 63: x_QsciLexerCPP::x_63(args);	break;
        case 64: x_QsciLexerCPP::x_64(args);	break;
        case 65: x_QsciLexerCPP::x_65(args);	break;
        case 66: x_QsciLexerCPP::x_66(args);	break;
        case 67: x_QsciLexerCPP::x_67(args);	break;
        case 68: x_QsciLexerCPP::x_68(args);	break;
        case 69: x_QsciLexerCPP::x_69(args);	break;
        case 70: x_QsciLexerCPP::x_70(args);	break;
        case 71: x_QsciLexerCPP::x_71(args);	break;
        case 72: x_QsciLexerCPP::x_72(args);	break;
        case 73: x_QsciLexerCPP::x_73(args);	break;
        case 74: x_QsciLexerCPP::x_74(args);	break;
        case 75: x_QsciLexerCPP::x_75(args);	break;
        case 76: x_QsciLexerCPP::x_76(args);	break;
        case 77: x_QsciLexerCPP::x_77(args);	break;
        case 78: x_QsciLexerCPP::x_78(args);	break;
        case 79: x_QsciLexerCPP::x_79(args);	break;
        case 80: x_QsciLexerCPP::x_80(args);	break;
        case 81: x_QsciLexerCPP::x_81(args);	break;
        case 82: x_QsciLexerCPP::x_82(args);	break;
        case 83: x_QsciLexerCPP::x_83(args);	break;
        case 84: x_QsciLexerCPP::x_84(args);	break;
        case 85: x_QsciLexerCPP::x_85(args);	break;
        case 86: x_QsciLexerCPP::x_86(args);	break;
        case 87: x_QsciLexerCPP::x_87(args);	break;
        case 88: x_QsciLexerCPP::x_88(args);	break;
        case 89: x_QsciLexerCPP::x_89(args);	break;
        case 90: x_QsciLexerCPP::x_90(args);	break;
        case 91: x_QsciLexerCPP::x_91(args);	break;
        case 92: x_QsciLexerCPP::x_92(args);	break;
        case 93: x_QsciLexerCPP::x_93(args);	break;
        case 94: x_QsciLexerCPP::x_94(args);	break;
        case 95: x_QsciLexerCPP::x_95(args);	break;
        case 96: x_QsciLexerCPP::x_96(args);	break;
        case 97: x_QsciLexerCPP::x_97(args);	break;
        case 98: x_QsciLexerCPP::x_98(args);	break;
        case 99: x_QsciLexerCPP::x_99(args);	break;
        case 100: x_QsciLexerCPP::x_100(args);	break;
        case 101: x_QsciLexerCPP::x_101(args);	break;
        case 102: x_QsciLexerCPP::x_102(args);	break;
        case 103: x_QsciLexerCPP::x_103(args);	break;
        case 104: x_QsciLexerCPP::x_104(args);	break;
        case 105: x_QsciLexerCPP::x_105(args);	break;
        case 106: x_QsciLexerCPP::x_106(args);	break;
        case 107: x_QsciLexerCPP::x_107(args);	break;
        case 108: x_QsciLexerCPP::x_108(args);	break;
        case 109: x_QsciLexerCPP::x_109(args);	break;
        case 110: x_QsciLexerCPP::x_110(args);	break;
        case 111: x_QsciLexerCPP::x_111(args);	break;
        case 112: delete (QsciLexerCPP*)xself;	break;
    }
}
class x_QsciLexerCSS : public QsciLexerCSS, 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<QsciLexerCSS*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerCSS*)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<QsciLexerCSS*>(this))) {
            void* xret = this->QsciLexerCSS::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 = QsciLexerCSS::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 = QsciLexerCSS::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 = QsciLexerCSS::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 = QsciLexerCSS::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<QsciLexerCSS*>(this))) {
            int xret = this->QsciLexerCSS::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) {
        // QsciLexerCSS* QsciLexerCSS(QObject*)
        x_QsciLexerCSS* xret = new x_QsciLexerCSS((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerCSS(QObject* x1) : QsciLexerCSS(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSS*)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<QsciLexerCSS*>(this))) {
            const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSS*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // const char* blockEnd(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSS*)this)->blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // const char* blockStart(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSS*)this)->blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSS*)this)->wordCharacters();
            x[0].s_class = (void*)xret;
        }
    }
    void x_14(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            QColor xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCSS*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_15(Smoke::Stack x) {
        // QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            QFont xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerCSS*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSS*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_17(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            QString xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerCSS*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    void x_18(Smoke::Stack x) {
        // void refreshProperties()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            this->QsciLexerCSS::refreshProperties();
            (void)x; // noop (for compiler warning)
        } else {
            this->refreshProperties();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_19(Smoke::Stack x) {
        // bool foldComments() const
        bool xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::foldComments();
        x[0].s_bool = xret;
    }
    void x_20(Smoke::Stack x) {
        // bool foldCompact() const
        bool xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::foldCompact();
        x[0].s_bool = xret;
    }
    void x_21(Smoke::Stack x) {
        // void setHSSLanguage(bool)
        this->QsciLexerCSS::setHSSLanguage((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_22(Smoke::Stack x) {
        // bool HSSLanguage() const
        bool xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::HSSLanguage();
        x[0].s_bool = xret;
    }
    void x_23(Smoke::Stack x) {
        // void setLessLanguage(bool)
        this->QsciLexerCSS::setLessLanguage((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_24(Smoke::Stack x) {
        // bool LessLanguage() const
        bool xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::LessLanguage();
        x[0].s_bool = xret;
    }
    void x_25(Smoke::Stack x) {
        // void setSCSSLanguage(bool)
        this->QsciLexerCSS::setSCSSLanguage((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_26(Smoke::Stack x) {
        // bool SCSSLanguage() const
        bool xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::SCSSLanguage();
        x[0].s_bool = xret;
    }
    void x_27(Smoke::Stack x) {
        // virtual void setFoldComments(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            this->QsciLexerCSS::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_28(Smoke::Stack x) {
        // virtual void setFoldCompact(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            this->QsciLexerCSS::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_29(Smoke::Stack x) {
        // bool readProperties(QSettings&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            bool xret = this->QsciLexerCSS::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_30(Smoke::Stack x) {
        // bool writeProperties(QSettings&, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSS*>(this))) {
            bool xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerCSS*)this)->writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_31(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerCSS::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_32(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerCSS::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_33(Smoke::Stack x) {
        // QsciLexerCSS* QsciLexerCSS()
        x_QsciLexerCSS* xret = new x_QsciLexerCSS((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_34(Smoke::Stack x) {
        // const char* blockEnd() const
        const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::blockEnd((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_35(Smoke::Stack x) {
        // const char* blockStart() const
        const char* xret = ((const x_QsciLexerCSS*)this)->QsciLexerCSS::blockStart((int*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_36(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerCSS::staticMetaObject;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Default;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Tag;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::ClassSelector;
    }
    static void x_40(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::PseudoClass;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::UnknownPseudoClass;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Operator;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::CSS1Property;
    }
    static void x_44(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::UnknownProperty;
    }
    static void x_45(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Value;
    }
    static void x_46(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Comment;
    }
    static void x_47(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::IDSelector;
    }
    static void x_48(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Important;
    }
    static void x_49(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::AtRule;
    }
    static void x_50(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::DoubleQuotedString;
    }
    static void x_51(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::SingleQuotedString;
    }
    static void x_52(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::CSS2Property;
    }
    static void x_53(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Attribute;
    }
    static void x_54(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::CSS3Property;
    }
    static void x_55(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::PseudoElement;
    }
    static void x_56(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::ExtendedCSSProperty;
    }
    static void x_57(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::ExtendedPseudoClass;
    }
    static void x_58(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::ExtendedPseudoElement;
    }
    static void x_59(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::MediaRule;
    }
    static void x_60(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerCSS::Variable;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(510, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerCSS::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(511, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerCSS::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(516, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCSS::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldComments(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(536, (void*)this, x)) return;
        this->QsciLexerCSS::setFoldComments(x1);
    }
    virtual void setFoldCompact(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(537, (void*)this, x)) return;
        this->QsciLexerCSS::setFoldCompact(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(518, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSS::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(519, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSS::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(520, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSS::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(521, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSS::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(525, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSS::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(526, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSS::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(523, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSS::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(524, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSS::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(527, (void*)this, x)) return;
        this->QsciLexerCSS::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(522, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSS::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(538, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCSS::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(539, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCSS::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_QsciLexerCSS() { this->_binding->deleted(58, (void*)this); }
};
void xcall_QsciLexerCSS(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerCSS *xself = (x_QsciLexerCSS*)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_QsciLexerCSS::x_3(args);	break;
        case 4: x_QsciLexerCSS::x_4(args);	break;
        case 5: x_QsciLexerCSS::x_5(args);	break;
        case 6: x_QsciLexerCSS::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerCSS::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: x_QsciLexerCSS::x_31(args);	break;
        case 32: x_QsciLexerCSS::x_32(args);	break;
        case 33: x_QsciLexerCSS::x_33(args);	break;
        case 34: xself->x_34(args);	break;
        case 35: xself->x_35(args);	break;
        case 36: x_QsciLexerCSS::x_36(args);	break;
        case 37: x_QsciLexerCSS::x_37(args);	break;
        case 38: x_QsciLexerCSS::x_38(args);	break;
        case 39: x_QsciLexerCSS::x_39(args);	break;
        case 40: x_QsciLexerCSS::x_40(args);	break;
        case 41: x_QsciLexerCSS::x_41(args);	break;
        case 42: x_QsciLexerCSS::x_42(args);	break;
        case 43: x_QsciLexerCSS::x_43(args);	break;
        case 44: x_QsciLexerCSS::x_44(args);	break;
        case 45: x_QsciLexerCSS::x_45(args);	break;
        case 46: x_QsciLexerCSS::x_46(args);	break;
        case 47: x_QsciLexerCSS::x_47(args);	break;
        case 48: x_QsciLexerCSS::x_48(args);	break;
        case 49: x_QsciLexerCSS::x_49(args);	break;
        case 50: x_QsciLexerCSS::x_50(args);	break;
        case 51: x_QsciLexerCSS::x_51(args);	break;
        case 52: x_QsciLexerCSS::x_52(args);	break;
        case 53: x_QsciLexerCSS::x_53(args);	break;
        case 54: x_QsciLexerCSS::x_54(args);	break;
        case 55: x_QsciLexerCSS::x_55(args);	break;
        case 56: x_QsciLexerCSS::x_56(args);	break;
        case 57: x_QsciLexerCSS::x_57(args);	break;
        case 58: x_QsciLexerCSS::x_58(args);	break;
        case 59: x_QsciLexerCSS::x_59(args);	break;
        case 60: x_QsciLexerCSS::x_60(args);	break;
        case 61: delete (QsciLexerCSS*)xself;	break;
    }
}
class x_QsciLexerCSharp : public QsciLexerCSharp, 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<QsciLexerCSharp*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerCSharp*)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<QsciLexerCSharp*>(this))) {
            void* xret = this->QsciLexerCSharp::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 = QsciLexerCSharp::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 = QsciLexerCSharp::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 = QsciLexerCSharp::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 = QsciLexerCSharp::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<QsciLexerCSharp*>(this))) {
            int xret = this->QsciLexerCSharp::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) {
        // QsciLexerCSharp* QsciLexerCSharp(QObject*)
        x_QsciLexerCSharp* xret = new x_QsciLexerCSharp((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerCSharp(QObject* x1) : QsciLexerCSharp(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            const char* xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSharp*)this)->language();
            x[0].s_class = (void*)xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            QColor xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCSharp*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_11(Smoke::Stack x) {
        // bool defaultEolFill(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            bool xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerCSharp*)this)->defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            QFont xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerCSharp*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_13(Smoke::Stack x) {
        // QColor defaultPaper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            QColor xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerCSharp*)this)->defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_14(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            const char* xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerCSharp*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_15(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerCSharp*>(this))) {
            QString xret = ((const x_QsciLexerCSharp*)this)->QsciLexerCSharp::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerCSharp*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    static void x_16(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerCSharp::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_17(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerCSharp::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_18(Smoke::Stack x) {
        // QsciLexerCSharp* QsciLexerCSharp()
        x_QsciLexerCSharp* xret = new x_QsciLexerCSharp((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_19(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerCSharp::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(571, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerCSharp::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(572, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerCSharp::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(577, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCSharp::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldAtElse(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(438, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldAtElse(x1);
    }
    virtual void setFoldComments(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(439, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldComments(x1);
    }
    virtual void setFoldCompact(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(440, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldCompact(x1);
    }
    virtual void setFoldPreprocessor(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(441, (void*)this, x)) return;
        this->QsciLexerCPP::setFoldPreprocessor(x1);
    }
    virtual void setStylePreprocessor(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(442, (void*)this, x)) return;
        this->QsciLexerCPP::setStylePreprocessor(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(579, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSharp::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(407, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(408, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCPP::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(409, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(410, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(412, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerCPP::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(584, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCSharp::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(585, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSharp::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(580, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSharp::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(581, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCSharp::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(582, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSharp::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(583, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerCSharp::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(420, (void*)this, x)) return;
        this->QsciLexerCPP::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(413, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerCPP::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(443, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCPP::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(444, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerCPP::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_QsciLexerCSharp() { this->_binding->deleted(59, (void*)this); }
};
void xcall_QsciLexerCSharp(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerCSharp *xself = (x_QsciLexerCSharp*)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_QsciLexerCSharp::x_3(args);	break;
        case 4: x_QsciLexerCSharp::x_4(args);	break;
        case 5: x_QsciLexerCSharp::x_5(args);	break;
        case 6: x_QsciLexerCSharp::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerCSharp::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: x_QsciLexerCSharp::x_16(args);	break;
        case 17: x_QsciLexerCSharp::x_17(args);	break;
        case 18: x_QsciLexerCSharp::x_18(args);	break;
        case 19: x_QsciLexerCSharp::x_19(args);	break;
        case 20: delete (QsciLexerCSharp*)xself;	break;
    }
}

}
