unioffice: github.com/unidoc/unioffice/spreadsheet/formula Index | Files

package formula

import "github.com/unidoc/unioffice/spreadsheet/formula"

Package formula provides formula parsing and evaluation. The lexer is implemented with a ragel grammar while the the parser is implemented with goyacc. The entire formula grammar is not implemented and not all functions are supported yet. For compatibility sake, upon failure to parse or execute a formula, gooxml leaves cached formula results blank allowing Excel to compute formulas upon load. This is similar to what most other Excel libraries do which leave all cached results blank instead of attempting to execute formulas.

The unit tests for this package are unique in that we can take advantage of "cached" formula results that Excel/LibreOffice write to the sheet. These are the computed results of a formula in string form. By comparing these values to the value computed by the gooxml evaluation of the formula, adding a new test means just adding a new formula to one of the reference sheets with Excel. During the unit test, we evaluate the formula and compare it to the value that Excel computed. If they're the same, the test passes.

Index

Package Files

binaryexpr.go binoptype_string.go bool.go cellref.go constarrayexpr.go context.go doc.go emptyexpr.go error.go evaluator.go expression.go fnindex.go fninformation.go fnlogical.go fnmathtrig.go fnstatistical.go fntext.go functioncall.go grammar.go invalidreferencecontext.go lex.go lexer.go namedrangeref.go negate.go number.go parser.go prefixexpr.go range.go reference.go referencetype_string.go register.go result.go resulttype_string.go sheetprefixexpr.go string.go

Variables

var InvalidReferenceContext = &ivr{}

InvalidReferenceContext is a Context that can be used when evaluating an invalid reference (e.g. referencing a non-existent sheet). It implements Context safely, but returns error results.

var ReferenceInvalid = Reference{Type: ReferenceTypeInvalid}

func LexReader Uses

func LexReader(r io.Reader) chan *node

func ParseCellReference Uses

func ParseCellReference(s string) (col string, row uint32, err error)

TODO: move these somewhere to remove duplication

func RegisterFunction Uses

func RegisterFunction(name string, fn Function)

RegisterFunction registers a standard function.

func RegisterFunctionComplex Uses

func RegisterFunctionComplex(name string, fn FunctionComplex)

RegisterFunctionComplex registers a standard function.

func SupportedFunctions Uses

func SupportedFunctions() []string

SupportedFunctions returns a list of supported functions.

type BinOpType Uses

type BinOpType byte

BinOpType is the binary operation operator type go:generate stringer -type=BinOpType

const (
    BinOpTypeUnknown BinOpType = iota
    BinOpTypePlus
    BinOpTypeMinus
    BinOpTypeMult
    BinOpTypeDiv
    BinOpTypeExp
    BinOpTypeLT
    BinOpTypeGT
    BinOpTypeEQ
    BinOpTypeLEQ
    BinOpTypeGEQ
    BinOpTypeNE
    BinOpTypeConcat // '&' in Excel
)

Operator type constants

func (BinOpType) String Uses

func (i BinOpType) String() string

type BinaryExpr Uses

type BinaryExpr struct {
    // contains filtered or unexported fields
}

BinaryExpr is a binary expression.

func (BinaryExpr) Eval Uses

func (b BinaryExpr) Eval(ctx Context, ev Evaluator) Result

Eval evaluates the binary expression using the context given.

func (BinaryExpr) Reference Uses

func (b BinaryExpr) Reference(ctx Context, ev Evaluator) Reference

type Bool Uses

type Bool struct {
    // contains filtered or unexported fields
}

func (Bool) Eval Uses

func (b Bool) Eval(ctx Context, ev Evaluator) Result

func (Bool) Reference Uses

func (b Bool) Reference(ctx Context, ev Evaluator) Reference

type CellRef Uses

type CellRef struct {
    // contains filtered or unexported fields
}

CellRef is a reference to a single cell

func (CellRef) Eval Uses

func (c CellRef) Eval(ctx Context, ev Evaluator) Result

Eval evaluates and returns the result of the cell reference.

func (CellRef) Reference Uses

func (c CellRef) Reference(ctx Context, ev Evaluator) Reference

type ConstArrayExpr Uses

type ConstArrayExpr struct {
    // contains filtered or unexported fields
}

func (ConstArrayExpr) Eval Uses

func (c ConstArrayExpr) Eval(ctx Context, ev Evaluator) Result

func (ConstArrayExpr) Reference Uses

func (c ConstArrayExpr) Reference(ctx Context, ev Evaluator) Reference

type Context Uses

type Context interface {
    // Cell returns the result of evaluating a cell.
    Cell(ref string, ev Evaluator) Result

    // Sheet returns an evaluation context for a given sheet name.  This is used
    // when evaluating cells that pull data from other sheets (e.g. ='Sheet 2'!A1)
    Sheet(name string) Context

    // NamedRange returns a named range.
    NamedRange(name string) Reference

    // SetOffset is used so that the Context can evaluate cell references
    // differently when they are not absolute (e.g. not like '$A$5').  See the
    // shared formula support in Cell for usage.
    SetOffset(col, row uint32)
}

Context is a formula execution context. Formula evaluation uses the context to retreive information from sheets.

type EmptyExpr Uses

type EmptyExpr struct {
}

func (EmptyExpr) Eval Uses

func (e EmptyExpr) Eval(ctx Context, ev Evaluator) Result

func (EmptyExpr) Reference Uses

func (e EmptyExpr) Reference(ctx Context, ev Evaluator) Reference

type Error Uses

type Error struct {
    // contains filtered or unexported fields
}

func (Error) Eval Uses

func (e Error) Eval(ctx Context, ev Evaluator) Result

func (Error) Reference Uses

func (e Error) Reference(ctx Context, ev Evaluator) Reference

type ErrorType Uses

type ErrorType byte

ErrorType is a formula evaluation error type.

const (
    ErrorTypeValue ErrorType = iota
    ErrorTypeNull
    ErrorTypeRef
    ErrorTypeName
    ErrorTypeNum
    ErrorTypeNA
    ErrorTypeDivideByZero
)

ErrorType constants.

type Evaluator Uses

type Evaluator interface {
    Eval(ctx Context, formula string) Result
}

Evaluator is the interface for a formula evaluator. This is needed so we can pass it to the spreadsheet to let it evaluate formula cells before returning the results.

func NewEvaluator Uses

func NewEvaluator() Evaluator

type Expression Uses

type Expression interface {
    Eval(ctx Context, ev Evaluator) Result
    Reference(ctx Context, ev Evaluator) Reference
}

func NewBinaryExpr Uses

func NewBinaryExpr(lhs Expression, op BinOpType, rhs Expression) Expression

NewBinaryExpr constructs a new binary expression with a given operator.

func NewBool Uses

func NewBool(v string) Expression

func NewCellRef Uses

func NewCellRef(v string) Expression

NewCellRef constructs a new cell reference.

func NewConstArrayExpr Uses

func NewConstArrayExpr(data [][]Expression) Expression

func NewEmptyExpr Uses

func NewEmptyExpr() Expression

func NewError Uses

func NewError(v string) Expression

func NewFunction Uses

func NewFunction(name string, args []Expression) Expression

func NewNamedRangeRef Uses

func NewNamedRangeRef(v string) Expression

NewNamedRangeRef constructs a new named range reference.

func NewNegate Uses

func NewNegate(e Expression) Expression

func NewNumber Uses

func NewNumber(v string) Expression

func NewPrefixExpr Uses

func NewPrefixExpr(pfx, exp Expression) Expression

func NewRange Uses

func NewRange(from, to Expression) Expression

NewRange constructs a new range.

func NewSheetPrefixExpr Uses

func NewSheetPrefixExpr(s string) Expression

func NewString Uses

func NewString(v string) Expression

func Parse Uses

func Parse(r io.Reader) Expression

func ParseString Uses

func ParseString(s string) Expression

type Function Uses

type Function func(args []Result) Result

Function is a standard function whose result only depends on its arguments.

func LookupFunction Uses

func LookupFunction(name string) Function

LookupFunction looks up and returns a standard function or nil.

type FunctionCall Uses

type FunctionCall struct {
    // contains filtered or unexported fields
}

func (FunctionCall) Eval Uses

func (f FunctionCall) Eval(ctx Context, ev Evaluator) Result

func (FunctionCall) Reference Uses

func (f FunctionCall) Reference(ctx Context, ev Evaluator) Reference

type FunctionComplex Uses

type FunctionComplex func(ctx Context, ev Evaluator, args []Result) Result

FunctionComplex is a function whose result depends on its arguments and the context that it's in. As an example, INDIRECT is a complex function so that INDIRECT("A1") which returns the value of the "A1" cell in a sheet can use the context to reach into the sheet and pull out required values.

func LookupFunctionComplex Uses

func LookupFunctionComplex(name string) FunctionComplex

LookupFunctionComplex looks up and returns a complex function or nil.

type Lexer Uses

type Lexer struct {
    // contains filtered or unexported fields
}

go:generate ragel -G2 -Z lexer.rl go:generate goimports -w lexer.go

func NewLexer Uses

func NewLexer() *Lexer

func (*Lexer) Next Uses

func (l *Lexer) Next() *node

type NamedRangeRef Uses

type NamedRangeRef struct {
    // contains filtered or unexported fields
}

NamedRangeRef is a reference to a named range

func (NamedRangeRef) Eval Uses

func (n NamedRangeRef) Eval(ctx Context, ev Evaluator) Result

Eval evaluates and returns the result of the NamedRangeRef reference.

func (NamedRangeRef) Reference Uses

func (n NamedRangeRef) Reference(ctx Context, ev Evaluator) Reference

type Negate Uses

type Negate struct {
    // contains filtered or unexported fields
}

func (Negate) Eval Uses

func (n Negate) Eval(ctx Context, ev Evaluator) Result

func (Negate) Reference Uses

func (n Negate) Reference(ctx Context, ev Evaluator) Reference

type Number Uses

type Number struct {
    // contains filtered or unexported fields
}

func (Number) Eval Uses

func (n Number) Eval(ctx Context, ev Evaluator) Result

func (Number) Reference Uses

func (n Number) Reference(ctx Context, ev Evaluator) Reference

type PrefixExpr Uses

type PrefixExpr struct {
    // contains filtered or unexported fields
}

func (PrefixExpr) Eval Uses

func (p PrefixExpr) Eval(ctx Context, ev Evaluator) Result

func (PrefixExpr) Reference Uses

func (p PrefixExpr) Reference(ctx Context, ev Evaluator) Reference

type Range Uses

type Range struct {
    // contains filtered or unexported fields
}

Range is a range expression that when evaluated returns a list of Results.

func (Range) Eval Uses

func (r Range) Eval(ctx Context, ev Evaluator) Result

Eval evaluates the range returning a list of results or an error.

func (Range) Reference Uses

func (r Range) Reference(ctx Context, ev Evaluator) Reference

type Reference Uses

type Reference struct {
    Type  ReferenceType
    Value string
}

func MakeRangeReference Uses

func MakeRangeReference(ref string) Reference

type ReferenceType Uses

type ReferenceType byte

ReferenceType is a type of reference go:generate stringer -type=ReferenceType

const (
    ReferenceTypeInvalid ReferenceType = iota
    ReferenceTypeCell
    ReferenceTypeNamedRange
    ReferenceTypeRange
    ReferenceTypeSheet
)

func (ReferenceType) String Uses

func (i ReferenceType) String() string

type Result Uses

type Result struct {
    ValueNumber  float64
    ValueString  string
    ValueList    []Result
    ValueArray   [][]Result
    ErrorMessage string
    Type         ResultType

    Ref Reference
}

Result is the result of a formula or cell evaluation .

func And Uses

func And(args []Result) Result

And is an implementation of the Excel AND() function.

func Arabic Uses

func Arabic(args []Result) Result

Arabic implements the Excel ARABIC function which parses roman numerals. It accepts one numeric argument.

func Atan2 Uses

func Atan2(args []Result) Result

Atan2 implements the Excel ATAN2 function. It accepts two numeric arguments, and the arguments are (x,y), reversed from normal to match Excel's behaviour.

func Average Uses

func Average(args []Result) Result

Average implements the AVERAGE function. It differs slightly from Excel (and agrees with LibreOffice) in that boolean values are counted. As an example, AVERAGE of two cells containing TRUE & FALSE is 0.5 in LibreOffice and #DIV/0! in Excel. gooxml will return 0.5 in this case.

func Averagea Uses

func Averagea(args []Result) Result

Averagea implements the AVERAGEA function, AVERAGEA counts cells that contain text as a zero where AVERAGE ignores them entirely.

func Base Uses

func Base(args []Result) Result

Base is an implementation of the Excel BASE function that returns a string form of an integer in a specified base and of a minimum length with padded zeros.

func Ceiling Uses

