QScriptValue ScriptableSyntaxDefinition::KEYWORD_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1); QString keys = context->argument(0).toString(); NODE node = super(context)->KEYWORD(keys.toUtf8()); return nodeToScriptValue(engine, node); }
virtual void run(std::string notParsedArgs) { out << "in status!\n"; std::vector<std::string> parsedArgs = parseArguments(notParsedArgs); if (checkNumberOfArguments(parsedArgs.size(), 0, out)) { manager.status(); } }
QScriptValue ScriptableSyntaxDefinition::STRING_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1); QString s = context->argument(0).toString(); NODE node = super(context)->STRING(s.constData()); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::OTHER_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1); QChar ch = context->argument(0).toString().at(0); NODE node = super(context)->OTHER(ch); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::NOT_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1); NODE entry = context->argument(0).toVariant().value<NODE>(); NODE node = super(context)->NOT(entry); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::GLUE_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2, intMax); NODE node = super(context)->GLUE(); for (int i = 0, n = context->argumentCount(); i < n; ++i) node->appendChild(context->argument(i).toVariant().value<NODE>()); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::ENTRY_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1); const char* name = 0; constCharFromScriptValue(context->argument(0), name); super(context)->ENTRY(name); return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::VARSTRING_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1); const char* name = 0; constCharFromScriptValue(context->argument(0), name); NODE node = super(context)->VARSTRING(name); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::DEFINE_VOID_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2); const char* name = 0; constCharFromScriptValue(context->argument(0), name); NODE entry = context->argument(1).toVariant().value<NODE>(); super(context)->DEFINE_VOID(name, entry); return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::SETCHAR_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2); const char* name = 0; constCharFromScriptValue(context->argument(0), name); QChar value = context->argument(1).toString().at(0); NODE node = super(context)->SETCHAR(name, value); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::STATE_CHAR_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2); const char* name = 0; constCharFromScriptValue(context->argument(0), name); QChar defaultValue = context->argument(1).toString().at(0); super(context)->STATE_CHAR(name, defaultValue); return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::INVOKE_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1, 2); const char* name = 0; constCharFromScriptValue(context->argument(0), name); NODE coverage = context->argument(1).toVariant().value<NODE>(); NODE node = super(context)->INVOKE(name, coverage); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::STATE_FLAG_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2); const char* name = 0; constCharFromScriptValue(context->argument(0), name); bool defaultValue = context->argument(1).toBool(); super(context)->STATE_FLAG(name, defaultValue); return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::IF_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 3); const char* name = 0; constCharFromScriptValue(context->argument(0), name); NODE trueBranch = context->argument(1).toVariant().value<NODE>(); NODE falseBranch = context->argument(2).toVariant().value<NODE>(); NODE node = super(context)->IF(name, trueBranch, falseBranch); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::PREVIOUS_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1, 2); const char* name = 0; const char* keyword = 0; constCharFromScriptValue(context->argument(0), name); if (context->argumentCount() == 2) constCharFromScriptValue(context->argument(1), keyword); NODE node = super(context)->PREVIOUS(name, keyword); return nodeToScriptValue(engine, node); }
QScriptValue ScriptableSyntaxDefinition::OPTION_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2); const char* name = 0; constCharFromScriptValue(context->argument(0), name); QScriptValue value = context->argument(1); if (value.isBool()) super(context)->OPTION(name, value.toBool()); /*else if (value.isNumber()) super(context)->OPTION(name, value.toInt32()); else if (value.isString()) super(context)->OPTION(name, value.toString());*/ return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::EXCEPT_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1, 2); if (context->argumentCount() == 2) { QChar a = context->argument(0).toString().at(0); QChar b = context->argument(1).toString().at(0); NODE node = super(context)->EXCEPT(a, b); return nodeToScriptValue(engine, node); } else if (context->argumentCount() == 1) { QString s = context->argument(0).toString(); NODE node = super(context)->EXCEPT(s.constData()); return nodeToScriptValue(engine, node); } return QScriptValue(); }
int main(int argc, char *argv[]){ BookCatalog catalog; string operation=argv[1]; checkNumberOfArguments(argc); catalog = createCatalog(count_lines_of_file()); if(areEqual(upper(operation),"TAGS"))TagOperations(argv[2],argv[3],catalog,argc); else if(areEqual(upper(operation),"ADD"))addBook(argv[2], argc, catalog); else if(areEqual(upper(operation), "LIST"))showListOfBooks(catalog, argc); else if(areEqual(upper(operation),"SEARCH"))search_books_using_diffrent_fields(argv[2], argv[3], catalog, argc); else if(areEqual(upper(operation),"REMOVE")){delete_the_book_using_isbn( argv[2],argv[3], catalog, argc);printf("book is deleted\n");} else if(areEqual(upper(operation), "UPDATE"))updateBook(argv[2], catalog, argc); else if(areEqual(upper(operation), "--HELP"))provideHelp(argc); else giveExcuse(); clearCatalog(catalog); return 0; }
QScriptValue ScriptableSyntaxDefinition::LENGTH_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 2, 3); if (context->argumentCount() == 2) { int minLength = context->argument(0).toUInt32(); NODE entry = context->argument(1).toVariant().value<NODE>(); NODE node = super(context)->LENGTH(minLength, entry); return nodeToScriptValue(engine, node); } else if (context->argumentCount() == 3) { int minLength = context->argument(0).toUInt32(); int maxLength = context->argument(1).toUInt32(); NODE entry = context->argument(2).toVariant().value<NODE>(); NODE node = super(context)->LENGTH(minLength, maxLength, entry); return nodeToScriptValue(engine, node); } return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::REPEAT_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 1, 3); if (context->argumentCount() == 1) { NODE entry = context->argument(0).toVariant().value<NODE>(); NODE node = super(context)->REPEAT(entry); return nodeToScriptValue(engine, node); } else if (context->argumentCount() == 2) { int minRepeat = context->argument(0).toUInt32(); NODE entry = context->argument(1).toVariant().value<NODE>(); NODE node = super(context)->REPEAT(minRepeat, entry); return nodeToScriptValue(engine, node); } else if (context->argumentCount() == 3) { int minRepeat = context->argument(0).toUInt32(); int maxRepeat = context->argument(1).toUInt32(); NODE entry = context->argument(2).toVariant().value<NODE>(); NODE node = super(context)->REPEAT(minRepeat, maxRepeat, entry); return nodeToScriptValue(engine, node); } return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::LINK_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 0); super(context)->LINK(); return QScriptValue(); }
QScriptValue ScriptableSyntaxDefinition::FAIL_(QScriptContext* context, QScriptEngine* engine) { checkNumberOfArguments(context, 0); NODE node = super(context)->FAIL(); return nodeToScriptValue(engine, node); }
virtual void run(std::string notParsedArgs) { std::vector<std::string> parsedArgs = parseArguments(notParsedArgs); if (checkNumberOfArguments(parsedArgs.size(), 1, out)) { manager.run(atoi(parsedArgs[0].c_str())); } }
virtual void run(std::string notParsedArgs) { std::vector<std::string> parsedArgs = parseArguments(notParsedArgs); if (checkNumberOfArguments(parsedArgs.size(), 0, out)) { manager.newCommand("stop",0); } }