aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-04-04 15:53:57 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-04-04 15:53:57 +0200
commita661f8fa61bfcd29b25fbb60307a22c65844873b (patch)
tree14bcee11843d1e6a17057a6db91810b5b603aa13
parent820d96b1e198b40f0e17e6fad1a0e0c331f15374 (diff)
Kiss
-rw-r--r--lexer.go10
-rw-r--r--parser.y12
2 files changed, 11 insertions, 11 deletions
diff --git a/lexer.go b/lexer.go
index 329d97e..9bacf67 100644
--- a/lexer.go
+++ b/lexer.go
@@ -36,23 +36,23 @@ func (y *yyLex) Lex(lval *yySymType) int {
item := <-y.items
switch item.typ {
case STRING:
- lval.sval = S(item.val)
+ lval.sval = item.val
case QUOTED:
- lval.sval = S(dequote(item.val))
+ lval.sval = dequote(item.val)
case INTEGER:
item.val = deneg(item.val)
v, err := strconv.ParseInt(item.val, 10, 64)
if err != nil {
y.Error(err.Error())
}
- lval.ival = I(v)
+ lval.ival = v
case FLOAT:
item.val = deneg(item.val)
v, err := strconv.ParseFloat(item.val, 64)
if err != nil {
y.Error(err.Error())
}
- lval.fval = F(v)
+ lval.fval = v
case COMPLEX:
item.val = deneg(item.val)
pos := strings.IndexAny(item.val, "jJ")
@@ -67,7 +67,7 @@ func (y *yyLex) Lex(lval *yySymType) int {
if err != nil {
y.Error(err.Error())
}
- lval.cval = C(complex(r, i))
+ lval.cval = complex(r, i)
}
return item.typ
}
diff --git a/parser.y b/parser.y
index 65bda58..5c5a1a8 100644
--- a/parser.y
+++ b/parser.y
@@ -3,15 +3,15 @@ package main
import "fmt"
-var vars = map[S]A{}
+var vars = map[string]interface{}{}
%}
%union {
- sval S
- ival I
- fval F
- cval C
- any A
+ sval string
+ ival int64
+ fval float64
+ cval complex128
+ any interface{}
}
%token <sval> STRING QUOTED