using uCalcSoftware; var uc = new uCalc(); // 1. Define the lexical rule. // The regex matches '0x' followed by hex digits. // The TokenType::TokenTransform tells the parser to pre-process this token. uc.ExpressionTokens.Add("0x[0-9a-fA-F]+", TokenType.TokenTransform); // 2. Define the transformation rule. // This captures the hex digits and replaces the whole token with a call to BaseConvert. uc.TokenTransformer.FromTo("{'0x'}{val:'[0-9a-fA-F]+'}", "BaseConvert('{val}', 16)"); // 3. Now, the new literal format can be used in expressions. Console.WriteLine(uc.Eval("0xFF + 0xA")); // 255 + 10 Console.WriteLine(uc.EvalStr("Hex(0x100)")); // Hex(256)