summaryrefslogtreecommitdiff
path: root/src/core/parser/stack/OntologyHandler.hpp
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-03-04 14:48:44 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-03-04 14:48:44 +0100
commit11c6272abc2b34d861620b906bdee595674dca0f (patch)
tree3c5568c0653ade15d6f56078eb216418f0dade29 /src/core/parser/stack/OntologyHandler.hpp
parentd6d08ae2dfc31c583f172c74ef9e19b203776107 (diff)
parent2714f95ab3c8632686d24ff8d2abfc1f35dc5dd7 (diff)
Merge branch 'master' of somweyr.de:ousia
Diffstat (limited to 'src/core/parser/stack/OntologyHandler.hpp')
-rw-r--r--src/core/parser/stack/OntologyHandler.hpp133
1 files changed, 127 insertions, 6 deletions
diff --git a/src/core/parser/stack/OntologyHandler.hpp b/src/core/parser/stack/OntologyHandler.hpp
index fd62f78..0203805 100644
--- a/src/core/parser/stack/OntologyHandler.hpp
+++ b/src/core/parser/stack/OntologyHandler.hpp
@@ -145,11 +145,6 @@ public:
}
};
-class OntologyParent : public Node {
-public:
- using Node::Node;
-};
-
class OntologyParentHandler : public StaticHandler {
public:
using StaticHandler::StaticHandler;
@@ -187,6 +182,97 @@ public:
}
};
+class OntologySyntaxHandler : public StaticHandler {
+public:
+ using StaticHandler::StaticHandler;
+
+ bool startCommand(Variant::mapType &args) override;
+ void end() override;
+
+ static Handler *create(const HandlerData &handlerData)
+ {
+ return new OntologySyntaxHandler{handlerData};
+ }
+};
+
+class OntologyOpenCloseShortHandler : public StaticHandler {
+public:
+ TokenDescriptor *descr;
+
+ OntologyOpenCloseShortHandler(const HandlerData &handlerData);
+
+ bool startCommand(Variant::mapType &args) override;
+ bool data() override;
+ void end() override;
+
+ static Handler *create(const HandlerData &handlerData)
+ {
+ return new OntologyOpenCloseShortHandler{handlerData};
+ }
+};
+
+class OntologySyntaxTokenHandler : public StaticHandler {
+public:
+ using StaticHandler::StaticHandler;
+
+ bool startCommand(Variant::mapType &args) override;
+
+ static Handler *create(const HandlerData &handlerData)
+ {
+ return new OntologySyntaxTokenHandler{handlerData};
+ }
+};
+
+class OntologySyntaxWhitespaceHandler : public StaticHandler {
+public:
+ OntologySyntaxWhitespaceHandler(const HandlerData &handlerData);
+
+ Variant whitespaceModeStr;
+
+ bool startCommand(Variant::mapType &args) override;
+ bool data() override;
+ void end() override;
+
+ static Handler *create(const HandlerData &handlerData)
+ {
+ return new OntologySyntaxWhitespaceHandler{handlerData};
+ }
+};
+
+/* Internally used dummy node classes */
+
+class ParserOntologyParentNode : public Node {
+public:
+ using Node::Node;
+};
+
+class ParserSyntaxNode: public Node {
+public:
+ using Node::Node;
+};
+
+class ParserSyntaxTokenNode: public Node {
+public:
+ TokenDescriptor *descr;
+
+ ParserSyntaxTokenNode(Manager &mgr, TokenDescriptor *descr);
+};
+
+class ParserSyntaxOpenNode: public ParserSyntaxTokenNode {
+public:
+ using ParserSyntaxTokenNode::ParserSyntaxTokenNode;
+};
+
+class ParserSyntaxCloseNode: public ParserSyntaxTokenNode {
+public:
+ using ParserSyntaxTokenNode::ParserSyntaxTokenNode;
+};
+
+class ParserSyntaxShortNode: public ParserSyntaxTokenNode {
+public:
+ using ParserSyntaxTokenNode::ParserSyntaxTokenNode;
+};
+
namespace States {
/**
* State representing a "ontology" struct.
@@ -247,11 +333,46 @@ extern const State OntologyStructParentField;
* State representing a "fieldRef" tag within a "parent" tag.
*/
extern const State OntologyStructParentFieldRef;
+
+/**
+ * State representing a "syntax" tag within a structure, annotation or field.
+ */
+extern const State OntologySyntax;
+
+/**
+ * State representing a "open" tag within a "syntax" tag.
+ */
+extern const State OntologySyntaxOpen;
+
+/**
+ * State representing an "close" tag within a "syntax" tag.
+ */
+extern const State OntologySyntaxClose;
+
+/**
+ * State representing a "short" tag within a "syntax" tag.
+ */
+extern const State OntologySyntaxShort;
+
+/**
+ * State representing a "whitespace" tag within a "syntax" tag.
+ */
+extern const State OntologySyntaxWhitespace;
+
+/**
+ * State representing a token within a "start", "end" or "short" tag.
+ */
+extern const State OntologySyntaxToken;
}
}
namespace RttiTypes {
-extern const Rtti OntologyParent;
+extern const Rtti ParserOntologyParentNode;
+extern const Rtti ParserSyntaxNode;
+extern const Rtti ParserSyntaxTokenNode;
+extern const Rtti ParserSyntaxOpenNode;
+extern const Rtti ParserSyntaxCloseNode;
+extern const Rtti ParserSyntaxShortNode;
}
}
#endif /* _OUSIA_ONTOLOGY_HANDLER_HPP_ */