<commit_before>#ifndef GRAMMAR_PRODUCTION_HPP
#define GRAMMAR_PRODUCTION_HPP

#include <list>

#include "grammar/non_terminal.hpp"

namespace grammar 
{

class production
{
public:
    production();
    production(non_terminal* from, std::initializer_list<symbol*> to = {});

    bool initialized() const;

private:
    non_terminal* m_from;
    std::list<symbol*> m_to;
};

};

#endif /* GRAMMAR_PRODUCTION_HPP */
<commit_msg>Use forward decl.<commit_after>#ifndef GRAMMAR_PRODUCTION_HPP
#define GRAMMAR_PRODUCTION_HPP

#include <list>

namespace grammar 
{

class non_terminal;
class symbol;

class production
{
public:
    production();
    production(non_terminal* from, std::initializer_list<symbol*> to = {});

    bool initialized() const;

private:
    non_terminal* m_from;
    std::list<symbol*> m_to;
};

}

#endif /* GRAMMAR_PRODUCTION_HPP */

{'fraction_non_alphanumeric': 0.12046783625730995, 'fraction_numerical': 0.0, 'mean_word_length': 5.028169014084507, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1421816', 'n_tokens_mistral': 320, 'n_tokens_neox': 291, 'n_words': 60}