public MeScanner(XamlParserContext context, string text, int lineNumber, int linePosition)
 {
     this._context = context;
     this._inputText = text;
     this._lineNumber = lineNumber;
     this._startPosition = linePosition;
     this._idx = -1;
     this._state = StringState.Value;
 }
 internal XamlScanner(XamlParserContext context, XmlReader xmlReader, XamlXmlReaderSettings settings)
 {
     this._xmlReader = xmlReader;
     this._xmlLineInfo = settings.ProvideLineInfo ? (xmlReader as IXmlLineInfo) : null;
     this._parserContext = context;
     this._scannerStack = new XamlScannerStack();
     this._readNodesQueue = new Queue<XamlScannerNode>();
     this._settings = settings;
     if (settings.XmlSpacePreserve)
     {
         this._scannerStack.CurrentXmlSpacePreserve = true;
     }
 }
 private XamlMember GetXamlAttributeProperty(XamlParserContext context, XamlPropertyName propName, XamlType tagType, string tagNamespace, bool tagIsRoot)
 {
     string attributeNamespace = context.GetAttributeNamespace(propName, tagNamespace);
     if (attributeNamespace == null)
     {
         if (propName.IsDotted)
         {
             return new XamlMember(propName.Name, new XamlType(string.Empty, propName.OwnerName, null, context.SchemaContext), true);
         }
         return new XamlMember(propName.Name, tagType, false);
     }
     if (propName.IsDotted)
     {
         return context.GetDottedProperty(tagType, tagNamespace, propName, tagIsRoot);
     }
     return context.GetNoDotAttributeProperty(tagType, propName, tagNamespace, attributeNamespace, tagIsRoot);
 }
 public void Initialize(XamlParserContext context, XamlType tagType, string ownerNamespace, bool tagIsRoot)
 {
     if (this.Kind != ScannerAttributeKind.Namespace)
     {
         this.Property = this.GetXamlAttributeProperty(context, this.Name, tagType, ownerNamespace, tagIsRoot);
         if (this.Property.IsUnknown)
         {
             this.Kind = ScannerAttributeKind.Unknown;
         }
         else if (this.Property.IsEvent)
         {
             this.Kind = ScannerAttributeKind.Event;
         }
         else if (this.Property.IsDirective)
         {
             if (this.Property == XamlLanguage.Space)
             {
                 this.Kind = ScannerAttributeKind.XmlSpace;
             }
             else if (((this.Property == XamlLanguage.FactoryMethod) || (this.Property == XamlLanguage.Arguments)) || ((this.Property == XamlLanguage.TypeArguments) || (this.Property == XamlLanguage.Base)))
             {
                 this.Kind = ScannerAttributeKind.CtorDirective;
             }
             else
             {
                 this.Kind = ScannerAttributeKind.Directive;
             }
         }
         else if (this.Property.IsAttachable)
         {
             this.Kind = ScannerAttributeKind.AttachableProperty;
         }
         else if (this.Property == tagType.GetAliasedProperty(XamlLanguage.Name))
         {
             this.Kind = ScannerAttributeKind.Name;
         }
         else
         {
             this.Kind = ScannerAttributeKind.Property;
         }
     }
 }
 public MePullParser(XamlParserContext stack)
 {
     this._context = stack;
 }