summaryrefslogtreecommitdiff
path: root/src/texec/libtnsl.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/texec/libtnsl.go')
-rw-r--r--src/texec/libtnsl.go40
1 files changed, 38 insertions, 2 deletions
diff --git a/src/texec/libtnsl.go b/src/texec/libtnsl.go
index c77bd25..7bf4848 100644
--- a/src/texec/libtnsl.go
+++ b/src/texec/libtnsl.go
@@ -16,8 +16,44 @@
package texec
+import "fmt"
+
/**
- This file represents the 'tnsl' module and a key few functions.
- These functions should be all that is needed to use the compiler, and no more.
+ libtnsl module stub. Contains only parts of the io sub-module.
+ Parts included:
+ - io.print
+ - io.println
+ - io.open_file
+ - io.File API for file objects
*/
+// tells if the stub supports a function
+func tnslResolve(callPath TPath) bool {
+ l := len(callPath.Module)
+ if l < 2 || l > 3 || callPath.Module[0] != "tnsl" || callPath.Module[1] != "io" {
+ return false
+ }
+ if l > 2 && callPath.Module[2] != "File" {
+ return false
+ }
+
+ if l > 2 {
+ if callPath.Artifact == "write" || callPath.Artifact == "read" || callPath.Artifact == "close" {
+ return true;
+ }
+ } else {
+ if callPath.Artifact == "print" || callPath.Artifact == "println" || callPath.Artifact == "open_file" {
+ return true;
+ }
+ }
+
+ return false
+}
+
+// evaluate a function call.
+// out is the variable out (if any)
+// in is the variable in (if any)
+// callPath is the function being called.
+func tnslEval(out, in *TVaraiable, callPath TPath) {
+
+} \ No newline at end of file