#include #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; // In example we'll define quoted text using < and > as // surrounding quotes. Singe and double quotes ' and " // are already defined by default. This is just an example. // Quoted text must be defined as TokenType.Literal // The last argument, 1, means that the literal part of the match will // be the part of the regex found int the first parenthesis (here's // there's only one set of parenthesis). auto t = uc.NewTransformer(); auto SpecialQuotes = t.Tokens().Add("<([^>]*)>", TokenType::Literal, "", 1); SpecialQuotes.SetDataType(BuiltInType::String); SpecialQuotes.IsProperty(ItemIs::QuotedText, true); t.Pattern("{token:1}"); cout << t.Filter("abc xyz 123.456 + 25e2").Matches().Text() << endl; cout << "" << endl; // Based on the definition, the part within < and > is the literal part // passed to the string + operator used by EvalStr uc.ExpressionTokens().Add(SpecialQuotes); cout << uc.EvalStr(" + < plus more>") << endl; }