示例#1
0
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");
    }
}
示例#2
0
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);

}