summaryrefslogtreecommitdiffstats
path: root/akonadish/syntaxtree.h
diff options
context:
space:
mode:
authorAaron Seigo <aseigo@kde.org>2015-12-24 10:22:07 +0100
committerAaron Seigo <aseigo@kde.org>2015-12-24 10:22:07 +0100
commit35f0ddf67c629ce9efaa1ba893afcb2921a251a2 (patch)
tree5875633a3a9e944ca2a98c6cfc169335ac0991ab /akonadish/syntaxtree.h
parent17ea319fa8cbdf36396a4a5a68853857ca6ac51f (diff)
downloadsink-35f0ddf67c629ce9efaa1ba893afcb2921a251a2.tar.gz
sink-35f0ddf67c629ce9efaa1ba893afcb2921a251a2.zip
REGISTER_SYNTAX for automagic adding of syntax
a fun abuse of static initialization and std::function
Diffstat (limited to 'akonadish/syntaxtree.h')
-rw-r--r--akonadish/syntaxtree.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/akonadish/syntaxtree.h b/akonadish/syntaxtree.h
index 77f52af..6fdf2b9 100644
--- a/akonadish/syntaxtree.h
+++ b/akonadish/syntaxtree.h
@@ -57,6 +57,7 @@ public:
57 57
58 static SyntaxTree *self(); 58 static SyntaxTree *self();
59 59
60 int registerSyntax(std::function<Syntax::List()> f);
60 Syntax::List syntax() const; 61 Syntax::List syntax() const;
61 Command match(const QStringList &commands) const; 62 Command match(const QStringList &commands) const;
62 Syntax::List nearestSyntax(const QStringList &words, const QString &fragment) const; 63 Syntax::List nearestSyntax(const QStringList &words, const QString &fragment) const;
@@ -73,3 +74,4 @@ private:
73 static SyntaxTree *s_module; 74 static SyntaxTree *s_module;
74}; 75};
75 76
77#define REGISTER_SYNTAX(name) static const int theTrickFor##name = SyntaxTree::self()->registerSyntax(&name::syntax);