eval

package
v0.0.0-...-7026739 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2020 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package eval is a copy from https://github.com/adonovan/gopl.io

Package eval provides an expression evaluator.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Format

func Format(e Expr) string

Format formats an expression as a string. It does not attempt to remove unnecessary parens.

Types

type Env

type Env map[Var]float64

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 expression.

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 identifies a variable, e.g., x.

func (Var) Check

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

func (Var) Eval

func (v Var) Eval(env Env) float64

Jump to

Keyboard shortcuts

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