eval

package
v0.0.0-...-0deda60 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2020 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package eval is an evaluator for simple arithmetic expressions

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Env

type Env map[Var]float64

Env is an environment that maps variable name to values

type Expr

type Expr interface {
	// Eval returns the value of this Expr in the environment env
	Eval(env Env) float64

	// Check reports errors in this Expr and adds its Vars to the set
	Check(vars map[Var]bool) error
}

An Expr is an arithmetic expresson

func Parse

func Parse(input string) (_ Expr, err error)

Parse parses the input string as an arithmetic expression.

expr = num                         a literal number, e.g., 3.14159
     | id                          a variable name, e.g., x
     | id '(' expr ',' ... ')'     a function call
     | '-' expr                    a unary operator (+-)
     | expr '+' expr               a binary operator (+-*/)

type Var

type Var string

A Var represents a reference to a variable

func (Var) Check

func (v Var) Check(vars map[Var]bool) error

func (Var) Eval

func (v Var) Eval(env Env) float64

Eval is an environment that maps variable name to values

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL