istio: istio.io/istio/mixer/pkg/lang Index | Files | Directories

package lang

import "istio.io/istio/mixer/pkg/lang"

Index

Package Files

externs.go

Variables

var ExternFunctionMetadata = []ast.FunctionMetadata{
    {
        Name:          "ip",
        ReturnType:    config.IP_ADDRESS,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "timestamp",
        ReturnType:    config.TIMESTAMP,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "dnsName",
        ReturnType:    config.DNS_NAME,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "email",
        ReturnType:    config.EMAIL_ADDRESS,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "uri",
        ReturnType:    config.URI,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "match",
        ReturnType:    config.BOOL,
        ArgumentTypes: []config.ValueType{config.STRING, config.STRING},
    },
    {
        Name:          "matches",
        Instance:      true,
        TargetType:    config.STRING,
        ReturnType:    config.BOOL,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "startsWith",
        Instance:      true,
        TargetType:    config.STRING,
        ReturnType:    config.BOOL,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "endsWith",
        Instance:      true,
        TargetType:    config.STRING,
        ReturnType:    config.BOOL,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
    {
        Name:          "emptyStringMap",
        ReturnType:    config.STRING_MAP,
        ArgumentTypes: []config.ValueType{},
    },
    {
        Name:          "conditionalString",
        ReturnType:    config.STRING,
        ArgumentTypes: []config.ValueType{config.BOOL, config.STRING, config.STRING},
    },
    {
        Name:          "toLower",
        ReturnType:    config.STRING,
        ArgumentTypes: []config.ValueType{config.STRING},
    },
}

ExternFunctionMetadata is the type-metadata about externs. It gets used during compilations.

var Externs = map[string]interpreter.Extern{
    "ip":                interpreter.ExternFromFn("ip", ExternIP),
    "ip_equal":          interpreter.ExternFromFn("ip_equal", ExternIPEqual),
    "timestamp":         interpreter.ExternFromFn("timestamp", externTimestamp),
    "timestamp_equal":   interpreter.ExternFromFn("timestamp_equal", externTimestampEqual),
    "timestamp_lt":      interpreter.ExternFromFn("timestamp_lt", externTimestampLt),
    "timestamp_le":      interpreter.ExternFromFn("timestamp_le", externTimestampLe),
    "timestamp_gt":      interpreter.ExternFromFn("timestamp_gt", externTimestampGt),
    "timestamp_ge":      interpreter.ExternFromFn("timestamp_ge", externTimestampGe),
    "dnsName":           interpreter.ExternFromFn("dnsName", ExternDNSName),
    "dnsName_equal":     interpreter.ExternFromFn("dnsName_equal", ExternDNSNameEqual),
    "email":             interpreter.ExternFromFn("email", ExternEmail),
    "email_equal":       interpreter.ExternFromFn("email_equal", ExternEmailEqual),
    "uri":               interpreter.ExternFromFn("uri", ExternURI),
    "uri_equal":         interpreter.ExternFromFn("uri_equal", ExternURIEqual),
    "match":             interpreter.ExternFromFn("match", ExternMatch),
    "matches":           interpreter.ExternFromFn("matches", externMatches),
    "startsWith":        interpreter.ExternFromFn("startsWith", ExternStartsWith),
    "endsWith":          interpreter.ExternFromFn("endsWith", ExternEndsWith),
    "emptyStringMap":    interpreter.ExternFromFn("emptyStringMap", externEmptyStringMap),
    "conditionalString": interpreter.ExternFromFn("conditionalString", externConditionalString),
    "toLower":           interpreter.ExternFromFn("toLower", ExternToLower),
}

Externs contains the list of standard external functions used during evaluation.

func ExternDNSName Uses

func ExternDNSName(in string) (string, error)

ExternDNSName converts a string to a DNS name

func ExternDNSNameEqual Uses

func ExternDNSNameEqual(n1 string, n2 string) (bool, error)

ExternDNSNameEqual compares two DNS names for equality

func ExternEmail Uses

func ExternEmail(in string) (string, error)

ExternEmail converts a string to an email address

func ExternEmailEqual Uses

func ExternEmailEqual(e1 string, e2 string) (bool, error)

ExternEmailEqual compares two email addresses for equality

func ExternEndsWith Uses

func ExternEndsWith(str string, suffix string) bool

ExternEndsWith checks for suffixes

func ExternIP Uses

func ExternIP(in string) ([]byte, error)

ExternIP creates an IP address

func ExternIPEqual Uses

func ExternIPEqual(a []byte, b []byte) bool

ExternIPEqual compares two IP addresses for equality

func ExternMatch Uses

func ExternMatch(str string, pattern string) bool

ExternMatch provides wildcard matching for strings

func ExternStartsWith Uses

func ExternStartsWith(str string, prefix string) bool

ExternStartsWith checks for prefixes

func ExternToLower Uses

func ExternToLower(str string) string

ExternToLower changes the string case to lower

func ExternURI Uses

func ExternURI(in string) (string, error)

ExternURI converts a string to a URI

func ExternURIEqual Uses

func ExternURIEqual(u1 string, u2 string) (bool, error)

ExternURIEqual compares two URIs for equality

Directories

PathSynopsis
ast
cel
checker
compiled
compilerPackage compiler implements a compiler that converts Mixer's expression language into a Mixer IL-based program that can be executed via an interpreter.

Package lang imports 13 packages (graph) and is imported by 6 packages. Updated 2019-09-23. Refresh now. Tools for package owners.