73 lines
1.0 KiB
Go
73 lines
1.0 KiB
Go
|
package govaluate
|
||
|
|
||
|
/*
|
||
|
Represents all valid types of tokens that a token can be.
|
||
|
*/
|
||
|
type TokenKind int
|
||
|
|
||
|
const (
|
||
|
UNKNOWN TokenKind = iota
|
||
|
|
||
|
PREFIX
|
||
|
NUMERIC
|
||
|
BOOLEAN
|
||
|
STRING
|
||
|
PATTERN
|
||
|
TIME
|
||
|
VARIABLE
|
||
|
FUNCTION
|
||
|
SEPARATOR
|
||
|
|
||
|
COMPARATOR
|
||
|
LOGICALOP
|
||
|
MODIFIER
|
||
|
|
||
|
CLAUSE
|
||
|
CLAUSE_CLOSE
|
||
|
|
||
|
TERNARY
|
||
|
)
|
||
|
|
||
|
/*
|
||
|
GetTokenKindString returns a string that describes the given TokenKind.
|
||
|
e.g., when passed the NUMERIC TokenKind, this returns the string "NUMERIC".
|
||
|
*/
|
||
|
func (kind TokenKind) String() string {
|
||
|
|
||
|
switch kind {
|
||
|
|
||
|
case PREFIX:
|
||
|
return "PREFIX"
|
||
|
case NUMERIC:
|
||
|
return "NUMERIC"
|
||
|
case BOOLEAN:
|
||
|
return "BOOLEAN"
|
||
|
case STRING:
|
||
|
return "STRING"
|
||
|
case PATTERN:
|
||
|
return "PATTERN"
|
||
|
case TIME:
|
||
|
return "TIME"
|
||
|
case VARIABLE:
|
||
|
return "VARIABLE"
|
||
|
case FUNCTION:
|
||
|
return "FUNCTION"
|
||
|
case SEPARATOR:
|
||
|
return "SEPARATOR"
|
||
|
case COMPARATOR:
|
||
|
return "COMPARATOR"
|
||
|
case LOGICALOP:
|
||
|
return "LOGICALOP"
|
||
|
case MODIFIER:
|
||
|
return "MODIFIER"
|
||
|
case CLAUSE:
|
||
|
return "CLAUSE"
|
||
|
case CLAUSE_CLOSE:
|
||
|
return "CLAUSE_CLOSE"
|
||
|
case TERNARY:
|
||
|
return "TERNARY"
|
||
|
}
|
||
|
|
||
|
return "UNKNOWN"
|
||
|
}
|