def form(parser, token): p = TokenParser(token.contents) args = [] while p.more(): args.append(p.value()) body = parser.parse(('endform',)) parser.delete_first_token() return FormNode(body, *args)
def test_token_parsing(self): # Tests for TokenParser behavior in the face of quoted strings with # spaces. p = TokenParser("tag thevar|filter sometag") self.assertEqual(p.tagname, "tag") self.assertEqual(p.value(), "thevar|filter") self.assertTrue(p.more()) self.assertEqual(p.tag(), "sometag") self.assertFalse(p.more()) p = TokenParser('tag "a value"|filter sometag') self.assertEqual(p.tagname, "tag") self.assertEqual(p.value(), '"a value"|filter') self.assertTrue(p.more()) self.assertEqual(p.tag(), "sometag") self.assertFalse(p.more()) p = TokenParser("tag 'a value'|filter sometag") self.assertEqual(p.tagname, "tag") self.assertEqual(p.value(), "'a value'|filter") self.assertTrue(p.more()) self.assertEqual(p.tag(), "sometag") self.assertFalse(p.more())
def textarea(parser, token): p = TokenParser(token.contents) args = [p.value()] while p.more(): args.append(p.value()) return TextareaNode(*args)
def input_field(parser, token): p = TokenParser(token.contents) args = [p.value()] while p.more(): args.append(p.value()) return InputFieldNode(*args)