예제 #1
0
파일: Serialiser.cs 프로젝트: m33p/radegast
        private static object HashtableSerialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new Hashtable());
            }
            Hashtable hashtable = (Hashtable)o;

            if (s.Encode)
            {
                s._Write(hashtable.Count);
                foreach (DictionaryEntry dictionaryEntry in hashtable)
                {
                    s.Serialise(dictionaryEntry.Key);
                    s.Serialise(dictionaryEntry.Value);
                }
                return((object)null);
            }
            int num = s._Read();

            for (int index1 = 0; index1 < num; ++index1)
            {
                object index2 = s.Deserialise();
                object obj    = s.Deserialise();
                hashtable[index2] = obj;
            }
            return((object)hashtable);
        }
예제 #2
0
        static object HashtableSerialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return(new Hashtable());
            }
            Hashtable h = (Hashtable)o;

            if (s.Encode)
            {
                s._Write(h.Count);
                foreach (DictionaryEntry d in h)
                {
                    s.Serialise(d.Key);
                    s.Serialise(d.Value);
                }
                return(null);
            }
            int ct = s._Read();

            for (int j = 0; j < ct; j++)
            {
                object k = s.Deserialise();
                object v = s.Deserialise();
                h[k] = v;
            }
            return(h);
        }
예제 #3
0
        static object HashtableSerialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return(new Hashtable());
            }
            Hashtable h = (Hashtable)o;

            if (s.Encode)
            {
                s._Write(h.Count);
                foreach (var d in h)
                {
#if SILVERLIGHT
                    s.Serialise(d.Key);
                    s.Serialise(d.Value);
#else
                    s.Serialise(((System.Collections.DictionaryEntry)d).Key);
                    s.Serialise(((System.Collections.DictionaryEntry)d).Value);
#endif
                }
                return(null);
            }
            int ct = s._Read();
            for (int j = 0; j < ct; j++)
            {
                object k = s.Deserialise();
                object v = s.Deserialise();
                h[k] = v;
            }
            return(h);
        }
예제 #4
0
파일: dfa.cs 프로젝트: Belxjander/Asuna
		public static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new TokClassDef();
			TokClassDef t = (TokClassDef)o;
			if (s.Encode) 
			{
				s.Serialise(t.m_name);
				s.Serialise(t.m_yynum);
				return null;
			}
			t.m_name = (string)s.Deserialise();
			t.m_yynum = (int)s.Deserialise();
			return t;
		}
예제 #5
0
        static object EncodingSerialise(object o, Serialiser s)
        {
            if (s.Encode)
            {
                Encoding e = (Encoding)o;
                s.Serialise(e.WebName);
                return(null);
            }
            string str = (string)s.Deserialise();

            switch (str)
            {
#if !SILVERLIGHT
            case "us-ascii": return(Encoding.ASCII);
#endif
            case "utf-16": return(Encoding.Unicode);

#if !SILVERLIGHT
            case "utf-7": return(Encoding.UTF7);
#endif
            case "utf-8": return(Encoding.UTF8);

            default:
                try
                {
                    return(Encoding.GetEncoding(str));    // 4.7f
                }
                catch (Exception)
                {
                    throw new Exception("Unknown encoding");
                }
            }
        }
예제 #6
0
        public new static object Serialise(object o, Serialiser s)
        {
            ParserAction parserAction = (ParserAction)o;

            if (s.Encode)
            {
                CSymbol.Serialise((object)parserAction, s);
                s.Serialise((object)parserAction.m_sym);
                s.Serialise((object)parserAction.m_len);
                return((object)null);
            }
            CSymbol.Serialise((object)parserAction, s);
            parserAction.m_sym = (CSymbol)s.Deserialise();
            parserAction.m_len = (int)s.Deserialise();
            return((object)parserAction);
        }
