Evaluator : will substitute some variables (usually constants) by their runtime value and will evaluate and reduce the expression, unroll loops, etc.
new()
eliminateConditionals:Bool
inlineCalls:Bool
unrollLoops:Bool
varMap:Map<TVar, TVar>
eval(s:ShaderData):ShaderData
setConstant(v:TVar, c:Const):Void