1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
// file : xsd-frontend/semantic-graph/annotation.hxx
// copyright : Copyright (c) 2006-2014 Code Synthesis Tools CC
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_ANNOTATION_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_ANNOTATION_HXX
#include <xsd-frontend/semantic-graph/elements.hxx>
namespace XSDFrontend
{
namespace SemanticGraph
{
//
//
class Annotation;
class Annotates: public virtual Edge
{
public:
Annotation&
annotation ()
{
return *annotation_;
}
public:
Annotates (): annotation_ (0) {}
void
set_left_node (Annotation& a)
{
annotation_ = &a;
}
void
set_right_node (Node&) {}
void
set_right_node (Edge&) {}
private:
Annotation* annotation_;
};
//
//
class Annotation: public virtual Node
{
public:
String const&
documentation () const
{
return documentation_;
}
public:
Annotation (Path const& file,
unsigned long line,
unsigned long column,
String const& documentation)
: Node (file, line, column), documentation_ (documentation)
{
}
void
add_edge_left (Annotates&) {}
private:
String documentation_;
};
}
}
#endif // XSD_FRONTEND_SEMANTIC_GRAPH_ANNOTATION_HXX
|