示例#1
0
        static void CompileRule(LanguageRule languageRule,
                                StringBuilder regex,
                                ICollection <string> captures,
                                bool isFirstRule)
        {
            if (!isFirstRule)
            {
                regex.AppendLine();
                regex.AppendLine();
                regex.AppendLine("|");
                regex.AppendLine();
            }

            regex.AppendFormat("(?-xis)(?m)({0})(?x)", languageRule.Regex);

            int numberOfCaptures = GetNumberOfCaptures(languageRule.Regex);

            for (int i = 0; i <= numberOfCaptures; i++)
            {
                string scope = null;

                foreach (int captureIndex in languageRule.Captures.Keys)
                {
                    if (i == captureIndex)
                    {
                        scope = languageRule.Captures[captureIndex];
                        break;
                    }
                }

                captures.Add(scope);
            }
        }
示例#2
0
		static void CompileRule(LanguageRule languageRule,
		                        StringBuilder regex,
		                        ICollection<string> captures,
		                        bool isFirstRule)
		{
			if (!isFirstRule)
			{
				regex.AppendLine();
				regex.AppendLine();
				regex.AppendLine("|");
				regex.AppendLine();
			}

			regex.AppendFormat("(?-xis)(?m)({0})(?x)", languageRule.Regex);

			int numberOfCaptures = GetNumberOfCaptures(languageRule.Regex);

			for (int i = 0; i <= numberOfCaptures; i++)
			{
				string scope = null;

				foreach (int captureIndex in languageRule.Captures.Keys)
				{
					if (i == captureIndex)
					{
						scope = languageRule.Captures[captureIndex];
						break;
					}
				}

				captures.Add(scope);
			}
		}