func Ceiling(args []Result) Result

Ceiling is an implementation of the CEILING function which returns the ceiling of a number.

func CeilingMath Uses

func CeilingMath(args []Result) Result

CeilingMath implements _xlfn.CEILING.MATH which rounds numbers to the nearest multiple of the second argument, toward or away from zero as specified by the third argument.

func CeilingPrecise Uses

func CeilingPrecise(args []Result) Result

CeilingPrecise is an implementation of the CEILING.PRECISE function which returns the ceiling of a number.

func Char Uses

func Char(args []Result) Result

Char is an implementation of the Excel CHAR function that takes an integer in the range [0,255] and returns the corresponding ASCII character.

func Clean Uses

func Clean(args []Result) Result

Clean is an implementation of the Excel CLEAN function that removes unprintable characters.

func Code Uses

func Code(args []Result) Result

Code is an implementation of the Excel CODE function that returns the first character of the string as a number.

func Combin Uses

func Combin(args []Result) Result

Combin is an implementation of the Excel COMBINA function whic returns the number of combinations.

func Combina Uses

func Combina(args []Result) Result

Combina is an implementation of the Excel COMBINA function whic returns the number of combinations with repetitions.

func Concatenate Uses

func Concatenate(args []Result) Result

Concatenate is an implementation of the Excel CONCATENATE() function.

func Count Uses

func Count(args []Result) Result

Count implements the COUNT function.

func CountBlank Uses

func CountBlank(args []Result) Result

CountBlank implements the COUNTBLANK function.

func Counta Uses

func Counta(args []Result) Result

Counta implements the COUNTA function.

func Decimal Uses

func Decimal(args []Result) Result

Decimal is an implementation of the Excel function DECIMAL() that parses a string in a given base and returns the numeric result.

func Degrees Uses

func Degrees(args []Result) Result

Degrees is an implementation of the Excel function DEGREES() that converts radians to degrees.

func Even Uses

func Even(args []Result) Result

Even is an implementation of the Excel EVEN() that rounds a number to the nearest even integer.

func Exact Uses

func Exact(args []Result) Result

Exact is an implementation of the Excel EXACT() which compares two strings.

func Fact Uses

func Fact(args []Result) Result

Fact is an implementation of the excel FACT function which returns the factorial of a positive numeric input.

func FactDouble Uses

func FactDouble(args []Result) Result

FactDouble is an implementation of the excel FACTDOUBLE function which returns the double factorial of a positive numeric input.

func False Uses

func False(args []Result) Result

False is an implementation of the Excel FALSE() function. It takes no arguments.

func Floor Uses

func Floor(args []Result) Result

Floor is an implementation of the FlOOR function.

func FloorMath Uses

func FloorMath(args []Result) Result

FloorMath implements _xlfn.FLOOR.MATH which rounds numbers down to the nearest multiple of the second argument, toward or away from zero as specified by the third argument.

func FloorPrecise Uses

func FloorPrecise(args []Result) Result

FloorPrecise is an implementation of the FlOOR.PRECISE function.

func GCD Uses

func GCD(args []Result) Result

GCD implements the Excel GCD() function which returns the greatest common divisor of a range of numbers.

func HLookup Uses

func HLookup(args []Result) Result

HLookup implements the HLOOKUP function that returns a matching value from a row in an array.

func If Uses

func If(args []Result) Result

If is an implementation of the Excel IF() function. It takes one, two or three arguments.

func IfError Uses

func IfError(args []Result) Result

IfError is an implementation of the Excel IFERROR() function. It takes two arguments.

func IfNA Uses

func IfNA(args []Result) Result

IfNA is an implementation of the Excel IFNA() function. It takes two arguments.

func Index Uses

func Index(args []Result) Result

Index implements the Excel INDEX function

func Indirect Uses

func Indirect(ctx Context, ev Evaluator, args []Result) Result

Indirect is an implementation of the Excel INDIRECT function that returns the contents of a cell.

func Int Uses

func Int(args []Result) Result

Int is an implementation of the Excel INT() function that rounds a number down to an integer.

func LCM Uses

func LCM(args []Result) Result

LCM implements the Excel LCM() function which returns the least common multiple of a range of numbers.

func Left Uses

func Left(args []Result) Result

Left implements the Excel LEFT(string,[n]) function which returns the leftmost n characters.

func Len Uses

func Len(args []Result) Result

Len is an implementation of the Excel LEN function that returns length of a string

func Log Uses

func Log(args []Result) Result

Log implements the Excel LOG function which returns the log of a number. By default the result is base 10, however the second argument to the function can specify a different base.

func Lookup Uses

func Lookup(args []Result) Result

Lookup implements the LOOKUP function that returns a matching value from a column, or from the same index in a second column.

func Lower Uses

func Lower(args []Result) Result

Lower is an implementation of the Excel LOWER function that returns a lower case version of a string.

func MDeterm Uses

func MDeterm(args []Result) Result

MDeterm is an implementation of the Excel MDETERM which finds the determinant of a matrix.

func MakeArrayResult Uses

func MakeArrayResult(arr [][]Result) Result

MakeArrayResult constructs an array result (matrix).

func MakeBoolResult Uses

func MakeBoolResult(b bool) Result

MakeBoolResult constructs a boolean result (internally a number).

func MakeEmptyResult Uses

func MakeEmptyResult() Result

MakeEmptyResult is ued when parsing an empty argument.

func MakeErrorResult Uses

func MakeErrorResult(msg string) Result

MakeErrorResult constructs a #VALUE! error with a given extra error message. The error message is for debugging formula evaluation only and is not stored in the sheet.

func MakeErrorResultType Uses

func MakeErrorResultType(t ErrorType, msg string) Result

MakeErrorResultType makes an error result of a given type with a specified debug message

func MakeListResult Uses

func MakeListResult(list []Result) Result

MakeListResult constructs a list result.

func MakeNumberResult Uses

func MakeNumberResult(v float64) Result

MakeNumberResult constructs a number result.

func MakeStringResult Uses

func MakeStringResult(s string) Result

MakeStringResult constructs a string result.

func Max Uses

func Max(args []Result) Result

Max is an implementation of the Excel MAX() function.

func Median Uses

func Median(args []Result) Result

Median implements the MEDIAN function that returns the median of a range of values.

func Min Uses

func Min(args []Result) Result

Min is an implementation of the Excel MIN() function.

func Mod Uses

func Mod(args []Result) Result

Mod is an implementation of the Excel MOD function which returns the remainder after division. It requires two numeric argumnts.

func Mround Uses

func Mround(args []Result) Result

Mround is an implementation of the Excel MROUND function. It is not a generic rounding function and has some oddities to match Excel's behavior.

func Multinomial Uses

func Multinomial(args []Result) Result

Multinomial implements the excel MULTINOMIAL function.

func Munit Uses

func Munit(args []Result) Result

Munit is an implementation of the Excel MUNIT function that returns an identity matrix.

func NA Uses

func NA(args []Result) Result

NA is an implementation of the Excel NA() function that just returns the #N/A! error.

func Not Uses

func Not(args []Result) Result

Not is an implementation of the Excel NOT() function and takes a single argument.

func Odd Uses

func Odd(args []Result) Result

Odd is an implementation of the Excel ODD() that rounds a number to the nearest odd integer.

func Offset Uses

func Offset(ctx Context, ev Evaluator, args []Result) Result

func Or Uses

func Or(args []Result) Result

Or is an implementation of the Excel OR() function and takes a variable number of arguments.

func Pi Uses

func Pi(args []Result) Result

Pi is an implementation of the Excel Pi() function that just returns the Pi constant.

func Power Uses

func Power(args []Result) Result

Power is an implementation of the Excel POWER function that raises a number to a power. It requires two numeric arguments.

func Product Uses

func Product(args []Result) Result

Product is an implementation of the Excel PRODUCT() function.

func Proper Uses

func Proper(args []Result) Result

Proper is an implementation of the Excel PROPER function that returns a copy of the string with each word capitalized.

func Quotient Uses

func Quotient(args []Result) Result

Quotient is an implementation of the Excel QUOTIENT function that returns the integer portion of division.

func Radians Uses

func Radians(args []Result) Result

Radians is an implementation of the Excel function RADIANS() that converts degrees to radians.

func Rand Uses

func Rand(args []Result) Result

Rand is an implementation of the Excel RAND() function that returns random numbers in the range [0,1).

func RandBetween Uses

func RandBetween(args []Result) Result

RandBetween is an implementation of the Excel RANDBETWEEN() function that returns a random integer in the range specified.

func Rept Uses

func Rept(args []Result) Result

Rept is an implementation of the Excel REPT function that returns n copies of a string.

func Right(args []Result) Result

Right implements the Excel RIGHT(string,[n]) function which returns the rightmost n characters.

func Roman Uses

func Roman(args []Result) Result

Roman is an implementation of the Excel ROMAN function that convers numbers to roman numerals in one of 5 formats.

func Round Uses

func Round(args []Result) Result

Round is an implementation of the Excel ROUND function that rounds a number to a specified number of digits.

func RoundDown Uses

func RoundDown(args []Result) Result

RoundDown is an implementation of the Excel ROUNDDOWN function that rounds a number down to a specified number of digits.

func RoundUp Uses

func RoundUp(args []Result) Result

RoundUp is an implementation of the Excel ROUNDUP function that rounds a number up to a specified number of digits.

func SeriesSum Uses

func SeriesSum(args []Result) Result

SeriesSum implements the Excel SERIESSUM function.

func Sign Uses

func Sign(args []Result) Result

func Sum Uses

func Sum(args []Result) Result

Sum is an implementation of the Excel SUM() function.

func SumProduct Uses

func SumProduct(args []Result) Result

SumProduct is an implementation of the Excel SUMPRODUCT() function.

func SumSquares Uses

func SumSquares(args []Result) Result

SumSquares is an implementation of the Excel SUMSQ() function.

func T Uses

func T(args []Result) Result

T is an implementation of the Excel T function that returns whether the argument is text.

func Transpose Uses

func Transpose(args []Result) Result

Transpose implements the TRANSPOSE function that transposes a cell range.

func Trim Uses

func Trim(args []Result) Result

Trim is an implementation of the Excel TRIM function that removes leading, trailing and consecutive spaces.

func True Uses

func True(args []Result) Result

True is an implementation of the Excel TRUE() function. It takes no arguments.

func Trunc Uses

func Trunc(args []Result) Result

func Unicode Uses

func Unicode(args []Result) Result

func Upper Uses

func Upper(args []Result) Result

Upper is an implementation of the Excel UPPER function that returns a upper case version of a string.

func VLookup Uses

func VLookup(args []Result) Result

VLookup implements the VLOOKUP function that returns a matching value from a column in an array.

func Xor Uses

func Xor(args []Result) Result

Xor is an implementation of the Excel XOR() function and takes a variable number of arguments. It's odd to say the least. If any argument is numeric, it returns true if the number of non-zero numeric arguments is odd and false otherwise. If no argument is numeric, it returns an error.

func (Result) AsNumber Uses

func (r Result) AsNumber() Result

AsNumber attempts to intepret a string cell value as a number. Upon success, it returns a new number result, upon failure it returns the original result. This is used as functions return strings that can then act like number (e.g. LEFT(1.2345,3) + LEFT(1.2345,3) = 2.4)

func (Result) AsString Uses

func (r Result) AsString() Result

func (Result) ListValues Uses

func (r Result) ListValues() []Result

ListValues converts an array to a list or returns a lists values. This is used for functions that can accept an array, but don't care about ordering to reuse the list function logic.

func (Result) String Uses

func (r Result) String() string

func (Result) Value Uses

func (r Result) Value() string

Value returns a string version of the result.

type ResultType Uses

type ResultType byte

ResultType is the type of the result go:generate stringer -type=ResultType

const (
    ResultTypeUnknown ResultType = iota
    ResultTypeNumber
    ResultTypeString
    ResultTypeList
    ResultTypeArray
    ResultTypeError
    ResultTypeEmpty
)

ResultType constants.

func (ResultType) String Uses

func (i ResultType) String() string

type SheetPrefixExpr Uses

type SheetPrefixExpr struct {
    // contains filtered or unexported fields
}

func (SheetPrefixExpr) Eval Uses

func (s SheetPrefixExpr) Eval(ctx Context, ev Evaluator) Result

func (SheetPrefixExpr) Reference Uses

func (s SheetPrefixExpr) Reference(ctx Context, ev Evaluator) Reference

type String Uses

type String struct {
    // contains filtered or unexported fields
}

func (String) Eval Uses

func (s String) Eval(ctx Context, ev Evaluator) Result

func (String) Reference Uses

func (s String) Reference(ctx Context, ev Evaluator) Reference

Package formula imports 13 packages (graph) and is imported by 5 packages. Updated 2019-08-14. Refresh now. Tools for package owners.