apicompatanamdw/compatanalysercmd/headeranalyser/src/CPPParser.h
author shrivatsa
Mon, 27 Sep 2010 14:51:17 +0530
changeset 12 a0eee409ff14
parent 0 638b9c697799
permissions -rw-r--r--
Updates to CompatibilityAnalyser - The Tool should now work with Symbian^4 - Some minor bug fixes related to Qt headers in the Symbian Platform
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     1
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     8
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    11
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    12
* Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    13
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    14
* Description:  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    15
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    16
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    17
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    18
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    19
#ifndef __CPP_PARSER_H__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    20
#define __CPP_PARSER_H__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    21
#include "CmdGlobals.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    22
#ifdef __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    23
#pragma warning(disable:4786)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    24
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    25
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    26
#include <xercesc/dom/DOM.hpp>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    27
#include <iostream>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    28
#include <list>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    29
#include <string>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    30
#include <vector>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    31
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    32
#include "CmdGlobals.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    33
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    34
using namespace std;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    35
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    36
typedef vector<string> headervector;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    37
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    38
XERCES_CPP_NAMESPACE_USE
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    39
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    40
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    41
/**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    42
* The CPPParser provides interface for the GCCXML program for C++ parsing functionality
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    43
* It produces a XML document that the HeaderAnalyser interface receives as a input 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    44
* for BBC analysis. The result of the analysis from the HeaderAnalysis is also 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    45
* a XML document.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    46
*/ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    47
class CPPParser {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    48
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    49
// Construction / destruction
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    50
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    51
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    52
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    53
    * Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    54
    * @param epocroot root of the platform headers( baseline or current) 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    55
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    56
    CPPParser(string epocroot);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    57
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    58
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    59
    * Destructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    60
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    61
    ~CPPParser();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    62
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    63
// Interface methods
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    64
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    65
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    66
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    67
    * Parse the filename vectors into XML and eventually into a DOM format
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    68
    * @param aFilenames vector of filename to parse
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    69
    * @param aVersion version string 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    70
    * @param aPath header path
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    71
    * @param notRemovedFiles list of not removed files  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    72
    * @return pointer to DOMnode
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    73
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    74
    DOMNode* parse(const vector<string>& aFilenames, string aVersion, string aPath, list<string>& notRemovedFiles);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    75
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    76
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    77
    * Set baseline directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    78
    * @param aDir header path
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    79
    */   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    80
    void setBaselineDir(string aDir);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    81
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    82
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    83
    * Set forced headers.Specifies a file which is always included
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    84
    * first in generated temporary cpp file.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    85
    * @param aHeaders fors
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    86
    */   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    87
    void setForcedHeaders(const string& aHeaders);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    88
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    89
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    90
    * Set temporary directory to member variable
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    91
    * @param aTempDir reference to temp directory name 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    92
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    93
    void setTemp(const string& aTempDir);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    94
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    95
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    96
    * Get macro filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    97
    * @return name of the file containing all macros found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    98
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    99
    string getMacroFilename();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   100
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   101
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   102
    * Get compilation error file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   103
    * @return compilation error file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   104
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   105
    string getCompErrFile();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   106
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   107
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   108
    * Remove file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   109
    * @param file filename to remove
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   110
    * @param notRemovedFiles list of files that couldn't get removed
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   111
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   112
    static void RemoveFile(string file, list<string>& notRemovedFiles);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   113
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   114
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   115
// Helper functions
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   116
private:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   117
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   118
    * Converts a header file with given filename to an XML file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   119
    * (with same base filename and extension .xml).
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   120
    *
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   121
    * @param aAbsFilename filename to convert
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   122
    * @param aVersion version string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   123
    * @return 0 if the conversion succeeded
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   124
    * @exception Throw an exception on error 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   125
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   126
    int ConvertHToXML(string aAbsFilename, string aVersion);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   127
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   128
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   129
    * Reads in and parses an XML file with given filename. Set the 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   130
    * pointer to the document root (DOM Tree root).
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   131
    *
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   132
    * @param aAbsFilename  XML filename to parse
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   133
    * @return 0 if the parse succeeded
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   134
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   135
    int ExtractDOMFromXML(const string& aAbsFilename);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   136
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   137
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   138
    * Dump macros file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   139
    * @param mdumpfile nacro dumpfile
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   140
    * @param ifile 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   141
    * @param headers list of headers
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   142
    * @return 0 if success
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   143
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   144
    int DumpMacros(string mdumpfile, string ifile, vector<string>& headers);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   145
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   146
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   147
    * Preprocess header file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   148
    * @param aAbsFilename filename to remove
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   149
    * @param aVersion version name to parse
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   150
    * @param aHeaders vector of headers to preprocess
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   151
    * @return 0, if success
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   152
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   153
    int PreprocessH(string aAbsFilename, string aVersion, vector<string>& aHeaders );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   154
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   155
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   156
    * Opens header file as input, write findings to output file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   157
    * @param aFilename input filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   158
    * @param aVersion version name to handle
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   159
    * @return 0 if success
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   160
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   161
    int HandleExports(string aFilename, string aVersion);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   162
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   163
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   164
    * Replace exports
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   165
    * @param line line to process from input file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   166
    * @param processedline line processed
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   167
    * @return
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   168
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   169
    //int ReplaceExport(string line, string& processedline);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   170
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   171
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   172
    * Generate temporary CPP-file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   173
    * @param aFiles filename to remove
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   174
    * @param aVersion
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   175
    * @param aHeaders
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   176
    * @return
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   177
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   178
    string generateTempCPPFile(const vector<string>& aFiles, string aVersion, vector<string>& aHeaders );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   179
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   180
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   181
    * Get value of environment variable
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   182
    * @param aEnvVarName variable to get
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   183
    * @return value of the variable
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   184
    * @exception throw axeption if the variable vaue isn't found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   185
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   186
    char* getEnv(char* aEnvVarName);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   187
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   188
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   189
    * Append headers to file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   190
    * @param aHeaders reference to headerpaths
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   191
    * @param aFile the header file which the path is taken from
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   192
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   193
    void AppendHeader( vector<string>& aHeaders, string aFile );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   194
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   195
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   196
    * Generate GCXML command for prepocessing
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   197
    * @param currentDir current directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   198
    * @param epocRoot epocroot directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   199
    * @param inputFile to parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   200
    * @param outputFile to parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   201
    * @param aHeaders reference to headerpaths
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   202
    * @return commandline string to start parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   203
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   204
    string GeneratePreprocessCmd(const string& currentDir,const string& epocRoot,const string& inputFile,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   205
                             const string& outputFile, vector<string>& aHeaders );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   206
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   207
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   208
    * Generate GCXML command for prepocessing
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   209
    * @param currentDir current directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   210
    * @param epocRoot epocroot directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   211
    * @param inputFile to parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   212
    * @param outputFile to parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   213
    * @return commandline string to start parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   214
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   215
    string GenerateCompilationCmd(const string& currentDir,const string& epocRoot,const string& inputFile,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   216
                             const string& outputFile);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   217
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   218
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   219
    * Generate macro extraction command
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   220
    * @param currentDir current directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   221
    * @param epocRoot root directory of headers
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   222
    * @param inputFile to parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   223
    * @param outputFile to parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   224
    * @param aHeaders reference to headerpaths
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   225
    * @return commandline string to start parser
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   226
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   227
    string GenerateMacroExtract(const string& currentDir,const string& epocRoot,const string& inputFile,const string& outputFile,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   228
                             vector<string>& aHeaders );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   229
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   230
// Instance variables
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   231
private:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   232
    //! File name for input
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   233
    string                          iInputFilename;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   234
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   235
    //! File name for output
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   236
    string                          iOutputFilename;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   237
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   238
    //! Path where the XML output goes
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   239
    string                          iXMLOutputPath;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   240
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   241
    //! EPOC root path
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   242
    string                          iEpocRoot;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   243
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   244
    //! Working file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   245
    string                          iOriginalFilename;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   246
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   247
    //! String consisting of forced headers
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   248
    string                          iForcedHeaders;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   249
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   250
    //! Name of the temporary directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   251
    string                          iTempDir;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   252
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   253
    //! Name of the macrofile
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   254
    string							iMacroFilename;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   255
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   256
	//! Compilation error text
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   257
    string							iCompErrFile;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   258
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   259
    //! Pointer to DOMBuilder
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   260
    XERCES_CPP_NAMESPACE_QUALIFIER DOMBuilder*      iDOMParser;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   261
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   262
    //! Pointer to DOMDocument
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   263
    XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument*     iDOMDoc;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   264
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   265
    //! Pointer to DOM root node
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   266
    XERCES_CPP_NAMESPACE_QUALIFIER DOMNode*         iDOMRootElement;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   267
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   268
#endif