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 <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)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue