Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * This file is part of Hubbub.
  3.  * Licensed under the MIT License,
  4.  *                http://www.opensource.org/licenses/mit-license.php
  5.  * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org>
  6.  */
  7.  
  8. #ifndef hubbub_treebuilder_treebuilder_h_
  9. #define hubbub_treebuilder_treebuilder_h_
  10.  
  11. #include <stdbool.h>
  12. #include <inttypes.h>
  13.  
  14. #include <hubbub/errors.h>
  15. #include <hubbub/functypes.h>
  16. #include <hubbub/tree.h>
  17. #include <hubbub/types.h>
  18.  
  19. #include "tokeniser/tokeniser.h"
  20.  
  21. typedef struct hubbub_treebuilder hubbub_treebuilder;
  22.  
  23. /**
  24.  * Hubbub treebuilder option types
  25.  */
  26. typedef enum hubbub_treebuilder_opttype {
  27.         HUBBUB_TREEBUILDER_ERROR_HANDLER,
  28.         HUBBUB_TREEBUILDER_TREE_HANDLER,
  29.         HUBBUB_TREEBUILDER_DOCUMENT_NODE,
  30.         HUBBUB_TREEBUILDER_ENABLE_SCRIPTING
  31. } hubbub_treebuilder_opttype;
  32.  
  33. /**
  34.  * Hubbub treebuilder option parameters
  35.  */
  36. typedef union hubbub_treebuilder_optparams {
  37.         struct {
  38.                 hubbub_error_handler handler;
  39.                 void *pw;
  40.         } error_handler;                        /**< Error handling callback */
  41.  
  42.         hubbub_tree_handler *tree_handler;      /**< Tree handling callbacks */
  43.  
  44.         void *document_node;                    /**< The document node */
  45.  
  46.         bool enable_scripting;                  /**< Enable scripting */
  47. } hubbub_treebuilder_optparams;
  48.  
  49. /* Create a hubbub treebuilder */
  50. hubbub_error hubbub_treebuilder_create(hubbub_tokeniser *tokeniser,
  51.                 hubbub_allocator_fn alloc, void *pw,
  52.                 hubbub_treebuilder **treebuilder);
  53.  
  54. /* Destroy a hubbub treebuilder */
  55. hubbub_error hubbub_treebuilder_destroy(hubbub_treebuilder *treebuilder);
  56.  
  57. /* Configure a hubbub treebuilder */
  58. hubbub_error hubbub_treebuilder_setopt(hubbub_treebuilder *treebuilder,
  59.                 hubbub_treebuilder_opttype type,
  60.                 hubbub_treebuilder_optparams *params);
  61.  
  62. #endif
  63.  
  64.