void TextParser::NODE::Save(FILE *fp, int indent) { if (children.size()) { for(int i=0;i<indent;i++) fprintf(fp, "\t"); fprintf(fp, name.GetCharPtr()); fprintf(fp, " {\n"); for(size_t i=0;i<children.size();i++) { children[i]->Save(fp, indent+1); } for(int i=0;i<indent;i++) fprintf(fp, "\t"); fprintf(fp, "}\n"); } else { for(int i=0;i<indent;i++) fprintf(fp, "\t"); fprintf(fp, name.GetCharPtr()); if (values.size()>1) fprintf(fp, " ["); fprintf(fp, " "); for(size_t i=0;i<values.size();i++) { if (!IsValueNumber(i)) fprintf(fp, "\""); fprintf(fp, values[i].GetCharPtr()); if (!IsValueNumber(i)) fprintf(fp, "\""); fprintf(fp, " "); } if (values.size()>1) fprintf(fp, "]"); fprintf(fp, "\n"); } }
void host_toNumber(XScriptVM* vm) { Value stackValue = vm->getParamValue(0); if (IsValueNumber(&stackValue)) { vm->setReturnAsInt((XInt)PNumberValue(stackValue)); } else if (IsValueString(&stackValue)) { vm->setReturnAsInt(StrToXInt(stringRawValue(&stackValue))); } else vm->setReturnAsNil(0); }