Beispiel #1
0
        public SXILParser(string aFileName, string aRootNodeName, SXILDocument aDocument)
        {
            iFileName     = aFileName;
            iDocument     = aDocument;
            iRootNodeName = aRootNodeName;
            //
            XmlReaderSettings settings = new XmlReaderSettings();

            settings.ConformanceLevel = ConformanceLevel.Auto;
            settings.IgnoreComments   = true;
            settings.CheckCharacters  = true;
            settings.IgnoreWhitespace = true;
            //
            iReader = XmlReader.Create(iFileName, settings);
            iXmlDocument.Load(iReader);
        }
Beispiel #2
0
        private SXILDocument CreateDocumentTree(string aFileName)
        {
            SXILDocument doc = new SXILDocument();

            // Read input file into document
            using (SXILParser parser = new SXILParser(aFileName, KInputFileDocumentRootNode, doc))
            {
                parser.CategoryAdd(KInputFileCategorySource, new SXILParserNodeFileSystem());
                parser.CategoryAdd(KInputFileCategoryDebugMetaData, new SXILParserNodeFileSystem());
                parser.CategoryAdd(KInputFileCategoryParameters,
                                   new SXILParserNodeCommand(KInputFileCommandNameAnalysis),
                                   new SXILParserNodeCommand(KInputFileCommandThread)
                                   );
                parser.CategoryAdd(KInputFileCategoryOutput, new SXILParserNodeFileSystem());
                parser.Parse();
            }

            return(doc);
        }
        private void ExtractData(SXILDocument aDocument)
        {
            foreach (SXILElement element in aDocument)
            {
                if (element is SXILElementCategory)
                {
                    SXILElementCategory category = (SXILElementCategory)element;
                    string name = category.Name.ToLower();
                    //
                    switch (name)
                    {
                    case KInputFileCategorySource:
                        ExtractFileList <CACmdLineFileSource>(iSources, category);
                        break;

                    case KInputFileCategoryDebugMetaData:
                        // The debug meta data engine doesn't support directories anymore
                        // so we have to expand all directories to files.
                        ExtractFileList <CACmdLineFSEntity>(iMetaData, category);
                        break;

                    case KInputFileCategoryParameters:
                        ExtractParameters(category);
                        break;

                    case KInputFileCategoryOutput:
                        ExtractOutput(category);
                        break;
                    }
                }
            }

            // We don't require debug meta data if performing a summary operation. Otherwise, we do.
            if (iMetaData.Count == 0 && iSinkParams.DetailLevel == CISinkSerializationParameters.TDetailLevel.EFull)
            {
                Trace("[CmdInput] ExtractData() - WARNING - no debug meta data supplied for full analysis.");
            }
        }
Beispiel #4
0
        public void Read(string aFileName)
        {
            Trace("[CmdInput] Read() - aFileName: " + aFileName);
            try
            {
                // First create the tree
                SXILDocument doc = CreateDocumentTree(aFileName);

                // Then convert it to the list of elements that we care about
                ExtractData(doc);
            }
            catch (HAUIException cmdLineException)
            {
                Trace("[CmdInput] Read() - HAUIException: " + cmdLineException.Message + " " + cmdLineException.StackTrace);
                throw cmdLineException;
            }
            catch (Exception generalException)
            {
                Trace("[CmdInput] Read() - generalException: " + generalException.Message + " " + generalException.StackTrace);
                throw new HAUIException("Error reading input xml file", generalException, HAUIException.KErrCommandLineArgumentsFileInvalid);
            }
            Trace("[CmdInput] Read() - read OK: " + aFileName);
        }
Beispiel #5
0
        private void ExtractData(SXILDocument aDocument)
        {
            foreach (SXILElement element in aDocument)
            {
                if (element is SXILElementCategory)
                {
                    SXILElementCategory category = (SXILElementCategory)element;
                    string name = category.Name.ToLower();
                    //
                    switch (name)
                    {
                    case KInputFileCategorySource:
                        ExtractFileList <HACmdLineFileSource>(iSources, category, true);
                        break;

                    case KInputFileCategoryDebugMetaData:
                        ExtractFileList <HACmdLineFSEntity>(iMetaData, category, false);
                        break;

                    case KInputFileCategoryParameters:
                        ExtractParameters(category);
                        break;

                    case KInputFileCategoryOutput:
                        ExtractOutput(category);
                        break;
                    }
                }
            }

            // We don't require debug meta data if performing a summary operation. Otherwise, we do.
            if (iMetaData.Count == 0)
            {
                Trace("[CmdInput] ExtractData() - no debug meta data supplied!");
                throw new HAUIException("Debug meta-data not present", HAUIException.KErrCommandLineDebugMetaDataMissing);
            }
        }