Exemplo n.º 1
0
 private static RelationType GetRelationType(string text, out string leftString, out string rightString, out string err)
 {
     err         = null;
     leftString  = null;
     rightString = null;
     int[] inds = StringUtils.AllIndicesOf(text, "!=");
     if (inds.Length > 1)
     {
         err = "Multiple != signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 2, out leftString, out rightString);
         return(RelationType.NotEqual);
     }
     inds = StringUtils.AllIndicesOf(text, "==");
     if (inds.Length > 1)
     {
         err = "Multiple == signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 2, out leftString, out rightString);
         return(RelationType.Equal);
     }
     inds = StringUtils.AllIndicesOf(text, ">=");
     if (inds.Length > 1)
     {
         err = "Multiple >= signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 2, out leftString, out rightString);
         return(RelationType.GreaterEqual);
     }
     inds = StringUtils.AllIndicesOf(text, "<=");
     if (inds.Length > 1)
     {
         err = "Multiple <= signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 2, out leftString, out rightString);
         return(RelationType.LessEqual);
     }
     inds = StringUtils.AllIndicesOf(text, "=");
     if (inds.Length > 1)
     {
         err = "Multiple = signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 1, out leftString, out rightString);
         return(RelationType.Equal);
     }
     inds = StringUtils.AllIndicesOf(text, ">");
     if (inds.Length > 1)
     {
         err = "Multiple > signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 1, out leftString, out rightString);
         return(RelationType.Greater);
     }
     inds = StringUtils.AllIndicesOf(text, "<");
     if (inds.Length > 1)
     {
         err = "Multiple < signs.";
         return(RelationType.Unknown);
     }
     if (inds.Length == 1)
     {
         Extract(text, inds[0], 1, out leftString, out rightString);
         return(RelationType.Less);
     }
     err = "No valid operator.";
     return(RelationType.Unknown);
 }