25 lines
682 B
C++
25 lines
682 B
C++
#include "generative_grammar/grammar.h"
|
|
#include "core/object/class_db.h"
|
|
#include "macros.h"
|
|
|
|
void Sentence::_bind_methods() {
|
|
BIND_PROPERTY(Variant::STRING, symbols_string);
|
|
BIND_PROPERTY(Variant::INT, width);
|
|
}
|
|
|
|
bool Sentence::is_terminal() const {
|
|
for (char32_t c : this->symbols) {
|
|
if (String::char_uppercase(c)) {
|
|
return false;
|
|
}
|
|
}
|
|
return true; // no non-terminals in sentence
|
|
}
|
|
|
|
void Rule::_bind_methods() {
|
|
BIND_HPROPERTY(Variant::OBJECT, pattern, PROPERTY_HINT_RESOURCE_TYPE, Sentence::get_class_static());
|
|
BIND_HPROPERTY(Variant::OBJECT, result, PROPERTY_HINT_RESOURCE_TYPE, Sentence::get_class_static());
|
|
}
|
|
|
|
void Rule::try_apply(Ref<Sentence> sentence) {
|
|
}
|