/// <summary> /// Evaluate the specified number, returns msgstr index. /// </summary> /// <param name='n'> /// Number to evaluate /// </param> /// <param name='traceToFile'> /// Debug purposes only. Trace to file an evaluation tree. /// </param> public long Evaluate(long n, bool traceToFile) { if (plural == null) { return(0); } #if DEBUG RecursiveTracer tracer = new RecursiveTracer(); tracer.Text.AppendFormat("Expression: {0}", expression); tracer.Text.AppendLine(); tracer.Text.AppendFormat("Evaluate: {0}", n); tracer.Text.AppendLine(); tracer.Text.AppendLine(); #endif long number = plural.Evaluate(n); #if DEBUG PluralFormsNode.IterateNodes( plural, delegate(PluralFormsNode node) { tracer.Text.AppendFormat("{0}: ", tracer.Level++); tracer.Indent(); if (node.Tracer != null) { tracer.Text.AppendLine(node.Tracer.Text.ToString()); } }, delegate(PluralFormsNode node) { tracer.Level--; } ); if (traceToFile) { tracer.SaveToFile("Evaluations.txt"); } #endif if (number < 0 || number > nplurals) { return(0); } return(number); }
public void DumpNodes(string fileName) { if (plural != null) { RecursiveTracer tracer = new RecursiveTracer(); tracer.Text.Append(expression); tracer.Text.AppendLine(); PluralFormsNode.IterateNodes( plural, delegate(PluralFormsNode node) { tracer.Text.AppendFormat("{0}: ", tracer.Level++); tracer.Indent(); tracer.Text.AppendLine(node.ToString()); }, delegate(PluralFormsNode node) { tracer.Level--; } ); tracer.SaveToFile(fileName); } }
/// <summary> /// Evaluate the specified number, returns msgstr index. /// </summary> /// <param name='n'> /// Number to evaluate /// </param> /// <param name='traceToFile'> /// Debug purposes only. Trace to file an evaluation tree. /// </param> public long Evaluate(long n, bool traceToFile) { if (plural == null) { return 0; } #if DEBUG RecursiveTracer tracer = new RecursiveTracer(); tracer.Text.AppendFormat("Expression: {0}", expression); tracer.Text.AppendLine(); tracer.Text.AppendFormat("Evaluate: {0}", n); tracer.Text.AppendLine(); tracer.Text.AppendLine(); #endif long number = plural.Evaluate(n); #if DEBUG PluralFormsNode.IterateNodes( plural, delegate(PluralFormsNode node) { tracer.Text.AppendFormat("{0}: ", tracer.Level++); tracer.Indent(); if (node.Tracer != null) tracer.Text.AppendLine(node.Tracer.Text.ToString()); }, delegate(PluralFormsNode node) { tracer.Level--; } ); if (traceToFile) tracer.SaveToFile("Evaluations.txt"); #endif if (number < 0 || number > nplurals) { return 0; } return number; }