Пример #1
0
 def do_call(self, parser: BasicParser) -> Node:
     if parser.begin_tag(self.tagname):
         # subcontext
         parser.push_rule_nodes()
         res = self.pt(parser)
         parser.pop_rule_nodes()
         if res and parser.end_tag(self.tagname):
             tag = parser.get_tag(self.tagname)
             # no bindings, wrap it in a Node instance
             if type(res) is bool:
                 res = Node()
             # update node cache
             parser.tag_node(self.tagname, res)
             parser.rule_nodes[self.tagname] = res
             # forward nodes
             return res
     return False