added --namespace argument

This commit is contained in:
Josh Holtrop 2010-04-29 15:14:21 -04:00
parent 2b23657a0c
commit 9720ea001f
3 changed files with 10 additions and 1 deletions

View File

@ -15,7 +15,7 @@
using namespace std;
Parser::Parser()
: m_classname("Parser")
: m_classname("Parser"), m_namespace("")
{
}

View File

@ -25,11 +25,14 @@ class Parser
bool parseInputFile(char * buff, int size);
void setClassName(const std::string & cn) { m_classname = cn; }
std::string getClassName() { return m_classname; }
void setNamespace(const std::string & ns) { m_namespace = ns; }
std::string getNamespace() { return m_namespace; }
protected:
std::vector< refptr< TokenDefinition > > m_tokens;
std::vector< refptr< RuleDefinition > > m_rules;
std::string m_classname;
std::string m_namespace;
};
#endif

View File

@ -17,10 +17,12 @@ int main(int argc, char * argv[])
int opt;
string outfile;
string classname = "Parser";
string namespace_name = "";
static struct option longopts[] = {
/* name, has_arg, flag, val */
{ "classname", required_argument, NULL, 'c' },
{ "namespace", required_argument, NULL, 'n' },
{ "outfile", required_argument, NULL, 'o' },
{ NULL, 0, NULL, 0 }
};
@ -32,6 +34,9 @@ int main(int argc, char * argv[])
case 'c': /* classname */
classname = optarg;
break;
case 'n': /* namespace */
namespace_name = optarg;
break;
case 'o': /* outfile */
outfile = optarg;
break;
@ -64,6 +69,7 @@ int main(int argc, char * argv[])
Parser p;
p.setClassName(classname);
p.setNamespace(namespace_name);
p.parseInputFile(buff, size);
p.write(outfile);