Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
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
  • Socket score

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc