static void Dynamic(IExpressionBlock block, ICppScope scope) { foreach (var blockExpression in block.Expressions) { Dynamic((dynamic)blockExpression, scope); } }
static IExpression Dynamic(IExpressionBlock expressionBlock, IContext context) { IExpression result = null; foreach (var sub in expressionBlock.Expressions) { result = Dynamic((dynamic)sub, context); } return(result); }
public static void Generate(TextWriter writer, IExpressionBlock block) { writer.WriteLine(value: "#include <stdint.h>"); writer.WriteLine(value: "#include <tuple>"); var scope = new CppScope(); Dynamic(block, scope); foreach (var global in scope.Globals) { writer.WriteLine(global.Value); } writer.WriteLine(scope.Declaration.Build()); writer.WriteLine(value: "int main(int argc, char** argv) {"); writer.WriteLine(scope.Runtime.Build()); writer.WriteLine(value: " return 0;"); writer.WriteLine(value: "}"); }