From 2e44343dbc73efc1d567570ef44c6cb167a96375 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Wed, 22 Aug 2012 00:46:24 -0400 Subject: [PATCH] Implement __iternodes__, __strip__, and __showtree__ for Argument. --- mwparserfromhell/nodes/argument.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/mwparserfromhell/nodes/argument.py b/mwparserfromhell/nodes/argument.py index dfe92cf..ce1b11b 100644 --- a/mwparserfromhell/nodes/argument.py +++ b/mwparserfromhell/nodes/argument.py @@ -41,6 +41,28 @@ class Argument(Node): return start + "|" + unicode(self.default) + "}}}" return start + "}}}" + def __iternodes__(self, getter): + yield None, self + for child in getter(self.name): + yield self.name, child + if self.default is not None: + for child in getter(self.default): + yield self.default, child + + def __strip__(self, normalize, collapse): + if self.default is not None: + return self.default.strip_code(normalize, collapse) + return None + + def __showtree__(self, write, get, mark): + write("{{{") + get(self.name) + if self.default is not None: + write(" | ") + mark() + get(self.default) + write("}}}") + @property def name(self): """The name of the argument to substitute."""