diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2021-11-03 14:02:59 -0400 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2021-11-03 14:02:59 -0400 |
commit | 21fbf1493d722af5610370b25223b390ba7edbd0 (patch) | |
tree | 12203fdfa3b47fccf37338e8bae229c4d828e705 /src/texec/eval.go | |
parent | 92b72f0357c553add6f010626e85268428ad5eb5 (diff) |
[EXEC] Refactor, stub
+ Stub code for eval funcs added
+ Refactor of libtnsl stub
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 |