remove trimSpace and inFunc from parseExpr.

handled these in parseFunc.
diff --git a/expr_test.go b/expr_test.go
index 5682855..83b9b26 100644
--- a/expr_test.go
+++ b/expr_test.go
@@ -163,6 +163,47 @@
 				},
 			},
 		},
+		{
+			in: `$(and ${TRUE}, $(X)   )`,
+			val: &funcAnd{
+				fclosure: fclosure{
+					args: []Value{
+						literal("(and"),
+						varref{
+							varname: literal("TRUE"),
+						},
+						varref{
+							varname: literal("X"),
+						},
+					},
+				},
+			},
+		},
+		{
+			in: `$(call func, \
+	foo)`,
+			val: &funcCall{
+				fclosure: fclosure{
+					args: []Value{
+						literal("(call"),
+						literal("func"),
+						literal(" foo"),
+					},
+				},
+			},
+		},
+		{
+			in: `$(call func, \)`,
+			val: &funcCall{
+				fclosure: fclosure{
+					args: []Value{
+						literal("(call"),
+						literal("func"),
+						literal(` \`),
+					},
+				},
+			},
+		},
 	} {
 		val, _, err := parseExpr([]byte(tc.in), nil)
 		if tc.isErr {