Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67735 - trunk/tools/quickbook/src
From: dnljms_at_[hidden]
Date: 2011-01-06 18:20:28


Author: danieljames
Date: 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
New Revision: 67735
URL: http://svn.boost.org/trac/boost/changeset/67735

Log:
Call things inside square brackets 'elements'.

It doesn't quite fit for section markup, but 'markup' was a terrible name (it's
all markup).

Added:
   trunk/tools/quickbook/src/block_element_grammar.cpp
      - copied, changed from r67734, /trunk/tools/quickbook/src/block_markup_grammar.cpp
   trunk/tools/quickbook/src/phrase_element_grammar.cpp
      - copied, changed from r67734, /trunk/tools/quickbook/src/phrase_markup_grammar.cpp
Removed:
   trunk/tools/quickbook/src/block_markup_grammar.cpp
   trunk/tools/quickbook/src/phrase_markup_grammar.cpp
Text files modified:
   trunk/tools/quickbook/src/Jamfile.v2 | 4 ++--
   trunk/tools/quickbook/src/block_element_grammar.cpp | 6 +++---
   trunk/tools/quickbook/src/grammar.cpp | 4 ++--
   trunk/tools/quickbook/src/grammar_impl.hpp | 4 ++--
   trunk/tools/quickbook/src/main_grammar.cpp | 20 ++++++++++----------
   trunk/tools/quickbook/src/phrase_element_grammar.cpp | 6 +++---
   6 files changed, 22 insertions(+), 22 deletions(-)

Modified: trunk/tools/quickbook/src/Jamfile.v2
==============================================================================
--- trunk/tools/quickbook/src/Jamfile.v2 (original)
+++ trunk/tools/quickbook/src/Jamfile.v2 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
@@ -32,8 +32,8 @@
     syntax_highlight.cpp
     grammar.cpp
     main_grammar.cpp
- block_markup_grammar.cpp
- phrase_markup_grammar.cpp
+ block_element_grammar.cpp
+ phrase_element_grammar.cpp
     doc_info_grammar.cpp
     /boost//program_options
     /boost//filesystem

