Skip to content

Commit 43d2b33

Browse files
#170" fixed "No Operator between Argumant and Parentheses"
1 parent f1347d9 commit 43d2b33

File tree

5 files changed

+58
-32
lines changed

5 files changed

+58
-32
lines changed

CURRENT/c-sharp/exe-lib-tests/Run-Tests-Reg/RunTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
namespace mxparser.runtests {
66
class RunTestsReg {
77
static void Main(string[] args) {
8-
RunTest.Start("api");
8+
//RunTest.Start("api");
99
//RunTest.Start("syn");
10-
//RunTest.Start("reg");
10+
RunTest.Start("reg");
1111
mXparser.consolePrintln(".NET CLR version:" + Environment.Version);
1212
mXparser.consolePrintln(".NET version:" + System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(int).Assembly.Location).ProductVersion);
1313
#if PCL

CURRENT/c-sharp/src/org/mariuszgromada/math/mxparser/Expression.cs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* @(#)Expression.cs 4.3.0 2018-12-12
2+
* @(#)Expression.cs 4.3.3 2019-01-27
33
*
44
* You may use this software under the condition of "Simplified BSD License"
55
*
@@ -96,7 +96,7 @@ namespace org.mariuszgromada.math.mxparser {
9696
* <a href="https://play.google.com/store/apps/details?id=org.mathparser.scalar.pro" target="_blank">Scalar Pro</a><br>
9797
* <a href="http://scalarmath.org/" target="_blank">ScalarMath.org</a><br>
9898
*
99-
* @version 4.3.0
99+
* @version 4.3.3
100100
*
101101
* @see Argument
102102
* @see RecursiveArgument
@@ -4921,16 +4921,15 @@ private bool checkSyntax(String level, bool functionWithBodyExt) {
49214921
*/
49224922
if (t.tokenTypeId == Argument.TYPE_ID) {
49234923
Argument arg = getArgument(t.tokenId);
4924-
if ( arg.getArgumentType() == Argument.DEPENDENT_ARGUMENT ) {
4925-
if (getParametersNumber(tokenIndex) >= 0 ) {
4926-
syntax = SYNTAX_ERROR_OR_STATUS_UNKNOWN;
4927-
errorMessage = errorMessage + level + tokenStr + "<ARGUMENT> was expected.\n";
4928-
} else
4929-
if ( (arg.argumentExpression != this) && (arg.argumentExpression.recursionCallPending == false) ) {
4930-
bool syntaxRec = arg.argumentExpression.checkSyntax(level + "-> " + "[" + t.tokenStr + "] = [" + arg.argumentExpression.getExpressionString() + "] ", false);
4931-
syntax = syntax && syntaxRec;
4932-
errorMessage = errorMessage + level + tokenStr + "checking dependent argument ...\n" + arg.argumentExpression.getErrorMessage();
4933-
}
4924+
if (getParametersNumber(tokenIndex) >= 0 ) {
4925+
syntax = SYNTAX_ERROR_OR_STATUS_UNKNOWN;
4926+
errorMessage = errorMessage + level + tokenStr + "<ARGUMENT> was expected.\n";
4927+
} else if ( arg.getArgumentType() == Argument.DEPENDENT_ARGUMENT ) {
4928+
if ( (arg.argumentExpression != this) && (arg.argumentExpression.recursionCallPending == false) ) {
4929+
bool syntaxRec = arg.argumentExpression.checkSyntax(level + "-> " + "[" + t.tokenStr + "] = [" + arg.argumentExpression.getExpressionString() + "] ", false);
4930+
syntax = syntax && syntaxRec;
4931+
errorMessage = errorMessage + level + tokenStr + "checking dependent argument ...\n" + arg.argumentExpression.getErrorMessage();
4932+
}
49344933
}
49354934
}
49364935
/*

CURRENT/c-sharp/src/org/mariuszgromada/math/mxparser/regressiontesting/RegTestSyntax.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* @(#)RegTestSyntax.cs 4.3.0 2018-12-12
2+
* @(#)RegTestSyntax.cs 4.3.3 2019-01-27
33
*
44
* You may use this software under the condition of "Simplified BSD License"
55
*
@@ -77,7 +77,7 @@ namespace org.mariuszgromada.math.mxparser.regressiontesting
7777
* <a href="https://play.google.com/store/apps/details?id=org.mathparser.scalar.pro" target="_blank">Scalar Pro</a><br>
7878
* <a href="http://scalarmath.org/" target="_blank">ScalarMath.org</a><br>
7979
*
80-
* @version 4.3.0
80+
* @version 4.3.3
8181
*
8282
* @see Expression
8383
*/
@@ -2948,6 +2948,20 @@ private static bool runTest(int testId) {
29482948
testResult = true;
29492949
mXparser.consolePrint(syn + " reg ... " + reg + " --> " + " -----> " + msg);
29502950
break;
2951+
case 245:
2952+
Argument fun = new Argument("fun");
2953+
x = new Argument("x");
2954+
expStr = "fun(x)";
2955+
mXparser.consolePrint(expStr + " ...... ");
2956+
e = new Expression(expStr, fun, x);
2957+
exp[testId] = e;
2958+
bool lex = e.checkLexSyntax();
2959+
syn = e.checkSyntax();
2960+
reg = false;
2961+
if (syn == reg && lex == true)
2962+
testResult = true;
2963+
mXparser.consolePrint(syn + " reg ... " + reg + " --> " + " -----> " + msg);
2964+
break;
29512965
}
29522966
if (testResult == true)
29532967
mXparser.consolePrint("OK");
@@ -2991,7 +3005,7 @@ public static int Start(int numOfTests) {
29913005
* @return Number of tests with error result.
29923006
*/
29933007
public static int Start() {
2994-
return Start(244);
3008+
return Start(245);
29953009
}
29963010
/**
29973011
* Runs syntax checking regression test.

CURRENT/java/src/org/mariuszgromada/math/mxparser/Expression.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* @(#)Expression.java 4.3.0 2018-12-12
2+
* @(#)Expression.java 4.3.3 2019-01-27
33
*
44
* You may use this software under the condition of "Simplified BSD License"
55
*
@@ -120,7 +120,7 @@
120120
* <a href="https://play.google.com/store/apps/details?id=org.mathparser.scalar.pro" target="_blank">Scalar Pro</a><br>
121121
* <a href="http://scalarmath.org/" target="_blank">ScalarMath.org</a><br>
122122
*
123-
* @version 4.3.0
123+
* @version 4.3.3
124124
*
125125
* @see Argument
126126
* @see RecursiveArgument
@@ -4943,16 +4943,15 @@ private boolean checkSyntax(String level, boolean functionWithBodyExt) {
49434943
*/
49444944
if (t.tokenTypeId == Argument.TYPE_ID) {
49454945
Argument arg = getArgument(t.tokenId);
4946-
if ( arg.getArgumentType() == Argument.DEPENDENT_ARGUMENT ) {
4947-
if (getParametersNumber(tokenIndex) >= 0 ) {
4948-
syntax = SYNTAX_ERROR_OR_STATUS_UNKNOWN;
4949-
errorMessage = errorMessage + level + tokenStr + "<ARGUMENT> was expected.\n";
4950-
} else
4951-
if ( (arg.argumentExpression != this) && (arg.argumentExpression.recursionCallPending == false) ) {
4952-
boolean syntaxRec = arg.argumentExpression.checkSyntax(level + "-> " + "[" + t.tokenStr + "] = [" + arg.argumentExpression.getExpressionString() + "] ", false);
4953-
syntax = syntax && syntaxRec;
4954-
errorMessage = errorMessage + level + tokenStr + "checking dependent argument ...\n" + arg.argumentExpression.getErrorMessage();
4955-
}
4946+
if (getParametersNumber(tokenIndex) >= 0 ) {
4947+
syntax = SYNTAX_ERROR_OR_STATUS_UNKNOWN;
4948+
errorMessage = errorMessage + level + tokenStr + "<ARGUMENT> was expected.\n";
4949+
} else if ( arg.getArgumentType() == Argument.DEPENDENT_ARGUMENT ) {
4950+
if ( (arg.argumentExpression != this) && (arg.argumentExpression.recursionCallPending == false) ) {
4951+
boolean syntaxRec = arg.argumentExpression.checkSyntax(level + "-> " + "[" + t.tokenStr + "] = [" + arg.argumentExpression.getExpressionString() + "] ", false);
4952+
syntax = syntax && syntaxRec;
4953+
errorMessage = errorMessage + level + tokenStr + "checking dependent argument ...\n" + arg.argumentExpression.getErrorMessage();
4954+
}
49564955
}
49574956
}
49584957
/*

CURRENT/java/src/org/mariuszgromada/math/mxparser/regressiontesting/RegTestSyntax.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* @(#)RegTestSyntax.java 4.3.0 2018-12-12
2+
* @(#)RegTestSyntax.java 4.3.3 2019-01-27
33
*
44
* You may use this software under the condition of "Simplified BSD License"
55
*
@@ -84,7 +84,7 @@
8484
* <a href="https://play.google.com/store/apps/details?id=org.mathparser.scalar.pro" target="_blank">Scalar Pro</a><br>
8585
* <a href="http://scalarmath.org/" target="_blank">ScalarMath.org</a><br>
8686
*
87-
* @version 4.3.0
87+
* @version 4.3.3
8888
*
8989
* @see Expression
9090
*/
@@ -2953,6 +2953,20 @@ private static boolean runTest(int testId) {
29532953
testResult = true;
29542954
mXparser.consolePrint(syn + " reg ... " + reg + " --> " + " -----> " + msg);
29552955
break;
2956+
case 245:
2957+
Argument fun = new Argument("fun");
2958+
x = new Argument("x");
2959+
expStr = "fun(x)";
2960+
mXparser.consolePrint(expStr + " ...... ");
2961+
e = new Expression(expStr, fun, x);
2962+
exp[testId] = e;
2963+
boolean lex = e.checkLexSyntax();
2964+
syn = e.checkSyntax();
2965+
reg = false;
2966+
if (syn == reg && lex == true)
2967+
testResult = true;
2968+
mXparser.consolePrint(syn + " reg ... " + reg + " --> " + " -----> " + msg);
2969+
break;
29562970
}
29572971
if (testResult == true)
29582972
mXparser.consolePrint("OK");
@@ -2998,7 +3012,7 @@ public static int start(int numOfTests) {
29983012
* @return Number of tests with error result.
29993013
*/
30003014
public static int start() {
3001-
return start(244);
3015+
return start(245);
30023016
}
30033017
/**
30043018
* Runs syntax checking regression test.

0 commit comments

Comments
 (0)