diff options
Diffstat (limited to 'src/piraha/Group.cc')
-rw-r--r-- | src/piraha/Group.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/piraha/Group.cc b/src/piraha/Group.cc index 11e1ac61..c236bf4c 100644 --- a/src/piraha/Group.cc +++ b/src/piraha/Group.cc @@ -80,6 +80,60 @@ void Group::dumpPerl(std::ostream &o,int indent) { o << "}" << std::endl; } +void Group::dumpPython(std::ostream& o) { + o << "VAR = "; + dumpPython(o,0); +} +void Group::dumpPython(std::ostream &o,int indent) { + for(int i=0;i<indent;i++) + o << ' '; + o << "{" << std::endl; + indent += 2; + for(int i=0;i<indent;i++) + o << ' '; + o << "'name' : \"" << getPatternName() << "\"," << std::endl; + if(children.size()==0) { + for(int i=0;i<indent;i++) + o << ' '; + o << "'children' : []," << std::endl; + for(int i=0;i<indent;i++) + o << ' '; + o << "'text' : \""; + for(int i=start_;i<end_;i++) + insertc(o,input[i]); + o << "\"," << std::endl; + } else { + for(int i=0;i<indent;i++) + o << ' '; + o << "'children' : [" << std::endl; + typedef vector<smart_ptr<Group> >::iterator group_iter; + for(group_iter gi = children.begin(); + gi != children.end(); + ++gi) { + (*gi)->dumpPython(o,indent+2); + for(int i=0;i<indent;i++) + o << ' '; + o << "," << std::endl; + } + for(int i=0;i<indent;i++) + o << ' '; + o << "]," << std::endl; + } + for(int i=0;i<indent;i++) + o << ' '; + o << "'start' : " << start() << "," << std::endl; + for(int i=0;i<indent;i++) + o << ' '; + o << "'end' : " << end() << "," << std::endl; + for(int i=0;i<indent;i++) + o << ' '; + o << "'line' : " << line() << "," << std::endl; + indent -= 2; + for(int i=0;i<indent;i++) + o << ' '; + o << "}" << std::endl; +} + std::string Group::substring() { std::string sub; for(int i=start_;i<end_;i++) { |