Пример #1
0
        public TemplateElement GetElement(TemplateFragment fragment)
        {
            if (fragment == null)
            {
                throw new ArgumentNullException("fragment");
            }

            TemplateFragmentPlainText text = fragment as TemplateFragmentPlainText;

            if (text != null)
            {
                return(new TemplateElementText(text.Data));
            }

            TemplateElement       ret   = null;
            TemplateFragmentMacro macro = fragment as TemplateFragmentMacro;

            if (macro != null)
            {
                ret = ProcessMacro(macro);
            }

            if (ret == null)
            {
                throw new InvalidOperationException(
                          String.Format("Failed to generate a template element from fragment {0} at {1}:{2},{3}",
                                        fragment, fragment.InFile, fragment.LineStart, fragment.ColumnStart)
                          );
            }

            return(ret);
        }
		public override void Append (char ch)
		{
			List <TemplateFragment> fragments = Fragments;
			int count = fragments.Count;
			TemplateFragment fragment = null;
			
			if (count != 0)
				fragment = fragments [count - 1];

			if (!(fragment is TemplateFragmentPlainText)) {
				fragment = new TemplateFragmentPlainText (InFile);
				fragments.Add (fragment);
			}
			fragment.Append (ch);
		}
        public override void Append(char ch)
        {
            List <TemplateFragment> fragments = Fragments;
            int count = fragments.Count;
            TemplateFragment fragment = null;

            if (count != 0)
            {
                fragment = fragments [count - 1];
            }

            if (!(fragment is TemplateFragmentPlainText))
            {
                fragment = new TemplateFragmentPlainText(InFile);
                fragments.Add(fragment);
            }
            fragment.Append(ch);
        }