summaryrefslogtreecommitdiff
path: root/decoder/cfg_format.h
diff options
context:
space:
mode:
authorgraehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-08-11 01:02:02 +0000
committergraehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-08-11 01:02:02 +0000
commit88827bde7abd9745fb0437a299e0bb6ad96babe6 (patch)
treeea9a838d19f14c1fdf53f2711644c43d506888bd /decoder/cfg_format.h
parent1109095a09368ae29d6aa367334db6512b677f54 (diff)
only print cfg once
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@505 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'decoder/cfg_format.h')
-rwxr-xr-xdecoder/cfg_format.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/decoder/cfg_format.h b/decoder/cfg_format.h
index 10361804..1066c510 100755
--- a/decoder/cfg_format.h
+++ b/decoder/cfg_format.h
@@ -1,6 +1,7 @@
#ifndef CFG_FORMAT_H
#define CFG_FORMAT_H
+#include <iostream>
#include <string>
#include "wordid.h"
#include "feature_vector.h"
@@ -31,6 +32,26 @@ struct CFGFormat {
("nt_span",defaulted_value(&nt_span),"prefix A(i,j) for NT coming from hypergraph node with category A on span [i,j). this is after --nt_prefix if any")
;
}
+
+ void print(std::ostream &o) const {
+ o<<"[";
+ if (identity_scfg)
+ o<<"Identity SCFG ";
+ if (features)
+ o<<"+Features ";
+ if (logprob_feat)
+ o<<logprob_feat_name<<"(logprob) ";
+ if (nt_span)
+ o<<"named-NTs ";
+ if (cfg_comma_nt)
+ o<<",N ";
+ o << "CFG output format";
+ o<<"]";
+ }
+ friend inline std::ostream &operator<<(std::ostream &o,CFGFormat const& me) {
+ me.print(o); return o;
+ }
+
void Validate() { }
template<class CFG>
void print_source_nt(std::ostream &o,CFG const&cfg,int id,int position=1) const {
@@ -43,7 +64,8 @@ struct CFGFormat {
template <class CFG>
void print_nt_name(std::ostream &o,CFG const& cfg,int id) const {
o<<nt_prefix;
- cfg.print_nt_name(o,id);
+ if (nt_span)
+ cfg.print_nt_name(o,id);
o<<id;
}