예제 #7
0
파일: Dfa.cs 프로젝트: m33p/radegast
 public static object Serialise(object o, Serialiser s)
 {
     if (s == null)
     {
         return((object)new Dfa.Action());
     }
     Dfa.Action action = (Dfa.Action)o;
     if (s.Encode)
     {
         s.Serialise((object)action.a_act);
         s.Serialise((object)action.a_next);
         return((object)null);
     }
     action.a_act  = (int)s.Deserialise();
     action.a_next = (Dfa.Action)s.Deserialise();
     return((object)action);
 }
예제 #8
0
파일: dfa.cs 프로젝트: jswiatkowski/cognipy
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return(new ResWds());
            }
            ResWds r = (ResWds)o;

            if (s.Encode)
            {
                s.Serialise(r.m_upper);
                s.Serialise(r.m_wds);
                return(null);
            }
            r.m_upper = (bool)s.Deserialise();
            r.m_wds   = (Hashtable)s.Deserialise();
            return(r);
        }
예제 #9
0
파일: dfa.cs 프로젝트: jswiatkowski/cognipy
            public static object Serialise(object o, Serialiser s)
            {
                if (s == null)
                {
                    return(new Action());
                }
                Action a = (Action)o;

                if (s.Encode)
                {
                    s.Serialise(a.a_act);
                    s.Serialise(a.a_next);
                    return(null);
                }
                a.a_act  = (int)s.Deserialise();
                a.a_next = (Action)s.Deserialise();
                return(a);
            }
예제 #10
0
파일: dfa.cs 프로젝트: jswiatkowski/cognipy
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return(new TokClassDef());
            }
            TokClassDef t = (TokClassDef)o;

            if (s.Encode)
            {
                s.Serialise(t.m_name);
                s.Serialise(t.m_yynum);
                return(null);
            }
            t.m_name  = (string)s.Deserialise();
            t.m_yynum = (int)s.Deserialise();
            return(t);
        }
예제 #11
0
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new CSymbol());
            }
            CSymbol csymbol = (CSymbol)o;

            if (s.Encode)
            {
                s.Serialise((object)csymbol.yytext);
                s.Serialise((object)csymbol.m_yynum);
                s.Serialise((object)(int)csymbol.m_symtype);
                return((object)null);
            }
            csymbol.yytext    = (string)s.Deserialise();
            csymbol.m_yynum   = (int)s.Deserialise();
            csymbol.m_symtype = (CSymbol.SymType)s.Deserialise();
            return((object)csymbol);
        }
예제 #12
0
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new ParsingInfo());
            }
            ParsingInfo parsingInfo = (ParsingInfo)o;

            if (s.Encode)
            {
                s.Serialise((object)parsingInfo.m_name);
                s.Serialise((object)parsingInfo.m_yynum);
                s.Serialise((object)parsingInfo.m_parsetable);
                return((object)null);
            }
            parsingInfo.m_name       = (string)s.Deserialise();
            parsingInfo.m_yynum      = (int)s.Deserialise();
            parsingInfo.m_parsetable = (Hashtable)s.Deserialise();
            return((object)parsingInfo);
        }
예제 #13
0
        public new static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new ParserReduce());
            }
            ParserReduce parserReduce = (ParserReduce)o;

            if (s.Encode)
            {
                ParserEntry.Serialise((object)parserReduce, s);
                s.Serialise((object)parserReduce.m_depth);
                s.Serialise((object)parserReduce.m_prod);
                return((object)null);
            }
            ParserEntry.Serialise((object)parserReduce, s);
            parserReduce.m_depth = (int)s.Deserialise();
            parserReduce.m_prod  = (Production)s.Deserialise();
            return((object)parserReduce);
        }
예제 #14
0
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new ParseState());
            }
            ParseState parseState = (ParseState)o;

            if (s.Encode)
            {
                s.Serialise((object)parseState.m_state);
                s.Serialise((object)parseState.m_accessingSymbol);
                s.Serialise((object)parseState.m_changed);
                return((object)true);
            }
            parseState.m_state           = (int)s.Deserialise();
            parseState.m_accessingSymbol = (CSymbol)s.Deserialise();
            parseState.m_changed         = (bool)s.Deserialise();
            return((object)parseState);
        }
예제 #15
0
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new Charset());
            }
            Charset charset = (Charset)o;

            if (s.Encode)
            {
                s.Serialise((object)(int)charset.m_cat);
                s.Serialise((object)charset.m_generic);
                s.Serialise((object)charset.m_chars);
                return((object)null);
            }
            charset.m_cat     = (UnicodeCategory)s.Deserialise();
            charset.m_generic = (char)s.Deserialise();
            charset.m_chars   = (Hashtable)s.Deserialise();
            return((object)charset);
        }
예제 #16
0
파일: dfa.cs 프로젝트: hdinh/OmahaBot
 /// <exclude/>
 public static object Serialise(object o,Serialiser s)
 {
     if (s==null)
         return new Dfa();
     Dfa d = (Dfa)o;
     if (s.Encode)
     {
         s.Serialise(d.m_state);
         s.Serialise(d.m_map);
         s.Serialise(d.m_actions);
         s.Serialise(d.m_tokClass);
         s.Serialise(d.m_reswds);
         return null;
     }
     d.m_state = (int)s.Deserialise();
     d.m_map = (Hashtable)s.Deserialise();
     d.m_actions = (Action)s.Deserialise();
     d.m_tokClass = (string)s.Deserialise();
     d.m_reswds = (int)s.Deserialise();
     return d;
 }
예제 #17
0
파일: dfa.cs 프로젝트: sillsdev/WorldPad
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return(new Dfa());
            }
            Dfa d = (Dfa)o;

            if (s.Encode)
            {
                s.Serialise(d.m_state);
                s.Serialise(d.m_map);
                s.Serialise(d.m_actions);
                s.Serialise(d.m_tokClass);
                return(null);
            }
            d.m_state    = (int)s.Deserialise();
            d.m_map      = (Hashtable)s.Deserialise();
            d.m_actions  = (Action)s.Deserialise();
            d.m_tokClass = (string)s.Deserialise();
            return(d);
        }
예제 #18
0
파일: lexer.cs 프로젝트: Belxjander/Asuna
		// Deserializing 
		public void GetDfa() 
		{
			if (tokens.Count>0)
				return;
			Serialiser f = new Serialiser(arr);
			f.VersionCheck();
			m_encoding = (Encoding)f.Deserialise();
			toupper = (bool)f.Deserialise();
			cats = (Hashtable)f.Deserialise();
			m_gencat = (UnicodeCategory)f.Deserialise();
			usingEOF = (bool)f.Deserialise();
			starts = (Hashtable)f.Deserialise();
			Dfa.SetTokens(this,starts);
			tokens = (Hashtable)f.Deserialise();
			reswds = (Hashtable)f.Deserialise();
		}
예제 #19
0
파일: Dfa.cs 프로젝트: m33p/radegast
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new Dfa());
            }
            Dfa dfa = (Dfa)o;

            if (s.Encode)
            {
                s.Serialise((object)dfa.m_state);
                s.Serialise((object)dfa.m_map);
                s.Serialise((object)dfa.m_actions);
                s.Serialise((object)dfa.m_tokClass);
                s.Serialise((object)dfa.m_reswds);
                return((object)null);
            }
            dfa.m_state    = (int)s.Deserialise();
            dfa.m_map      = (Hashtable)s.Deserialise();
            dfa.m_actions  = (Dfa.Action)s.Deserialise();
            dfa.m_tokClass = (string)s.Deserialise();
            dfa.m_reswds   = (int)s.Deserialise();
            return((object)dfa);
        }
예제 #20
0
파일: Production.cs 프로젝트: m33p/radegast
        public static object Serialise(object o, Serialiser s)
        {
            if (s == null)
            {
                return((object)new Production());
            }
            Production production = (Production)o;

            if (s.Encode)
            {
                s.Serialise((object)production.m_pno);
                return((object)null);
            }
            production.m_pno = (int)s.Deserialise();
            return((object)production);
        }
예제 #21
0
		static object EncodingSerialise(object o,Serialiser s)
		{
			if (s.Encode)
			{
				Encoding e = (Encoding)o;
				s.Serialise(e.WebName);
				return null;
			}
			switch((string)s.Deserialise())
			{
				case "us-ascii": return Encoding.ASCII;
				case "utf-16": return Encoding.Unicode;
				case "utf-7": return Encoding.UTF7;
				case "utf-8": return Encoding.UTF8;
			}
			throw new Exception("Unknown encoding");
		}
예제 #22
0
        public void GetDfa()
        {
            if (this.tokens.Count > 0)
            {
                return;
            }
            Serialiser serialiser = new Serialiser(this.arr);

            serialiser.VersionCheck();
            this.m_encoding = (Encoding)serialiser.Deserialise();
            this.toupper    = (bool)serialiser.Deserialise();
            this.cats       = (Hashtable)serialiser.Deserialise();
            this.m_gencat   = (UnicodeCategory)serialiser.Deserialise();
            this.usingEOF   = (bool)serialiser.Deserialise();
            this.starts     = (Hashtable)serialiser.Deserialise();
            Dfa.SetTokens(this, this.starts);
            this.tokens = (Hashtable)serialiser.Deserialise();
            this.reswds = (Hashtable)serialiser.Deserialise();
        }
예제 #23
0
        // Deserializing
        public void GetDfa()
        {
            if (tokens.Count > 0)
            {
                return;
            }
            Serialiser f = new Serialiser(arr);

            f.VersionCheck();
            m_encoding = (Encoding)f.Deserialise();
            toupper    = (bool)f.Deserialise();
            cats       = (Hashtable)f.Deserialise();
            m_gencat   = (UnicodeCategory)f.Deserialise();
            usingEOF   = (bool)f.Deserialise();
            starts     = (Hashtable)f.Deserialise();
            Dfa.SetTokens(this, starts);
            tokens = (Hashtable)f.Deserialise();
            reswds = (Hashtable)f.Deserialise();
        }
예제 #24
0
파일: YyParser.cs 프로젝트: m33p/radegast
        public void GetParser(Lexer m_lexer)
        {
            Serialiser serialiser = new Serialiser(this.arr);

            serialiser.VersionCheck();
            this.m_startSymbol      = (CSymbol)serialiser.Deserialise();
            this.m_startSymbol.kids = new ObjectList();
            this.m_accept           = (ParseState)serialiser.Deserialise();
            this.m_states           = (Hashtable)serialiser.Deserialise();
            this.literals           = (Hashtable)serialiser.Deserialise();
            this.symbolInfo         = (Hashtable)serialiser.Deserialise();
            this.m_concrete         = (bool)serialiser.Deserialise();
            this.GetEOF(m_lexer);
        }
예제 #25
0
파일: Serialiser.cs 프로젝트: m33p/radegast
        private static object EncodingSerialise(object o, Serialiser s)
        {
            if (s.Encode)
            {
                Encoding encoding = (Encoding)o;
                s.Serialise((object)encoding.WebName);
                return((object)null);
            }
            string name = (string)s.Deserialise();
            string str1 = name;

            if (str1 != null)
            {
                string str2 = string.IsInterned(str1);
                if ((object)str2 == (object)"us-ascii")
                {
                    return((object)Encoding.ASCII);
                }
                if ((object)str2 == (object)"utf-16")
                {
                    return((object)Encoding.Unicode);
                }
                if ((object)str2 == (object)"utf-7")
                {
                    return((object)Encoding.UTF7);
                }
                if ((object)str2 == (object)"utf-8")
                {
                    return((object)Encoding.UTF8);
                }
            }
            try
            {
                return((object)Encoding.GetEncoding(name));
            }
            catch (Exception ex)
            {
                throw new Exception("Unknown encoding");
            }
        }
예제 #26
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public static object Serialise(object o, Serialiser s)
		{
			if (s==null)
				return new ParseState();
			ParseState p = (ParseState)o;
			if (s.Encode)
			{
				s.Serialise(p.m_state);
				s.Serialise(p.m_accessingSymbol);
				s.Serialise(p.m_changed);
				return true;
			}
			p.m_state = (int)s.Deserialise();
			p.m_accessingSymbol = (CSymbol)s.Deserialise();
			p.m_changed = (bool)s.Deserialise();
			return p;
		}
예제 #27
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public new static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new ParserShift();
			ParserShift p = (ParserShift)o;
			if (s.Encode) 
			{
				ParserEntry.Serialise(p,s);
				s.Serialise(p.m_next);
				return null;
			}
			ParserEntry.Serialise(p,s);
			p.m_next = (ParseState)s.Deserialise();
			return p;
		}
예제 #28
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public new static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new ParserReduce();
			ParserReduce p = (ParserReduce)o;
			if (s.Encode) 
			{
				ParserEntry.Serialise(p,s);
				s.Serialise(p.m_depth);
				s.Serialise(p.m_prod);
				return null;
			}
			ParserEntry.Serialise(p,s);
			p.m_depth = (int)s.Deserialise();
			p.m_prod = (Production)s.Deserialise();
			return p;
		}
예제 #29
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public new static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new ParserOldAction();
			ParserOldAction p = (ParserOldAction)o;
			if (s.Encode) 
			{
				ParserAction.Serialise(p,s);
				s.Serialise(p.m_action);
				return null;
			}
			ParserAction.Serialise(p,s);
			p.m_action = (int)s.Deserialise();
			return p;
		}
예제 #30
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public static object Serialise(object o, Serialiser s)
		{
			ParserEntry p = (ParserEntry)o;
			if (s.Encode) 
			{
				s.Serialise(p.m_action);
				return null;
			}
			p.m_action = (ParserAction)s.Deserialise();
			return p;
		}
예제 #31
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new Production();
			Production p = (Production)o;
			if (s.Encode) 
			{
				s.Serialise(p.m_pno);
				return null;
			}
			p.m_pno = (int)s.Deserialise();
			return p;
		}
예제 #32
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public new static object Serialise(object o,Serialiser s)
		{
			ParserAction p = (ParserAction)o;
			if (s.Encode)
			{
				CSymbol.Serialise(p,s);
				s.Serialise(p.m_sym);
				s.Serialise(p.m_len);
				return null;
			}
			CSymbol.Serialise(p,s);
			p.m_sym = (CSymbol)s.Deserialise();
			p.m_len = (int)s.Deserialise();
			return p;
		}
예제 #33
0
파일: dfa.cs 프로젝트: hdinh/OmahaBot
 /// <exclude/>
 public static object Serialise(object o,Serialiser s)
 {
     if (s==null)
         return new Action();
     Action a = (Action)o;
     if (s.Encode)
     {
         s.Serialise(a.a_act);
         s.Serialise(a.a_next);
         return null;
     }
     a.a_act = (int)s.Deserialise();
     a.a_next = (Action)s.Deserialise();
     return a;
 }
예제 #34
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new CSymbol();
			CSymbol c = (CSymbol)o;
			if (s.Encode)
			{
				s.Serialise(c.yytext);
				s.Serialise(c.m_yynum);
				s.Serialise((int)c.m_symtype);
				return null;
			}
			c.yytext = (string)s.Deserialise();
			c.m_yynum = (int)s.Deserialise();
			c.m_symtype = (SymType)s.Deserialise();
			return c;
		}
