5e5d862000-01-28Martin Stjernholm //! Variant of PHtml that parses only entities. //! //! This parser is the default for arguments. //! //! Created 2000-01-28 by Martin Stjernholm. //!
0923e92000-02-08Martin Stjernholm //! $Id: PEnt.pike,v 1.3 2000/02/08 06:24:43 mast Exp $
5e5d862000-01-28Martin Stjernholm  #pragma strict_types inherit RXML.PHtml; // Block these to avoid confusion. constant add_tag = 0; constant add_tags = 0; constant add_container = 0; constant add_containers = 0; this_program clone (RXML.Context ctx, RXML.Type type, RXML.TagSet tag_set) {
dddb442000-01-28Martin Stjernholm  return [object(this_program)] _low_clone (ctx, type, tag_set);
5e5d862000-01-28Martin Stjernholm } static void create ( RXML.Context ctx, RXML.Type type, RXML.TagSet tag_set) { _tag_set_parser_create (ctx, type, tag_set);
0923e92000-02-08Martin Stjernholm  array(RXML.TagSet) list = ({tag_set}); for (int i = 0; i < sizeof (list); i++) { array(RXML.TagSet) sublist = list[i]->imported; if (sizeof (sublist)) list = list[..i] + sublist + list[i + 1..]; } for (int i = sizeof (list) - 1; i >= 0; i--) if (list[i]->low_entities) add_entities (list[i]->low_entities);
5e5d862000-01-28Martin Stjernholm  mixed_mode (!type->free_text); lazy_entity_end (1); match_tag (0);
dddb442000-01-28Martin Stjernholm  _set_entity_callback (.utils.p_html_entity_cb); if (!type->free_text) _set_data_callback (.utils.return_empty_array);
5e5d862000-01-28Martin Stjernholm } // These have no effect since we don't parse tags. void add_runtime_tag (RXML.Tag tag) {} void remove_runtime_tag (string|RXML.Tag tag) {} #ifdef OBJ_COUNT_DEBUG string _sprintf() {return "RXML.PEnt(" + __count + ")";} #else string _sprintf() {return "RXML.PEnt";} #endif