예제 #1
0
        public ConstInfo(ScriptFile sf,
                         string name,
                         string originalValue,
                         CODSCRIPT.Content.Expression value,
                         MemberAccess access,
                         string summary,
                         bool isSealed,
                         CODSCRIPT.Content.ConstDef def)
        {
            SF = sf;

            Name          = name;
            Summary       = summary;
            OriginalValue = originalValue;
            Value         = value;
            Access        = access;
            Sealed        = isSealed;

            ConstDef = def;

            if (def != null)
            {
                NppInfo = new NppElementInfo(def.CharIndex, def.CharLength, def.ImportantCharIndex, def.ImportantCharLength);
            }
        }
예제 #2
0
        private static void ReadConst(ScriptInfo SI, XmlElement constElem)
        {
            string name          = string.Empty;
            string originalValue = string.Empty;

            CODSCRIPT.Content.Expression value = null;
            MemberAccess access   = MemberAccess.Public;
            string       summary  = string.Empty;
            bool         isSealed = false;

            name   = constElem.GetAttribute("name");
            access = (MemberAccess)Enum.Parse(typeof(MemberAccess), constElem.GetAttribute("access"));
            string sealedStr = constElem.GetAttribute("sealed");

            isSealed = String.IsNullOrEmpty(sealedStr) ? false : Boolean.Parse(sealedStr);

            foreach (XmlElement curElem in constElem.ChildNodes.OfType <XmlElement>())
            {
                if (curElem.Name == "summary")
                {
                    summary = curElem.InnerText;
                }
                else if (curElem.Name == "originalValue")
                {
                    originalValue = curElem.InnerText;
                }
                else if (curElem.Name == "value")
                {
                    value = CODSCRIPT.Content.Expression.FromXML(curElem);
                }
                else
                {
                    throw new XmlException("Unknown ScriptInfo const node '" + curElem.Name + "'");
                }
            }

            ConstInfo constInfo = new ConstInfo(SI.SF, name, originalValue, value, access, summary, isSealed, null);

            SI.AddConstant(constInfo);
        }