ソス@ソスソスboost::spiritソスソスgソスソスソストの構ソスソスソスソスヘ奇ソスソスAソスPソスツのクソスソスソスXソスノまとめゑソスソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスEpapy's softwarelibrary
BoostソスソスSpiritソスノ関ゑソスソス骼ソソスソスナゑソスソスB
Spiritソスフ機ソス¥ソスソスPソスツのクソスソスソスXソスノまとめ、ソスナ終ソスIソスノは“ソスPソスツの包ソスソスソスソスソスソスけ趣ソスソスAソスソスソスソスソスソスヘゑソスソスAソスニ趣ソスソスフソスソス[ソスソスソスノ従ソスソスソスト具ソスリゑソスAソスソスリゑソスソスソスソスソスフゑソスソスソスソスソスoソスマ撰ソスソスノ保趣ソスソスhソスソスソスソスソスソスソスニ思ソスソスソストゑソスソスワゑソスソスB
ソスソスフ的ソスノは、
typedef class CScriptParser
{
public:
// parse_info
boost::spirit::parse_info<> parseInfo;
// ソス¥ソスソスソスソスヘ趣ソスソスフトソス[ソスNソスソスソスロ托ソスソスp
std::string name_buffer;
struct Sparser : public boost::spirit::grammar<Sparser>
{
template<typename S> struct definition {
typedef boost::spirit::rule<S> rule_t;
rule_t A;
// ソス¥ソスソスソスソスヘソスソス[ソスソスソスフ記ソスq
definition(const Sparser& self)
{
A = boost::spirit::alpha_p;//[&func];
}
const rule_t& start() const { return A; }
};
};
Sparser parser;
} CScriptParser;
ソスソスソスソスソスソスソスソスソスlソスネクソスソスソスXソスソスソス閧スソスソスソスニ思ソスソスソストゑソスソスワゑソスソスiソスソスソスソスソスソスAソスソスXソスノ拡ソスソスソスソスソストゑソスソスソスソスワゑソスソスソスソスjソスB
ソスZソス}ソスソスソスeソスBソスbソスNソスAソスNソスVソスソスソスソスソスiソスソスフクソスソスソスXソスナ鯉ソスソスソスソスホ、funcソスjソスソスlソスソスソスネゑソスソスソスホ厄ソスソスネゑソスソスソスソスソスソスフでゑソスソスソスソスAソスZソス}ソスソスソスeソスBソスbソスNソスAソスNソスVソスソスソスソスソスソスソスソスソスソスナゑソスソスソスソスrソス[ソスノ包ソスソスソスソスソスネゑソスソスネゑソスソストゑソスソスワゑソスソスワゑソスソスソスソスB
ソスヌゑソスソスノゑソスソスACScriptParserソスソスソスname_bufferソスノ会ソスヘゑソスソスソスソスlソスソスソスソスソスソスソスソス驍アソスニはでゑソスソスネゑソスソスナゑソスソス蛯、ソスソスソスB
ソスiソスOソスソスソス[ソスoソスソスソスマ撰ソスソスノて趣ソスソスソスソスソスソスソス謔、ソスネゑソスソスソスソスナは出ソスソスソスソスソスフでゑソスソスソスソスAソスOソスソスソス[ソスoソスソスソスマ撰ソスソスソスpソスソスソスネゑソスソスソスソス@ソスヘなゑソスソスナゑソスソス蛯、ソスソスソスjソスB
ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
ソスIソスソスソスWソスiソスソスソスソスcソスソスソストゑソスソスワゑソスMソスソスネゑソスソス謔、ソスノ擾ソスソスソスソスソスソスツゑソスソスナゑソスソスソスソスA
ソス痰ヲソスホゑソスソスソスネ包ソスソス@(ソスQソスニで渡ソスソスソストゑソスソスソス)ソスニゑソスソスB
(ソスネゑソスソスASpirit1.8ソスナはなゑソスSpirit2.0/classicソスナ趣ソスソスソスソストまゑソスソスフで、
ソスwソスbソス_ソスソスソスソスnamespaceソスソスソスヘ適ソスXソスuソスソスソスソスソスソスソストゑソスソスソスソスソスソスソスソスB
Boost.Spiritソスソス2.xソスノなゑソスソス1.xソスニはなんか別包ソスソスcソスソスソスト奇ソスソスソスソスナゑソスソスB
classicソスソス2.xソスノゑソスソスソスソスソス1.xソスnソスフ厄ソスソスc)
#include <boost/spirit/include/classic.hpp>
#include <boost/spirit/include/classic_parser.hpp>
#include <boost/spirit/include/classic_actor.hpp>
class CScriptParser
{
public:
// parse_info
boost::spirit::classic::parse_info<> parseInfo;
// ソス¥ソスソスソスソスヘ趣ソスソスフトソス[ソスNソスソスソスロ托ソスソスp
std::string name_buffer;
struct Sparser : public boost::spirit::classic::grammar<Sparser>
{
template<typename S> struct definition {
typedef boost::spirit::classic::rule<S> rule_t;
rule_t A;
// ソス¥ソスソスソスソスヘソスソス[ソスソスソスフ記ソスq
definition(const Sparser& self)
{
A = boost::spirit::classic::alpha_p[boost::spirit::classic::assign_a(self.name_buffer_)];
}
const rule_t& start() const { return A; }
};
explicit Sparser(std::string& name_buffer) : name_buffer_(name_buffer) {}
std::string& name_buffer_;
};
Sparser parser;
explicit CScriptParser() : parser(name_buffer)
{
// test
parseInfo = boost::spirit::classic::parse("a", parser, boost::spirit::classic::space_p);
}
};
ソスソスソスヤ信ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスソスソスソスソスソスソスソス`ソスソスソスソスソスソスソスソスソスソスナゑソスソスヒ。
ソスラ具ソスソスノなゑソスワゑソスソスcソスcソスB
ソスソスソスソスソスソスソスASparserソスソス
Sparser parser;
ソスニゑソスソスソスソス`ソスナグソスソスソス[ソスoソスソスソスマ撰ソスソスソスソスソスソスソスフゑソスソスCソスノなゑソスワゑソスソスBソスBソスB
ソスヌゑソスソスノゑソスソスネゑソスネゑソスソスソスフでゑソスソス蛯、ソスソスソスB
> ソスニゑソスソスソスソス`ソスナグソスソスソス[ソスoソスソスソスマ撰ソスソスソスソスソスソスソスフゑソスソスCソスノなゑソスワゑソスソスBソスBソスB
Sparser parser;ソスソスCScriptParserソスフソスソスソスソスoソスマ撰ソスソスナゑソスソスソスソスト、
ソスOソスソスソス[ソスoソスソスソスマ撰ソスソスナはゑソスソスソスワゑソスソスが、ソスソスソスヤ違えソストゑソスソスワゑソスソスソスソスH
class CScriptParser
{
public:
ソス@ソス@// parse_info
ソス@ソス@boost::spirit::classic::parse_info<> parseInfo;
ソス@ソス@// ソス¥ソスソスソスソスヘ趣ソスソスフトソス[ソスNソスソスソスロ托ソスソスp
ソス@ソス@std::string name_buffer;
ソス@ソス@struct Sparser : public boost::spirit::classic::grammar<Sparser>
ソス@ソス@{
ソス@ソス@ソス@ソス@template<typename S> struct definition {
ソス@ソス@ソス@ソス@ソス@ソス@typedef boost::spirit::classic::rule<S> rule_t;
ソス@ソス@ソス@ソス@ソス@ソス@rule_t A;
ソス@ソス@ソス@ソス@ソス@// ソス¥ソスソスソスソスヘソスソス[ソスソスソスフ記ソスq
ソス@ソス@ソス@ソス@ソス@definition(const Sparser& self)
ソス@ソス@ソス@ソス@ソス@{
ソス@ソス@ソス@ソス@ソス@ソス@ソス@A = boost::spirit::classic::alpha_p[boost::spirit::classic::assign_a(self.name_buffer_)];
ソス@ソス@ソス@ソス@ソス@}
ソス@ソス@ソス@ソス@ソス@const rule_t& start() const { return A; }
ソス@ソス@};
ソス@ソス@explicit Sparser(std::string& name_buffer) : name_buffer_(name_buffer) {}
ソス@ソス@ソス@ソス@std::string& name_buffer_;
ソス@ソス@};
ソス@ソス@Sparser parser;
ソス@ソス@explicit CScriptParser() : parser(name_buffer)
ソス@ソス@{
ソス@ソス@ソス@ソス@// test
ソス@ソス@ソス@ソス@parseInfo = boost::spirit::classic::parse("a", parser, boost::spirit::classic::space_p);
ソス@ソス@}
};
ソスソスソスソス]ソスソスナゑソスフゑソスソスAソス謔ュソスソスソスソスソスソスネゑソスソスネゑソスワゑソスソスソスソスソスソスA
ソスuソスソスソスソスソスoソスマ撰ソスソスvソスニ「ソスOソスソスソス[ソスoソスソスソスマ撰ソスソスvソスフ違いソスヘ暦ソスソスソスソスソスソストゑソスソスワゑソスソスソスソスB
ソスQソスニ渡ソスソスソスソスSemantic Actionソスニは厄ソスソスヨ係ソスネ話ソスナゑソスソスソスソスソスソスASparser parser;ソスソス
ソスuソスOソスソスソス[ソスoソスソスソスマ撰ソスソスナはなゑソスソスvソスフで、
> ソスiソスOソスソスソス[ソスoソスソスソスマ撰ソスソスノて趣ソスソスソスソスソスソスソス謔、ソスネゑソスソスソスソスナは出ソスソスソスソスソスフでゑソスソスソスソスA
> ソスOソスソスソス[ソスoソスソスソスマ撰ソスソスソスpソスソスソスネゑソスソスソスソス@ソスヘなゑソスソスナゑソスソス蛯、ソスソスソスjソスB
ソスニゑソスソスソスソスソスソスソスソスノつゑソスソストは提示ゑソスソスソストゑソスソスネゑソスソスニゑソスソスソスソスソスソスソスナゑソスソスソスソスソスソスA
ソスソスソスソスソスソスソスソスト、ソスソスソスソスソスoソスマ撰ソスソスニグソスソスソス[ソスoソスソスソスマ撰ソスソスソスソスソスソスソスソスソスソストゑソスソスワゑソスソスソスソスH
ソス痰ヲソスホ、ソスソスソスソスネ包ソスソスノゑソスソスソスソスソスソスソスソスソスソスニゑソスソスH
ソス@ソス@explicit CScriptParser()
ソス@ソス@{
ソス@ソス@ソス@ソス@Sparser parser(name_buffer);
ソス@ソス@ソス@ソス@parseInfo = boost::spirit::classic::parse("a", parser, boost::spirit::classic::space_p);
ソス@ソス@}
> CScriptParserソスソスソスname_bufferソスノ会ソスヘゑソスソスソスソスlソスソスソスソスソスソスソスソス驍アソスニはでゑソスソスネゑソスソスナゑソスソス蛯、ソスソスソスB
SparserソスソスソスxソスソスソスソスソスgソスソスネゑソスソスネゑソスAソスハ段ソスソスソスソスソスoソスマ撰ソスソスノゑソスソスソスKソスvソスソスソスソスソスワゑソスソスが、
ソスソスソスソスソスソスソスソスト、CScriptParserソスヘ鯉ソスソスハゑソスソスソスソスソスロ趣ソスソスソスソストゑソスソスソスホ良ゑソスソスフでゑソスソス蛯、ソスソスソスH
(ソスソスソスソスソスソスソスソスソスノパソス[ソスXソスソスソスソスxソスソスSparserソスソス成ソスソスソス驍アソスニになゑソスワゑソス)
Ban 2009/07/11(ソスy) 23:05:04
ソスヘまゑソスソスlソスXソスgソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスナゑソスソスcorz
ソスGソスfソスBソス^ソスソスソスナネソスXソスgソスソスソスト鯉ソスソストゑソスソスソスソスソスソスソスソスB
ソスpソス[ソスTソスソスRソスソスソスXソスgソスソスソスNソス^ソスナ使ソスソスソスフてゑソスナゑソスlソスXソスgソスソスソスソスソスソスニゑソスソスソスネ奇ソスソスソスソスB
class CScriptParser
{
public:
ソス@ソス@// parse_info
ソス@ソス@boost::spirit::classic::parse_info<> parseInfo;
ソス@ソス@// ソス¥ソスソスソスソスヘ趣ソスソスフトソス[ソスNソスソスソスロ托ソスソスp
ソス@ソス@std::string name_buffer;
ソス@ソス@struct Sparser : public boost::spirit::classic::grammar<Sparser>
ソス@ソス@{
ソス@ソス@ソス@ソス@template<typename S> struct definition {
ソス@ソス@ソス@ソス@ソス@ソス@typedef boost::spirit::classic::rule<S> rule_t;
ソス@ソス@ソス@ソス@ソス@ソス@rule_t A;
ソス@ソス@ソス@ソス@ソス@ソス@// ソス¥ソスソスソスソスヘソスソス[ソスソスソスフ記ソスq
ソス@ソス@ソス@ソス@ソス@ソス@definition(const Sparser& self)
ソス@ソス@ソス@ソス@ソス@ソス@{
ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソス@A = boost::spirit::classic::alpha_p[boost::spirit::classic::assign_a(self.name_buffer_)];
ソス@ソス@ソス@ソス@ソス@ソス@}
ソス@ソス@ソス@ソス@ソス@ソス@const rule_t& start() const { return A; }
ソス@ソス@ソス@ソス@};
ソス@ソス@ソス@ソス@explicitソス@ソス@Sparser(std::string& name_buffer) : name_buffer_(name_buffer) {}
ソス@ソス@ソス@ソス@std::string&ソス@ソス@name_buffer_;
ソス@ソス@};
ソス@ソス@explicitソス@ソス@CScriptParser()
ソス@ソス@{
ソス@ソス@ソス@ソス@Sparser parser(name_buffer);
ソス@ソス@ソス@ソス@parseInfoソス@ソス@= boost::spirit::classic::parse("a", parser, boost::spirit::classic::space_p);
ソス@ソス@}
};
ソスニりあソスソスソスソスソスAソスソスソス@ソスソス`ソスソス(definition(const Sparser& self))ソスフ茨ソスソスソス
selfソスヘ「grammarソスフ派ソスソスソスNソスソスソスXソスナゑソスソスソスvソスニゑソスソスソスI/Fソスナゑソスソスソスネ擾ソスA
ソス{ソスソスソスIソスノ鯉ソスソスハに関ゑソスソスソスソスソスヘ、self(Sparser)ソスソスoソスRソスソスソスソスフゑソスソスソスソスソスソスソスソスニ思ソスソスソスワゑソスソスB
ソス痰ヲソスホ、ソスソスフ暦ソスソスname_buffer_ソスソスソスソスソスンゑソスソスソスフはゑソスソスソスソスソスソスソスソスソスソスRソスナゑソスソスB
ソスソスソスソスソスト、ソスソスソスCScriptParserソスナはなゑソスname_bufferソスソスソスフゑソスSparserソスソスソスソスソスソスソストゑソスホ、
name_buffer_ソスソスsソスvソスノなゑソスけソスナゑソスソスソスソスAselfソスソスconstソスネので鯉ソスソスハゑソスロ趣ソスソスナゑソスソスワゑソスソスソスB
ソスソスソスソスソスソスIソスノゑソス"mutable"ソスソスgソスソスソスホゑソスソスソスソスソスソスソスソスソスソスソス(ソスuSparserソスヘゑソスソスソスソスv)ソスヘ可能ソスナゑソスソスソスソスcソスpソス@ソスノはゑソスソスソスソスモゑソスB
# "Immutable Object"ソスソス"mutable"ソスネどゑソスソスヌゑソスソスソスソスソスソスソスネゑソスソス鼾ソスヘまゑソスソスソスソスソスソス轤ゥソスソスB
class CScriptParser : public boost::spirit::classic::grammar<CScriptParser>
{
public:
ソス@ソス@// parse_info
ソス@ソス@boost::spirit::classic::parse_info<> parseInfo;
ソス@ソス@// ソス¥ソスソスソスソスヘ趣ソスソスフトソス[ソスNソスソスソスロ托ソスソスp
ソス@ソス@mutable std::string name_buffer;
ソス@ソス@template<typename S> struct definition {
ソス@ソス@ソス@ソス@typedef boost::spirit::classic::rule<S> rule_t;
ソス@ソス@ソス@ソス@rule_t A;
ソス@ソス@ソス@ソス@// ソス¥ソスソスソスソスヘソスソス[ソスソスソスフ記ソスq
ソス@ソス@ソス@ソス@definition(const CScriptParser& self)
ソス@ソス@ソス@ソス@{
ソス@ソス@ソス@ソス@ソス@ソス@A = boost::spirit::classic::alpha_p[boost::spirit::classic::assign_a(self.name_buffer)];
ソス@ソス@ソス@ソス@}
ソス@ソス@ソス@ソス@const rule_t& start() const { return A; }
ソス@ソス@};
ソス@ソス@explicitソス@ソス@CScriptParser()
ソス@ソス@{
ソス@ソス@ソス@ソス@parseInfoソス@ソス@= boost::spirit::classic::parse("a", *this, boost::spirit::classic::space_p);
ソス@ソス@}
};
# ソスAソスソスソスソスソスソスAソスソスソスソスナ最鯉ソスノゑソスソスワゑソスソスB
>ソスgソスPソスツの包ソスソスソスソスソスソスけ趣ソスソスA
ソスネので、
ソス@ソス@explicitソス@ソス@CScriptParser()
ソス@ソス@{
ソス@ソス@ソス@ソス@parseInfoソス@ソス@= boost::spirit::classic::parse("a", *this, boost::spirit::classic::space_p);
ソス@ソス@}
ソスソス
ソス@ソス@explicitソス@ソス@CScriptParser(const char* str)
ソス@ソス@{
ソス@ソス@ソス@ソス@parseInfoソス@ソス@= boost::spirit::classic::parse(str, *this, boost::spirit::classic::space_p);
ソス@ソス@}
ソスニでゑソスソスソストゑソスソスソスソスソスソスソスソスB
ソスソスソスソスソスワゑソスソスソスAソスソスソスヤ違えソストまゑソスソスソスソスcソスcソスB
ソスソスソスソスソスナ撰ソスソスさゑソスソスソスソスlソスXソスgソスソスソスAソスソスツ包ソスソスソスソスソストまゑソスソスソスTT
ソスソスソスソスソスナ色ソスXソスニ搾ソスソスソスソスソスソスソスけソスcソスcソスB
ソス{ソスソスソスノ趣ソスソス轤オソスワゑソスソスソスソスB
mutableソスノ関ゑソスソストは托ソスソスソスソスワゑソスソスソスナゑソスソスソスソスB
ソスソスソスラゑソスソスニゑソスソスソスAソスmソスソスソスノゑソスソスソスソスgソスソスソスホ色ソスXソスネ厄ソス閧ェソス齡ュソスナ会ソスソスソスソスソスワゑソスソスヒ。
ソスソスソスソスソスAソスgソスソスソストゑソスソスワゑソスソスニ、ソス{ソスソスソスフ用ソス@ソスニゑソスソストは(constソスヨ撰ソスソスフ意厄ソスソスニゑソスソストは)ソスソスソスソスソスソスソスソスソスソスノなゑソスソストゑソスソスワゑソスソスCソスソスソスソスソスネゑソスソスナゑソスネゑソスソスナゑソスソスヒ…ソスcソスB
ソスナゑソスAソスソスソスソスソスソスフ包ソスソスソスソスVソスソスソスvソスソスソスノ記ソスqソスナゑソスソス髟ェソスAソスワゑソスソスラ具ソスソスノなゑソスモ厄ソスソスナゑソスAソスソスソスソスソスmutableソスソスgソスせソスト抵ソスソスソスソスソスソスソスソスニ思ソスソスソスワゑソスソスB
ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスソスソスB