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); } }
private void reset() { this.xriReference = null; this.iri = null; }