Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As 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) End Sub End Module