LR0: Diagnostics now controlled by ::debug

- Added ::parse stub
This commit is contained in:
Paul Beckingham 2015-12-26 14:41:10 -05:00
parent 0ff2ebb37f
commit ec69d5fa4c
2 changed files with 28 additions and 20 deletions

View file

@ -26,8 +26,8 @@
#include <cmake.h> #include <cmake.h>
#include <LR0.h> #include <LR0.h>
#include <iostream>
#include <sstream> #include <sstream>
#include <iostream> // TODO Remove
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
LR0::LR0 () LR0::LR0 ()
@ -37,37 +37,44 @@ LR0::LR0 ()
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
void LR0::createParseTables (const Grammar& grammar) void LR0::createParseTables (const Grammar& grammar)
{ {
// TODO Remove. if (_debug)
std::cout << "LR0::createParseTables\n"; {
std::cout << " Start\n" std::cout << "LR0::createParseTables\n";
<< " " << grammar.start () << "\n"; std::cout << " Start\n"
<< " " << grammar.start () << "\n";
// TODO Remove. std::cout << " Non-Terminals\n";
std::cout << " Non-Terminals\n"; for (auto& rule : grammar.rules ())
for (auto& rule : grammar.rules ()) std::cout << " " << rule << "\n";
std::cout << " " << rule << "\n";
// TODO Remove. std::cout << " Terminals\n";
std::cout << " Terminals\n"; for (auto& terminal : grammar.terminals ())
for (auto& terminal : grammar.terminals ()) std::cout << " " << terminal << "\n";
std::cout << " " << terminal << "\n"; }
// Obtain the augmented grammar. // Obtain the augmented grammar.
auto augmented = grammar.augmented (); auto augmented = grammar.augmented ();
std::cout << " Augmented Grammar\n";
for (auto& item : augmented) if (_debug)
{ {
std::cout << " "; std::cout << " Augmented Grammar\n";
for (auto& term : item) for (auto& item : augmented)
std::cout << " " << term; {
std::cout << "\n"; std::cout << " ";
for (auto& term : item)
std::cout << " " << term;
std::cout << "\n";
}
} }
}
////////////////////////////////////////////////////////////////////////////////
void LR0::parse (const std::string& input)
{
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View file

@ -36,6 +36,7 @@ class LR0
public: public:
LR0 (); LR0 ();
void createParseTables (const Grammar&); void createParseTables (const Grammar&);
void parse (const std::string&);
void debug (bool); void debug (bool);
std::string dump () const; std::string dump () const;