summaryrefslogtreecommitdiff
path: root/src/piraha/Group.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/piraha/Group.cc')
-rw-r--r--src/piraha/Group.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/piraha/Group.cc b/src/piraha/Group.cc
new file mode 100644
index 00000000..732a637a
--- /dev/null
+++ b/src/piraha/Group.cc
@@ -0,0 +1,39 @@
+#include "Piraha.hpp"
+
+void Group::dump(int indent) {
+ for(int i=0;i<indent;i++)
+ std::cout << ' ';
+ std::cout << pattern << ": ";
+ if(children.size()==0) {
+ for(int i=start_;i<end_;i++)
+ std::cout << input[i];
+ }
+ std::cout << std::endl;
+ typedef vector<smart_ptr<Group> >::iterator group_iter;
+ for(group_iter gi = children.begin();
+ gi != children.end();
+ ++gi) {
+ (*gi)->dump(indent+2);
+ }
+}
+
+std::string Group::substring() {
+ std::string sub;
+ for(int i=start_;i<end_;i++) {
+ sub += input[i];
+ }
+ return sub;
+}
+
+std::string Group::getPatternName() {
+ return pattern;
+}
+
+int Group::line() {
+ int line = 1;
+ for(int i=0;i<start_;i++) {
+ if(input[i] == '\n')
+ line++;
+ }
+ return line;
+}