--- test case: 'extract token 1' in: expression: '("ccc")="ccca"' index: 1 out: return: 'ccc' --- test case: 'extract token 2' in: expression: '("ccc")="ccca"' index: 2 out: return: 'ccca' --- test case: 'extract token 3' in: expression: '("ccc")="ccca"' index: 3 out: return: '' --- test case: 'extract token 1, int in the middle' in: expression: '("90")<>(2/"1")' index: 1 out: return: '90' --- test case: 'extract token 2, int in the middle' in: expression: '("90")<>(2/"1")' index: 2 out: return: '2' --- test case: 'extract token 3, int in the middle' in: expression: '("90")<>(2/"1")' index: 3 out: return: '1' --- test case: 'extract token 1, str in the middle' in: expression: '(66)<>("-2"/1)' index: 1 out: return: '66' --- test case: 'extract token 2, str in the middle' in: expression: '(66)<>("-2"/1)' index: 2 out: return: '-2' --- test case: 'extract token 3, str in the middle' in: expression: '(66)<>("-2"/1)' index: 3 out: return: '1' --- test case: 'escape function' in: expression: '{0286} + (0)<>("-2"/1 - {2370897})' index: 1 out: return: '0' --- test case: 'macro' in: expression: '{19928}<>"{HOST.HOST}"' index: 1 out: return: '{HOST.HOST}' --- test case: 'escaping 1' in: expression: '"\\"<>"a"' index: 1 out: return: '\' --- test case: 'escaping 2' in: expression: '"\""<>"a"' index: 1 out: return: '"' --- test case: 'escaping 3' in: expression: '"\"\"\""<>"a"' index: 1 out: return: '"""' --- test case: 'user macro' in: expression: '{19928}<>{$MACRO}' index: 1 out: return: '{$MACRO}' --- test case: 'negative constant' in: expression: '{19928}=-1' index: 1 out: return: '-1' --- test case: 'user macro with context' in: expression: '{19928}<>{$MACRO:"x:\"1\""}' index: 1 out: return: '{$MACRO:"x:\"1\""}' --- test case: 'fraction' in: expression: '{19928}<>.5' index: 1 out: return: '.5' --- test case: 'negative fraction' in: expression: '{19928}<>-.5' index: 1 out: return: '-.5' --- test case: 'constant after macro' in: expression: '{TRIGGER.VALUE}=1 and {19928}<>10' index: 2 out: return: '10' --- test case: 'constant 1e5' in: expression: '{19928}=1e5' index: 1 out: return: '1e5' --- test case: 'constant 1e-5' in: expression: '{19928}=1e-5' index: 1 out: return: '1e-5' --- test case: 'string constant -10e-10' in: expression: '{TRIGGER.VALUE}=1 and {19928}<>"-10e-10"' index: 2 out: return: '-10e-10' ...