Beispiel #1
0
        public IXmlAttributeValue Parse(IXmlAttributeValue xmlAttributeValue)
        {
            ReferenceNameAttributeValue attributeValue = new ReferenceNameAttributeValue();

            CompositeElement result = null;

            string rawValue = xmlAttributeValue.UnquotedValue;

            try
            {
                result = ParseTypeNameOrAttributeValue(rawValue);
            }
            catch (SyntaxError syntaxError)
            {
                result = (CompositeElement)syntaxError.ParsingResult;
                result = handleError(result, syntaxError);
            }

            attributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1));
            attributeValue.AddChild(result);
            int resultLegth = result.GetText().Length;
            if(resultLegth < rawValue.Length)
            {
                string suffix = rawValue.Substring(resultLegth);
                StringBuffer sb = new StringBuffer(suffix);
                XmlToken suffixToken = new XmlToken(L4NTokenNodeType.TEXT , sb, 0, suffix.Length);
                attributeValue.AddChild(suffixToken);
            }
            attributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1));

            return attributeValue;
        }
 protected IReferenceImpl[] CreateReferencesInternal(IXmlAttributeValue value) {
     Logger.LogMessage("CreateReferencesInternal for {0}", value.GetText());
     IXmlValueToken valueToken = value.ToTreeNode().ValueToken;
     if (valueToken == null) {
         return null;
     }
     return new IReferenceImpl[] {new PropertyNameReference(this, valueToken, valueToken.UnquotedValueRange)};
 }
Beispiel #3
0
        public IXmlAttributeValue ParseReferenceIdentifier(IXmlAttributeValue xmlAttributeValue, IQualifier qualifier)
        {
            ReferenceModuleAttributeValue attributeValue = new ReferenceModuleAttributeValue();

            return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, delegate(string text) {
                                                                                                          return ParseMemberIdentifier
                                                                                                              (text,
                                                                                                               qualifier); });
        }
Beispiel #4
0
        public IXmlAttributeValue ParseReferenceName(IXmlAttributeValue xmlAttributeValue)
        {
            ReferenceNameAttributeValue attributeValue = new ReferenceNameAttributeValue();

            return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, ParseTypeNameOrAttributeValue);
        }
Beispiel #5
0
        public IXmlAttributeValue ParseReferenceModule(IXmlAttributeValue xmlAttributeValue)
        {
            ReferenceModuleAttributeValue attributeValue = new ReferenceModuleAttributeValue();

            return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, ParseModule);
        }
Beispiel #6
0
        private IXmlAttributeValue ParseAttributeValueAspect(IXmlAttributeValue xmlAttributeValue, CompositeElement newAttributeValue, StringParse stringParse)
        {
            if (xmlAttributeValue == null) throw new ArgumentNullException("xmlAttributeValue");
            if (newAttributeValue == null) throw new ArgumentNullException("newAttributeValue");
            if (stringParse == null) throw new ArgumentNullException("stringParse");
            CompositeElement result = null;

            string rawValue = xmlAttributeValue.UnquotedValue;

            try
            {
                result = stringParse(rawValue);
            }
            catch (SyntaxError syntaxError)
            {
                result = (CompositeElement)syntaxError.ParsingResult;
                result = handleError(result, syntaxError);
            }

            newAttributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1));
            newAttributeValue.AddChild(result);
            int resultLegth = result.GetText().Length;
            if(resultLegth < rawValue.Length)
            {
                string suffix = rawValue.Substring(resultLegth);
                StringBuffer sb = new StringBuffer(suffix);
                XmlToken suffixToken = new XmlToken(L4NTokenNodeType.TEXT , sb, 0, suffix.Length);
                newAttributeValue.AddChild(suffixToken);
            }
            newAttributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1));

            return (IXmlAttributeValue)newAttributeValue;
        }
Beispiel #7
0
 protected override void AppendNewChild(IXmlAttribute parent, IXmlAttributeValue child)
 {
     base.AppendNewChild(parent, child);
 }
Beispiel #8
0
 private void ReplaceAttributeValue(IXmlAttribute attribute, IXmlAttributeValue newElement)
 {
     IXmlAttributeValueNode childNode = attribute.Value.ToTreeNode();
     ITreeNode parent = attribute.ToTreeNode();
     ((CompositeElement)parent).AddChildAfter(newElement.ToTreeNode(), childNode);
     ((CompositeElement)parent).DeleteChildRange(childNode, childNode);
 }
Beispiel #9
0
        public IXmlAttributeValue ParseReferenceType(IXmlAttributeValue xmlAttributeValue, IQualifier qualifier)
        {
            ReferenceTypeAttributeValue attributeValue = new ReferenceTypeAttributeValue();

            return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, text => ParseTypeReference(text, qualifier));
        }