LR0: Added ::initializeFirstState

This commit is contained in:
Paul Beckingham 2016-01-05 01:15:30 -05:00
parent 1f9826a07e
commit 7126046049
2 changed files with 15 additions and 0 deletions

View file

@ -128,6 +128,20 @@ LR0::Closure LR0::getClosure (const std::string& symbol) const
return result;
}
////////////////////////////////////////////////////////////////////////////////
void LR0::initializeFirstState (States& states) const
{
LR0::Closure result;
for (unsigned int r = 0; r < _augmented.size (); ++r)
{
Item item (_augmented[r]);
item.setGrammarRuleIndex (r);
result.push_back (item);
}
states.push_back (result);
}
////////////////////////////////////////////////////////////////////////////////
void LR0::closeState (States& states, const int state) const
{

View file

@ -70,6 +70,7 @@ public:
private:
std::set <std::string> getExpectedSymbols (const Closure&) const;
Closure getClosure (const std::string&) const;
void initializeFirstState (States&) const;
void closeState (States&, const int) const;
private: