*** empty log message ***
authorhanda <handa>
Tue, 9 Jun 2009 02:28:35 +0000 (02:28 +0000)
committerhanda <handa>
Tue, 9 Jun 2009 02:28:35 +0000 (02:28 +0000)
MPlist.cs

index d2f7325..5b5cd5f 100644 (file)
--- a/MPlist.cs
+++ b/MPlist.cs
@@ -80,7 +80,7 @@ namespace M17N.Core
          }
       }
 
-    public MPlist (MStreamReader reader)
+    private MPlist (MStreamReader reader)
       {
        MSymbol key;
        object val;
@@ -92,7 +92,7 @@ namespace M17N.Core
          next = new MPlist (reader);
       }
 
-    public MPlist (MStreamReader reader, int count)
+    private MPlist (MStreamReader reader, int count)
       {
        MSymbol key;
        object val;
@@ -106,7 +106,7 @@ namespace M17N.Core
          next = new MPlist ();
       }
 
-    public MPlist (MStreamReader reader, MSymbol target, MSymbol stop)
+    private MPlist (MStreamReader reader, MSymbol target, MSymbol stop)
       {
        MSymbol key;
        object val;
@@ -363,222 +363,222 @@ namespace M17N.Core
        return (! current.IsEmpty);
       }
     }
-  }
 
-  public class MStreamReader : StreamReader
-  {
-    private static char[] escaped_char = new char[128];
-    private static int[] hexadecimal = new int[128];
+    private class MStreamReader : StreamReader
+    {
+      private static char[] escaped_char = new char[128];
+      private static int[] hexadecimal = new int[128];
 
-    public MStreamReader (Stream stream) : base (stream)
-      {
-      }
+      public MStreamReader (Stream stream) : base (stream)
+       {
+       }
+
+      static MStreamReader ()
+       {
+         for (int i = 0; i < 128; i++)
+           escaped_char[i] = (char) i;
+         escaped_char['e'] = (char) 27;
+         escaped_char['b'] = '\b';
+         escaped_char['f'] = '\f';
+         escaped_char['n'] = '\n';
+         escaped_char['r'] = '\r';
+         escaped_char['t'] = '\t';
+         escaped_char['\\'] = '\\';
+         for (int i = 0; i < 128; i++)
+           hexadecimal[i] = -1;
+         for (int i = '0'; i <= '9'; i++)
+           hexadecimal[i] = i - '0';
+         for (int i = 'A'; i <= 'F'; i++)
+           hexadecimal[i] = hexadecimal[i + 'a' - 'A'] = i -'A' + 10;
+       }
 
-    static MStreamReader ()
+      internal int PeekChar ()
       {
-       for (int i = 0; i < 128; i++)
-         escaped_char[i] = (char) i;
-       escaped_char['e'] = (char) 27;
-       escaped_char['b'] = '\b';
-       escaped_char['f'] = '\f';
-       escaped_char['n'] = '\n';
-       escaped_char['r'] = '\r';
-       escaped_char['t'] = '\t';
-       escaped_char['\\'] = '\\';
-       for (int i = 0; i < 128; i++)
-         hexadecimal[i] = -1;
-       for (int i = '0'; i <= '9'; i++)
-         hexadecimal[i] = i - '0';
-       for (int i = 'A'; i <= 'F'; i++)
-         hexadecimal[i] = hexadecimal[i + 'a' - 'A'] = i -'A' + 10;
+       bool comment = false;
+       int c;
+
+       while ((c = Peek ()) != -1)
+         {
+           if (comment)
+             {
+               if ((c = Read ()) == '\n')
+                 comment = false;
+             }
+           else
+             {
+               if (c == ';')
+                 comment = true;
+               else if (c != ' ' && c != '\t' && c != '\n')
+                 return c;
+               Read ();
+             }
+         }
+       return c;
       }
 
-    internal int PeekChar ()
-    {
-      bool comment = false;
-      int c;
+      internal int ReadHexadecimal ()
+      {
+       int i = 0, c;
 
-      while ((c = Peek ()) != -1)
-       {
-         if (comment)
-           {
-             if ((c = Read ()) == '\n')
-               comment = false;
-           }
-         else
-           {
-             if (c == ';')
-               comment = true;
-             else if (c != ' ' && c != '\t' && c != '\n')
-               return c;
-             Read ();
-           }
-       }
-      return c;
-    }
+       while ((c = Peek ()) >= 0 && c < 128 && (c = hexadecimal[c]) >= 0)
+         {
+           Read ();
+           i = (i * 16) + c;
+         }
+       return i;
+      }
 
-    internal int ReadHexadecimal ()
-    {
-      int i = 0, c;
+      internal int ReadInteger ()
+      {
+       int i = 0, c;
 
-      while ((c = Peek ()) >= 0 && c < 128 && (c = hexadecimal[c]) >= 0)
-       {
-         Read ();
-         i = (i * 16) + c;
-       }
-      return i;
-    }
+       while ((c = Peek ()) >= '0' && c <= '9')
+         i = (i * 10) + (Read () - '0');
+       return i;
+      }
 
-    internal int ReadInteger ()
-    {
-      int i = 0, c;
+      internal int ReadChar ()
+      {
+       int c = Read ();
 
-      while ((c = Peek ()) >= '0' && c <= '9')
-       i = (i * 10) + (Read () - '0');
-      return i;
-    }
+       if (c == '\\')
+         {
+           c = Read ();
+           if (c == -1)
+             return -1;
+           if (c == 'x' || c == 'u')
+             return ReadHexadecimal ();
+           if (c < 128)
+             c = escaped_char[c];
+         }
+       return c;
+      }
 
-    internal int ReadChar ()
-    {
-      int c = Read ();
+      internal MText ReadMtext ()
+      {
+       MText mt = new MText ();
+       int c;
 
-      if (c == '\\')
-       {
-         c = Read ();
-         if (c == -1)
-           return -1;
-         if (c == 'x' || c == 'u')
-           return ReadHexadecimal ();
-         if (c < 128)
-           c = escaped_char[c];
-       }
-      return c;
-    }
+       while ((c = Peek ()) != -1 && c != '"')
+         {
+           if (c == '\\')
+             {
+               c = ReadChar ();
+               if (Peek () == '\n')
+                 {
+                   ReadChar ();
+                   continue;
+                 }
+               if (c == -1)
+                 {
+                   mt.Cat ('\\');
+                   break;
+                 }
+               mt.Cat (c);
+             }
+           else
+             mt.Cat (Read ());
+         }
+       if (c == '"')
+         Read ();
+       return mt;
+      }
 
-    internal MText ReadMtext ()
-    {
-      MText mt = new MText ();
-      int c;
+      internal string ReadSymbolName ()
+      {
+       int c = Peek ();
 
-      while ((c = Peek ()) != -1 && c != '"')
-       {
-         if (c == '\\')
-           {
-             c = ReadChar ();
-             if (Peek () == '\n')
-               {
-                 ReadChar ();
-                 continue;
-               }
-             if (c == -1)
-               {
-                 mt.Cat ('\\');
-                 break;
-               }
-             mt.Cat (c);
-           }
-         else
-           mt.Cat (Read ());
-       }
-      if (c == '"')
+       if (c == -1 || c == '(' || c == ')' || c == ' ' || c == '\n' || c == '"')
+         return "";
        Read ();
-      return mt;
-    }
+       if (c == '\\')
+         {
+           c = Read ();
+           if (c == -1)
+             c = '\\';
+         }
+       return (char) c + ReadSymbolName ();
+      }
 
-    internal string ReadSymbolName ()
-    {
-      int c = Peek ();
+      internal bool ReadElement (out MSymbol key, out object val)
+      {
+       int c = PeekChar ();
 
-      if (c == -1 || c == '(' || c == ')' || c == ' ' || c == '\n' || c == '"')
-       return "";
-      Read ();
-      if (c == '\\')
-       {
-         c = Read ();
-         if (c == -1)
-           c = '\\';
-       }
-      return (char) c + ReadSymbolName ();
-    }
+       if (c == '(')
+         {
+           Read ();
+           val = new MPlist (this);
+           key = MSymbol.plist;
+         }
+       else if (c == '"')
+         {
+           Read ();
+           val = ReadMtext ();
+           key = MSymbol.mtext;
+         }
+       else if (c >= '0' && c <= '9')
+         {
+           int i = ReadInteger ();
 
-    internal bool ReadElement (out MSymbol key, out object val)
-    {
-      int c = PeekChar ();
+           val = i;
+           key = MSymbol.integer;
+         }
+       else if (c == '-')
+         {
+           Read ();
+           c = Peek ();
+           if (c >= '0' && c <= '9')
+             {
+               int i = ReadInteger ();
+               val = - i;
+               key = MSymbol.integer;
+             }
+           else
+             {
+               string str = ReadSymbolName ();
 
-      if (c == '(')
-       {
-         Read ();
-         val = new MPlist (this);
-         key = MSymbol.plist;
-       }
-      else if (c == '"')
-       {
-         Read ();
-         val = ReadMtext ();
-         key = MSymbol.mtext;
-       }
-      else if (c >= '0' && c <= '9')
-       {
-         int i = ReadInteger ();
+               val = MSymbol.Of ("-" + str);
+               key = MSymbol.symbol;
+             }
+         }
+       else if (c == '?')
+         {
+           Read ();
+           val = ReadChar ();
+           key = MSymbol.integer;
+         }
+       else if (c == '#')
+         {
+           Read ();
+           if ((c = Peek ()) == 'x' || c == 'u')
+             {
+               Read ();
+               val = ReadHexadecimal ();
+               key = MSymbol.integer;
+             }
+           else
+             {
+               string str = ReadSymbolName ();
 
-         val = i;
-         key = MSymbol.integer;
-       }
-      else if (c == '-')
-       {
-         Read ();
-         c = Peek ();
-         if (c >= '0' && c <= '9')
-           {
-             int i = ReadInteger ();
-             val = - i;
-             key = MSymbol.integer;
-           }
-         else
-           {
-             string str = ReadSymbolName ();
-
-             val = MSymbol.Of ("-" + str);
-             key = MSymbol.symbol;
-           }
-       }
-      else if (c == '?')
-       {
-         Read ();
-         val = ReadChar ();
-         key = MSymbol.integer;
-       }
-      else if (c == '#')
-       {
-         Read ();
-         if ((c = Peek ()) == 'x' || c == 'u')
-           {
+               val = MSymbol.Of ("#" + (char) c + str);
+               key = MSymbol.symbol;
+             }
+         }
+       else if (c == -1 || c == ')')
+         {
+           if (c == ')')
              Read ();
-             val = ReadHexadecimal ();
-             key = MSymbol.integer;
-           }
-         else
-           {
-             string str = ReadSymbolName ();
-
-             val = MSymbol.Of ("#" + (char) c + str);
-             key = MSymbol.symbol;
-           }
-       }
-      else if (c == -1 || c == ')')
-       {
-         if (c == ')')
-           Read ();
-         val = null;
-         key = MSymbol.nil;
-         return false;
-       }
-      else
-       {
-         val = MSymbol.Of (ReadSymbolName ());
-         key = MSymbol.symbol;
-       }
-      return true;
+           val = null;
+           key = MSymbol.nil;
+           return false;
+         }
+       else
+         {
+           val = MSymbol.Of (ReadSymbolName ());
+           key = MSymbol.symbol;
+         }
+       return true;
+      }
     }
   }
 }