#include"mkf_book.hpp"




void
Book::
preset()
{
  append("ASCII_newline",Element(0,'\n'));
  append("ASCII_tab",    Element(0,'\t'));
  append("ASCII_space",  Element(0,' '));

  append("ASCII_a",Element(0,'a'));
  append("ASCII_b",Element(0,'b'));
  append("ASCII_c",Element(0,'c'));
  append("ASCII_d",Element(0,'d'));
  append("ASCII_e",Element(0,'e'));
  append("ASCII_f",Element(0,'f'));
  append("ASCII_g",Element(0,'g'));
  append("ASCII_h",Element(0,'h'));
  append("ASCII_i",Element(0,'i'));
  append("ASCII_j",Element(0,'j'));
  append("ASCII_k",Element(0,'k'));
  append("ASCII_l",Element(0,'l'));
  append("ASCII_m",Element(0,'m'));
  append("ASCII_n",Element(0,'n'));
  append("ASCII_o",Element(0,'o'));
  append("ASCII_p",Element(0,'p'));
  append("ASCII_q",Element(0,'q'));
  append("ASCII_r",Element(0,'r'));
  append("ASCII_s",Element(0,'s'));
  append("ASCII_t",Element(0,'t'));
  append("ASCII_u",Element(0,'u'));
  append("ASCII_v",Element(0,'v'));
  append("ASCII_w",Element(0,'w'));
  append("ASCII_x",Element(0,'x'));
  append("ASCII_y",Element(0,'y'));
  append("ASCII_z",Element(0,'z'));

  append("ASCII_A",Element(0,'A'));
  append("ASCII_B",Element(0,'B'));
  append("ASCII_C",Element(0,'C'));
  append("ASCII_D",Element(0,'D'));
  append("ASCII_E",Element(0,'E'));
  append("ASCII_F",Element(0,'F'));
  append("ASCII_G",Element(0,'G'));
  append("ASCII_H",Element(0,'H'));
  append("ASCII_I",Element(0,'I'));
  append("ASCII_J",Element(0,'J'));
  append("ASCII_K",Element(0,'K'));
  append("ASCII_L",Element(0,'L'));
  append("ASCII_M",Element(0,'M'));
  append("ASCII_N",Element(0,'N'));
  append("ASCII_O",Element(0,'O'));
  append("ASCII_P",Element(0,'P'));
  append("ASCII_Q",Element(0,'Q'));
  append("ASCII_R",Element(0,'R'));
  append("ASCII_S",Element(0,'S'));
  append("ASCII_T",Element(0,'T'));
  append("ASCII_U",Element(0,'U'));
  append("ASCII_V",Element(0,'V'));
  append("ASCII_W",Element(0,'W'));
  append("ASCII_X",Element(0,'X'));
  append("ASCII_Y",Element(0,'Y'));
  append("ASCII_Z",Element(0,'Z'));

  append("ASCII_0",Element(0,'0'));
  append("ASCII_1",Element(0,'1'));
  append("ASCII_2",Element(0,'2'));
  append("ASCII_3",Element(0,'3'));
  append("ASCII_4",Element(0,'4'));
  append("ASCII_5",Element(0,'5'));
  append("ASCII_6",Element(0,'6'));
  append("ASCII_7",Element(0,'7'));
  append("ASCII_8",Element(0,'8'));
  append("ASCII_9",Element(0,'9'));

  append("ASCII_exclamation",      Element(0,'!'));
  append("ASCII_quotation",        Element(0,'\"'));
  append("ASCII_sharp",            Element(0,'#'));
  append("ASCII_dollar",           Element(0,'$'));
  append("ASCII_percent",          Element(0,'%'));
  append("ASCII_ampersand",        Element(0,'&'));
  append("ASCII_apostrophe",       Element(0,'\''));
  append("ASCII_left_parenthesis", Element(0,'('));
  append("ASCII_right_parenthesis",Element(0,')'));
  append("ASCII_asterisk",         Element(0,'*'));
  append("ASCII_plus",             Element(0,'+'));
  append("ASCII_comma",            Element(0,','));
  append("ASCII_hyphen",           Element(0,'-'));
  append("ASCII_period",           Element(0,'.'));
  append("ASCII_slash",            Element(0,'/'));
  append("ASCII_colon",            Element(0,':'));
  append("ASCII_semicolon",        Element(0,';'));
  append("ASCII_less_than",        Element(0,'<'));
  append("ASCII_equal",            Element(0,'='));
  append("ASCII_greater_than",     Element(0,'>'));
  append("ASCII_question",         Element(0,'?'));
  append("ASCII_at",               Element(0,'@'));

  append("ASCII_left_squasre_bracket",Element(0,'['));
  append("ASCII_backslash",           Element(0,'\\'));
  append("ASCII_right_square_bracket",Element(0,']'));
  append("ASCII_circumflex_accent",   Element(0,'^'));
  append("ASCII_grave_accent",        Element(0,'`'));
  append("ASCII_low_line",            Element(0,'_'));
  append("ASCII_left_curly_bracket",  Element(0,'{'));
  append("ASCII_vertical_bar",        Element(0,'|'));
  append("ASCII_right_curly_bracket", Element(0,'}'));
  append("ASCII_tilde",               Element(0,'~'));

  auto   alnum_grp = new Group;
  auto   alpha_grp = new Group;
  auto   digit_grp = new Group;
  auto   lower_grp = new Group;
  auto   upper_grp = new Group;
  auto   punct_grp = new Group;
  auto   space_grp = new Group;
  auto  xdigit_grp = new Group;

  digit_grp->append(Element(0,"ASCII_0"),'|');
  digit_grp->append(Element(0,"ASCII_1"),'|');
  digit_grp->append(Element(0,"ASCII_2"),'|');
  digit_grp->append(Element(0,"ASCII_3"),'|');
  digit_grp->append(Element(0,"ASCII_4"),'|');
  digit_grp->append(Element(0,"ASCII_5"),'|');
  digit_grp->append(Element(0,"ASCII_6"),'|');
  digit_grp->append(Element(0,"ASCII_7"),'|');
  digit_grp->append(Element(0,"ASCII_8"),'|');
  digit_grp->append(Element(0,"ASCII_9"),';');

  xdigit_grp->append(Element(0,"ASCII_a"),'|');
  xdigit_grp->append(Element(0,"ASCII_b"),'|');
  xdigit_grp->append(Element(0,"ASCII_c"),'|');
  xdigit_grp->append(Element(0,"ASCII_d"),'|');
  xdigit_grp->append(Element(0,"ASCII_e"),'|');
  xdigit_grp->append(Element(0,"ASCII_f"),'|');
  xdigit_grp->append(Element(0,"ASCII_A"),'|');
  xdigit_grp->append(Element(0,"ASCII_B"),'|');
  xdigit_grp->append(Element(0,"ASCII_C"),'|');
  xdigit_grp->append(Element(0,"ASCII_D"),'|');
  xdigit_grp->append(Element(0,"ASCII_E"),'|');
  xdigit_grp->append(Element(0,"ASCII_F"),'|');
  xdigit_grp->append(Element(0,"CTYPE_digit"),';');

  space_grp->append(Element(0,"ASCII_space"),  '|');
  space_grp->append(Element(0,"ASCII_tab"),    '|');
  space_grp->append(Element(0,"ASCII_newline"),';');

  lower_grp->append(Element(0,"ASCII_a"),'|');
  lower_grp->append(Element(0,"ASCII_b"),'|');
  lower_grp->append(Element(0,"ASCII_c"),'|');
  lower_grp->append(Element(0,"ASCII_d"),'|');
  lower_grp->append(Element(0,"ASCII_e"),'|');
  lower_grp->append(Element(0,"ASCII_f"),'|');
  lower_grp->append(Element(0,"ASCII_g"),'|');
  lower_grp->append(Element(0,"ASCII_h"),'|');
  lower_grp->append(Element(0,"ASCII_i"),'|');
  lower_grp->append(Element(0,"ASCII_j"),'|');
  lower_grp->append(Element(0,"ASCII_k"),'|');
  lower_grp->append(Element(0,"ASCII_l"),'|');
  lower_grp->append(Element(0,"ASCII_m"),'|');
  lower_grp->append(Element(0,"ASCII_n"),'|');
  lower_grp->append(Element(0,"ASCII_o"),'|');
  lower_grp->append(Element(0,"ASCII_p"),'|');
  lower_grp->append(Element(0,"ASCII_q"),'|');
  lower_grp->append(Element(0,"ASCII_r"),'|');
  lower_grp->append(Element(0,"ASCII_s"),'|');
  lower_grp->append(Element(0,"ASCII_t"),'|');
  lower_grp->append(Element(0,"ASCII_u"),'|');
  lower_grp->append(Element(0,"ASCII_v"),'|');
  lower_grp->append(Element(0,"ASCII_w"),'|');
  lower_grp->append(Element(0,"ASCII_x"),'|');
  lower_grp->append(Element(0,"ASCII_y"),'|');
  lower_grp->append(Element(0,"ASCII_z"),';');

  upper_grp->append(Element(0,"ASCII_A"),'|');
  upper_grp->append(Element(0,"ASCII_B"),'|');
  upper_grp->append(Element(0,"ASCII_C"),'|');
  upper_grp->append(Element(0,"ASCII_D"),'|');
  upper_grp->append(Element(0,"ASCII_E"),'|');
  upper_grp->append(Element(0,"ASCII_F"),'|');
  upper_grp->append(Element(0,"ASCII_G"),'|');
  upper_grp->append(Element(0,"ASCII_H"),'|');
  upper_grp->append(Element(0,"ASCII_I"),'|');
  upper_grp->append(Element(0,"ASCII_J"),'|');
  upper_grp->append(Element(0,"ASCII_K"),'|');
  upper_grp->append(Element(0,"ASCII_L"),'|');
  upper_grp->append(Element(0,"ASCII_M"),'|');
  upper_grp->append(Element(0,"ASCII_N"),'|');
  upper_grp->append(Element(0,"ASCII_O"),'|');
  upper_grp->append(Element(0,"ASCII_P"),'|');
  upper_grp->append(Element(0,"ASCII_Q"),'|');
  upper_grp->append(Element(0,"ASCII_R"),'|');
  upper_grp->append(Element(0,"ASCII_S"),'|');
  upper_grp->append(Element(0,"ASCII_T"),'|');
  upper_grp->append(Element(0,"ASCII_U"),'|');
  upper_grp->append(Element(0,"ASCII_V"),'|');
  upper_grp->append(Element(0,"ASCII_W"),'|');
  upper_grp->append(Element(0,"ASCII_X"),'|');
  upper_grp->append(Element(0,"ASCII_Y"),'|');
  upper_grp->append(Element(0,"ASCII_Z"),';');

  punct_grp->append(Element(0,"ASCII_exclamation"),      '|');
  punct_grp->append(Element(0,"ASCII_quotation"),        '|');
  punct_grp->append(Element(0,"ASCII_sharp"),            '|');
  punct_grp->append(Element(0,"ASCII_dollar"),           '|');
  punct_grp->append(Element(0,"ASCII_percent"),          '|');
  punct_grp->append(Element(0,"ASCII_ampersand"),        '|');
  punct_grp->append(Element(0,"ASCII_apostrophe"),       '|');
  punct_grp->append(Element(0,"ASCII_left_parenthesis"), '|');
  punct_grp->append(Element(0,"ASCII_right_parenthesis"),'|');
  punct_grp->append(Element(0,"ASCII_asterisk"),         '|');
  punct_grp->append(Element(0,"ASCII_plus"),             '|');
  punct_grp->append(Element(0,"ASCII_comma"),            '|');
  punct_grp->append(Element(0,"ASCII_hyphen"),           '|');
  punct_grp->append(Element(0,"ASCII_period"),           '|');
  punct_grp->append(Element(0,"ASCII_slash"),            '|');
  punct_grp->append(Element(0,"ASCII_colon"),            '|');
  punct_grp->append(Element(0,"ASCII_semicolon"),        '|');
  punct_grp->append(Element(0,"ASCII_less_than"),        '|');
  punct_grp->append(Element(0,"ASCII_equal"),            '|');
  punct_grp->append(Element(0,"ASCII_greater_than"),     '|');
  punct_grp->append(Element(0,"ASCII_question"),         '|');
  punct_grp->append(Element(0,"ASCII_at"),               '|');
  punct_grp->append(Element(0,"ASCII_left_squasre_bracket"),'|');
  punct_grp->append(Element(0,"ASCII_backslash"),           '|');
  punct_grp->append(Element(0,"ASCII_right_square_bracket"),'|');
  punct_grp->append(Element(0,"ASCII_circumflex_accent"),   '|');
  punct_grp->append(Element(0,"ASCII_grave_accent"),        '|');
  punct_grp->append(Element(0,"ASCII_low_line"),            '|');
  punct_grp->append(Element(0,"ASCII_left_curly_bracket"),  '|');
  punct_grp->append(Element(0,"ASCII_vertical_bar"),        '|');
  punct_grp->append(Element(0,"ASCII_right_curly_bracket"), '|');
  punct_grp->append(Element(0,"ASCII_tilde"),               ';');

  alpha_grp->append(Element(0,"CTYPE_lower"),'|');
  alpha_grp->append(Element(0,"CTYPE_upper"),';');

  alnum_grp->append(Element(0,"CTYPE_alpha"),'|');
  alnum_grp->append(Element(0,"CTYPE_digit"),';');

  append("CTYPE_alnum" ,Element(0, alnum_grp));
  append("CTYPE_alpha" ,Element(0, alpha_grp));
  append("CTYPE_digit" ,Element(0, digit_grp));
  append("CTYPE_lower" ,Element(0, lower_grp));
  append("CTYPE_upper" ,Element(0, upper_grp));
  append("CTYPE_punct" ,Element(0, punct_grp));
  append("CTYPE_space" ,Element(0, space_grp));
  append("CTYPE_xdigit",Element(0,xdigit_grp));
}




