diff options
Diffstat (limited to 'decoder/nt_span.h')
-rwxr-xr-x | decoder/nt_span.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/decoder/nt_span.h b/decoder/nt_span.h new file mode 100755 index 00000000..46234b07 --- /dev/null +++ b/decoder/nt_span.h @@ -0,0 +1,30 @@ +#ifndef NT_SPAN_H +#define NT_SPAN_H + +#include <iostream> +#include "wordid.h" +#include "tdict.h" + +struct Span { + int l,r; + Span() : l(-1) { } + friend inline std::ostream &operator<<(std::ostream &o,Span const& s) { + if (s.l<0) + return o; + return o<<'<'<<s.l<<','<<s.r<<'>'; + } +}; + +struct NTSpan { + Span s; + WordID nt; // awkward: this is a positive index, used in TD. but represented as negative in mixed terminal/NT space in rules/hgs. + NTSpan() : nt(0) { } + // prints as possibly empty name (whatever you set of nt,s will show) + friend inline std::ostream &operator<<(std::ostream &o,NTSpan const& t) { + if (t.nt>0) + o<<TD::Convert(t.nt); + return o << t.s; + } +}; + +#endif |