edbee - Qt Editor Library v0.11.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
tmlanguageparser.h
Go to the documentation of this file.
1// edbee - Copyright (c) 2012-2025 by Rick Blommers and contributors
2// SPDX-License-Identifier: MIT
3
4#pragma once
5
6#include "edbee/exports.h"
7
8#include <QList>
9#include <QMap>
10#include <QStack>
11#include <QVariant>
12
13class QFile;
14class QIODevice;
15class QXmlStreamReader;
16
17namespace edbee {
18
19class TextGrammar;
21class TextGrammarRule;
22
25{
26public:
28 TextGrammar* parsePlist(QIODevice* device);
29 TextGrammar* parseJson(QIODevice* device);
30
31 TextGrammar* parse(QIODevice* device, bool json=false);
32 TextGrammar* parse(QFile& file);
33 TextGrammar* parse(const QString& fileName);
34
35 QString lastErrorMessage() const;
36
37protected:
38 void setLastErrorMessage( const QString& str );
39
40 void addCapturesToGrammarRule( TextGrammarRule* rule, QHash<QString,QVariant> captures, bool endCapture=false );
41 void addPatternsToGrammarRule( TextGrammarRule* rule, QList<QVariant> patterns );
42
43 TextGrammarRule* createGrammarRule(TextGrammar *grammar, const QVariant &data );
44 TextGrammar* createLanguage(QVariant& data );
45
46private:
47 QString lastErrorMessage_;
48};
49
50} // edbee
This class defines a single language grammar.
Definition textgrammar.h:124
This class is used to manage all 'grammers' used by the lexers.
Definition textgrammar.h:155
defines a single grammar rule
Definition textgrammar.h:24
TextGrammar * parse(QIODevice *device, bool json=false)
reads the content of a single file
Definition tmlanguageparser.cpp:81
TextGrammar * parsePlist(QIODevice *device)
Parses a PList (XML Grammar file definition)
Definition tmlanguageparser.cpp:41
QString lastErrorMessage() const
returns the last error message
Definition tmlanguageparser.cpp:28
void addCapturesToGrammarRule(TextGrammarRule *rule, QHash< QString, QVariant > captures, bool endCapture=false)
sets the captures
Definition tmlanguageparser.cpp:117
TextGrammarRule * createGrammarRule(TextGrammar *grammar, const QVariant &data)
creates a grammar rue
Definition tmlanguageparser.cpp:146
void setLastErrorMessage(const QString &str)
Sets the last error message.
Definition tmlanguageparser.cpp:34
TextGrammar * createLanguage(QVariant &data)
Definition tmlanguageparser.cpp:226
TextGrammar * parseJson(QIODevice *device)
Parses a JSON grammar file definition.
Definition tmlanguageparser.cpp:62
void addPatternsToGrammarRule(TextGrammarRule *rule, QList< QVariant > patterns)
Adds all patterns to the grammar rules.
Definition tmlanguageparser.cpp:136
TmLanguageParser()
Parses a textmate language.
Definition tmlanguageparser.cpp:23
#define EDBEE_EXPORT
Definition exports.h:15
QT Acessibility has an issue with reporting blank lines between elements lines. defining 'WINDOWS_EMP...
Definition commentcommand.cpp:20