From 493ed614f0662fe645119957b4e54865059fd110 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 17 Jul 2019 01:16:50 +0200 Subject: add go.mod --- calc.go | 38 ++++++++++++++++++++------------------ calc.y | 2 +- go.mod | 3 +++ main.go | 4 ---- 4 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 go.mod diff --git a/calc.go b/calc.go index a8e54a1..cf30fc6 100644 --- a/calc.go +++ b/calc.go @@ -1,5 +1,6 @@ -//line calc.y:2 +// Code generated by goyacc -o calc.go calc.y. DO NOT EDIT. +//line calc.y:2 // Code generated by yacc. DO NOT EDIT. package main @@ -7,6 +8,7 @@ package main import __yyfmt__ "fmt" //line calc.y:4 + import ( "math" "math/rand" @@ -46,7 +48,7 @@ var yyToknames = [...]string{ "UMINUS", "'='", "'_'", - "'!'", + "'?'", "'('", "')'", "'|'", @@ -132,10 +134,10 @@ var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 15, 3, 3, 3, 10, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 10, 3, 3, 16, 17, 8, 6, 3, 7, 3, 9, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 13, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 13, 3, 15, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 11, 14, 3, 3, 3, 3, @@ -490,7 +492,7 @@ yydefault: case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line calc.y:40 +//line calc.y:40 { reg[last] = yyDollar[1].fval yylex.(*yyLex).result = yyDollar[1].fval @@ -498,79 +500,79 @@ yydefault: } case 3: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:45 +//line calc.y:45 { reg[yyDollar[1].sval] = yyDollar[3].fval } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line calc.y:51 +//line calc.y:51 { yyVAL.fval = reg[yyDollar[1].sval] } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line calc.y:52 +//line calc.y:52 { yyVAL.fval = reg[last] } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line calc.y:53 +//line calc.y:53 { yyVAL.fval = rand.Float64() } case 9: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:54 +//line calc.y:54 { yyVAL.fval = yyDollar[1].fval + yyDollar[3].fval } case 10: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:55 +//line calc.y:55 { yyVAL.fval = yyDollar[1].fval - yyDollar[3].fval } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:56 +//line calc.y:56 { yyVAL.fval = yyDollar[1].fval * yyDollar[3].fval } case 12: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:57 +//line calc.y:57 { yyVAL.fval = yyDollar[1].fval / yyDollar[3].fval } case 13: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:58 +//line calc.y:58 { yyVAL.fval = math.Mod(yyDollar[1].fval, yyDollar[3].fval) } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:59 +//line calc.y:59 { yyVAL.fval = math.Pow(yyDollar[1].fval, yyDollar[3].fval) } case 15: yyDollar = yyS[yypt-2 : yypt+1] - //line calc.y:60 +//line calc.y:60 { yyVAL.fval = -yyDollar[2].fval } case 16: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:61 +//line calc.y:61 { yyVAL.fval = yyDollar[2].fval } case 17: yyDollar = yyS[yypt-3 : yypt+1] - //line calc.y:62 +//line calc.y:62 { yyVAL.fval = math.Abs(yyDollar[2].fval) } diff --git a/calc.y b/calc.y index 3ca3083..ca8ceaa 100644 --- a/calc.y +++ b/calc.y @@ -50,7 +50,7 @@ exp : NUMBER | WORD { $$ = reg[$1] } | '_' { $$ = reg[last] } - | '!' { $$ = rand.Float64() } + | '?' { $$ = rand.Float64() } | exp '+' exp { $$ = $1 + $3 } | exp '-' exp { $$ = $1 - $3 } | exp '*' exp { $$ = $1 * $3 } diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..99dd705 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module dim13.org/calc + +go 1.12 diff --git a/main.go b/main.go index f308378..35111e3 100644 --- a/main.go +++ b/main.go @@ -9,11 +9,8 @@ import ( "os" ) -const promt = "\t" - func main() { scanner := bufio.NewScanner(os.Stdin) - fmt.Print(promt) for scanner.Scan() { line := scanner.Text() result, ok, err := Parse(line) @@ -22,6 +19,5 @@ func main() { } else if ok { fmt.Printf("%v\n\n", result) } - fmt.Print(promt) } } -- cgit v1.2.3