diff options
Diffstat (limited to 'src/texec/eval.go')
-rw-r--r-- | src/texec/eval.go | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/src/texec/eval.go b/src/texec/eval.go index f863c5d..769f1ee 100644 --- a/src/texec/eval.go +++ b/src/texec/eval.go @@ -19,11 +19,59 @@ package texec import "strings" import "tparse" +// Check if a block is the main function func isMain(artifact tparse.Node) bool { return false } -// EvalTNSL starts the evaluation on the World's main function with the given flags passed to the program +// Check if a block is control flow +func isCF(artifact tparse.Node) bool { + +} + +// Get the control flow's name +func cfType(artifact tparse.Node) string { + +} + +// Get type as string from nodes +func evalType(artifact tparse.Node) string { + return "" +} + +// Returns generated value and general "type" of value (string, number, character) +func evalLiteral(artifact tparse.Node) (interface{}, string) { + +} + +// Evaluates a definition and sets up a TVariable in the context's var map +func evalDef(artifact tparse.Node, ctx *TContext) { + vars := len(ctx.VarMap) - 1 + + t := evalType(artifact.Sub[0]) + + for i := 0; i < len(artifact.Sub[1].Sub); i++ { + if artifact.Sub[1].Sub[i].Data.Data == "=" { + artifact.Sub[1].Sub[i].Sub[0] + } + } +} + +// Evaluates a value statement +func evalValue(artifact tparse.Node, ctx *TContext) { + vars := len(ctx.VarMap) - 1 +} + +// Evaluates control flow +func evalCF(artifact tparse.Node, ctx *TContext) {} + +// Evaluate a block (Assume that all blocks have only one output for now) +func evalBlock(artifact tparse.Node, ctx *TContext) TVariable { + +} + + +// EvalTNSL starts the evaluation on the root TModule's main function with the given flags passed to the program func EvalTNSL(world *TModule, f string) { flags := strings.Split(f, " ") }
\ No newline at end of file |