상속: XRI3SyntaxComponent, XRIReference
예제 #1
0
        private void read()
        {
            this.reset();

            object obj = this.rule;	// xref or xref_empty or xref_xri_reference or xref_IRI

            // xref or xref_empty or xref_xri_reference or xref_IRI ?

            if (obj is Parser.Parser.xref)
            {
                IList<Rule> list_xref = ((Parser.Parser.xref)obj).rules;
                if (list_xref.Count < 1)
                    return;
                obj = list_xref[0];	// xref_empty or xref_xri_reference or xref_IRI
            }
            else if (obj is Parser.Parser.xref_empty)
            {

            }
            else if (obj is Parser.Parser.xref_xri_reference)
            {

            }
            else if (obj is Parser.Parser.xref_IRI)
            {

            }
            else
            {
                throw new InvalidCastException(obj.GetType().Name);
            }

            // xref_empty or xref_xri_reference or xref_IRI ?

            if (obj is Parser.Parser.xref_empty)
            {

            }
            else if (obj is Parser.Parser.xref_xri_reference)
            {
                // read xri_reference from xref_xri_reference

                IList<Rule> list_xref_xri_reference = ((Parser.Parser.xref_xri_reference)obj).rules;
                if (list_xref_xri_reference.Count < 2)
                    return;
                obj = list_xref_xri_reference[1];	// xri_reference
                this.xriReference = new XRI3Reference((Parser.Parser.xri_reference)obj);
            }
            else if (obj is Parser.Parser.xref_IRI)
            {
                // read IRI from xref_IRI

                IList<Rule> list_xref_IRI = ((Parser.Parser.xref_IRI)obj).rules;
                if (list_xref_IRI.Count < 2)
                    return;
                obj = list_xref_IRI[1];	// IRI
                this.iri = ((Parser.Parser.IRI)obj).spelling;
            }
            else
            {
                throw new InvalidCastException(obj.GetType().Name);
            }
        }
예제 #2
0
 private void reset()
 {
     this.xriReference = null;
     this.iri = null;
 }