SLR1 Code
SLR1 Code
SLR1 Code
finalArray.Add("begin");
finalArray.Add("("); finalArray.Add(")"); finalArray.Add("{");
finalArray.Add("int"); finalArray.Add("a"); finalArray.Add("=");
finalArray.Add("5"); finalArray.Add(";");
finalArray.Add("int"); finalArray.Add("b"); finalArray.Add("=");
finalArray.Add("10"); finalArray.Add(";"); finalArray.Add("int");
finalArray.Add("c"); finalArray.Add("="); finalArray.Add("0"); finalArray.Add(";");
finalArray.Add("c"); finalArray.Add("="); finalArray.Add("a");
finalArray.Add("+"); finalArray.Add("b"); finalArray.Add(";");
finalArray.Add("if"); finalArray.Add("("); finalArray.Add("c");
finalArray.Add(">"); finalArray.Add("a"); finalArray.Add(")");
finalArray.Add("print"); finalArray.Add("a");
finalArray.Add(";");finalArray.Add("else"); finalArray.Add("print");
finalArray.Add("c"); finalArray.Add(";");
finalArray.Add("}");
finalArray.Add("end");
"else","$","}","+","end","Program","DecS","AssS","IffS","PriS","Var","Const" };
Output.AppendText(i);
Output.AppendText(" ");
}
}
if (Parser.Contains("R"))
{
Parser = Parser.TrimStart('R');
String get = States[Convert.ToInt32(Parser) - 1] + "";
String[] Splitted = get.Split('_');
String[] Final_ = Splitted[1].Split(' ');
int test = Final_.Length;
Output.AppendText("\n Get= "+get+ "\n");
foreach (string i in Splitted)
{
Output.AppendText(i);
Output.AppendText(" ");
}
for (int i = 0; i < test * 2; i++)
{ Stack.Pop(); }
String row = Stack.Peek() + "";
Stack.Push(Splitted[0]);
Stack.Push(dict[row][Stack.Peek()] + "");
Output.AppendText("\n R Iteration \n");
foreach (string i in Stack)
{
Console.WriteLine(i);
Output.AppendText(i);
Output.AppendText(" ");
}
}
Output.AppendText(" Parser : "+Parser);
if (Parser.Contains("Accept"))
{
Output.AppendText("Parsed");
break;
}
if (Parser.Equals(""))
{
Output.AppendText("Unable to Parse");
break;
}
}
finalArray.Remove("$");
finalArray.Remove("begin");