mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-07-07 20:06:39 +02:00
Debug: Diagnostic output cleanup
This commit is contained in:
parent
b80964dac5
commit
53d8500000
3 changed files with 8 additions and 24 deletions
|
@ -232,9 +232,6 @@ std::string Grammar::dump () const
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void Grammar::validate () const
|
void Grammar::validate () const
|
||||||
{
|
{
|
||||||
if (_debug)
|
|
||||||
std::cout << "Validating...\n";
|
|
||||||
|
|
||||||
if (_start == "")
|
if (_start == "")
|
||||||
throw std::string ("There are no rules defined.");
|
throw std::string ("There are no rules defined.");
|
||||||
|
|
||||||
|
|
20
src/LR0.cpp
20
src/LR0.cpp
|
@ -37,30 +37,16 @@ LR0::LR0 ()
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void LR0::createParseTables (const Grammar& grammar)
|
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.
|
// Obtain the augmented grammar.
|
||||||
auto augmented = grammar.augmented ();
|
auto augmented = grammar.augmented ();
|
||||||
|
|
||||||
if (_debug)
|
if (_debug)
|
||||||
{
|
{
|
||||||
std::cout << " Augmented Grammar\n";
|
std::cout << "Augmented Grammar\n";
|
||||||
|
auto count = 0;
|
||||||
for (auto& item : augmented)
|
for (auto& item : augmented)
|
||||||
{
|
{
|
||||||
std::cout << " ";
|
std::cout << " [" << count++ << "]";
|
||||||
for (auto& term : item)
|
for (auto& term : item)
|
||||||
std::cout << " " << term;
|
std::cout << " " << term;
|
||||||
std::cout << "\n";
|
std::cout << "\n";
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
int main (int argc, const char** argv)
|
int main (int argc, const char** argv)
|
||||||
{
|
{
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
bool debug = true;
|
||||||
|
|
||||||
// Lightweight version checking that doesn't require initialization or any I/O.
|
// Lightweight version checking that doesn't require initialization or any I/O.
|
||||||
if (argc == 2 && ! strcmp (argv[1], "--version"))
|
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.
|
// TODO Migrate from loading a grammar from file, to a default string.
|
||||||
File cliFile ("./cli.grammar");
|
File cliFile ("./cli.grammar");
|
||||||
Grammar cliGrammar;
|
Grammar cliGrammar;
|
||||||
|
cliGrammar.debug (debug);
|
||||||
cliGrammar.loadFromFile (cliFile);
|
cliGrammar.loadFromFile (cliFile);
|
||||||
std::cout << cliGrammar.dump ();
|
|
||||||
|
|
||||||
// Instantiate the parser.
|
// Instantiate the parser.
|
||||||
LR0 cliParser;
|
LR0 cliParser;
|
||||||
|
cliParser.debug (debug);
|
||||||
cliParser.createParseTables (cliGrammar);
|
cliParser.createParseTables (cliGrammar);
|
||||||
std::cout << cliParser.dump ();
|
|
||||||
|
|
||||||
// TODO Parse CLI.
|
// TODO Parse CLI.
|
||||||
|
|
||||||
// TODO Load rule grammar.
|
// TODO Load rule grammar.
|
||||||
File ruleFile ("./rule.grammar");
|
File ruleFile ("./rule.grammar");
|
||||||
Grammar ruleGrammar;
|
Grammar ruleGrammar;
|
||||||
|
ruleGrammar.debug (debug);
|
||||||
ruleGrammar.loadFromFile (ruleFile);
|
ruleGrammar.loadFromFile (ruleFile);
|
||||||
std::cout << ruleGrammar.dump ();
|
|
||||||
|
|
||||||
// Instantiate the parser.
|
// Instantiate the parser.
|
||||||
LR0 ruleParser;
|
LR0 ruleParser;
|
||||||
|
ruleParser.debug (debug);
|
||||||
ruleParser.createParseTables (ruleGrammar);
|
ruleParser.createParseTables (ruleGrammar);
|
||||||
std::cout << ruleParser.dump ();
|
|
||||||
|
|
||||||
// TODO Load rules.
|
// TODO Load rules.
|
||||||
// TODO Parse rules.
|
// TODO Parse rules.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue