code: def t_HEXA(t):
      r'([0-9][0-9a-fA-F]*[hH])|(\$[0-9a-fA-F]+)|(0x[0-9a-fA-F]+)'
      if t.value[0] == '$':
          t.value = t.value[1:]  # Remove initial '$'
      elif t.value[:2] == '0x':
          t.value = t.value[2:]  # Remove initial '0x'
      else:
          t.value = t.value[:-1]  # Remove last 'h'
  
      t.value = int(t.value, 16)  # Convert to decimal
      t.type = 'NUMBER'
  
      return f t_HEXA(t):
      r'([0-9][0-9a-fA-F]*[hH])|(\$[0-9a-fA-F]+)|(0x[0-9a-fA-F]+)'
      if t.value[0] == '$':
          t.value = t.value[1:]  # Remove initial '$'
      elif t.value[:2] == '0x':
          t.value = t.value[2:]  # Remove initial '0x'
      else:
          t.value = t.value[:-1]  # Remove last 'h'
  
      t.value = int(t.value, 16)  # Convert to decimal
      t.type = 'NUMBER'
  
      return t
docs: r'([0-9][0-9a-fA-F]*[hH])|(\$[0-9a-fA-F]+)|(0x[0-9a-fA-F]+)