---input---
# normal
tp 1 2 3
tp 100.5 80 -100.5

# relative
tp 10 ~ -10
tp 10 ~10 -10
tp 10 ~0.5 -10
tp 10 ~.5 -10
tp 10 ~-10 -10
tp 10 ~-0.5 -10
tp 10 ~-.5 -10

# carrot
tp 10 ^ -10
tp 10 ^10 -10
tp 10 ^0.5 -10
tp 10 ^.5 -10
tp 10 ^-10 -10
tp 10 ^-0.5 -10
tp 10 ^-.5 -10

---tokens---
'# normal'    Comment.Single
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'1'           Literal.Number.Float
' '           Text.Whitespace
'2'           Literal.Number.Float
' '           Text.Whitespace
'3'           Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'100.5'       Literal.Number.Float
' '           Text.Whitespace
'80'          Literal.Number.Float
' '           Text.Whitespace
'-100.5'      Literal.Number.Float
'\n\n'        Text.Whitespace

'# relative'  Comment.Single
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
'10'          Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
'0.5'         Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
'.5'          Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
'-10'         Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
'-0.5'        Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'~'           Operator
'-.5'         Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n\n'        Text.Whitespace

'# carrot'    Comment.Single
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
'10'          Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
'0.5'         Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
'.5'          Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
'-10'         Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
'-0.5'        Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace

'tp'          Name.Builtin
' '           Text.Whitespace
'10'          Literal.Number.Float
' '           Text.Whitespace
'^'           Operator
'-.5'         Literal.Number.Float
' '           Text.Whitespace
'-10'         Literal.Number.Float
'\n'          Text.Whitespace
