static private void VerifyExpectedIcuFromActualSimple(string icuExpected, string shoeboxActual)
		{
			var parser = new SimpleRulesParser();
			string icuRulesActual = parser.ConvertToIcuRules(shoeboxActual);
			VerifyIcuRules(icuExpected);
			Assert.AreEqual(icuExpected, icuRulesActual);
		}
		static private void VerifyParseIsSyntacticEquivalent(string simplestRule, string syntacticEquivalent)
		{
			var parser = new SimpleRulesParser();
			string expected = parser.ConvertToIcuRules(simplestRule);
			string actual = parser.ConvertToIcuRules(syntacticEquivalent);
			Assert.AreEqual(expected, actual);
		}
		static private void VerifyParserError(string errorId, string rules, long line, long column)
		{
			try
			{
				var parser = new SimpleRulesParser();
				parser.ConvertToIcuRules(rules);
			}
			catch (ParserErrorException e)
			{
				Assert.AreEqual(errorId, e.ParserError.ErrorId);
				Assert.AreEqual(line, e.ParserError.Line);
				Assert.AreEqual(column, e.ParserError.Column);

				throw;
			}
		}
		public override bool Validate(out string message)
		{
			if (IsValid)
			{
				message = null;
				return true;
			}

			var parser = new SimpleRulesParser();
			if (parser.ValidateSimpleRules(SimpleRules, out message))
			{
				CollationRules = parser.ConvertToIcuRules(SimpleRules);
				IsValid = true;
				return true;
			}
			CollationRules = string.Empty;
			IsValid = false;
			return false;
		}
		public void ConvertToIcuRules_TwoSingleElements()
		{
			var parser = new SimpleRulesParser();
			string result = parser.ConvertToIcuRules("a A");
			Assert.AreEqual(IcuStart + "a << A", result);
		}
Esempio n. 6
0
		private void WriteCollationRulesFromCustomSimple(XmlWriter writer, XmlReader reader, WritingSystemDefinitionV1 ws)
		{
			Debug.Assert(writer != null);
			Debug.Assert(ws != null);
			Debug.Assert(ws.SortUsing == WritingSystemDefinitionV1.SortRulesType.CustomSimple);

			var parser = new SimpleRulesParser();
			string message;
			// avoid throwing exception, just don't save invalid data
			if (!parser.ValidateSimpleRules(ws.SortRules ?? string.Empty, out message))
			{
				return;
			}
			string icu = parser.ConvertToIcuRules(ws.SortRules ?? string.Empty);
			WriteCollationRulesFromICUString(writer, reader, icu);
		}