summaryrefslogtreecommitdiff
path: root/src/texec/eval.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/texec/eval.go')
-rw-r--r--src/texec/eval.go50
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