mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-29 03:29:58 +02:00
[poincare] Proper RuleSet namespacing
This commit is contained in:
@@ -47,7 +47,7 @@ void Node::generateSelector(Rule * rule) {
|
||||
}
|
||||
|
||||
void Node::generateTransform() {
|
||||
std::cout << "constexpr " << *m_name << " t;" << std::endl;
|
||||
std::cout << "constexpr " << *m_name << " transform;" << std::endl;
|
||||
}
|
||||
|
||||
int Node::indexOfChildrenWithIdentifier(std::string identifier) {
|
||||
|
||||
@@ -7,9 +7,9 @@ void Rule::generate(int index) {
|
||||
m_selector->identifyAnonymousChildren(&selectorIndex);
|
||||
m_selector->generateSelector(this);
|
||||
m_transform->generateTransform();
|
||||
std::cout << "constexpr Rule r(&"
|
||||
std::cout << "constexpr Rule rule(&"
|
||||
<< m_selector->identifier()
|
||||
<< ", &t);" << std::endl;
|
||||
<< ", &transform);" << std::endl;
|
||||
std::cout << "}" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -97,13 +97,28 @@ int yyerror(std::vector<Rule *> ** rules, const char *s) {
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
std::string rulesetName = "MyRuleSet";
|
||||
std::vector<Rule *> * rules = new std::vector<Rule *>();
|
||||
|
||||
yyparse(&rules);
|
||||
|
||||
std::cout << "namespace " << rulesetName << "Rules {" << std::endl;
|
||||
|
||||
for (int i=0; i<rules->size(); i++) {
|
||||
rules->at(i)->generate(i);
|
||||
}
|
||||
|
||||
std::cout << "constexpr Rule rules[" << rules->size() << "] = {";
|
||||
for (int i=0; i<rules->size(); i++) {
|
||||
std::cout << "Rule" << i << "::rule";
|
||||
if (i+1 != rules->size()) {
|
||||
std::cout << ", ";
|
||||
}
|
||||
}
|
||||
std::cout << "};" << std::endl;
|
||||
std::cout << "};" << std::endl;
|
||||
std::cout << "constexpr RuleSet " << rulesetName << "(" << rulesetName << "Rules::rules, " << rules->size() << ");" << std::endl;
|
||||
|
||||
#if 0
|
||||
|
||||
std::cout << "#include \"rules.h\"" << std::endl;
|
||||
|
||||
Reference in New Issue
Block a user