diff options
| author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 | 
|---|---|---|
| committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 | 
| commit | 114a878c64ce6f8223cfd22d76a20eb16d177e5e (patch) | |
| tree | acaf47eb0fa12142d3896416a69e74cbf5a72242 /languages/cpp/debugger/mi/miparser.h | |
| download | tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.tar.gz tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.zip | |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'languages/cpp/debugger/mi/miparser.h')
| -rw-r--r-- | languages/cpp/debugger/mi/miparser.h | 82 | 
1 files changed, 82 insertions, 0 deletions
| diff --git a/languages/cpp/debugger/mi/miparser.h b/languages/cpp/debugger/mi/miparser.h new file mode 100644 index 00000000..524dba7c --- /dev/null +++ b/languages/cpp/debugger/mi/miparser.h @@ -0,0 +1,82 @@ +/*************************************************************************** + *   Copyright (C) 2004 by Roberto Raggi                                   * + *   roberto@kdevelop.org                                                  * + *                                                                         * + *   This program is free software; you can redistribute it and/or modify  * + *   it under the terms of the GNU Library General Public License as       * + *   published by the Free Software Foundation; either version 2 of the    * + *   License, or (at your option) any later version.                       * + *                                                                         * + *   This program is distributed in the hope that it will be useful,       * + *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * + *   GNU General Public License for more details.                          * + *                                                                         * + *   You should have received a copy of the GNU Library General Public     * + *   License along with this program; if not, write to the                 * + *   Free Software Foundation, Inc.,                                       * + *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * + ***************************************************************************/ +#ifndef MIPARSER_H +#define MIPARSER_H + +#include "milexer.h" +#include "gdbmi.h" + +#include <qstring.h> +#include <qvaluelist.h> + +/** +@author Roberto Raggi +*/ +class MIParser +{ +public: +    MIParser(); +    ~MIParser(); + +    GDBMI::Record *parse(FileSymbol *file); + +protected: // rules +    bool parseResultRecord(GDBMI::Record *&record); +    bool parsePrompt(GDBMI::Record *&record); +    bool parseStreamRecord(GDBMI::Record *&record); + +    bool parseResult(GDBMI::Result *&result); +    bool parseValue(GDBMI::Value *&value); +    bool parseTuple(GDBMI::Value *&value); +    bool parseList(GDBMI::Value *&value); + +    /** Creates new TupleValue object, writes its address +        into *value, parses a comma-separated set of values, +        and adds each new value into (*value)->results. +        If 'start' and 'end' are not zero, they specify +        start and end delimiter of the list. +        Parsing stops when we see 'end' character, or, if +        'end' is zero, at the end of input. +    */ +    bool parseCSV(GDBMI::TupleValue** value, +                  char start = 0, char end = 0); + +    /** @overload +        Same as above, but writes into existing tuple. +    */ +    bool parseCSV(GDBMI::TupleValue& value, +                  char start = 0, char end = 0); + + +    /** Parses a string literal and returns it. Advances +        the lexer past the literal. Processes C escape sequences +        in the string. +        @pre lex->lookAhead(0) == Token_string_literal +    */ +    QString parseStringLiteral(); + + + +private: +    MILexer lexer; +    TokenStream *lex; +}; + +#endif | 
