/// <summary> /// While There are more functions to parse /// </summary> /// <returns></returns> public TModule ParseFunctions2() { bool error_state = false; while (Current_Token == TOKEN.TOK_FUNCTION) { ProcedureBuilder b = ParseFunction2(); Procedure s = b.GetProcedure(); // if (s == null) // { // Console.WriteLine("Error While Parsing Functions"); // return null; // } if (s != null) { if (prog.IsCompiledFunction(s.Name)) { Console.WriteLine("Warning : Duplicate function ....! " + s.Name); throw new CParserException(-1, "Duplicate Function..", SaveIndex()); } prog.Add(s); GetNext(); } else { error_state = true; while (GetNext() != TOKEN.TOK_FUNCTION) { if (Current_Token == TOKEN.ILLEGAL_TOKEN) { throw new CParserException(-100, "Compilation Error ", SaveIndex()); } } } } if (error_state == true) { throw new CParserException(-100, "Compilation Error ", SaveIndex()); } // // Convert the builder into a program // return(prog.GetProgram()); }