Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.55 KB | None | 0 0
  1.         public static void Parse(string text)
  2.         {
  3.             if (text.Trim() != "")
  4.             {
  5.                 try
  6.                 {
  7.                     text = text.Replace(Environment.NewLine, ";");
  8.                     text = text.Replace('\n', ';');
  9.  
  10.                     text = text.Replace("/n", Environment.NewLine);
  11.  
  12.                     string[] temp = text.Split(';');
  13.                     Next ntoken = Next.Next;
  14.                     for (int i = 0; i < temp.Length; i++)
  15.                     {
  16.                         string Item = temp[i].Replace("%00",";").Replace("%01","/n");
  17.                         if (Item.Trim() == "")
  18.                         { }
  19.                         if (Item.StartsWith(":"))
  20.                         { }
  21.                         Item = Item.TrimStart(' ');
  22.                         List<string> tokens = Tokenizer.getTokens(Item);
  23.                         if (ntoken == Next.Else)
  24.                         {
  25.                             if (tokens[0] == "else")
  26.                             { ntoken = Next.Next; }
  27.                             else if (tokens[0] == "elseif")
  28.                             {
  29.                                 if (tokens[1] == tokens[2])
  30.                                 { ntoken = Next.Next; }
  31.                                 else
  32.                                 { ntoken = Next.Else; }
  33.                             }
  34.                             else if (tokens[0] == "endif")
  35.                             { ntoken = Next.Next; }
  36.                         }
  37.                         else
  38.                         {
  39.                             if (tokens[0] == "if")
  40.                             {
  41.                                 if (tokens[1] == tokens[2])
  42.                                 { ntoken = Next.Next; }
  43.                                 else
  44.                                 { ntoken = Next.Else; }
  45.                             }
  46.                             else if (tokens[0] == "else")
  47.                             { ntoken = Next.Else; }
  48.                             else if (tokens[0] == "elseif")
  49.                             {
  50.                                 if (tokens[1] == tokens[2])
  51.                                 { ntoken = Next.Next; }
  52.                                 else
  53.                                 { ntoken = Next.Else; }
  54.                             }
  55.                             else if (tokens[0] == "endif")
  56.                             { ntoken = Next.Next; }
  57.                             else if (tokens[0] == "goto")
  58.                             {
  59.                                 if (tokens[1] == "line")
  60.                                 {
  61.                                     i = Int32.Parse(tokens[2]) - 1;
  62.                                 }
  63.                                 else
  64.                                 {
  65.                                     for (int it = 0; it < temp.Length; it++)
  66.                                     {
  67.                                         if (temp[it].Remove(0, 1) == tokens[1])
  68.                                         {
  69.                                             i = it;
  70.                                         }
  71.                                     }
  72.                                 }
  73.                             }
  74.                             else if (tokens[0].StartsWith("#"))
  75.                             {
  76.                                 bool isfun = false;
  77.                                 string fun = "";
  78.                                 for (int it = 0; it < temp.Length; it++)
  79.                                 {
  80.  
  81.                                     if (temp[it] == "endfun")
  82.                                     {
  83.                                         isfun = false;
  84.                                     }
  85.  
  86.                                     if (isfun)
  87.                                     {
  88.                                         fun += temp[it] + ";";
  89.                                     }
  90.  
  91.                                     if (temp[it] == "fun " + tokens[0].Remove(0, 1))
  92.                                     {
  93.                                         isfun = true;
  94.                                     }
  95.                                 }
  96.                                 Parse(fun);
  97.  
  98.                             }
  99.                             else if (tokens[0] == "fun")
  100.                             {
  101.  
  102.                                 for (int it = i; it < temp.Length; it++)
  103.                                 {
  104.                                     if (temp[it] == "endfun")
  105.                                     {
  106.                                         i = it + 1;
  107.                                         break;
  108.                                     }
  109.                                 }
  110.  
  111.                             }
  112.                             else if (tokens[0].StartsWith("$"))
  113.                             {
  114.  
  115.                                 if (tokens[1] == "=")
  116.                                 {
  117.                                     vars.Set(tokens[0].Remove(0,1),tokens[2]);
  118.                                 }
  119.                                 else
  120.                                 {
  121.  
  122.                                 }
  123.  
  124.                             }
  125.                             else if (tokens[0].StartsWith("//") || tokens[0].Trim(' ') == "")
  126.                             { }
  127.                             else
  128.                             { getCommand(tokens[0]).execute(Item); }
  129.                         }
  130.                     }
  131.                 }
  132.                 catch
  133.                 {
  134.                 }
  135.             }
  136.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement