From 5bcd5d3c89ac1af73b4c3071401fce414083e873 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 30 Nov 2014 20:46:19 +0100 Subject: [PATCH] Commented out grammar --- wrap/tests/testMethod.cpp | 186 +++++++++++++++++++------------------- 1 file changed, 91 insertions(+), 95 deletions(-) diff --git a/wrap/tests/testMethod.cpp b/wrap/tests/testMethod.cpp index b94bd8f9f..bc21b332c 100644 --- a/wrap/tests/testMethod.cpp +++ b/wrap/tests/testMethod.cpp @@ -23,13 +23,13 @@ using namespace std; using namespace wrap; -/* ************************************************************************* */ +//****************************************************************************** // Constructor TEST( Method, Constructor ) { Method method; } -/* ************************************************************************* */ +//****************************************************************************** // addOverload TEST( Method, addOverload ) { Method method; @@ -42,105 +42,101 @@ TEST( Method, addOverload ) { EXPECT_LONGS_EQUAL(2, method.nrOverloads()); } -// http://boost-spirit.com/distrib/spirit_1_8_2/libs/spirit/doc/grammar.html -struct method_grammar: public classic::grammar { - - wrap::Method& result_; ///< successful parse will be placed in here - - ArgumentList args; - Argument arg0, arg; - TypeGrammar argument_type_g; - - ReturnType retType0, retType; - TypeGrammar returntype_g; - - ReturnValue retVal0, retVal; - - /// Construct type grammar and specify where result is placed - method_grammar(wrap::Method& result) : - result_(result), argument_type_g(arg.type), returntype_g(retType) { - } - - /// Definition of type grammar - template - struct definition: basic_rules { - - typedef classic::rule Rule; - - Rule templateArgValue_p, templateArgValues_p, argument_p, argumentList_p, - returnType1_p, returnType2_p, pair_p, returnValue_p, methodName_p, - method_p; - - definition(method_grammar const& self) { - - using namespace wrap; - using namespace classic; - -// Rule templateArgValue_p = type_grammar(self.templateArgValue); +//// http://boost-spirit.com/distrib/spirit_1_8_2/libs/spirit/doc/grammar.html +//struct method_grammar: public classic::grammar { // -// // template -// Rule templateArgValues_p = (str_p("template") >> '<' >> name_p >> '=' -// >> '{' >> !(templateArgValue_p >> *(',' >> templateArgValue_p)) >> '}' -// >> '>'); +// wrap::Method& result_; ///< successful parse will be placed in here // - // NOTE: allows for pointers to all types - // Slightly more permissive than before on basis/eigen type qualification - argument_p = // - !str_p("const")[assign_a(self.arg.is_const, true)] // - >> self.argument_type_g // - >> (!ch_p('&')[assign_a(self.arg.is_ref, true)] - | !ch_p('*')[assign_a(self.arg.is_ptr, true)]) // - [push_back_a(self.args, self.arg)] // - [assign_a(self.arg, self.arg0)]; - - argumentList_p = !argument_p >> *(',' >> argument_p); +// ArgumentList args; +// Argument arg0, arg; +// TypeGrammar argument_type_g; // - returnType1_p = self.returntype_g // - [assign_a(self.retVal.type1, retType)] // - [assign_a(self.retType, self.retType0)]; - - returnType2_p = self.returntype_g // - [assign_a(self.retVal.type2, retType)] // - [assign_a(self.retType, self.retType0)]; - - pair_p = (str_p("pair") >> '<' >> returnType1_p >> ',' >> returnType2_p - >> '>')[assign_a(self.retVal.isPair, true)]; - - returnValue_p = pair_p | returnType1_p; - - methodName_p = lexeme_d[(upper_p | lower_p) >> *(alnum_p | '_')]; - - // gtsam::Values retract(const gtsam::VectorValues& delta) const; - method_p = -// !templateArgValues_p >> - (returnValue_p >> methodName_p >> '(' >> argumentList_p >> ')' - >> !str_p("const") >> ';' >> *basic_rules::comments_p); - } - - Rule const& start() const { - return method_p; - } - - }; -}; -// method_grammar +// ReturnType retType0, retType; +// TypeGrammar returntype_g; +// +// ReturnValue retVal0, retVal; +// +// /// Construct type grammar and specify where result is placed +// method_grammar(wrap::Method& result) : +// result_(result), argument_type_g(arg.type), returntype_g(retType) { +// } +// +// /// Definition of type grammar +// template +// struct definition: basic_rules { +// +// typedef classic::rule Rule; +// +// Rule templateArgValue_p, templateArgValues_p, argument_p, argumentList_p, +// returnType1_p, returnType2_p, pair_p, returnValue_p, methodName_p, +// method_p; +// +// definition(method_grammar const& self) { +// +// using namespace wrap; +// using namespace classic; +// +//// Rule templateArgValue_p = type_grammar(self.templateArgValue); +//// +//// // template +//// Rule templateArgValues_p = (str_p("template") >> '<' >> name_p >> '=' +//// >> '{' >> !(templateArgValue_p >> *(',' >> templateArgValue_p)) >> '}' +//// >> '>'); +//// +// // Create type grammar that will place result in actual +// ArgumentList actual; +// ArgumentListGrammar g(actual); +// +// EXPECT(parse("(const gtsam::Point2& p4)", g, space_p).full); +// EXPECT_LONGS_EQUAL(1, actual.size()); +// actual.clear(); +// +// returnType1_p = self.returntype_g // +// [assign_a(self.retVal.type1, retType)] // +// [assign_a(self.retType, self.retType0)]; +// +// returnType2_p = self.returntype_g // +// [assign_a(self.retVal.type2, retType)] // +// [assign_a(self.retType, self.retType0)]; +// +// pair_p = (str_p("pair") >> '<' >> returnType1_p >> ',' >> returnType2_p +// >> '>')[assign_a(self.retVal.isPair, true)]; +// +// returnValue_p = pair_p | returnType1_p; +// +// methodName_p = lexeme_d[(upper_p | lower_p) >> *(alnum_p | '_')]; +// +// // gtsam::Values retract(const gtsam::VectorValues& delta) const; +// method_p = +//// !templateArgValues_p >> +// (returnValue_p >> methodName_p >> '(' >> argumentList_p >> ')' +// >> !str_p("const") >> ';' >> *basic_rules::comments_p); +// } +// +// Rule const& start() const { +// return method_p; +// } +// +// }; +//}; +//// method_grammar +// +////****************************************************************************** +//TEST( Method, grammar ) { +// +// using classic::space_p; +// +// // Create type grammar that will place result in actual +// Method actual; +// method_grammar method_g(actual); +// +// // a class type with namespaces +// EXPECT(parse("double x() const;", method_g, space_p).full); +//} //****************************************************************************** -TEST( Method, grammar ) { - - using classic::space_p; - - // Create type grammar that will place result in actual - Method actual; - method_grammar method_g(actual); - - // a class type with namespaces - EXPECT(parse("double x() const;", method_g, space_p).full); -} - -/* ************************************************************************* */ int main() { TestResult tr; return TestRegistry::runAllTests(tr); } -/* ************************************************************************* */ +//******************************************************************************