NouVeL/NVL/Compiler.h

25 lines
563 B
C++

#pragma once
#include "Common.h"
#include "Parser.h"
#include "Environment.h"
#include <sstream>
namespace NVL::Compiler {
struct _DirectedGraphNode {
Vector<Vector<Environment::Variable>> sequence;
};
struct NVLGraph {
Vector<_DirectedGraphNode> nodes;
Vector<String> static_refs;
};
Environment::Variable StaticEval(Vector<String>& refs, const Parse::Object& obj);
NVLGraph Compile(const Vector<Parse::Scene>& scenes, i32 entry_scene_index);
std::ostringstream Serialize(const NVLGraph& g);
NVLGraph Deserialize(std::istringstream& buf);
}