TokenKind.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package govaluate
  2. /*
  3. Represents all valid types of tokens that a token can be.
  4. */
  5. type TokenKind int
  6. const (
  7. UNKNOWN TokenKind = iota
  8. PREFIX
  9. NUMERIC
  10. BOOLEAN
  11. STRING
  12. PATTERN
  13. TIME
  14. VARIABLE
  15. FUNCTION
  16. SEPARATOR
  17. COMPARATOR
  18. LOGICALOP
  19. MODIFIER
  20. CLAUSE
  21. CLAUSE_CLOSE
  22. TERNARY
  23. )
  24. /*
  25. GetTokenKindString returns a string that describes the given TokenKind.
  26. e.g., when passed the NUMERIC TokenKind, this returns the string "NUMERIC".
  27. */
  28. func (kind TokenKind) String() string {
  29. switch kind {
  30. case PREFIX:
  31. return "PREFIX"
  32. case NUMERIC:
  33. return "NUMERIC"
  34. case BOOLEAN:
  35. return "BOOLEAN"
  36. case STRING:
  37. return "STRING"
  38. case PATTERN:
  39. return "PATTERN"
  40. case TIME:
  41. return "TIME"
  42. case VARIABLE:
  43. return "VARIABLE"
  44. case FUNCTION:
  45. return "FUNCTION"
  46. case SEPARATOR:
  47. return "SEPARATOR"
  48. case COMPARATOR:
  49. return "COMPARATOR"
  50. case LOGICALOP:
  51. return "LOGICALOP"
  52. case MODIFIER:
  53. return "MODIFIER"
  54. case CLAUSE:
  55. return "CLAUSE"
  56. case CLAUSE_CLOSE:
  57. return "CLAUSE_CLOSE"
  58. case TERNARY:
  59. return "TERNARY"
  60. }
  61. return "UNKNOWN"
  62. }