예제 #35
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public static object Serialise(object o,Serialiser s)
		{
			if (s==null)
				return new ParsingInfo();
			ParsingInfo p = (ParsingInfo)o;
			if (s.Encode) 
			{
				s.Serialise(p.m_name);
				s.Serialise(p.m_yynum);
				s.Serialise(p.m_parsetable);
				return null;
			}
			p.m_name = (string)s.Deserialise();
			p.m_yynum = (int)s.Deserialise();
			p.m_parsetable = (Hashtable)s.Deserialise();
			return p;
		}
예제 #36
0
			{
				char c = curline[pos++];
				if (c==' ')
					continue;
				if (c=='-')
				{
					s = true;
					continue;
				}
				if (c==',')
				{
					if (s)
						v = -v;
					if (pos==curline.Length)
						GetLine(f);
					return v;
				}
예제 #37
0
파일: dfa.cs 프로젝트: hdinh/OmahaBot
 /// <exclude/>
 public static object Serialise(object o,Serialiser s)
 {
     if (s==null)
         return new ResWds();
     ResWds r = (ResWds)o;
     if (s.Encode)
     {
         s.Serialise(r.m_upper);
         s.Serialise(r.m_wds);
         return null;
     }
     r.m_upper = (bool)s.Deserialise();
     r.m_wds = (Hashtable)s.Deserialise();
     return r;
 }
예제 #38
0
        static object EncodingSerialise(object o, Serialiser s)
        {
            if (s.Encode)
            {
                Encoding e = (Encoding)o;
                s.Serialise(e.WebName);
                return null;
            }
            string str = (string)s.Deserialise();
            switch (str)
            {
                case "us-ascii": return Encoding.ASCII;
                case "utf-16": return Encoding.Unicode;
                case "utf-7": return Encoding.UTF7;
                case "utf-8": return Encoding.UTF8;

                default:
                    try
                    {
                        return Encoding.GetEncoding(str); // 4.7f
                    }
                    catch (Exception)
                    {
                        throw new Exception("Unknown encoding");
                    }
            }
        }
예제 #39
0
				{
					v = v*10 + (c-'0');
					continue;
				}
				throw new Exception("illegal character");
			}
			throw new Exception("bad line");
		}
		public static void Main(string[] args)
		{
			TextWriter x = new StreamWriter("out.txt");
			Hashtable t = new Hashtable();
			t["John"] = 12;
			t["Mary"] = 34;
			Serialiser sr = new Serialiser(x);
			Console.WriteLine("Encoding");
			sr.Serialise(t);
			x.Close();
			ArrayList a = new ArrayList();
			TextReader y = new StreamReader("out.txt");
			GetLine(y);
			while (!EOF)
				a.Add(GetInt(y));
			y.Close();
예제 #40
0
파일: parser.cs 프로젝트: Belxjander/Asuna
		public void GetParser(Lexer m_lexer)
		{
			Serialiser b = new Serialiser(arr);
			b.VersionCheck();
			m_startSymbol = (CSymbol)b.Deserialise();
			m_startSymbol.kids = new ObjectList(); // 4.2a
			m_accept = (ParseState)b.Deserialise();
			m_states = (Hashtable)b.Deserialise();
			literals = (Hashtable)b.Deserialise();
			symbolInfo = (Hashtable)b.Deserialise();
			m_concrete = (bool)b.Deserialise();
			GetEOF(m_lexer);
		}
 /// <exclude/>
 public static object Serialise(object o,Serialiser s)
 {
     if (s==null)
         return new Charset();
     Charset c = (Charset)o;
     if (s.Encode)
     {
         s.Serialise((int)c.m_cat);
         s.Serialise(c.m_generic);
         s.Serialise(c.m_chars);
         return null;
     }
     c.m_cat = (UnicodeCategory)s.Deserialise();
     c.m_generic = (char)s.Deserialise();
     c.m_chars = (Hashtable)s.Deserialise();
     return c;
 }