#include "Parse.ih"
#include "../Utils/String.hh"
-#include <boost/test/auto_unit_test.hpp>
+#include "../Utils/auto_unit_test.hh"
#include <boost/test/test_tools.hpp>
#define prefix_
namespace
{
-
-
struct TestParseDispatcher
{
TestParseDispatcher(std::ostream & os) : os_ (os) {}
void builtin_cd(std::vector<std::string> const & path)
{ os_ << "builtin_cd( " << senf::stringJoin(path, "/") << " )\n"; }
void builtin_ls(std::vector<std::string> const & path)
- { os_ << "builtin_cd( " << senf::stringJoin(path, "/") << " )\n"; }
+ { os_ << "builtin_ls( " << senf::stringJoin(path, "/") << " )\n"; }
void builtin_exit()
{ os_ << "builtin_exit()\n"; }
+ void builtin_help(std::vector<std::string> const & path)
+ { os_ << "builtin_help( " << senf::stringJoin(path, "/") << " )\n"; }
};
}
"doo / bii / doo arg"
" flab::blub"
" 123.434>a"
- " (a,b,c (huhu))"
+ " (a,b;c (huhu/{haha}))"
" \"foo\\\"bar\" #\n"
" x\"01 02 # Inner comment\n"
- " 0304\"";
+ " 0304\";"
+ "ls /foo/bar;"
+ "cd /foo/bar;"
+ "exit;"
+ "foo/bar/ { ls; }"
+ "help /foo/bar";
BOOST_CHECK( boost::spirit::parse(
text,
"pushWord( a )\n"
"pushPunctuation( , )\n"
"pushWord( b )\n"
- "pushPunctuation( , )\n"
+ "pushPunctuation( ; )\n"
"pushWord( c )\n"
"pushPunctuation( ( )\n"
"pushWord( huhu )\n"
+ "pushPunctuation( / )\n"
+ "pushPunctuation( { )\n"
+ "pushWord( haha )\n"
+ "pushPunctuation( } )\n"
"pushPunctuation( ) )\n"
"closeGroup()\n"
"pushArgument( foo\"bar )\n"
"pushArgument( \x01\x02\x03\x04 )\n"
- "endCommand()\n" );
+ "endCommand()\n"
+ "builtin_ls( /foo/bar )\n"
+ "builtin_cd( /foo/bar )\n"
+ "builtin_exit()\n"
+ "pushDirectory( foo/bar/ )\n"
+ "builtin_ls( )\n"
+ "popDirectory()\n"
+ "builtin_help( /foo/bar )\n" );
}
namespace {