Skip to content

Commit

Permalink
fix not priority issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
sdcb committed Jan 9, 2018
1 parent c646b46 commit fabbf06
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
4 changes: 2 additions & 2 deletions sdmap/src/sdmap/Parser/G4/SdmapParser.g4
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ if:
CloseSql;

boolExpression:
OpNot boolExpression #BoolOpNot |
SYNTAX OpenBrace nsSyntax? (Comma nsSyntax)* CloseBrace #BoolFunc |
Bool #BoolLeteral |
OpenBrace boolExpression CloseBrace #BoolBrace |
nsSyntax (Equal | NotEqual) Null #BoolNull |
nsSyntax #BoolNsSyntax |
boolExpression OpAnd boolExpression #BoolOpAnd |
boolExpression OpOr boolExpression #BoolOpOr |
OpNot boolExpression #BoolOpNot;
boolExpression OpOr boolExpression #BoolOpOr;

macro:
Hash SYNTAX OpenAngleBracket
Expand Down
16 changes: 15 additions & 1 deletion sdmap/test/sdmap.test/IfTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public void AllTest()
rt.AddSourceCode(code);
var result = rt.Emit("v1", new
{
A = true,
A = true,
B = new[] { 1, 2, 3 }
});
Assert.Equal("Emit", result);
Expand Down Expand Up @@ -137,5 +137,19 @@ public void BooleanUnCheckTest(bool flag)
});
Assert.Equal("", result);
}

[Fact]
public void TwoIsEmptyWithOr()
{
var code = "sql v1{#if(!isEmpty(A) || !isEmpty(B)) {OK}}";
var rt = new SdmapCompiler();
rt.AddSourceCode(code);
var result1 = rt.Emit("v1", new { A = "", B = "" });
var result2 = rt.Emit("v1", new { A = new int[0], B = "abc" });
var result3 = rt.Emit("v1", new { A = "b", B = "b" });
Assert.Equal("", result1);
Assert.Equal("OK", result2);
Assert.Equal("OK", result3);
}
}
}

0 comments on commit fabbf06

Please sign in to comment.