Пример #1
0
        matrix_grammar()
          : matrix_grammar::base_type(matrix)
        {
            using karma::int_;
            using karma::right_align;
            using karma::eol;

            element = right_align(10)[int_];
            row = '|' << *element << '|';
            matrix = row % eol;
        }
Пример #2
0
    generator() : generator::base_type(start)
    {
        using standard::char_;
        using standard::string;
        using karma::bool_generator;
        using karma::uint_generator;
        using karma::double_;
        using karma::int_;
        using karma::lit;
        using karma::right_align;

        uint_generator<unsigned char, 16> hex2;
        bool_generator<bool, bool_output_policies> boolean;

        start = nil_
              | double_
              | int_
              | boolean
              | utf8
              | symbol
              | binary
              | list
              | ref_;
  
        ref_ = start;

        list = '(' << -(start % ' ') << ')';

        utf8 = '"' << *(&char_('"') << "\\\"" | char_) << '"';

        symbol = string;

        binary = '#' << *right_align(2, '0')[hex2] << '#';

        nil_ = karma::attr_cast(lit("nil"));

        start.name("sexpr");
        ref_.name("ref");
        list.name("list");
        utf8.name("string");
        symbol.name("symbol");
        binary.name("binary");
        nil_.name("nil");
    }