From 60fb718233fc9cac7741f0f9cc41c1b8b2dd2918 Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Tue, 5 Jul 2022 22:23:07 -0400 Subject: [TINT] Add ability to quiet down the interpreter --- src/texec/worldbuilder.go | 34 +++++++++++++++++++++++++++------- src/tint.go | 2 ++ 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)) -- cgit v1.2.3