My Project
OSgLParserData.h
Go to the documentation of this file.
1 /* $Id: OSgLParserData.h 2698 2009-06-09 04:14:07Z kmartin $ */
14 #ifndef OSGLPARSERDATA_H
15 #define OSGLPARSERDATA_H
16 
17 #include "OSGeneral.h"
18 #include "OSMatrix.h"
19 
20 #include <stdio.h>
21 #include <string>
22 
23 
24 
34 {
35 public:
36 
41 
42  double* osglDblArray;
44 
46  std::string fileName;
47  std::string source;
48  std::string fileCreator;
49  std::string licence;
54 
56  OSgLParserData( );
57 
58  //** the OSgLParserData class destructor */
59  ~OSgLParserData() ;
60 
61 
65  void* scanner;
66 
70  char *errorText;
71 
75  std::string parser_errors;
76 
80 
83 
88 
93 
96 
99 
102 
104  std::vector<MatrixNode*> mtxConstructorVec;
105  std::vector<MatrixNode*> mtxBlocksVec;
106  std::vector<MatrixNode*> mtxBlkVec;
107  std::vector<int> nBlocksVec;
108 
113  std::vector<int*> rowOffsets;
114  std::vector<int*> colOffsets;
115 
138 
158 
179 
188  double coef;
189  double constant;
190  int idx;
191  int incr;
195  int mult;
199 
223 
225  std::string category;
226  std::string conType;
227  std::string description;
228  std::string enumType;
229  std::string matrixConType;
230  std::string matrixName;
231  std::string matrixObjType;
232  std::string matrixType;
233  std::string matrixVarType;
234  std::string name;
235  std::string objType;
236  bool rowMajor;
237  std::string shape;
238  std::string solver;
239  std::string symmetry;
240  std::string type;
241  std::string unit;
242  std::string value;
243  std::string valueType;
244  std::string varType;
245 };//OSgLParserData
246 
248 {
249  if (osglData->osglIntArray != NULL)
250  delete[] osglData->osglIntArray;
251  osglData->osglIntArray = NULL;
252 }//end osgl_empty_vectors
253 
254 
255 #endif /*OSGLPARSERDATA_H_*/
OSgLParserData * osglData
void osgl_empty_vectors(OSgLParserData *osglData)
a generic class from which we derive matrix constructors (BaseMatrix, MatrixElements,...
Definition: OSMatrix.h:51
a data structure to represent a matrix object (derived from MatrixType)
Definition: OSMatrix.h:2186
this class extends OSMatrix for use, e.g., in the matrixCon section of OSoL and OSrL
Definition: OSMatrix.h:2446
this class extends OSMatrix for use, e.g., in the matrixObj section of OSoL and OSrL
Definition: OSMatrix.h:2392
this class extends OSMatrix for use, e.g., in the matrixVar section of OSoL and OSrL
Definition: OSMatrix.h:2337
The OSgLParserData Class.
double scalarMultiplier
std::string fileCreator
bool numberOfMatrixConPresent
int * osglIntArray
data structure to process an IntVector and hold the data temporarily
std::vector< int > nBlocksVec
std::string matrixConType
std::vector< MatrixNode * > mtxBlocksVec
bool numberOfObjectivesPresent
std::string licence
bool targetMatrixFirstRowPresent
bool suppressFurtherErrorMessages
std::string matrixType
std::string conType
std::string value
void * scanner
scanner is used to store data in a reentrant lexer we use this to pass an OSgLParserData object to th...
std::string valueType
std::string fileName
data structure to process a GeneralFileHeader and hold the data temporarily
bool numberOfColumnsPresent
bool numberOfBlocksPresent
Data elements for parsing number-valued attributes and elements.
std::string symmetry
bool numberOfValuesPresent
bool numberOfConIdxPresent
std::string matrixVarType
double * osglDblArray
std::string solver
std::vector< int * > colOffsets
MatrixNode * tempC
This matrix constructor is needed in order to properly push the constructor vector.
int * matrixConIndexes
bool numberOfConstraintsPresent
bool numberOfObjIdxPresent
std::string matrixObjType
std::string name
bool baseMatrixStartRowPresent
OSMatrix ** matrix
We need to hold an array of <matrix> elements temporarily.
int matrixCounter
We also need to keep track locally of the number of matrices.
int * matrixObjIndexes
std::string type
bool baseTransposePresent
Data elements for parsing string-valued attributes and text elements.
std::vector< int * > rowOffsets
Vectors to hold rowOffset and colOffset arrays in a place where they are easily accessible while the ...
int nonzeroCounter
Linear matrices need a counter to count the number of terms within each element.
int * matrixVarIndexes
In order to use synergies in the parser, we store matrixXXXIdx in a separate vector.
std::string objType
bool scalarMultiplierPresent
OSMatrixWithMatrixVarIdx ** matrixWithMatrixVarIdx
There are also other variants of these ...
OSgLParserData()
the OSgLParserData class constructor
std::vector< MatrixNode * > mtxBlkVec
std::string parser_errors
used to accumulate error message so the parser does not die on the first error encountered
std::string description
bool baseMatrixEndColPresent
std::string varType
bool numberOfVariablesPresent
bool baseMatrixEndRowPresent
std::string category
bool numberOfMatrixVarPresent
bool numberOfMatricesPresent
bool numberOfEnumerationsPresent
bool ignoreDataAfterErrors
two booleans to govern the behavior after an error has been encountered
bool targetMatrixFirstColPresent
std::string unit
char * errorText
if the parser finds invalid text it is held here and we delete if the file was not valid
bool baseMatrixStartColPresent
std::string source
std::vector< MatrixNode * > mtxConstructorVec
Several vectors to process the matrix nodes into the right order.
std::string shape
std::string matrixName
bool numberOfMatrixObjPresent
std::string enumType
OSMatrixWithMatrixObjIdx ** matrixWithMatrixObjIdx
bool numberOfVarIdxPresent
OSMatrixWithMatrixConIdx ** matrixWithMatrixConIdx