static bool Test4() { try { Compiler c = new Compiler(); List <string> lCodeLines = c.ReadFile(@"GCDErr.Jack"); List <Token> lTokens = c.Tokenize(lCodeLines); } catch (SyntaxErrorException e) { return(true); } return(false); }
private static bool TestParse() { try { Compiler sc = new Compiler(); List <string> lLines = sc.ReadFile(@"Program.Jack"); List <Token> lTokens = sc.Tokenize(lLines); TokensStack sTokens = new TokensStack(); for (int i = lTokens.Count - 1; i >= 0; i--) { sTokens.Push(lTokens[i]); } JackProgram prog = new JackProgram(); prog.Parse(sTokens); string sAfterParsing = prog.ToString(); sAfterParsing = sAfterParsing.Replace(" ", ""); sAfterParsing = sAfterParsing.Replace("\t", ""); sAfterParsing = sAfterParsing.Replace("\n", ""); sAfterParsing = sAfterParsing.ToLower(); string sAllTokens = ""; foreach (Token t in lTokens) { sAllTokens += GetName(t).ToLower(); } for (int i = 0; i < sAllTokens.Length; i++) { if (sAllTokens[i] != sAfterParsing[i]) { return(false); } } return(true); } catch (Exception e) { Console.WriteLine(e); } return(false); }
static bool Test3() { Compiler c = new Compiler(); List <string> lCodeLines = c.ReadFile(@"BinarySearch.Jack"); List <Token> lTokens = c.Tokenize(lCodeLines); Token t = lTokens[0]; if (t.ToString() != "function" || !(t is Statement)) { return(false); } t = lTokens[20]; if (t.ToString() != "end" || !(t is Identifier) || t.Line != 2 || t.Position != 9) { return(false); } t = lTokens[50]; if (t.ToString() != "+" || !(t is Operator) || t.Line != 9 || t.Position != 22) { return(false); } return(true); }
static bool Test2() { Compiler c = new Compiler(); List <string> lCodeLines = c.ReadFile(@"Fib.Jack"); List <Token> lTokens = c.Tokenize(lCodeLines); Token t = lTokens[0]; if (t.ToString() != "function" || !(t is Statement)) { return(false); } t = lTokens[20]; if (t.ToString() != "2" || !(t is Number) || t.Line != 5 || t.Position != 8) { return(false); } t = lTokens[50]; if (t.ToString() != "}" || !(t is Parentheses) || t.Line != 12 || t.Position != 0) { return(false); } return(true); }
static bool Test1() { Compiler c = new Compiler(); List <string> lCodeLines = c.ReadFile(@"GCD.Jack"); List <Token> lTokens = c.Tokenize(lCodeLines); Token t = lTokens[0]; if (t.ToString() != "function" || !(t is Statement)) { return(false); } t = lTokens[20]; if (t.ToString() != "=" || t.Line != 3 || t.Position != 11) { return(false); } t = lTokens[50]; if (t.ToString() != "}" || !(t is Parentheses) || t.Line != 7 || t.Position != 1) { return(false); } return(true); }