local n=require(script.Lexer)local W=require(script.parse)local Y=require(script.solve)local function v(v,g)local N=n.new(v)local m=W(N)return Y(m,g or{})end return v
local Lexer = require(script.Lexer)
local parse = require(script.parse)
local solve = require(script.solve)

local function evaluate(input, variables)
	local lexer = Lexer.new(input)
	local ast = parse(lexer)

	return solve(ast, variables or {})
end

return evaluate
