made some interfaces exportable and fixed/enhaaced some selector operator versions

This commit is contained in:
2024-04-08 23:17:56 +02:00
parent aa195b9a68
commit 9ac88bf446
29 changed files with 99 additions and 98 deletions
+7 -5
View File
@@ -153,6 +153,8 @@ func TestParser(t *testing.T) {
/* 132 */ {`10 ? {"a"} :[10] {x="b" but x} :: {"c"}`, "b", nil},
/* 133 */ {`10 ? {"a"} :[10] {x="b"; x} :: {"c"}`, "b", nil},
/* 134 */ {`10 ? {"a"} : {"b"}`, nil, errors.New(`[1:3] no case catches the value (10) of the selection expression`)},
/* 135 */ {`10 ? {"a"} :: {"b"} : {"c"}`, nil, errors.New(`[1:22] selector-case outside of a selector context`)},
/* 136 */ {`1 ? {"a"} : {"b"} ? ["a"] {"A"} :["b"] {"B"}`, "B", nil},
}
check_env_expr_path := 113
@@ -160,11 +162,11 @@ func TestParser(t *testing.T) {
failed := 0
// inputs1 := []inputType{
// {`1 ? {"a"} : {"b"}`, "b", nil},
// {`1 ? {"a"} : {"b"} ? ["a"] {"A"} :["b"] {"B"}`, "B", nil},
// }
for i, input := range inputs {
var expr *ast
var expr Expr
var gotResult any
var gotErr error
@@ -182,7 +184,7 @@ func TestParser(t *testing.T) {
good := true
if expr, gotErr = parser.Parse(scanner); gotErr == nil {
gotResult, gotErr = expr.Eval(ctx, true)
gotResult, gotErr = expr.Eval(ctx)
}
if gotResult != input.wantResult {
@@ -209,7 +211,7 @@ func TestParser(t *testing.T) {
t.Log(fmt.Sprintf("test count: %d, succeeded count: %d, failed count: %d", len(inputs), succeeded, failed))
}
func NoTestListParser(t *testing.T) {
func TestListParser(t *testing.T) {
type inputType struct {
source string
wantResult any
@@ -257,7 +259,7 @@ func NoTestListParser(t *testing.T) {
good := true
if expr, gotErr = parser.Parse(scanner); gotErr == nil {
gotResult, gotErr = expr.Eval(ctx, true)
gotResult, gotErr = expr.Eval(ctx)
}
if (gotResult == nil && input.wantResult != nil) || (gotResult != nil && input.wantResult == nil) {