You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

github.com/diggs/go-eval

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/diggs/go-eval

v0.0.0-20150306224132-2ab566383f08
Source
Go
Version published
Created
Source

What is go-eval?

go-eval evaluates boolean or basic arithmetic expressions from strings. It's analogous to a basic form of the eval function often found in dynamic languages.

Examples:

res, err := EvalBool("1 > 2")
log.Print(res)
> false
res, err := EvalBool(`(1 + 3) >= 4 && ("FOO" == "BAR" || "FOO" == "FOO")`)
log.Print(res)
> true
res, err := EvalArithmetic("1 + 2")
log.Print(res)
> 3
res, err := EvalArithmetic("2 - -1")
log.Print(res)
> 3

How does it work?

go-eval leverges the awesome AST and Parser packages that ship in the Go standard library. It constructs an abstract syntax tree from the specified expression and walks the tree to determine the result.

Tests

go get github.com/tools/godep
godep restore
go test

PASS
ok  	github.com/diggs/go-eval	0.005s

Limitations

Floats are not supported yet. Only boolean and arithmetic expressions are supported, this doesn't support conditionals etc.

FAQs

Package last updated on 06 Mar 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts