var celReservedSymbols … var expandMatcher … // newCharacterFilter returns a boolean array to indicate the allowed characters func newCharacterFilter(characters string) []bool { … } type escapeCheck … // skipRegexCheck checks if escape would be skipped. // if invalidCharFound is true, it must have invalid character; if invalidCharFound is false, not sure if it has invalid character or not func skipRegexCheck(ident string) escapeCheck { … } var validCharacterFilter … // Escape escapes ident and returns a CEL identifier (of the form '[a-zA-Z_][a-zA-Z0-9_]*'), or returns // false if the ident does not match the supported input format of `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*`. // Escaping Rules: // - '__' escapes to '__underscores__' // - '.' escapes to '__dot__' // - '-' escapes to '__dash__' // - '/' escapes to '__slash__' // - Identifiers that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: "true", "false", // "null", "in", "as", "break", "const", "continue", "else", "for", "function", "if", "import", "let", loop", "package", // "namespace", "return". func Escape(ident string) (string, bool) { … } var unexpandMatcher … // Unescape unescapes an CEL identifier containing the escape sequences described in Escape, or return false if the // string contains invalid escape sequences. The escaped input is expected to be a valid CEL identifier, but is // not checked. func Unescape(escaped string) (string, bool) { … }