aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/compiler.h
blob: aecaa371819537a6d080dd555639e007ccceba3f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef ETHSERP_COMPILER
#define ETHSERP_COMPILER

#include <stdio.h>
#include <iostream>
#include <vector>
#include <map>
#include "util.h"

// Compiled fragtree -> compiled fragtree without labels
Node dereference(Node program);

// LLL -> fragtree
Node buildFragmentTree(Node program);

// Dereferenced fragtree -> opcodes
std::vector<Node> flatten(Node derefed);

// opcodes -> bin
std::string serialize(std::vector<Node> codons);

// Fragtree -> bin
std::string assemble(Node fragTree);

// Fragtree -> opcodes
std::vector<Node> prettyAssemble(Node fragTree);

// LLL -> bin
std::string compileLLL(Node program);

// LLL -> opcodes
std::vector<Node> prettyCompileLLL(Node program);

// bin -> opcodes
std::vector<Node> deserialize(std::string ser);

// Converts a list of integer values to binary transaction data
std::string encodeDatalist(std::vector<std::string> vals);

// Converts binary transaction data into a list of integer values
std::vector<std::string> decodeDatalist(std::string ser);

#endif