Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
cdo
Commits
f7cfdac9
Commit
f7cfdac9
authored
Jun 27, 2017
by
Uwe Schulzweida
Browse files
expr: added support for clev in ifthenelse (bug fix).
parent
3b9e853a
Changes
3
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
f7cfdac9
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
2017-06-27 Uwe Schulzweida
2017-06-27 Uwe Schulzweida
* expr: added support for clev in ifthenelse (bug fix).
* setpartabp: param key values without leading zeros (bug fix).
* setpartabp: param key values without leading zeros (bug fix).
2017-06-08 Uwe Schulzweida
2017-06-08 Uwe Schulzweida
...
...
src/expr.cc
View file @
f7cfdac9
...
@@ -1171,8 +1171,18 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
...
@@ -1171,8 +1171,18 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
nlev2
=
p2
->
param
.
nlev
;
nlev2
=
p2
->
param
.
nlev
;
missval2
=
p2
->
param
.
missval
;
missval2
=
p2
->
param
.
missval
;
pdata2
=
p2
->
param
.
data
;
pdata2
=
p2
->
param
.
data
;
if
(
ngp2
>
1
&&
ngp2
!=
ngp1
)
cdoAbort
(
"expr?expr:expr: Number of grid points differ (ngp1 = %ld, ngp2 = %ld)"
,
ngp1
,
ngp2
);
if
(
ngp2
>
1
&&
ngp2
!=
ngp
)
{
if
(
ngp
==
1
)
{
ngp
=
ngp2
;
px
=
p2
;
}
else
cdoAbort
(
"expr?expr:expr: Number of grid points differ (ngp1 = %ld, ngp2 = %ld)"
,
ngp1
,
ngp2
);
}
if
(
nlev2
>
1
&&
nlev2
!=
nlev
)
if
(
nlev2
>
1
&&
nlev2
!=
nlev
)
{
{
if
(
nlev
==
1
)
if
(
nlev
==
1
)
...
@@ -1200,8 +1210,18 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
...
@@ -1200,8 +1210,18 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
nlev3
=
p3
->
param
.
nlev
;
nlev3
=
p3
->
param
.
nlev
;
missval3
=
p3
->
param
.
missval
;
missval3
=
p3
->
param
.
missval
;
pdata3
=
p3
->
param
.
data
;
pdata3
=
p3
->
param
.
data
;
if
(
ngp3
>
1
&&
ngp3
!=
ngp1
)
cdoAbort
(
"expr?expr:expr: Number of grid points differ (ngp1 = %ld, ngp3 = %ld)"
,
ngp1
,
ngp3
);
if
(
ngp3
>
1
&&
ngp3
!=
ngp
)
{
if
(
ngp
==
1
)
{
ngp
=
ngp3
;
px
=
p3
;
}
else
cdoAbort
(
"expr?expr:expr: Number of grid points differ (ngp1 = %ld, ngp3 = %ld)"
,
ngp1
,
ngp3
);
}
if
(
nlev3
>
1
&&
nlev3
!=
nlev
)
if
(
nlev3
>
1
&&
nlev3
!=
nlev
)
{
{
if
(
nlev
==
1
)
if
(
nlev
==
1
)
...
@@ -1232,8 +1252,8 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
...
@@ -1232,8 +1252,8 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
for
(
size_t
k
=
0
;
k
<
nlev
;
++
k
)
for
(
size_t
k
=
0
;
k
<
nlev
;
++
k
)
{
{
size_t
loff1
=
(
nlev1
==
1
)
?
0
:
k
*
ngp1
;
size_t
loff
=
k
*
ngp
;
size_t
loff
=
k
*
ngp
;
size_t
loff1
=
(
nlev1
==
1
)
?
0
:
loff
;
size_t
loff2
=
(
nlev2
==
1
)
?
0
:
loff
;
size_t
loff2
=
(
nlev2
==
1
)
?
0
:
loff
;
size_t
loff3
=
(
nlev3
==
1
)
?
0
:
loff
;
size_t
loff3
=
(
nlev3
==
1
)
?
0
:
loff
;
...
@@ -1242,16 +1262,18 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
...
@@ -1242,16 +1262,18 @@ nodeType *ex_ifelse(int init, nodeType *p1, nodeType *p2, nodeType *p3)
const
double
*
restrict
idat3
=
pdata3
+
loff3
;
const
double
*
restrict
idat3
=
pdata3
+
loff3
;
double
*
restrict
odat
=
p
->
param
.
data
+
loff
;
double
*
restrict
odat
=
p
->
param
.
data
+
loff
;
double
ival1
=
idat1
[
0
];
double
ival2
=
idat2
[
0
];
double
ival2
=
idat2
[
0
];
double
ival3
=
idat3
[
0
];
double
ival3
=
idat3
[
0
];
for
(
size_t
i
=
0
;
i
<
ngp
;
++
i
)
for
(
size_t
i
=
0
;
i
<
ngp
;
++
i
)
{
{
if
(
ngp1
>
1
)
ival1
=
idat1
[
i
];
if
(
ngp2
>
1
)
ival2
=
idat2
[
i
];
if
(
ngp2
>
1
)
ival2
=
idat2
[
i
];
if
(
ngp3
>
1
)
ival3
=
idat3
[
i
];
if
(
ngp3
>
1
)
ival3
=
idat3
[
i
];
if
(
nmiss1
&&
DBL_IS_EQUAL
(
i
dat1
[
i
]
,
missval1
)
)
if
(
nmiss1
&&
DBL_IS_EQUAL
(
i
val1
,
missval1
)
)
odat
[
i
]
=
missval1
;
odat
[
i
]
=
missval1
;
else
if
(
IS_NOT_EQUAL
(
i
dat1
[
i
]
,
0
)
)
else
if
(
IS_NOT_EQUAL
(
i
val1
,
0
)
)
odat
[
i
]
=
DBL_IS_EQUAL
(
ival2
,
missval2
)
?
missval1
:
ival2
;
odat
[
i
]
=
DBL_IS_EQUAL
(
ival2
,
missval2
)
?
missval1
:
ival2
;
else
else
odat
[
i
]
=
DBL_IS_EQUAL
(
ival3
,
missval3
)
?
missval1
:
ival3
;
odat
[
i
]
=
DBL_IS_EQUAL
(
ival3
,
missval3
)
?
missval1
:
ival3
;
...
...
src/expr_yacc.cc
View file @
f7cfdac9
...
@@ -91,7 +91,7 @@ nodeType *expr_com(const char *cname, char *vname);
...
@@ -91,7 +91,7 @@ nodeType *expr_com(const char *cname, char *vname);
void
freeNode
(
nodeType
*
p
);
void
freeNode
(
nodeType
*
p
);
#line 95 "expr_yacc.c"
/* yacc.c:339 */
#line 95 "expr_yacc.c
c
"
/* yacc.c:339 */
# ifndef YY_NULLPTR
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
# if defined __cplusplus && 201103L <= __cplusplus
...
@@ -110,9 +110,9 @@ void freeNode(nodeType *p);
...
@@ -110,9 +110,9 @@ void freeNode(nodeType *p);
#endif
#endif
/* In a future release of Bison, this section will be replaced
/* In a future release of Bison, this section will be replaced
by #include "expr_yacc.h". */
by #include "expr_yacc.h
h
". */
#ifndef YY_YY_EXPR_YACC_H_INCLUDED
#ifndef YY_YY_EXPR_YACC_H
H
_INCLUDED
# define YY_YY_EXPR_YACC_H_INCLUDED
# define YY_YY_EXPR_YACC_H
H
_INCLUDED
/* Debug traces. */
/* Debug traces. */
#ifndef YYDEBUG
#ifndef YYDEBUG
# define YYDEBUG 0
# define YYDEBUG 0
...
@@ -166,11 +166,11 @@ extern int yydebug;
...
@@ -166,11 +166,11 @@ extern int yydebug;
int
yyparse
(
parse_param_t
*
parse_arg
,
void
*
scanner
);
int
yyparse
(
parse_param_t
*
parse_arg
,
void
*
scanner
);
#endif
/* !YY_YY_EXPR_YACC_H_INCLUDED */
#endif
/* !YY_YY_EXPR_YACC_H
H
_INCLUDED */
/* Copy the second part of user declarations. */
/* Copy the second part of user declarations. */
#line 174 "expr_yacc.c"
/* yacc.c:358 */
#line 174 "expr_yacc.c
c
"
/* yacc.c:358 */
#ifdef short
#ifdef short
# undef short
# undef short
...
@@ -1317,203 +1317,203 @@ yyreduce:
...
@@ -1317,203 +1317,203 @@ yyreduce:
case
2
:
case
2
:
#line 58 "expr_yacc.y"
/* yacc.c:1646 */
#line 58 "expr_yacc.y"
/* yacc.c:1646 */
{
return
0
;
}
{
return
0
;
}
#line 1321 "expr_yacc.c"
/* yacc.c:1646 */
#line 1321 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
3
:
case
3
:
#line 62 "expr_yacc.y"
/* yacc.c:1646 */
#line 62 "expr_yacc.y"
/* yacc.c:1646 */
{
expr_run
((
yyvsp
[
0
].
nPtr
),
(
parse_param_t
*
)
parse_arg
);
freeNode
((
yyvsp
[
0
].
nPtr
));
}
{
expr_run
((
yyvsp
[
0
].
nPtr
),
(
parse_param_t
*
)
parse_arg
);
freeNode
((
yyvsp
[
0
].
nPtr
));
}
#line 1327 "expr_yacc.c"
/* yacc.c:1646 */
#line 1327 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
5
:
case
5
:
#line 67 "expr_yacc.y"
/* yacc.c:1646 */
#line 67 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
';'
,
2
,
NULL
,
NULL
);
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
';'
,
2
,
NULL
,
NULL
);
}
#line 1333 "expr_yacc.c"
/* yacc.c:1646 */
#line 1333 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
6
:
case
6
:
#line 68 "expr_yacc.y"
/* yacc.c:1646 */
#line 68 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
-
1
].
nPtr
);
}
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
-
1
].
nPtr
);
}
#line 1339 "expr_yacc.c"
/* yacc.c:1646 */
#line 1339 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
7
:
case
7
:
#line 69 "expr_yacc.y"
/* yacc.c:1646 */
#line 69 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'='
,
2
,
expr_var
((
yyvsp
[
-
3
].
varnm
)),
(
yyvsp
[
-
1
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'='
,
2
,
expr_var
((
yyvsp
[
-
3
].
varnm
)),
(
yyvsp
[
-
1
].
nPtr
));
}
#line 1345 "expr_yacc.c"
/* yacc.c:1646 */
#line 1345 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
8
:
case
8
:
#line 70 "expr_yacc.y"
/* yacc.c:1646 */
#line 70 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'='
,
2
,
expr_var
((
yyvsp
[
-
1
].
varnm
)),
expr_var
((
yyvsp
[
-
1
].
varnm
)));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'='
,
2
,
expr_var
((
yyvsp
[
-
1
].
varnm
)),
expr_var
((
yyvsp
[
-
1
].
varnm
)));
}
#line 1351 "expr_yacc.c"
/* yacc.c:1646 */
#line 1351 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
9
:
case
9
:
#line 71 "expr_yacc.y"
/* yacc.c:1646 */
#line 71 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_com
(
"remove"
,
(
yyvsp
[
-
2
].
varnm
));
}
{
(
yyval
.
nPtr
)
=
expr_com
(
"remove"
,
(
yyvsp
[
-
2
].
varnm
));
}
#line 1357 "expr_yacc.c"
/* yacc.c:1646 */
#line 1357 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
10
:
case
10
:
#line 72 "expr_yacc.y"
/* yacc.c:1646 */
#line 72 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_com
(
"print"
,
(
yyvsp
[
-
2
].
varnm
));
}
{
(
yyval
.
nPtr
)
=
expr_com
(
"print"
,
(
yyvsp
[
-
2
].
varnm
));
}
#line 1363 "expr_yacc.c"
/* yacc.c:1646 */
#line 1363 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
11
:
case
11
:
#line 73 "expr_yacc.y"
/* yacc.c:1646 */
#line 73 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
-
1
].
nPtr
);
}
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
-
1
].
nPtr
);
}
#line 1369 "expr_yacc.c"
/* yacc.c:1646 */
#line 1369 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
12
:
case
12
:
#line 77 "expr_yacc.y"
/* yacc.c:1646 */
#line 77 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
0
].
nPtr
);
}
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
0
].
nPtr
);
}
#line 1375 "expr_yacc.c"
/* yacc.c:1646 */
#line 1375 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
13
:
case
13
:
#line 78 "expr_yacc.y"
/* yacc.c:1646 */
#line 78 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
';'
,
2
,
(
yyvsp
[
-
1
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
';'
,
2
,
(
yyvsp
[
-
1
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1381 "expr_yacc.c"
/* yacc.c:1646 */
#line 1381 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
14
:
case
14
:
#line 82 "expr_yacc.y"
/* yacc.c:1646 */
#line 82 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_con
((
yyvsp
[
0
].
cvalue
));
}
{
(
yyval
.
nPtr
)
=
expr_con
((
yyvsp
[
0
].
cvalue
));
}
#line 1387 "expr_yacc.c"
/* yacc.c:1646 */
#line 1387 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
15
:
case
15
:
#line 83 "expr_yacc.y"
/* yacc.c:1646 */
#line 83 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_var
((
yyvsp
[
0
].
varnm
));
}
{
(
yyval
.
nPtr
)
=
expr_var
((
yyvsp
[
0
].
varnm
));
}
#line 1393 "expr_yacc.c"
/* yacc.c:1646 */
#line 1393 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
16
:
case
16
:
#line 84 "expr_yacc.y"
/* yacc.c:1646 */
#line 84 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
UMINUS
,
1
,
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
UMINUS
,
1
,
(
yyvsp
[
0
].
nPtr
));
}
#line 1399 "expr_yacc.c"
/* yacc.c:1646 */
#line 1399 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
17
:
case
17
:
#line 85 "expr_yacc.y"
/* yacc.c:1646 */
#line 85 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'+'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'+'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1405 "expr_yacc.c"
/* yacc.c:1646 */
#line 1405 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
18
:
case
18
:
#line 86 "expr_yacc.y"
/* yacc.c:1646 */
#line 86 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'-'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'-'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1411 "expr_yacc.c"
/* yacc.c:1646 */
#line 1411 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
19
:
case
19
:
#line 87 "expr_yacc.y"
/* yacc.c:1646 */
#line 87 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'*'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'*'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1417 "expr_yacc.c"
/* yacc.c:1646 */
#line 1417 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
20
:
case
20
:
#line 88 "expr_yacc.y"
/* yacc.c:1646 */
#line 88 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'/'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'/'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1423 "expr_yacc.c"
/* yacc.c:1646 */
#line 1423 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
21
:
case
21
:
#line 89 "expr_yacc.y"
/* yacc.c:1646 */
#line 89 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
LT
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
LT
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1429 "expr_yacc.c"
/* yacc.c:1646 */
#line 1429 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
22
:
case
22
:
#line 90 "expr_yacc.y"
/* yacc.c:1646 */
#line 90 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
GT
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
GT
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1435 "expr_yacc.c"
/* yacc.c:1646 */
#line 1435 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
23
:
case
23
:
#line 91 "expr_yacc.y"
/* yacc.c:1646 */
#line 91 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'^'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'^'
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1441 "expr_yacc.c"
/* yacc.c:1646 */
#line 1441 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
24
:
case
24
:
#line 92 "expr_yacc.y"
/* yacc.c:1646 */
#line 92 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
GE
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
GE
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1447 "expr_yacc.c"
/* yacc.c:1646 */
#line 1447 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
25
:
case
25
:
#line 93 "expr_yacc.y"
/* yacc.c:1646 */
#line 93 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
LE
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
LE
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1453 "expr_yacc.c"
/* yacc.c:1646 */
#line 1453 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
26
:
case
26
:
#line 94 "expr_yacc.y"
/* yacc.c:1646 */
#line 94 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
NE
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
NE
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1459 "expr_yacc.c"
/* yacc.c:1646 */
#line 1459 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
27
:
case
27
:
#line 95 "expr_yacc.y"
/* yacc.c:1646 */
#line 95 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
EQ
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
EQ
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1465 "expr_yacc.c"
/* yacc.c:1646 */
#line 1465 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
28
:
case
28
:
#line 96 "expr_yacc.y"
/* yacc.c:1646 */
#line 96 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
LEG
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
LEG
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1471 "expr_yacc.c"
/* yacc.c:1646 */
#line 1471 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
29
:
case
29
:
#line 97 "expr_yacc.y"
/* yacc.c:1646 */
#line 97 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
AND
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
AND
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1477 "expr_yacc.c"
/* yacc.c:1646 */
#line 1477 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
30
:
case
30
:
#line 98 "expr_yacc.y"
/* yacc.c:1646 */
#line 98 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
OR
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
OR
,
2
,
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1483 "expr_yacc.c"
/* yacc.c:1646 */
#line 1483 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
31
:
case
31
:
#line 99 "expr_yacc.y"
/* yacc.c:1646 */
#line 99 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_opr
(
'?'
,
3
,
(
yyvsp
[
-
4
].
nPtr
),
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_opr
(
'?'
,
3
,
(
yyvsp
[
-
4
].
nPtr
),
(
yyvsp
[
-
2
].
nPtr
),
(
yyvsp
[
0
].
nPtr
));
}
#line 1489 "expr_yacc.c"
/* yacc.c:1646 */
#line 1489 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
32
:
case
32
:
#line 100 "expr_yacc.y"
/* yacc.c:1646 */
#line 100 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
-
1
].
nPtr
);
}
{
(
yyval
.
nPtr
)
=
(
yyvsp
[
-
1
].
nPtr
);
}
#line 1495 "expr_yacc.c"
/* yacc.c:1646 */
#line 1495 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
33
:
case
33
:
#line 101 "expr_yacc.y"
/* yacc.c:1646 */
#line 101 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_fun1c
((
yyvsp
[
-
6
].
fname
),
(
yyvsp
[
-
4
].
nPtr
),
-
(
yyvsp
[
-
1
].
cvalue
));
}
{
(
yyval
.
nPtr
)
=
expr_fun1c
((
yyvsp
[
-
6
].
fname
),
(
yyvsp
[
-
4
].
nPtr
),
-
(
yyvsp
[
-
1
].
cvalue
));
}
#line 1501 "expr_yacc.c"
/* yacc.c:1646 */
#line 1501 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
34
:
case
34
:
#line 102 "expr_yacc.y"
/* yacc.c:1646 */
#line 102 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_fun1c
((
yyvsp
[
-
5
].
fname
),
(
yyvsp
[
-
3
].
nPtr
),
(
yyvsp
[
-
1
].
cvalue
));
}
{
(
yyval
.
nPtr
)
=
expr_fun1c
((
yyvsp
[
-
5
].
fname
),
(
yyvsp
[
-
3
].
nPtr
),
(
yyvsp
[
-
1
].
cvalue
));
}
#line 1507 "expr_yacc.c"
/* yacc.c:1646 */
#line 1507 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
case
35
:
case
35
:
#line 103 "expr_yacc.y"
/* yacc.c:1646 */
#line 103 "expr_yacc.y"
/* yacc.c:1646 */
{
(
yyval
.
nPtr
)
=
expr_fun
((
yyvsp
[
-
3
].
fname
),
(
yyvsp
[
-
1
].
nPtr
));
}
{
(
yyval
.
nPtr
)
=
expr_fun
((
yyvsp
[
-
3
].
fname
),
(
yyvsp
[
-
1
].
nPtr
));
}
#line 1513 "expr_yacc.c"
/* yacc.c:1646 */
#line 1513 "expr_yacc.c
c
"
/* yacc.c:1646 */
break
;
break
;
#line 1517 "expr_yacc.c"
/* yacc.c:1646 */
#line 1517 "expr_yacc.c
c
"
/* yacc.c:1646 */
default:
break
;
default:
break
;
}
}
/* User semantic actions sometimes alter yychar, and that requires
/* User semantic actions sometimes alter yychar, and that requires
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment