void NewsScene::parseResult(char *retorno) { char *source = retorno; char *endptr; JsonValue value; JsonAllocator allocator; JsonParseStatus status = json_parse(source, &endptr, &value, allocator); if (status != JSON_PARSE_OK) { fprintf(stderr, "error at %zd, status: %d\n", endptr - source, (int)status); // exit(EXIT_FAILURE); } else { fprintf(stderr, "success, status: %d\n", (int)status); listPos =0; printReturn(value); alreadyLoaded = true; this->list->reload(); this->loading->removeFromParentAndCleanup(true); // pthread_t thread; // SimpleStructure* args = new SimpleStructure(); // args->owner = this; // pthread_create(&thread, NULL, &ReloadFunction, args); } }
void NewsScene::printReturn(JsonValue o) { switch (o.getTag()) { case JSON_TAG_NUMBER: printf("%g\n", o.toNumber()); //sum += o.toNumber(); break; case JSON_TAG_BOOL: printf("%s\n", o.toBool() ? "true" : "false"); break; case JSON_TAG_STRING: { string theValue =o.toString(); setValue(theValue); } break; case JSON_TAG_ARRAY: for (auto i : o) { // tmpNews = new News(); listNews.push_back(new News()); printReturn(i->value); } break; case JSON_TAG_OBJECT: for (auto i : o) { printf("%s = ", i->key); lastKey = i->key; printReturn(i->value); } break; case JSON_TAG_NULL: printf("null\n"); break; } }
void ASTPrint( int lev, ASTNode node ) { if (! node) { indent( lev ); ec_stderr_printf( "NULL" ); return; } /* Simplify our lives ... */ if (currentScope) { if (currentScope->type == PackageScope) { currentPackage = currentScope->target; currentBytecode = EC_PACKAGECODE(currentScope->target); } else { currentBytecode = currentScope->target; } currentLiteral = EC_COMPILEDLFRAME(currentBytecode); } switch ( node->type ) { case nullType: indent( lev ); ec_stderr_printf( "<nullType>" ); break; case symbolType: printSymbol( lev, node ); break; case qualifiedSymbolType: printQualifiedSymbol( lev, node ); break; case constExprType: printConstant( lev, node ); break; case variableExprType: printVariable( lev, node ); break; case arrayConstructionExprType: printArrayCons( lev, node ); break; case hashConstructionExprType: printHashCons( lev, node ); break; case unaryExprType: printUnary( lev, node ); break; case binaryExprType: printBinary( lev, node ); break; case conditionalExprType: printConditional( lev, node ); break; case orExprType: printOr( lev, node ); break; case andExprType: printAnd( lev, node ); break; case assignExprType: printAssign( lev, node ); break; case simAssignExprType: printSimAssign( lev, node ); break; case arrayRefExprType: printArrayRef( lev, node ); break; case declNodeType: printDecl( lev, node ); break; case declAtomNodeType: printDeclAtom( lev, node ); break; case statementType: printStatement( lev, node ); break; case labeledStmtType: printLabeledStmt( lev, node ); break; case exprStmtType: printExprStmt( lev, node ); break; case ifStmtType: printIf( lev, node ); break; case whileStmtType: printWhile( lev, node ); break; case doStmtType: printDo( lev, node ); break; case forStmtType: printFor( lev, node ); break; case forInStmtType: printForIn( lev, node ); break; case breakStmtType: printBreak( lev, node ); break; case continueStmtType: printContinue( lev, node ); break; case gotoStmtType: printGoto( lev, node ); break; case tryStmtType: printTry( lev, node ); break; case catchStmtType: printCatch( lev, node ); break; case throwStmtType: printThrow( lev, node ); break; case importStmtType: printImport( lev, node ); break; case paramNodeType: printParam( lev, node ); break; case paramListType: printParamList( lev, node ); break; case callNodeType: printCall( lev, node ); break; case methodCallNodeType: printMethodCall( lev, node ); break; case stmtListType: printStmtList( lev, node ); break; case funcNodeType: printFunction( lev, node ); break; case returnNodeType: printReturn( lev, node ); break; case classNodeType: printClass( lev, node ); break; case methodNodeType: printMethod( lev, node ); break; case packageNodeType: printPackage( lev, node ); break; } }