Doxygen
Loading...
Searching...
No Matches
condparser.h
Go to the documentation of this file.
1#ifndef CONDPARSER_H
2#define CONDPARSER_H
3
4/**
5 * Copyright (C) 1997-2015 by Dimitri van Heesch.
6 *
7 * Permission to use, copy, modify, and distribute this software and its
8 * documentation under the terms of the GNU General Public License is hereby
9 * granted. No representations are made about the suitability of this software
10 * for any purpose. It is provided "as is" without express or implied warranty.
11 * See the GNU General Public License for more details.
12 *
13 * Documents produced by Doxygen are derivative works derived from the
14 * input used in their production; they are not affected by this license.
15 *
16 * C++ Expression parser for ENABLED_SECTIONS in Doxygen
17 *
18 * Features used:
19 * Operators:
20 * && AND operator
21 * || OR operator
22 * ! NOT operator
23 */
24
25#include "qcstring.h"
26
28{
29 // public functions
30 public:
32 bool parse(const QCString &fileName,int lineNr,const QCString &expr);
33
34 // enumerations
35 private:
44 {
46 AND = 1,
49 };
50
51 // data
52 private:
53
54 QCString m_err; //!< error state
55 QCString m_expr; //!< holds the expression
56 const char *m_e; //!< points to a character in expr
57
58 QCString m_token; //!< holds the token
59 TOKENTYPE m_tokenType; //!< type of the token
60
61 // private functions
62 private:
63 void getToken();
64
65 bool parseLevel1();
66 bool parseLevel2();
67 bool parseLevel3();
68 bool parseVar();
69
70 bool evalOperator(const int opId, bool lhs, bool rhs);
71 bool evalVariable(const QCString &varName);
72 int getOperatorId(const QCString &opName);
73};
74
75#endif
76
QCString m_token
holds the token
Definition condparser.h:58
bool parseLevel2()
NOT.
QCString m_err
error state
Definition condparser.h:54
TOKENTYPE m_tokenType
type of the token
Definition condparser.h:59
bool evalVariable(const QCString &varName)
evaluate a variable
bool parseLevel1()
conditional operators AND and OR
void getToken()
Get next token in the current string expr.
QCString m_expr
holds the expression
Definition condparser.h:55
bool evalOperator(const int opId, bool lhs, bool rhs)
evaluate an operator for given values
const char * m_e
points to a character in expr
Definition condparser.h:56
bool parseVar()
bool parse(const QCString &fileName, int lineNr, const QCString &expr)
Copyright (C) 1997-2015 by Dimitri van Heesch.
bool parseLevel3()
parenthesized expression or variable
int getOperatorId(const QCString &opName)
returns the id of the given operator returns -1 if the operator is not recognized
This is an alternative implementation of QCString.
Definition qcstring.h:101