*** empty log message ***
[m17n/m17n-lib-cs.git] / XmlExpr.cs
index 60a2008..c609e1a 100644 (file)
@@ -1880,7 +1880,7 @@ namespace System.Xml.Expression
 
     private Term[] terms;
 
-    private void parse_terms (Domain domain, XmlNode node)
+    public static Term[] ParseTerms (Domain domain, XmlNode node)
     {
       int nterms = 0;
       for (XmlNode n = node; n != null; n = n.NextSibling)
@@ -1893,8 +1893,7 @@ namespace System.Xml.Expression
            else
              nterms++;
          }
-
-      terms = new Term[nterms];
+      Term[] terms = new Term[nterms];
       int i = 0;
       for (XmlNode n = node; n != null; n = n.NextSibling)
        if (n.NodeType == XmlNodeType.Element)
@@ -1904,11 +1903,12 @@ namespace System.Xml.Expression
            else if (n.Name != Ndefvar)
              terms[i++]= new Term (domain, n);
          }
+      return terms;
     }
 
     public Xexpression (Domain domain, XmlNode node)
     {
-      parse_terms (domain, node);
+      terms = ParseTerms (domain, node);
     }
 
     public Xexpression (Domain domain, string url)
@@ -1927,7 +1927,7 @@ namespace System.Xml.Expression
            throw new Exception ("Node <expr> not found");
          node = doc.ReadNode (reader);
        }
-      parse_terms (domain, node.FirstChild);
+      terms = ParseTerms (domain, node.FirstChild);
     }
 
     public Term Eval (Domain domain)