aboutsummaryrefslogtreecommitdiff
path: root/eval.go
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-04 14:20:44 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-04 14:20:44 +0900
commit2d4b6054d60d42c12e049a9f83beaf4beaed4514 (patch)
tree1e526b8cfe438df448662a5605f1b4322f8d32b6 /eval.go
parent171a3dff6fcecaa75b6342ea325c2db05121a0fd (diff)
downloadkati-2d4b6054d60d42c12e049a9f83beaf4beaed4514.tar.gz
Use Value instead of []byte in MaybeRuleAST
Diffstat (limited to 'eval.go')
-rw-r--r--eval.go11
1 files changed, 4 insertions, 7 deletions
diff --git a/eval.go b/eval.go
index 222c222..fbe6d80 100644
--- a/eval.go
+++ b/eval.go
@@ -121,11 +121,7 @@ func (ev *Evaluator) evalMaybeRule(ast *MaybeRuleAST) {
ev.filename = ast.filename
ev.lineno = ast.lineno
- expr := ast.expr
- lexpr, _, err := parseExpr(expr, nil)
- if err != nil {
- panic(fmt.Errorf("parse %s:%d %v", ev.filename, ev.lineno, err))
- }
+ lexpr := ast.expr
buf := newBuf()
lexpr.Eval(buf, ev)
line := buf.Bytes()
@@ -156,11 +152,12 @@ func (ev *Evaluator) evalMaybeRule(ast *MaybeRuleAST) {
if assign != nil {
if ast.term == ';' {
- // TODO(ukai): reuse lexpr above?
- lexpr, _, err := parseExpr(append(ast.expr, ast.afterTerm...), nil)
+ nexpr, _, err := parseExpr(ast.afterTerm, nil)
if err != nil {
panic(fmt.Errorf("parse %s:%d %v", ev.filename, ev.lineno, err))
}
+ lexpr = Expr{lexpr, nexpr}
+
buf = newBuf()
lexpr.Eval(buf, ev)
assign, err = rule.parse(buf.Bytes())