mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-07-07 20:06:39 +02:00
LR0: Diagnostics now controlled by ::debug
- Added ::parse stub
This commit is contained in:
parent
0ff2ebb37f
commit
ec69d5fa4c
2 changed files with 28 additions and 20 deletions
47
src/LR0.cpp
47
src/LR0.cpp
|
@ -26,8 +26,8 @@
|
|||
|
||||
#include <cmake.h>
|
||||
#include <LR0.h>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <iostream> // TODO Remove
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
LR0::LR0 ()
|
||||
|
@ -37,37 +37,44 @@ LR0::LR0 ()
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
void LR0::createParseTables (const Grammar& grammar)
|
||||
{
|
||||
// TODO Remove.
|
||||
std::cout << "LR0::createParseTables\n";
|
||||
std::cout << " Start\n"
|
||||
<< " " << grammar.start () << "\n";
|
||||
if (_debug)
|
||||
{
|
||||
std::cout << "LR0::createParseTables\n";
|
||||
std::cout << " Start\n"
|
||||
<< " " << grammar.start () << "\n";
|
||||
|
||||
// TODO Remove.
|
||||
std::cout << " Non-Terminals\n";
|
||||
for (auto& rule : grammar.rules ())
|
||||
std::cout << " " << rule << "\n";
|
||||
std::cout << " Non-Terminals\n";
|
||||
for (auto& rule : grammar.rules ())
|
||||
std::cout << " " << rule << "\n";
|
||||
|
||||
// TODO Remove.
|
||||
std::cout << " Terminals\n";
|
||||
for (auto& terminal : grammar.terminals ())
|
||||
std::cout << " " << terminal << "\n";
|
||||
std::cout << " Terminals\n";
|
||||
for (auto& terminal : grammar.terminals ())
|
||||
std::cout << " " << terminal << "\n";
|
||||
}
|
||||
|
||||
// Obtain the augmented grammar.
|
||||
auto augmented = grammar.augmented ();
|
||||
std::cout << " Augmented Grammar\n";
|
||||
for (auto& item : augmented)
|
||||
|
||||
if (_debug)
|
||||
{
|
||||
std::cout << " ";
|
||||
for (auto& term : item)
|
||||
std::cout << " " << term;
|
||||
std::cout << "\n";
|
||||
std::cout << " Augmented Grammar\n";
|
||||
for (auto& item : augmented)
|
||||
{
|
||||
std::cout << " ";
|
||||
for (auto& term : item)
|
||||
std::cout << " " << term;
|
||||
std::cout << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void LR0::parse (const std::string& input)
|
||||
{
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -36,6 +36,7 @@ class LR0
|
|||
public:
|
||||
LR0 ();
|
||||
void createParseTables (const Grammar&);
|
||||
void parse (const std::string&);
|
||||
void debug (bool);
|
||||
std::string dump () const;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue