Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void Parse(string text)
- {
- if (text.Trim() != "")
- {
- try
- {
- text = text.Replace(Environment.NewLine, ";");
- text = text.Replace('\n', ';');
- text = text.Replace("/n", Environment.NewLine);
- string[] temp = text.Split(';');
- Next ntoken = Next.Next;
- for (int i = 0; i < temp.Length; i++)
- {
- string Item = temp[i].Replace("%00",";").Replace("%01","/n");
- if (Item.Trim() == "")
- { }
- if (Item.StartsWith(":"))
- { }
- Item = Item.TrimStart(' ');
- List<string> tokens = Tokenizer.getTokens(Item);
- if (ntoken == Next.Else)
- {
- if (tokens[0] == "else")
- { ntoken = Next.Next; }
- else if (tokens[0] == "elseif")
- {
- if (tokens[1] == tokens[2])
- { ntoken = Next.Next; }
- else
- { ntoken = Next.Else; }
- }
- else if (tokens[0] == "endif")
- { ntoken = Next.Next; }
- }
- else
- {
- if (tokens[0] == "if")
- {
- if (tokens[1] == tokens[2])
- { ntoken = Next.Next; }
- else
- { ntoken = Next.Else; }
- }
- else if (tokens[0] == "else")
- { ntoken = Next.Else; }
- else if (tokens[0] == "elseif")
- {
- if (tokens[1] == tokens[2])
- { ntoken = Next.Next; }
- else
- { ntoken = Next.Else; }
- }
- else if (tokens[0] == "endif")
- { ntoken = Next.Next; }
- else if (tokens[0] == "goto")
- {
- if (tokens[1] == "line")
- {
- i = Int32.Parse(tokens[2]) - 1;
- }
- else
- {
- for (int it = 0; it < temp.Length; it++)
- {
- if (temp[it].Remove(0, 1) == tokens[1])
- {
- i = it;
- }
- }
- }
- }
- else if (tokens[0].StartsWith("#"))
- {
- bool isfun = false;
- string fun = "";
- for (int it = 0; it < temp.Length; it++)
- {
- if (temp[it] == "endfun")
- {
- isfun = false;
- }
- if (isfun)
- {
- fun += temp[it] + ";";
- }
- if (temp[it] == "fun " + tokens[0].Remove(0, 1))
- {
- isfun = true;
- }
- }
- Parse(fun);
- }
- else if (tokens[0] == "fun")
- {
- for (int it = i; it < temp.Length; it++)
- {
- if (temp[it] == "endfun")
- {
- i = it + 1;
- break;
- }
- }
- }
- else if (tokens[0].StartsWith("$"))
- {
- if (tokens[1] == "=")
- {
- vars.Set(tokens[0].Remove(0,1),tokens[2]);
- }
- else
- {
- }
- }
- else if (tokens[0].StartsWith("//") || tokens[0].Trim(' ') == "")
- { }
- else
- { getCommand(tokens[0]).execute(Item); }
- }
- }
- }
- catch
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement