Debug: Diagnostic output cleanup

This commit is contained in:
Paul Beckingham 2015-12-26 22:31:11 -05:00
parent b80964dac5
commit 53d8500000
3 changed files with 8 additions and 24 deletions

View file

@ -232,9 +232,6 @@ std::string Grammar::dump () const
////////////////////////////////////////////////////////////////////////////////
void Grammar::validate () const
{
if (_debug)
std::cout << "Validating...\n";
if (_start == "")
throw std::string ("There are no rules defined.");

View file

@ -37,30 +37,16 @@ LR0::LR0 ()
////////////////////////////////////////////////////////////////////////////////
void LR0::createParseTables (const Grammar& grammar)
{
if (_debug)
{
std::cout << "LR0::createParseTables\n";
std::cout << " Start\n"
<< " " << grammar.start () << "\n";
std::cout << " Non-Terminals\n";
for (auto& rule : grammar.rules ())
std::cout << " " << rule << "\n";
std::cout << " Terminals\n";
for (auto& terminal : grammar.terminals ())
std::cout << " " << terminal << "\n";
}
// Obtain the augmented grammar.
auto augmented = grammar.augmented ();
if (_debug)
{
std::cout << " Augmented Grammar\n";
std::cout << "Augmented Grammar\n";
auto count = 0;
for (auto& item : augmented)
{
std::cout << " ";
std::cout << " [" << count++ << "]";
for (auto& term : item)
std::cout << " " << term;
std::cout << "\n";

View file

@ -35,6 +35,7 @@
int main (int argc, const char** argv)
{
int status = 0;
bool debug = true;
// Lightweight version checking that doesn't require initialization or any I/O.
if (argc == 2 && ! strcmp (argv[1], "--version"))
@ -52,26 +53,26 @@ int main (int argc, const char** argv)
// TODO Migrate from loading a grammar from file, to a default string.
File cliFile ("./cli.grammar");
Grammar cliGrammar;
cliGrammar.debug (debug);
cliGrammar.loadFromFile (cliFile);
std::cout << cliGrammar.dump ();
// Instantiate the parser.
LR0 cliParser;
cliParser.debug (debug);
cliParser.createParseTables (cliGrammar);
std::cout << cliParser.dump ();
// TODO Parse CLI.
// TODO Load rule grammar.
File ruleFile ("./rule.grammar");
Grammar ruleGrammar;
ruleGrammar.debug (debug);
ruleGrammar.loadFromFile (ruleFile);
std::cout << ruleGrammar.dump ();
// Instantiate the parser.
LR0 ruleParser;
ruleParser.debug (debug);
ruleParser.createParseTables (ruleGrammar);
std::cout << ruleParser.dump ();
// TODO Load rules.
// TODO Parse rules.