diff options
Diffstat (limited to 'src/texec/libtnsl.go')
-rw-r--r-- | src/texec/libtnsl.go | 40 |
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 |