Copied: trunk/tools/quickbook/src/block_element_grammar.cpp (from r67734, /trunk/tools/quickbook/src/block_markup_grammar.cpp)
==============================================================================
--- /trunk/tools/quickbook/src/block_markup_grammar.cpp (original)
+++ trunk/tools/quickbook/src/block_element_grammar.cpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
@@ -19,7 +19,7 @@
 {
     namespace cl = boost::spirit::classic;
 
- struct block_markup_grammar_local
+ struct block_element_grammar_local
     {
         cl::rule<scanner>
                         h, h1, h2, h3, h4, h5, h6, blurb, blockquote,
@@ -34,11 +34,11 @@
                         element_id, element_id_1_5, element_id_1_6;
     };
 
- void quickbook_grammar::impl::init_block_markup()
+ void quickbook_grammar::impl::init_block_elements()
     {
         using detail::var;
 
- block_markup_grammar_local& local = store_.create();
+ block_element_grammar_local& local = store_.create();
 
         local.element_id =
                 ':'

Deleted: trunk/tools/quickbook/src/block_markup_grammar.cpp
==============================================================================
--- trunk/tools/quickbook/src/block_markup_grammar.cpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
+++ (empty file)
@@ -1,358 +0,0 @@
-/*=============================================================================
- Copyright (c) 2002 2004 2006Joel de Guzman
- Copyright (c) 2004 Eric Niebler
- http://spirit.sourceforge.net/
-
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-#include "utils.hpp"
-#include "actions_class.hpp"
-#include "grammar_impl.hpp"
-#include <boost/spirit/include/classic_assign_actor.hpp>
-#include <boost/spirit/include/classic_if.hpp>
-#include <boost/spirit/include/classic_clear_actor.hpp>
-
-namespace quickbook
-{
- namespace cl = boost::spirit::classic;
-
- struct block_markup_grammar_local
- {
- cl::rule<scanner>
- h, h1, h2, h3, h4, h5, h6, blurb, blockquote,
- warning, caution, important, note, tip,
- inner_phrase, def_macro,
- table, table_row, variablelist,
- varlistentry, varlistterm, varlistitem, table_cell,
- preformatted, begin_section, end_section,
- xinclude, include,
- template_, template_id, template_formal_arg,
- template_body, identifier, import,
- element_id, element_id_1_5, element_id_1_6;
- };
-
- void quickbook_grammar::impl::init_block_markup()
- {
- using detail::var;
-
- block_markup_grammar_local& local = store_.create();
-
- local.element_id =
- ':'
- >>
- (
- cl::if_p(qbk_since(105u)) [space]
- >> (+(cl::alnum_p | '_')) [cl::assign_a(actions.element_id)]
- | cl::eps_p [actions.element_id_warning]
- [cl::assign_a(actions.element_id)]
- )
- | cl::eps_p [cl::assign_a(actions.element_id)]
- ;
-
- local.element_id_1_5 =
- cl::if_p(qbk_since(105u)) [
- local.element_id
- ]
- .else_p [
- cl::eps_p [cl::assign_a(actions.element_id)]
- ]
- ;
-
- local.element_id_1_6 =
- cl::if_p(qbk_since(106u)) [
- local.element_id
- ]
- .else_p [
- cl::eps_p [cl::assign_a(actions.element_id)]
- ]
- ;
-
- block_keyword_rules.add
- ("section", &local.begin_section)
- ("endsect", &local.end_section)
- ;
-
- local.begin_section =
- space
- >> local.element_id
- >> space
- >> local.inner_phrase [actions.begin_section]
- ;
-
- local.end_section =
- cl::eps_p [actions.end_section]
- ;
-
- block_keyword_rules.add
- ("heading", &local.h)
- ("h1", &local.h1)
- ("h2", &local.h2)
- ("h3", &local.h3)
- ("h4", &local.h4)
- ("h5", &local.h5)
- ("h6", &local.h6)
- ;
-
- local.h = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h];
- local.h1 = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h1];
- local.h2 = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h2];
- local.h3 = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h3];
- local.h4 = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h4];
- local.h5 = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h5];
- local.h6 = space >> local.element_id_1_6 >> space >> local.inner_phrase [actions.h6];
-
- static const bool true_ = true;
- static const bool false_ = false;
-
- block_keyword_rules.add("blurb", &local.blurb);
-
- local.blurb =
- actions.scoped_block[inside_paragraph]
- [actions.blurb]
- ;
-
- block_symbol_rules.add
- (":", &local.blockquote)
- ;
-
- local.blockquote =
- blank >> actions.scoped_block[inside_paragraph]
- [actions.blockquote]
- ;
-
- block_keyword_rules.add
- ("warning", &local.warning)
- ("caution", &local.caution)
- ("important", &local.important)
- ("note", &local.note)
- ("tip", &local.tip)
- ;
-
- local.warning =
- actions.scoped_block[inside_paragraph]
- [actions.warning]
- ;
-
- local.caution =
- actions.scoped_block[inside_paragraph]
- [actions.caution]
- ;
-
- local.important =
- actions.scoped_block[inside_paragraph]
- [actions.important]
- ;
-
- local.note =
- actions.scoped_block[inside_paragraph]
- [actions.note]
- ;
-
- local.tip =
- actions.scoped_block[inside_paragraph]
- [actions.tip]
- ;
-
- block_keyword_rules.add
- ("pre", &local.preformatted)
- ;
-
- local.preformatted =
- space
- >> !eol
- >> actions.set_no_eols[phrase] [actions.preformatted]
- ;
-
- block_keyword_rules.add
- ("def", &local.def_macro)
- ;
-
- local.def_macro =
- space
- >> macro_identifier [actions.macro_identifier]
- >> blank >> phrase [actions.macro_definition]
- ;
-
- local.identifier =
- (cl::alpha_p | '_') >> *(cl::alnum_p | '_')
- ;
-
- local.template_id =
- local.identifier | (cl::punct_p - (cl::ch_p('[') | ']'))
- ;
-
- block_keyword_rules.add
- ("template", &local.template_)
- ;
-
- local.template_ =
- space
- >> local.template_id [cl::assign_a(actions.template_identifier)]
- [cl::clear_a(actions.template_info)]
- >>
- !(
- space >> '['
- >> *(
- space
- >> local.template_id [cl::push_back_a(actions.template_info)]
- )
- >> space >> ']'
- )
- >> ( cl::eps_p(*cl::blank_p >> cl::eol_p)
- [cl::assign_a(actions.template_block, true_)]
- | cl::eps_p [cl::assign_a(actions.template_block, false_)]
- )
- >> local.template_body [actions.template_body]
- ;
-
- local.template_body =
- *(('[' >> local.template_body >> ']') | (cl::anychar_p - ']'))
- >> cl::eps_p(space >> ']')
- >> space
- ;
-
- block_keyword_rules.add
- ("variablelist", &local.variablelist)
- ;
-
- local.variablelist =
- (cl::eps_p(*cl::blank_p >> cl::eol_p) | space)
- >> (*(cl::anychar_p - eol)) [cl::assign_a(actions.table_title)]
- >> (+eol) [actions.output_pre]
- >> *local.varlistentry
- >> cl::eps_p [actions.variablelist]
- ;
-
- local.varlistentry =
- space
- >> cl::ch_p('[') [actions.start_varlistentry]
- >>
- (
- (
- local.varlistterm
- >> ( actions.scoped_block [+local.varlistitem]
- [actions.varlistitem]
- | cl::eps_p [actions.error]
- )
- >> cl::ch_p(']') [actions.end_varlistentry]
- >> space
- )
- | cl::eps_p [actions.error]
- )
- ;
-
- local.varlistterm =
- space
- >> cl::ch_p('[') [actions.start_varlistterm]
- >>
- (
- (
- phrase
- >> cl::ch_p(']') [actions.end_varlistterm]
- >> space
- )
- | cl::eps_p [actions.error]
- )
- ;
-
- local.varlistitem =
- space
- >> cl::ch_p('[')
- >>
- (
- (
- inside_paragraph
- >> cl::ch_p(']')
- >> space
- )
- | cl::eps_p [actions.error]
- )
- ;
-
- block_keyword_rules.add
- ("table", &local.table)
- ;
-
- local.table =
- (cl::eps_p(*cl::blank_p >> cl::eol_p) | space)
- >> local.element_id_1_5
- >> (cl::eps_p(*cl::blank_p >> cl::eol_p) | space)
- >> (*(cl::anychar_p - eol)) [cl::assign_a(actions.table_title)]
- >> (+eol) [actions.output_pre]
- >> *local.table_row
- >> cl::eps_p [actions.table]
- ;
-
- local.table_row =
- space
- >> cl::ch_p('[') [actions.start_row]
- >>
- (
- (
- *local.table_cell
- >> cl::ch_p(']') [actions.end_row]
- >> space
- )
- | cl::eps_p [actions.error]
- )
- ;
-
- local.table_cell =
- space
- >> cl::ch_p('[')
- >> ( actions.scoped_block [
- inside_paragraph
- >> cl::ch_p(']')
- >> space
- ] [actions.cell]
- | cl::eps_p [actions.error]
- )
- ;
-
- block_keyword_rules.add
- ("xinclude", &local.xinclude)
- ("import", &local.import)
- ("include", &local.include)
- ;
-
- extended_phrase_keyword_rules.add
- ("xinclude", &local.xinclude)
- ("import", &local.import)
- ("include", &local.include)
- ;
-
- local.xinclude =
- space
- >> (*(cl::anychar_p - phrase_end))
- [actions.xinclude]
- ;
-
- local.import =
- space
- >> (*(cl::anychar_p - phrase_end))
- [actions.import]
- ;
-
- local.include =
- space
- >>
- !(
- ':'
- >> (*((cl::alnum_p | '_') - cl::space_p))
- [cl::assign_a(actions.include_doc_id)]
- >> space
- )
- >> (*(cl::anychar_p - phrase_end))
- [actions.include]
- ;
-
- local.inner_phrase =
- cl::eps_p [actions.inner_phrase_pre]
- >> phrase
- >> cl::eps_p [actions.inner_phrase_post]
- ;
- }
-}

Modified: trunk/tools/quickbook/src/grammar.cpp
==============================================================================
--- trunk/tools/quickbook/src/grammar.cpp (original)
+++ trunk/tools/quickbook/src/grammar.cpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
@@ -33,8 +33,8 @@
         , store_()
     {
         init_main();
- init_block_markup();
- init_phrase_markup();
+ init_block_elements();
+ init_phrase_elements();
         init_doc_info();
     }
 }

Modified: trunk/tools/quickbook/src/grammar_impl.hpp
==============================================================================
--- trunk/tools/quickbook/src/grammar_impl.hpp (original)
+++ trunk/tools/quickbook/src/grammar_impl.hpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
@@ -60,8 +60,8 @@
     private:
 
         void init_main();
- void init_block_markup();
- void init_phrase_markup();
+ void init_block_elements();
+ void init_phrase_elements();
         void init_doc_info();
     };
 }

Modified: trunk/tools/quickbook/src/main_grammar.cpp
==============================================================================
--- trunk/tools/quickbook/src/main_grammar.cpp (original)
+++ trunk/tools/quickbook/src/main_grammar.cpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
@@ -60,10 +60,10 @@
     {
         cl::rule<scanner>
                         top_level, blocks, paragraph_separator,
- block_markup, block_markup_start,
+ block_element, block_element_start,
                         code, code_line, blank_line, hr,
                         list, ordered_list, list_item,
- phrase_markup, extended_phrase_markup,
+ phrase_element, extended_phrase_element,
                         simple_phrase_end,
                         escape,
                         inline_code, simple_format,
@@ -100,7 +100,7 @@
         local.top_level
             = local.blocks
>> *(
- local.block_markup >> !(+eol >> local.blocks)
+ local.block_element >> !(+eol >> local.blocks)
                 | local.paragraph_separator >> local.blocks
                 | common
                 | cl::space_p [actions.space_char]
@@ -127,8 +127,8 @@
>> +eol
             ;
 
- local.block_markup
- = local.block_markup_start [actions.inside_paragraph]
+ local.block_element
+ = local.block_element_start [actions.inside_paragraph]
>> ( local.block_keyword_rule
>> ( (space >> ']')
                     | cl::eps_p [actions.error]
@@ -137,7 +137,7 @@
                 )
             ;
 
- local.block_markup_start
+ local.block_element_start
             = '[' >> space
>> ( block_keyword_rules [detail::assign_rule(local.block_keyword_rule)]
>> (cl::eps_p - (cl::alnum_p | '_'))
@@ -184,7 +184,7 @@
 
         common =
                 local.macro
- | local.phrase_markup
+ | local.phrase_element
             | local.code_block
             | local.inline_code
             | local.simple_format
@@ -328,7 +328,7 @@
             ;
 
         extended_phrase =
- *( local.extended_phrase_markup
+ *( local.extended_phrase_element
             | common
             | (cl::anychar_p - phrase_end) [actions.plain_char]
             )
@@ -341,7 +341,7 @@
             )) [actions.inside_paragraph]
             ;
 
- local.phrase_markup
+ local.phrase_element
             = '['
>> space
>> ( phrase_keyword_rules [detail::assign_rule(local.phrase_keyword_rule)]
@@ -355,7 +355,7 @@
>> ']'
             ;
 
- local.extended_phrase_markup
+ local.extended_phrase_element
             = '['
>> space
>> extended_phrase_keyword_rules [detail::assign_rule(local.block_keyword_rule)]

Copied: trunk/tools/quickbook/src/phrase_element_grammar.cpp (from r67734, /trunk/tools/quickbook/src/phrase_markup_grammar.cpp)
==============================================================================
--- /trunk/tools/quickbook/src/phrase_markup_grammar.cpp (original)
+++ trunk/tools/quickbook/src/phrase_element_grammar.cpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
@@ -20,7 +20,7 @@
 {
     namespace cl = boost::spirit::classic;
 
- struct phrase_markup_grammar_local
+ struct phrase_element_grammar_local
     {
         cl::rule<scanner>
                         image,
@@ -34,11 +34,11 @@
                         ;
     };
 
- void quickbook_grammar::impl::init_phrase_markup()
+ void quickbook_grammar::impl::init_phrase_elements()
     {
         using detail::var;
 
- phrase_markup_grammar_local& local = store_.create();
+ phrase_element_grammar_local& local = store_.create();
 
         phrase_symbol_rules.add
             ("?", &local.cond_phrase)

Deleted: trunk/tools/quickbook/src/phrase_markup_grammar.cpp
==============================================================================
--- trunk/tools/quickbook/src/phrase_markup_grammar.cpp 2011-01-06 18:20:25 EST (Thu, 06 Jan 2011)
+++ (empty file)
@@ -1,252 +0,0 @@
-/*=============================================================================
- Copyright (c) 2002 2004 2006 Joel de Guzman
- Copyright (c) 2004 Eric Niebler
- http://spirit.sourceforge.net/
-
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-#include "grammar_impl.hpp"
-#include "actions_class.hpp"
-#include "utils.hpp"
-#include <boost/spirit/include/classic_core.hpp>
-#include <boost/spirit/include/classic_assign_actor.hpp>
-#include <boost/spirit/include/classic_clear_actor.hpp>
-#include <boost/spirit/include/classic_if.hpp>
-
-namespace quickbook
-{
- namespace cl = boost::spirit::classic;
-
- struct phrase_markup_grammar_local
- {
- cl::rule<scanner>
- image,
- bold, italic, underline, teletype,
- strikethrough, url, funcref, classref,
- memberref, enumref, macroref, headerref, conceptref, globalref,
- anchor, link,
- source_mode_cpp, source_mode_python, source_mode_teletype,
- quote, footnote, replaceable,
- cond_phrase
- ;
- };
-
- void quickbook_grammar::impl::init_phrase_markup()
- {
- using detail::var;
-
- phrase_markup_grammar_local& local = store_.create();
-
- phrase_symbol_rules.add
- ("?", &local.cond_phrase)
- ;
-
- local.cond_phrase =
- blank
- >> macro_identifier [actions.cond_phrase_pre]
- >> actions.scoped_cond_phrase[extended_phrase]
- ;
-
- phrase_symbol_rules.add
- ("$", &local.image)
- ;
-
- local.image =
- blank [cl::clear_a(actions.attributes)]
- >> cl::if_p(qbk_since(105u)) [
- (+(
- *cl::space_p
- >> +(cl::anychar_p - (cl::space_p | phrase_end | '['))
- )) [cl::assign_a(actions.image_fileref)]
- >> hard_space
- >> *(
- '['
- >> (*(cl::alnum_p | '_')) [cl::assign_a(actions.attribute_name)]
- >> space
- >> (*(cl::anychar_p - (phrase_end | '[')))
- [actions.attribute]
- >> ']'
- >> space
- )
- ].else_p [
- (*(cl::anychar_p - phrase_end))
- [cl::assign_a(actions.image_fileref)]
- ]
- >> cl::eps_p(']') [actions.image]
- ;
-
- phrase_symbol_rules.add
- ("@", &local.url)
- ;
-
- local.url =
- (*(cl::anychar_p -
- (']' | hard_space))) [actions.url_pre]
- >> hard_space
- >> phrase [actions.url_post]
- ;
-
- phrase_keyword_rules.add
- ("link", &local.link)
- ;
-
- local.link =
- space
- >> (*(cl::anychar_p - (']' | hard_space)))
- [actions.link_pre]
- >> hard_space
- >> phrase [actions.link_post]
- ;
-
- phrase_symbol_rules.add
- ("#", &local.anchor)
- ;
-
- local.anchor =
- blank
- >> (*(cl::anychar_p - phrase_end)) [actions.anchor]
- ;
-
- phrase_keyword_rules.add
- ("funcref", &local.funcref)
- ("classref", &local.classref)
- ("memberref", &local.memberref)
- ("enumref", &local.enumref)
- ("macroref", &local.macroref)
- ("headerref", &local.headerref)
- ("conceptref", &local.conceptref)
- ("globalref", &local.globalref)
- ;
-
- local.funcref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.funcref_pre]
- >> hard_space
- >> phrase [actions.funcref_post]
- ;
-
- local.classref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.classref_pre]
- >> hard_space
- >> phrase [actions.classref_post]
- ;
-
- local.memberref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.memberref_pre]
- >> hard_space
- >> phrase [actions.memberref_post]
- ;
-
- local.enumref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.enumref_pre]
- >> hard_space
- >> phrase [actions.enumref_post]
- ;
-
- local.macroref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.macroref_pre]
- >> hard_space
- >> phrase [actions.macroref_post]
- ;
-
- local.headerref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.headerref_pre]
- >> hard_space
- >> phrase [actions.headerref_post]
- ;
-
- local.conceptref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.conceptref_pre]
- >> hard_space
- >> phrase [actions.conceptref_post]
- ;
-
- local.globalref =
- space
- >> (*(cl::anychar_p -
- (']' | hard_space))) [actions.globalref_pre]
- >> hard_space
- >> phrase [actions.globalref_post]
- ;
-
- phrase_symbol_rules.add
- ("*", &local.bold)
- ("'", &local.italic)
- ("_", &local.underline)
- ("^", &local.teletype)
- ("-", &local.strikethrough)
- ("\"", &local.quote)
- ("~", &local.replaceable)
- ;
-
- local.bold =
- blank [actions.bold_pre]
- >> phrase [actions.bold_post]
- ;
-
- local.italic =
- blank [actions.italic_pre]
- >> phrase [actions.italic_post]
- ;
-
- local.underline =
- blank [actions.underline_pre]
- >> phrase [actions.underline_post]
- ;
-
- local.teletype =
- blank [actions.teletype_pre]
- >> phrase [actions.teletype_post]
- ;
-
- local.strikethrough =
- blank [actions.strikethrough_pre]
- >> phrase [actions.strikethrough_post]
- ;
-
- local.quote =
- blank [actions.quote_pre]
- >> phrase [actions.quote_post]
- ;
-
- local.replaceable =
- blank [actions.replaceable_pre]
- >> phrase [actions.replaceable_post]
- ;
-
- phrase_keyword_rules.add
- ("c++", &local.source_mode_cpp)
- ("python", &local.source_mode_python)
- ("teletype", &local.source_mode_teletype)
- ;
-
- local.source_mode_cpp = cl::eps_p [cl::assign_a(actions.source_mode, "c++")];
- local.source_mode_python = cl::eps_p [cl::assign_a(actions.source_mode, "python")];
- local.source_mode_teletype = cl::eps_p [cl::assign_a(actions.source_mode, "teletype")];
-
- phrase_keyword_rules.add
- ("footnote", &local.footnote)
- ;
-
- local.footnote =
- blank [actions.footnote_pre]
- >> phrase [actions.footnote_post]
- ;
- }
-}


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk