commit d31f48788e037e05062d1a8477e0a334c832be4d Author: r0n1n7an Date: Sat Apr 20 16:19:54 2024 +0800 first commit diff --git a/Calc.exe b/Calc.exe new file mode 100644 index 0000000..acbe909 Binary files /dev/null and b/Calc.exe differ diff --git a/Calc.go b/Calc.go new file mode 100644 index 0000000..e65e489 --- /dev/null +++ b/Calc.go @@ -0,0 +1,47 @@ +package main + +import ( + "flag" + "fmt" + "os" + + "github.com/Knetic/govaluate" +) + +var exp string = "" +var ver string = "" +var vsn bool = false + +func init() { + flag.BoolVar(&vsn, "v", false, "Show Program Version") + flag.StringVar(&exp, "e", "", "Evaluable Expression") + flag.Parse() +} + +func main() { + if vsn { + _ShowVersion() + os.Exit(0) + } + + if exp == "" { + flag.Usage() + os.Exit(1) + } + + expression, err := govaluate.NewEvaluableExpression(exp) + if err != nil { + fmt.Printf("[ERR] %v\r\n", err) + os.Exit(1) + } + result, err := expression.Evaluate(nil) + if err != nil { + fmt.Printf("[ERR] %v\r\n", err) + os.Exit(1) + } + fmt.Printf("Result=%v\r\n", result) +} + +func _ShowVersion() { + fmt.Printf("%s\r\nAuthor: %s\r\nVersion: %s\r\n", os.Args[0], "TE / Vayne Tan", ver) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..58aff63 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module Calc + +go 1.20 + +require github.com/Knetic/govaluate v3.0.0+incompatible diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..bb59ab5 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/Knetic/govaluate v3.0.0+incompatible h1:7o6+MAPhYTCF0+fdvoz1xDedhRb4f6s9Tn1Tt7/WTEg= +github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=