aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-07-07 16:04:18 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-07-07 16:04:18 +0900
commitcba36c9f9e16a405e6e866c7345643ee9d9a5908 (patch)
tree82080832c8b39306e7dae73c4b5397d72bfc747b
parentfc02d674ac37674f3cec520e9d2067e697ec1ff0 (diff)
downloadkati-cba36c9f9e16a405e6e866c7345643ee9d9a5908.tar.gz
fix err_unterminated_func.mk
-rw-r--r--expr.go7
-rw-r--r--parser.go2
-rw-r--r--testcase/err_unterminated_func.mk2
3 files changed, 7 insertions, 4 deletions
diff --git a/expr.go b/expr.go
index 5ed645d..9778de4 100644
--- a/expr.go
+++ b/expr.go
@@ -25,6 +25,7 @@ import (
)
var (
+ errEndOfInput = errors.New("unexpected end of input")
errNotLiteral = errors.New("valueNum: not literal")
)
@@ -392,7 +393,8 @@ Loop:
}
exp = appendStr(exp, in[b:i], op.alloc)
if i == len(in) && term != nil {
- return exp, i, fmt.Errorf("parse: unexpected end of input: %q %d [%q]", in, i, term)
+ logf("parse: unexpected end of input: %q %d [%q]", in, i, term)
+ return exp, i, errEndOfInput
}
return compactExpr(exp), i, nil
}
@@ -612,6 +614,9 @@ func parseFunc(f mkFunc, in []byte, s int, term []byte, funcName string, alloc b
}
v, n, err := parseExpr(in[i:], term, op)
if err != nil {
+ if err == errEndOfInput {
+ return nil, 0, fmt.Errorf("*** unterminated call to function `%s': missing `)'.", funcName)
+ }
return nil, 0, err
}
v = concatLine(v)
diff --git a/parser.go b/parser.go
index 913a05e..d8f2487 100644
--- a/parser.go
+++ b/parser.go
@@ -215,7 +215,7 @@ func (p *parser) parseMaybeRule(line, semi []byte) {
}
expr, _, err := parseExpr(line, nil, parseOp{})
if err != nil {
- p.err = p.srcpos().errorf("parse error: %s: %v", string(line), err)
+ p.err = p.srcpos().error(err)
return
}
// TODO(ukai): remove ast, and eval here.
diff --git a/testcase/err_unterminated_func.mk b/testcase/err_unterminated_func.mk
index 15ff331..2739459 100644
--- a/testcase/err_unterminated_func.mk
+++ b/testcase/err_unterminated_func.mk
@@ -1,3 +1 @@
-# TODO(go): Fix
-
$(info ()