summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2022-07-05 22:23:07 -0400
committerKyle Gunger <kgunger12@gmail.com>2022-07-05 22:23:07 -0400
commit60fb718233fc9cac7741f0f9cc41c1b8b2dd2918 (patch)
tree29a3f6cd7d7522e2321c182a35cfb342483f0127 /src
parent289c1fe3dd2f29e2511b6bb376582f8791179a9b (diff)
[TINT] Add ability to quiet down the interpreter
Diffstat (limited to 'src')
-rw-r--r--src/texec/worldbuilder.go34
-rw-r--r--src/tint.go2
2 files changed, 29 insertions, 7 deletions
diff --git a/src/texec/worldbuilder.go b/src/texec/worldbuilder.go
index 69be803..39a0e12 100644
--- a/src/texec/worldbuilder.go
+++ b/src/texec/worldbuilder.go
@@ -21,6 +21,10 @@ import (
"fmt"
)
+var (
+ Quiet = false
+)
+
/**
worldbuilder.go - take in a file name and construct a root TModule based on it.
*/
@@ -100,7 +104,11 @@ func modDefStruct(n tparse.Node, m *TModule) {
func modDefEnum(n tparse.Node, m *TModule) {
name := n.Sub[0].Data.Data
t := getType(n.Sub[1])
- fmt.Println(t)
+
+ if !Quiet {
+ fmt.Println(t)
+ }
+
s, vs := modDefVars(n.Sub[2], t)
out := TVariable{tEnum, make(VarMap)}
for i := 0; i < len(s); i++ {
@@ -117,7 +125,9 @@ func parseFile(p string) tparse.Node {
// Import a file and auto-import sub-modules and files
func importFile(f string, m *TModule) {
- fmt.Printf("[INFO] Importing file %s\n", f)
+ if !Quiet {
+ fmt.Printf("[INFO] Importing file %s\n", f)
+ }
froot := parseFile(f)
for n := 0 ; n < len(froot.Sub) ; n++ {
if froot.Sub[n].Data.Data == "block" {
@@ -127,7 +137,9 @@ func importFile(f string, m *TModule) {
m.Artifacts = append(m.Artifacts, froot.Sub[n])
}
} else if froot.Sub[n].Data.Data == "include" {
- fmt.Printf("[INCLUDE] %s\n", evalPreLiteral(froot.Sub[n].Sub[0]))
+ if !Quiet {
+ fmt.Printf("[INCLUDE] %s\n", evalPreLiteral(froot.Sub[n].Sub[0]))
+ }
importFile(evalPreLiteral(froot.Sub[n].Sub[0]), m)
} else if froot.Sub[n].Data.Data == "define" {
modDef(froot.Sub[n], m)
@@ -140,7 +152,9 @@ func importFile(f string, m *TModule) {
}
}
- fmt.Printf("[INFO] File %s has been imported.\n", f)
+ if !Quiet {
+ fmt.Printf("[INFO] File %s has been imported.\n", f)
+ }
}
// Build a module from a module block node
@@ -153,16 +167,22 @@ func buildModule(module tparse.Node) TModule {
out.Name = module.Sub[0].Sub[0].Sub[0].Data.Data
}
- fmt.Printf("[INFO] Found module %s\n", out.Name)
+ if !Quiet {
+ fmt.Printf("[INFO] Found module %s\n", out.Name)
+ }
for n := 1 ; n < len(module.Sub) ; n++ {
if module.Sub[n].Data.Data == "include" {
- fmt.Printf("[INCLUDE] %s\n", evalPreLiteral(module.Sub[n].Sub[0]))
+ if !Quiet {
+ fmt.Printf("[INCLUDE] %s\n", evalPreLiteral(module.Sub[n].Sub[0]))
+ }
importFile(evalPreLiteral(module.Sub[n].Sub[0]), &out)
}
}
- fmt.Printf("[INFO] Finished loading module %s\n", out.Name)
+ if !Quiet {
+ fmt.Printf("[INFO] Finished loading module %s\n", out.Name)
+ }
return out
}
diff --git a/src/tint.go b/src/tint.go
index b17d8b0..b2566b5 100644
--- a/src/tint.go
+++ b/src/tint.go
@@ -23,9 +23,11 @@ import "flag"
func main() {
inputFile := flag.String("in", "", "The file to execute")
progFlags := flag.String("flags", "", "Flags for the executing program")
+ quietFlag := flag.Bool("quiet", false, "Quiet the interpreter when importing files")
flag.Parse()
+ texec.Quiet = *quietFlag
root := texec.BuildRoot(*inputFile)
fmt.Printf("Program end. Returned %v.\n", texec.EvalTNSL(&root, *progFlags))