//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_QsciDocument : public QsciDocument, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QsciDocument* QsciDocument()
        x_QsciDocument* xret = new x_QsciDocument();
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciDocument() : QsciDocument() {}
    static void x_2(Smoke::Stack x) {
        // QsciDocument* QsciDocument(const QsciDocument&)
        x_QsciDocument* xret = new x_QsciDocument(*(const QsciDocument*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciDocument(const QsciDocument& x1) : QsciDocument(x1) {}
    void x_3(Smoke::Stack x) {
        // QsciDocument& operator=(const QsciDocument&)
        QsciDocument& xret = this->QsciDocument::operator=(*(const QsciDocument*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    ~x_QsciDocument() { this->_binding->deleted(52, (void*)this); }
};
void xcall_QsciDocument(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciDocument *xself = (x_QsciDocument*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QsciDocument::x_1(args);	break;
        case 2: x_QsciDocument::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: delete (QsciDocument*)xself;	break;
    }
}
class x_QsciLexer : public QsciLexer, 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<QsciLexer*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexer*)this)->QsciLexer::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexer*)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<QsciLexer*>(this))) {
            void* xret = this->QsciLexer::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 = QsciLexer::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 = QsciLexer::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 = QsciLexer::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 = QsciLexer::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<QsciLexer*>(this))) {
            int xret = this->QsciLexer::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) {
        // QsciLexer* QsciLexer(QObject*)
        x_QsciLexer* xret = new x_QsciLexer((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexer(QObject* x1) : QsciLexer(x1) {}
    void x_9(Smoke::Stack x) {
        // virtual const char* language() const = 0
        const char* xret = ((const x_QsciLexer*)this)->language();
        x[0].s_class = (void*)xret;
    }
    void x_10(Smoke::Stack x) {
        // virtual const char* lexer() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // virtual int lexerId() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            int xret = ((const x_QsciLexer*)this)->QsciLexer::lexerId();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexer*)this)->lexerId();
            x[0].s_int = xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // QsciAbstractAPIs* apis() const
        QsciAbstractAPIs* xret = ((const x_QsciLexer*)this)->QsciLexer::apis();
        x[0].s_class = (void*)xret;
    }
    void x_13(Smoke::Stack x) {
        // virtual const char* autoCompletionFillups() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::autoCompletionFillups();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->autoCompletionFillups();
            x[0].s_class = (void*)xret;
        }
    }
    void x_14(Smoke::Stack x) {
        // virtual QStringList autoCompletionWordSeparators() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QStringList xret = ((const x_QsciLexer*)this)->QsciLexer::autoCompletionWordSeparators();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_QsciLexer*)this)->autoCompletionWordSeparators();
            x[0].s_class = (void*)new QStringList(xret);
        }
    }
    void x_15(Smoke::Stack x) {
        // int autoIndentStyle()
        int xret = this->QsciLexer::autoIndentStyle();
        x[0].s_int = xret;
    }
    void x_16(Smoke::Stack x) {
        // virtual const char* blockEnd(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->blockEnd((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_17(Smoke::Stack x) {
        // virtual int blockLookback() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            int xret = ((const x_QsciLexer*)this)->QsciLexer::blockLookback();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexer*)this)->blockLookback();
            x[0].s_int = xret;
        }
    }
    void x_18(Smoke::Stack x) {
        // virtual const char* blockStart(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->blockStart((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_19(Smoke::Stack x) {
        // virtual const char* blockStartKeyword(int*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::blockStartKeyword((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->blockStartKeyword((int*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual int braceStyle() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            int xret = ((const x_QsciLexer*)this)->QsciLexer::braceStyle();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexer*)this)->braceStyle();
            x[0].s_int = xret;
        }
    }
    void x_21(Smoke::Stack x) {
        // virtual bool caseSensitive() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            bool xret = ((const x_QsciLexer*)this)->QsciLexer::caseSensitive();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexer*)this)->caseSensitive();
            x[0].s_bool = xret;
        }
    }
    void x_22(Smoke::Stack x) {
        // virtual QColor color(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QColor xret = ((const x_QsciLexer*)this)->QsciLexer::color((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexer*)this)->color((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_23(Smoke::Stack x) {
        // virtual bool eolFill(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            bool xret = ((const x_QsciLexer*)this)->QsciLexer::eolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexer*)this)->eolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_24(Smoke::Stack x) {
        // virtual QFont font(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QFont xret = ((const x_QsciLexer*)this)->QsciLexer::font((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexer*)this)->font((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_25(Smoke::Stack x) {
        // virtual int indentationGuideView() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            int xret = ((const x_QsciLexer*)this)->QsciLexer::indentationGuideView();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexer*)this)->indentationGuideView();
            x[0].s_int = xret;
        }
    }
    void x_26(Smoke::Stack x) {
        // virtual const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_27(Smoke::Stack x) {
        // virtual int defaultStyle() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            int xret = ((const x_QsciLexer*)this)->QsciLexer::defaultStyle();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexer*)this)->defaultStyle();
            x[0].s_int = xret;
        }
    }
    void x_28(Smoke::Stack x) {
        // virtual QString description(int) const = 0
        QString xret = ((const x_QsciLexer*)this)->description((int)x[1].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_29(Smoke::Stack x) {
        // virtual QColor paper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QColor xret = ((const x_QsciLexer*)this)->QsciLexer::paper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexer*)this)->paper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_30(Smoke::Stack x) {
        // QColor defaultColor() const
        QColor xret = ((const x_QsciLexer*)this)->QsciLexer::defaultColor();
        x[0].s_class = (void*)new QColor(xret);
    }
    void x_31(Smoke::Stack x) {
        // virtual QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QColor xret = ((const x_QsciLexer*)this)->QsciLexer::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexer*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_32(Smoke::Stack x) {
        // virtual bool defaultEolFill(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            bool xret = ((const x_QsciLexer*)this)->QsciLexer::defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexer*)this)->defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_33(Smoke::Stack x) {
        // QFont defaultFont() const
        QFont xret = ((const x_QsciLexer*)this)->QsciLexer::defaultFont();
        x[0].s_class = (void*)new QFont(xret);
    }
    void x_34(Smoke::Stack x) {
        // virtual QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QFont xret = ((const x_QsciLexer*)this)->QsciLexer::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexer*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_35(Smoke::Stack x) {
        // QColor defaultPaper() const
        QColor xret = ((const x_QsciLexer*)this)->QsciLexer::defaultPaper();
        x[0].s_class = (void*)new QColor(xret);
    }
    void x_36(Smoke::Stack x) {
        // virtual QColor defaultPaper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            QColor xret = ((const x_QsciLexer*)this)->QsciLexer::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexer*)this)->defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_37(Smoke::Stack x) {
        // QsciScintilla* editor() const
        QsciScintilla* xret = ((const x_QsciLexer*)this)->QsciLexer::editor();
        x[0].s_class = (void*)xret;
    }
    void x_38(Smoke::Stack x) {
        // void setAPIs(QsciAbstractAPIs*)
        this->QsciLexer::setAPIs((QsciAbstractAPIs*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_39(Smoke::Stack x) {
        // void setDefaultColor(const QColor&)
        this->QsciLexer::setDefaultColor(*(const QColor*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_40(Smoke::Stack x) {
        // void setDefaultFont(const QFont&)
        this->QsciLexer::setDefaultFont(*(const QFont*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_41(Smoke::Stack x) {
        // void setDefaultPaper(const QColor&)
        this->QsciLexer::setDefaultPaper(*(const QColor*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_42(Smoke::Stack x) {
        // virtual void setEditor(QsciScintilla*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::setEditor((QsciScintilla*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setEditor((QsciScintilla*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_43(Smoke::Stack x) {
        // bool readSettings(QSettings&, const char*)
        bool xret = this->QsciLexer::readSettings(*(QSettings*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_44(Smoke::Stack x) {
        // virtual void refreshProperties()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::refreshProperties();
            (void)x; // noop (for compiler warning)
        } else {
            this->refreshProperties();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_45(Smoke::Stack x) {
        // virtual int styleBitsNeeded() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            int xret = ((const x_QsciLexer*)this)->QsciLexer::styleBitsNeeded();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexer*)this)->styleBitsNeeded();
            x[0].s_int = xret;
        }
    }
    void x_46(Smoke::Stack x) {
        // virtual const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            const char* xret = ((const x_QsciLexer*)this)->QsciLexer::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexer*)this)->wordCharacters();
            x[0].s_class = (void*)xret;
        }
    }
    void x_47(Smoke::Stack x) {
        // bool writeSettings(QSettings&, const char*) const
        bool xret = ((const x_QsciLexer*)this)->QsciLexer::writeSettings(*(QSettings*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_48(Smoke::Stack x) {
        // virtual void setAutoIndentStyle(int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::setAutoIndentStyle((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setAutoIndentStyle((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_49(Smoke::Stack x) {
        // virtual void setColor(const QColor&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::setColor(*(const QColor*)x[1].s_class,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setColor(*(const QColor*)x[1].s_class,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_50(Smoke::Stack x) {
        // virtual void setEolFill(bool, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::setEolFill((bool)x[1].s_bool,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setEolFill((bool)x[1].s_bool,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_51(Smoke::Stack x) {
        // virtual void setFont(const QFont&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::setFont(*(const QFont*)x[1].s_class,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setFont(*(const QFont*)x[1].s_class,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_52(Smoke::Stack x) {
        // virtual void setPaper(const QColor&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            this->QsciLexer::setPaper(*(const QColor*)x[1].s_class,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setPaper(*(const QColor*)x[1].s_class,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_53(Smoke::Stack x) {
        // void colorChanged(const QColor&, int)
        this->QsciLexer::colorChanged(*(const QColor*)x[1].s_class,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_54(Smoke::Stack x) {
        // void eolFillChanged(bool, int)
        this->QsciLexer::eolFillChanged((bool)x[1].s_bool,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_55(Smoke::Stack x) {
        // void fontChanged(const QFont&, int)
        this->QsciLexer::fontChanged(*(const QFont*)x[1].s_class,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_56(Smoke::Stack x) {
        // void paperChanged(const QColor&, int)
        this->QsciLexer::paperChanged(*(const QColor*)x[1].s_class,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_57(Smoke::Stack x) {
        // void propertyChanged(const char*, const char*)
        this->QsciLexer::propertyChanged((const char*)x[1].s_class,(const char*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_58(Smoke::Stack x) {
        // virtual bool readProperties(QSettings&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            bool xret = this->QsciLexer::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_59(Smoke::Stack x) {
        // virtual bool writeProperties(QSettings&, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexer*>(this))) {
            bool xret = ((const x_QsciLexer*)this)->QsciLexer::writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexer*)this)->writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_60(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexer::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_61(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexer::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_62(Smoke::Stack x) {
        // QsciLexer* QsciLexer()
        x_QsciLexer* xret = new x_QsciLexer((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_63(Smoke::Stack x) {
        // const char* blockEnd() const
        const char* xret = ((const x_QsciLexer*)this)->QsciLexer::blockEnd((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_64(Smoke::Stack x) {
        // const char* blockStart() const
        const char* xret = ((const x_QsciLexer*)this)->QsciLexer::blockStart((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_65(Smoke::Stack x) {
        // const char* blockStartKeyword() const
        const char* xret = ((const x_QsciLexer*)this)->QsciLexer::blockStartKeyword((int*)0);
        x[0].s_class = (void*)xret;
    }
    void x_66(Smoke::Stack x) {
        // bool readSettings(QSettings&)
        bool xret = this->QsciLexer::readSettings(*(QSettings*)x[1].s_class,(const char*)"/Scintilla");
        x[0].s_bool = xret;
    }
    void x_67(Smoke::Stack x) {
        // bool writeSettings(QSettings&) const
        bool xret = ((const x_QsciLexer*)this)->QsciLexer::writeSettings(*(QSettings*)x[1].s_class,(const char*)"/Scintilla");
        x[0].s_bool = xret;
    }
    void x_68(Smoke::Stack x) {
        // void setColor(const QColor&)
        this->QsciLexer::setColor(*(const QColor*)x[1].s_class,(int)-1);
        (void)x; // noop (for compiler warning)
    }
    void x_69(Smoke::Stack x) {
        // void setEolFill(bool)
        this->QsciLexer::setEolFill((bool)x[1].s_bool,(int)-1);
        (void)x; // noop (for compiler warning)
    }
    void x_70(Smoke::Stack x) {
        // void setFont(const QFont&)
        this->QsciLexer::setFont(*(const QFont*)x[1].s_class,(int)-1);
        (void)x; // noop (for compiler warning)
    }
    void x_71(Smoke::Stack x) {
        // void setPaper(const QColor&)
        this->QsciLexer::setPaper(*(const QColor*)x[1].s_class,(int)-1);
        (void)x; // noop (for compiler warning)
    }
    static void x_72(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexer::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(210, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexer::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(211, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexer::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(216, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::qt_metacall(x1, x2, x3);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(218, (void*)this, x, true /*pure virtual*/);
        return (const char*)x[0].s_class;
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(219, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::lexer();
    }
    virtual int lexerId() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(220, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::lexerId();
    }
    virtual const char* autoCompletionFillups() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(222, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::autoCompletionFillups();
    }
    virtual QStringList autoCompletionWordSeparators() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(223, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::autoCompletionWordSeparators();
    }
    virtual const char* blockEnd(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(225, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockEnd(x1);
    }
    virtual int blockLookback() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(226, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::blockLookback();
    }
    virtual const char* blockStart(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(227, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStart(x1);
    }
    virtual const char* blockStartKeyword(int* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(228, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::blockStartKeyword(x1);
    }
    virtual int braceStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(229, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::braceStyle();
    }
    virtual bool caseSensitive() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::caseSensitive();
    }
    virtual QColor color(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(231, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::color(x1);
    }
    virtual bool eolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(232, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::eolFill(x1);
    }
    virtual QFont font(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(233, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::font(x1);
    }
    virtual int indentationGuideView() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(234, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::indentationGuideView();
    }
    virtual const char* keywords(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(235, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::keywords(x1);
    }
    virtual int defaultStyle() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(236, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::defaultStyle();
    }
    virtual QString description(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        this->_binding->callMethod(237, (void*)this, x, true /*pure virtual*/);
        QString* xptr = (QString*)x[0].s_class;
        QString xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QColor paper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(238, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::paper(x1);
    }
    virtual QColor defaultColor(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(240, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(241, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(243, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(245, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexer::defaultPaper(x1);
    }
    virtual void setEditor(QsciScintilla* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(251, (void*)this, x)) return;
        this->QsciLexer::setEditor(x1);
    }
    virtual void refreshProperties() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(253, (void*)this, x)) return;
        this->QsciLexer::refreshProperties();
    }
    virtual int styleBitsNeeded() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(254, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::styleBitsNeeded();
    }
    virtual const char* wordCharacters() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(255, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexer::wordCharacters();
    }
    virtual void setAutoIndentStyle(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->QsciLexer::setAutoIndentStyle(x1);
    }
    virtual void setColor(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QsciLexer::setColor(x1, x2);
    }
    virtual void setEolFill(bool x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_bool = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->QsciLexer::setEolFill(x1, x2);
    }
    virtual void setFont(const QFont& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->QsciLexer::setFont(x1, x2);
    }
    virtual void setPaper(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->QsciLexer::setPaper(x1, x2);
    }
    virtual bool readProperties(QSettings& x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(267, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::readProperties(x1, x2);
    }
    virtual bool writeProperties(QSettings& x1, const QString& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(268, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::writeProperties(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(7, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(8, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(9, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(10, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(11, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(12, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(13, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QsciLexer() { this->_binding->deleted(53, (void*)this); }
};
void xcall_QsciLexer(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexer *xself = (x_QsciLexer*)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_QsciLexer::x_3(args);	break;
        case 4: x_QsciLexer::x_4(args);	break;
        case 5: x_QsciLexer::x_5(args);	break;
        case 6: x_QsciLexer::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexer::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: xself->x_48(args);	break;
        case 49: xself->x_49(args);	break;
        case 50: xself->x_50(args);	break;
        case 51: xself->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: xself->x_55(args);	break;
        case 56: xself->x_56(args);	break;
        case 57: xself->x_57(args);	break;
        case 58: xself->x_58(args);	break;
        case 59: xself->x_59(args);	break;
        case 60: x_QsciLexer::x_60(args);	break;
        case 61: x_QsciLexer::x_61(args);	break;
        case 62: x_QsciLexer::x_62(args);	break;
        case 63: xself->x_63(args);	break;
        case 64: xself->x_64(args);	break;
        case 65: xself->x_65(args);	break;
        case 66: xself->x_66(args);	break;
        case 67: xself->x_67(args);	break;
        case 68: xself->x_68(args);	break;
        case 69: xself->x_69(args);	break;
        case 70: xself->x_70(args);	break;
        case 71: xself->x_71(args);	break;
        case 72: x_QsciLexer::x_72(args);	break;
        case 73: delete (QsciLexer*)xself;	break;
    }
}
class x_QsciLexerBash : public QsciLexerBash, 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<QsciLexerBash*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerBash*)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<QsciLexerBash*>(this))) {
            void* xret = this->QsciLexerBash::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 = QsciLexerBash::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 = QsciLexerBash::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 = QsciLexerBash::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 = QsciLexerBash::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<QsciLexerBash*>(this))) {
            int xret = this->QsciLexerBash::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) {
        // QsciLexerBash* QsciLexerBash(QObject*)
        x_QsciLexerBash* xret = new x_QsciLexerBash((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerBash(QObject* x1) : QsciLexerBash(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            const char* xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBash*)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<QsciLexerBash*>(this))) {
            const char* xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBash*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // int braceStyle() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            int xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::braceStyle();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QsciLexerBash*)this)->braceStyle();
            x[0].s_int = xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            const char* xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBash*)this)->wordCharacters();
            x[0].s_class = (void*)xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            QColor xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerBash*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_14(Smoke::Stack x) {
        // bool defaultEolFill(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            bool xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerBash*)this)->defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_15(Smoke::Stack x) {
        // QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            QFont xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerBash*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // QColor defaultPaper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            QColor xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerBash*)this)->defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_17(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            const char* xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBash*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_18(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            QString xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerBash*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    void x_19(Smoke::Stack x) {
        // void refreshProperties()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            this->QsciLexerBash::refreshProperties();
            (void)x; // noop (for compiler warning)
        } else {
            this->refreshProperties();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_20(Smoke::Stack x) {
        // bool foldComments() const
        bool xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::foldComments();
        x[0].s_bool = xret;
    }
    void x_21(Smoke::Stack x) {
        // bool foldCompact() const
        bool xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::foldCompact();
        x[0].s_bool = xret;
    }
    void x_22(Smoke::Stack x) {
        // virtual void setFoldComments(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            this->QsciLexerBash::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_23(Smoke::Stack x) {
        // virtual void setFoldCompact(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            this->QsciLexerBash::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_24(Smoke::Stack x) {
        // bool readProperties(QSettings&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            bool xret = this->QsciLexerBash::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_25(Smoke::Stack x) {
        // bool writeProperties(QSettings&, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBash*>(this))) {
            bool xret = ((const x_QsciLexerBash*)this)->QsciLexerBash::writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerBash*)this)->writeProperties(*(QSettings*)x[1].s_class,*(const QString*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_26(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerBash::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_27(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerBash::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_28(Smoke::Stack x) {
        // QsciLexerBash* QsciLexerBash()
        x_QsciLexerBash* xret = new x_QsciLexerBash((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_29(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerBash::staticMetaObject;
    }
    static void x_30(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Default;
    }
    static void x_31(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Error;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Comment;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Number;
    }
    static void x_34(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Keyword;
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::DoubleQuotedString;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::SingleQuotedString;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Operator;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Identifier;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Scalar;
    }
    static void x_40(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::ParameterExpansion;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::Backticks;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::HereDocumentDelimiter;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBash::SingleQuotedHereDocument;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(283, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerBash::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(284, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerBash::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(289, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerBash::qt_metacall(x1, x2, x3);
    }
    virtual void setFoldComments(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(304, (void*)this, x)) return;
        this->QsciLexerBash::setFoldComments(x1);
    }
    virtual void setFoldCompact(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->QsciLexerBash::setFoldCompact(x1);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(291, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBash::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(292, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBash::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(293, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerBash::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(299, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBash::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(300, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBash::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(295, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBash::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(296, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerBash::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(297, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBash::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(298, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBash::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(301, (void*)this, x)) return;
        this->QsciLexerBash::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(294, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBash::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(306, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerBash::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(307, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerBash::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_QsciLexerBash() { this->_binding->deleted(54, (void*)this); }
};
void xcall_QsciLexerBash(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerBash *xself = (x_QsciLexerBash*)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_QsciLexerBash::x_3(args);	break;
        case 4: x_QsciLexerBash::x_4(args);	break;
        case 5: x_QsciLexerBash::x_5(args);	break;
        case 6: x_QsciLexerBash::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerBash::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: x_QsciLexerBash::x_26(args);	break;
        case 27: x_QsciLexerBash::x_27(args);	break;
        case 28: x_QsciLexerBash::x_28(args);	break;
        case 29: x_QsciLexerBash::x_29(args);	break;
        case 30: x_QsciLexerBash::x_30(args);	break;
        case 31: x_QsciLexerBash::x_31(args);	break;
        case 32: x_QsciLexerBash::x_32(args);	break;
        case 33: x_QsciLexerBash::x_33(args);	break;
        case 34: x_QsciLexerBash::x_34(args);	break;
        case 35: x_QsciLexerBash::x_35(args);	break;
        case 36: x_QsciLexerBash::x_36(args);	break;
        case 37: x_QsciLexerBash::x_37(args);	break;
        case 38: x_QsciLexerBash::x_38(args);	break;
        case 39: x_QsciLexerBash::x_39(args);	break;
        case 40: x_QsciLexerBash::x_40(args);	break;
        case 41: x_QsciLexerBash::x_41(args);	break;
        case 42: x_QsciLexerBash::x_42(args);	break;
        case 43: x_QsciLexerBash::x_43(args);	break;
        case 44: delete (QsciLexerBash*)xself;	break;
    }
}
class x_QsciLexerBatch : public QsciLexerBatch, 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<QsciLexerBatch*>(this))) {
            const QMetaObject* xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QsciLexerBatch*)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<QsciLexerBatch*>(this))) {
            void* xret = this->QsciLexerBatch::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 = QsciLexerBatch::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 = QsciLexerBatch::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 = QsciLexerBatch::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 = QsciLexerBatch::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<QsciLexerBatch*>(this))) {
            int xret = this->QsciLexerBatch::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) {
        // QsciLexerBatch* QsciLexerBatch(QObject*)
        x_QsciLexerBatch* xret = new x_QsciLexerBatch((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QsciLexerBatch(QObject* x1) : QsciLexerBatch(x1) {}
    void x_9(Smoke::Stack x) {
        // const char* language() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            const char* xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::language();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBatch*)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<QsciLexerBatch*>(this))) {
            const char* xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::lexer();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBatch*)this)->lexer();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // const char* wordCharacters() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            const char* xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::wordCharacters();
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBatch*)this)->wordCharacters();
            x[0].s_class = (void*)xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // bool caseSensitive() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            bool xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::caseSensitive();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerBatch*)this)->caseSensitive();
            x[0].s_bool = xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // QColor defaultColor(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            QColor xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerBatch*)this)->defaultColor((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_14(Smoke::Stack x) {
        // bool defaultEolFill(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            bool xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QsciLexerBatch*)this)->defaultEolFill((int)x[1].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_15(Smoke::Stack x) {
        // QFont defaultFont(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            QFont xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QsciLexerBatch*)this)->defaultFont((int)x[1].s_int);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // QColor defaultPaper(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            QColor xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QsciLexerBatch*)this)->defaultPaper((int)x[1].s_int);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_17(Smoke::Stack x) {
        // const char* keywords(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            const char* xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        } else {
            const char* xret = ((const x_QsciLexerBatch*)this)->keywords((int)x[1].s_int);
            x[0].s_class = (void*)xret;
        }
    }
    void x_18(Smoke::Stack x) {
        // QString description(int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QsciLexerBatch*>(this))) {
            QString xret = ((const x_QsciLexerBatch*)this)->QsciLexerBatch::description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = ((const x_QsciLexerBatch*)this)->description((int)x[1].s_int);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    static void x_19(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QsciLexerBatch::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_20(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QsciLexerBatch::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_21(Smoke::Stack x) {
        // QsciLexerBatch* QsciLexerBatch()
        x_QsciLexerBatch* xret = new x_QsciLexerBatch((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_22(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QsciLexerBatch::staticMetaObject;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::Default;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::Comment;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::Keyword;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::Label;
    }
    static void x_27(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::HideCommandChar;
    }
    static void x_28(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::ExternalCommand;
    }
    static void x_29(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::Variable;
    }
    static void x_30(Smoke::Stack x) {
        x[0].s_enum = (long)QsciLexerBatch::Operator;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(327, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QsciLexerBatch::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(328, (void*)this, x)) return (void*)x[0].s_class;
        return this->QsciLexerBatch::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(333, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexerBatch::qt_metacall(x1, x2, x3);
    }
    virtual const char* language() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(335, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBatch::language();
    }
    virtual const char* lexer() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(336, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBatch::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(338, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerBatch::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(343, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBatch::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(344, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBatch::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(339, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBatch::defaultColor(x1);
    }
    virtual bool defaultEolFill(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(340, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexerBatch::defaultEolFill(x1);
    }
    virtual QFont defaultFont(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(341, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBatch::defaultFont(x1);
    }
    virtual QColor defaultPaper(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(342, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QsciLexerBatch::defaultPaper(x1);
    }
    virtual void setEditor(QsciScintilla* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(251, (void*)this, x)) return;
        this->QsciLexer::setEditor(x1);
    }
    virtual void refreshProperties() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(253, (void*)this, x)) return;
        this->QsciLexer::refreshProperties();
    }
    virtual int styleBitsNeeded() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(254, (void*)this, x)) return (int)x[0].s_int;
        return this->QsciLexer::styleBitsNeeded();
    }
    virtual const char* wordCharacters() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(337, (void*)this, x)) return (const char*)x[0].s_class;
        return this->QsciLexerBatch::wordCharacters();
    }
    virtual void setAutoIndentStyle(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->QsciLexer::setAutoIndentStyle(x1);
    }
    virtual void setColor(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QsciLexer::setColor(x1, x2);
    }
    virtual void setEolFill(bool x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_bool = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->QsciLexer::setEolFill(x1, x2);
    }
    virtual void setFont(const QFont& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->QsciLexer::setFont(x1, x2);
    }
    virtual void setPaper(const QColor& x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->QsciLexer::setPaper(x1, x2);
    }
    virtual bool readProperties(QSettings& x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(267, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::readProperties(x1, x2);
    }
    virtual bool writeProperties(QSettings& x1, const QString& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(268, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QsciLexer::writeProperties(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(7, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(8, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(9, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(10, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(11, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(12, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(13, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QsciLexerBatch() { this->_binding->deleted(55, (void*)this); }
};
void xcall_QsciLexerBatch(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QsciLexerBatch *xself = (x_QsciLexerBatch*)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_QsciLexerBatch::x_3(args);	break;
        case 4: x_QsciLexerBatch::x_4(args);	break;
        case 5: x_QsciLexerBatch::x_5(args);	break;
        case 6: x_QsciLexerBatch::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QsciLexerBatch::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: x_QsciLexerBatch::x_19(args);	break;
        case 20: x_QsciLexerBatch::x_20(args);	break;
        case 21: x_QsciLexerBatch::x_21(args);	break;
        case 22: x_QsciLexerBatch::x_22(args);	break;
        case 23: x_QsciLexerBatch::x_23(args);	break;
        case 24: x_QsciLexerBatch::x_24(args);	break;
        case 25: x_QsciLexerBatch::x_25(args);	break;
        case 26: x_QsciLexerBatch::x_26(args);	break;
        case 27: x_QsciLexerBatch::x_27(args);	break;
        case 28: x_QsciLexerBatch::x_28(args);	break;
        case 29: x_QsciLexerBatch::x_29(args);	break;
        case 30: x_QsciLexerBatch::x_30(args);	break;
        case 31: delete (QsciLexerBatch*)xself;	break;
    }
}

}
