#include #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; auto t = uc.NewTransformer(); // Structure: // 1. Alternation: "Open" OR "Save" // 2. Inside "Open": Optional "Recent" // 3. Inside "Recent": Alternation "File" OR "Project" auto pattern = "Menu { Open [ Recent {type: File | Project } ] | Save }"; t.FromTo(pattern, "Action Detected"); cout << t.Transform("Menu Save") << endl; // Match (Simple Alternation) cout << t.Transform("Menu Open") << endl; // Match (Optional omitted) cout << t.Transform("Menu Open Recent File") << endl; // Match (Deep nesting) cout << t.Transform("Menu Open Recent Project") << endl; // Match (Deep nesting alt) }