package data import "github.com/volker-schukai/tokenizer" const ( PipeSymbol = iota + 1 // | PipeCmdDelimiter PipeQuote PipeReflectionIsNil PipeCmdStatic PipeCmdIndex PipeCmdPath PipeCmdToUpper PipeCmdToLower PipeCmdEmpty PipeCmdEquals PipeCmdTrim PipeCmdRawUrlEncode PipeCmdNot PipeCmdToInteger PipeCmdToString PipeCmdToFloat PipeCmdToBoolean PipeCmdToNumber PipeCmdToJSON PipeCmdFromJSON PipeCmdUCFirst PipeCmdUCWords PipeCmdLength PipeCmdBase64Encode PipeCmdBase64Decode PipeCmdHTMLSpecialChars PipeCmdHTMLEntityEncode PipeCmdHTMLEntityDecode PipeCmdPlaintext PipeCmdMD5 PipeCmdSHA1 PipeCmdSHA256 PipeCmdSplit PipeCmdReplace PipeCmdJoin PipeCmdNop PipeCmdStringPad PipeCmdStringRepeat PipeCmdReverse PipeCmdSubstring PipeCmdWordwrap PipeCmdPrefix PipeCmdSuffix PipeCmdUrlEncode PipeCmdUrlDecode PipeCmdChar PipeCmdFloor PipeCmdCeil PipeCmdRound PipeCmdAdd PipeCmdSubtract PipeCmdMultiply PipeCmdDivide PipeCmdModulo ) func initTokenizer() *tokenizer.Tokenizer { parser := tokenizer.New() parser.AllowKeywordUnderscore().AllowNumbersInKeyword() parser.DefineTokens(PipeSymbol, []string{"|"}) parser.DefineTokens(PipeCmdDelimiter, []string{":"}) parser.DefineTokens(PipeCmdStatic, []string{"static"}) parser.DefineTokens(PipeCmdIndex, []string{"index", "dataset"}) parser.DefineTokens(PipeCmdPath, []string{"path"}) parser.DefineTokens(PipeReflectionIsNil, []string{"isnull", "isnil"}) parser.DefineTokens(PipeCmdNop, []string{"nop"}) parser.DefineTokens(PipeCmdEquals, []string{"eq", "equals", "equal", "?"}) // tested parser.DefineTokens(PipeCmdEmpty, []string{"empty"}) // tested parser.DefineTokens(PipeCmdNot, []string{"not", "!"}) // tested parser.DefineTokens(PipeCmdToInteger, []string{"tointeger", "int", "toint"}) // tested parser.DefineTokens(PipeCmdToString, []string{"tostring", "str"}) parser.DefineTokens(PipeCmdToFloat, []string{"tofloat", "float"}) parser.DefineTokens(PipeCmdToBoolean, []string{"toboolean", "tobool", "bool"}) parser.DefineTokens(PipeCmdToNumber, []string{"tonumber", "number"}) parser.DefineTokens(PipeCmdToJSON, []string{"tojson", "json", "encodejson", "jsonencode"}) parser.DefineTokens(PipeCmdFromJSON, []string{"fromjson", "decodejson", "jsondecode"}) parser.DefineTokens(PipeCmdToUpper, []string{"toupper", "upper", "strtoupper"}) // tested parser.DefineTokens(PipeCmdToLower, []string{"tolower", "lower", "strtolower"}) // tested parser.DefineTokens(PipeCmdChar, []string{"char", "chr"}) parser.DefineTokens(PipeCmdFloor, []string{"floor", "rounddown"}) parser.DefineTokens(PipeCmdCeil, []string{"ceil", "roundup"}) parser.DefineTokens(PipeCmdRound, []string{"round"}) parser.DefineTokens(PipeCmdAdd, []string{"add", "+"}) parser.DefineTokens(PipeCmdSubtract, []string{"subtract", "sub", "-"}) parser.DefineTokens(PipeCmdMultiply, []string{"multiply", "mul", "*"}) parser.DefineTokens(PipeCmdDivide, []string{"divide", "div", "/"}) parser.DefineTokens(PipeCmdModulo, []string{"modulo", "mod", "%"}) parser.DefineTokens(PipeCmdUrlEncode, []string{"urlencoded", "urlencode", "url_encode"}) parser.DefineTokens(PipeCmdUrlDecode, []string{"urldecoded", "urldecoded", "url_decode"}) parser.DefineTokens(PipeCmdRawUrlEncode, []string{"rawurlencode", "rawurlencoded"}) parser.DefineTokens(PipeCmdUCFirst, []string{"ucfirst", "ucfirst"}) parser.DefineTokens(PipeCmdUCWords, []string{"ucwords", "ucwords"}) parser.DefineTokens(PipeCmdLength, []string{"length", "len"}) parser.DefineTokens(PipeCmdBase64Encode, []string{"base64encode", "base64_encode", "base64"}) parser.DefineTokens(PipeCmdBase64Decode, []string{"base64decode", "base64_decode"}) parser.DefineTokens(PipeCmdHTMLSpecialChars, []string{"htmlspecialchars", "html_special_chars"}) parser.DefineTokens(PipeCmdHTMLEntityEncode, []string{"htmlentities", "html_entity_encode"}) parser.DefineTokens(PipeCmdHTMLEntityDecode, []string{"html_entity_decode", "html_entity_decode"}) parser.DefineTokens(PipeCmdPlaintext, []string{"plaintext", "text", "plain", "strip_tags"}) parser.DefineTokens(PipeCmdTrim, []string{"trim"}) parser.DefineTokens(PipeCmdMD5, []string{"md5"}) parser.DefineTokens(PipeCmdSHA1, []string{"sha1"}) parser.DefineTokens(PipeCmdSHA256, []string{"sha256"}) parser.DefineTokens(PipeCmdStringPad, []string{"strpad", "stringpad"}) parser.DefineTokens(PipeCmdStringRepeat, []string{"strrepeat", "stringrepeat"}) parser.DefineTokens(PipeCmdReverse, []string{"reverse", "strrev"}) parser.DefineTokens(PipeCmdSubstring, []string{"substr", "substring"}) parser.DefineTokens(PipeCmdWordwrap, []string{"wordwrap"}) parser.DefineTokens(PipeCmdPrefix, []string{"prefix"}) parser.DefineTokens(PipeCmdSuffix, []string{"suffix"}) parser.DefineTokens(PipeCmdSplit, []string{"split"}) parser.DefineTokens(PipeCmdReplace, []string{"replace"}) parser.DefineTokens(PipeCmdJoin, []string{"join"}) parser.DefineStringToken(PipeQuote, `"`, `"`).SetEscapeSymbol(tokenizer.BackSlash) return parser }