예제 #1
0
파일: Parser.cs 프로젝트: esfourteen/Asap2
        /// <summary>
        /// Parse the provided A2L file.
        /// </summary>
        /// <returns>true if all succeded with no fatal errors</returns>
        public Asap2File DoParse()
        {
            bool         status = false;
            Asap2Scanner scanner;
            Asap2Parser  parser;

            using (FileStream fs = File.Open(fileName, FileMode.Open))
            {
                using (BufferedStream bs = new BufferedStream(fs))
                {
                    scanner = new Asap2Scanner(bs, this.errorHandler);
                    parser  = new Asap2Parser(scanner, this.errorHandler);
                    try
                    {
                        status = parser.Parse();
                    }
                    catch (ParserErrorException e)
                    {
                        errorHandler.reportError(e.Message);
                        status = false;
                    }
                }
            }


            if (status)
            {
                return(parser.Asap2File);
            }
            else
            {
                return(null);
            }
        }
예제 #2
0
파일: Parser.cs 프로젝트: esfourteen/Asap2
        /// <summary>
        /// Parse the provided A2L file.
        /// </summary>
        /// <param name="stream">Data stream to parse.</param>
        /// <returns>true if all succeded with no fatal errors</returns>
        public Asap2File DoParse(Stream stream)
        {
            bool         status = false;
            Asap2Scanner scanner;
            Asap2Parser  parser;

            scanner = new Asap2Scanner(stream, this.errorHandler);
            parser  = new Asap2Parser(scanner, this.errorHandler);
            try
            {
                status = parser.Parse();
            }
            catch (ParserErrorException e)
            {
                errorHandler.reportError(e.Message);
                status = false;
            }

            if (status)
            {
                return(parser.Asap2File);
            }
            else
            {
                return(null);
            }
        }