Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 7729ba0

Browse files
author
Michael Meskes
committed
*** empty log message ***
1 parent 58118db commit 7729ba0

File tree

2 files changed

+72
-29
lines changed

2 files changed

+72
-29
lines changed

src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,5 +514,10 @@ Tue Mar 9 17:26:28 CET 1999
514514
Sun Mar 14 15:44:18 CET 1999
515515

516516
- Synced preproc.y with gram.y.
517+
518+
Thu Mar 18 18:57:31 CET 1999
519+
520+
- Synced preproc.y with gram.y.
521+
- Added '%' operator.
517522
- Set library version to 3.0.0
518523
- Set ecpg version to 2.6.0

src/interfaces/ecpg/preproc/preproc.y

Lines changed: 67 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -731,12 +731,12 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
731731
%nonassoc LIKE
732732
%nonassoc BETWEEN
733733
%nonassoc IN
734-
%nonassoc Op /* multi-character ops and user-defined operators */
734+
%left Op /* multi-character ops and user-defined operators */
735735
%nonassoc NOTNULL
736736
%nonassoc ISNULL
737737
%nonassoc IS
738738
%left '+' '-'
739-
%left '*' '/'
739+
%left '*' '/' '%'
740740
%left '|' /* this is the relation union op, not logical or */
741741
/* Unary Operators */
742742
%right ':'
@@ -1420,6 +1420,8 @@ default_expr: AexprConst
14201420
{ $$ = cat3_str($1, make1_str("-"), $3); }
14211421
| default_expr '/' default_expr
14221422
{ $$ = cat3_str($1, make1_str("/"), $3); }
1423+
| default_expr '%' default_expr
1424+
{ $$ = cat3_str($1, make1_str("%"), $3); }
14231425
| default_expr '*' default_expr
14241426
{ $$ = cat3_str($1, make1_str("*"), $3); }
14251427
| default_expr '=' default_expr
@@ -1540,6 +1542,8 @@ constraint_expr: AexprConst
15401542
{ $$ = cat3_str($1, make1_str("-"), $3); }
15411543
| constraint_expr '/' constraint_expr
15421544
{ $$ = cat3_str($1, make1_str("/"), $3); }
1545+
| constraint_expr '%' constraint_expr
1546+
{ $$ = cat3_str($1, make1_str("%"), $3); }
15431547
| constraint_expr '*' constraint_expr
15441548
{ $$ = cat3_str($1, make1_str("*"), $3); }
15451549
| constraint_expr '=' constraint_expr
@@ -2260,6 +2264,7 @@ all_Op: Op | MathOp;
22602264
MathOp: '+' { $$ = make1_str("+"); }
22612265
| '-' { $$ = make1_str("-"); }
22622266
| '*' { $$ = make1_str("*"); }
2267+
| '%' { $$ = make1_str("%"); }
22632268
| '/' { $$ = make1_str("/"); }
22642269
| '<' { $$ = make1_str("<"); }
22652270
| '>' { $$ = make1_str(">"); }
@@ -3524,6 +3529,7 @@ row_op: Op { $$ = $1; }
35243529
| '+' { $$ = "+"; }
35253530
| '-' { $$ = "-"; }
35263531
| '*' { $$ = "*"; }
3532+
| '%' { $$ = "%"; }
35273533
| '/' { $$ = "/"; }
35283534
;
35293535

@@ -3571,6 +3577,8 @@ a_expr: attr opt_indirection
35713577
{ $$ = cat3_str($1, make1_str("-"), $3); }
35723578
| a_expr '/' a_expr
35733579
{ $$ = cat3_str($1, make1_str("/"), $3); }
3580+
| a_expr '%' a_expr
3581+
{ $$ = cat3_str($1, make1_str("%"), $3); }
35743582
| a_expr '*' a_expr
35753583
{ $$ = cat3_str($1, make1_str("*"), $3); }
35763584
| a_expr '<' a_expr
@@ -3747,6 +3755,10 @@ a_expr: attr opt_indirection
37473755
{
37483756
$$ = make4_str($1, make1_str("/("), $4, make1_str(")"));
37493757
}
3758+
| a_expr '%' '(' SubSelect ')'
3759+
{
3760+
$$ = make4_str($1, make1_str("%("), $4, make1_str(")"));
3761+
}
37503762
| a_expr '*' '(' SubSelect ')'
37513763
{
37523764
$$ = make4_str($1, make1_str("*("), $4, make1_str(")"));
@@ -3769,63 +3781,71 @@ a_expr: attr opt_indirection
37693781
}
37703782
| a_expr '+' ANY '(' SubSelect ')'
37713783
{
3772-
$$ = make4_str($1, make1_str("+any("), $5, make1_str(")"));
3784+
$$ = make4_str($1, make1_str("+ any("), $5, make1_str(")"));
37733785
}
37743786
| a_expr '-' ANY '(' SubSelect ')'
37753787
{
3776-
$$ = make4_str($1, make1_str("-any("), $5, make1_str(")"));
3788+
$$ = make4_str($1, make1_str("- any("), $5, make1_str(")"));
37773789
}
37783790
| a_expr '/' ANY '(' SubSelect ')'
37793791
{
3780-
$$ = make4_str($1, make1_str("/any("), $5, make1_str(")"));
3792+
$$ = make4_str($1, make1_str("/ any("), $5, make1_str(")"));
3793+
}
3794+
| a_expr '%' ANY '(' SubSelect ')'
3795+
{
3796+
$$ = make4_str($1, make1_str("% any("), $5, make1_str(")"));
37813797
}
37823798
| a_expr '*' ANY '(' SubSelect ')'
37833799
{
3784-
$$ = make4_str($1, make1_str("*any("), $5, make1_str(")"));
3800+
$$ = make4_str($1, make1_str("* any("), $5, make1_str(")"));
37853801
}
37863802
| a_expr '<' ANY '(' SubSelect ')'
37873803
{
3788-
$$ = make4_str($1, make1_str("<any("), $5, make1_str(")"));
3804+
$$ = make4_str($1, make1_str("< any("), $5, make1_str(")"));
37893805
}
37903806
| a_expr '>' ANY '(' SubSelect ')'
37913807
{
3792-
$$ = make4_str($1, make1_str(">any("), $5, make1_str(")"));
3808+
$$ = make4_str($1, make1_str("> any("), $5, make1_str(")"));
37933809
}
37943810
| a_expr '=' ANY '(' SubSelect ')'
37953811
{
3796-
$$ = make4_str($1, make1_str("=any("), $5, make1_str(")"));
3812+
$$ = make4_str($1, make1_str("= any("), $5, make1_str(")"));
37973813
}
37983814
| a_expr Op ALL '(' SubSelect ')'
37993815
{
38003816
$$ = cat3_str($1, $2, make3_str(make1_str("all ("), $5, make1_str(")")));
38013817
}
38023818
| a_expr '+' ALL '(' SubSelect ')'
38033819
{
3804-
$$ = make4_str($1, make1_str("+all("), $5, make1_str(")"));
3820+
$$ = make4_str($1, make1_str("+ all("), $5, make1_str(")"));
38053821
}
38063822
| a_expr '-' ALL '(' SubSelect ')'
38073823
{
3808-
$$ = make4_str($1, make1_str("-all("), $5, make1_str(")"));
3824+
$$ = make4_str($1, make1_str("- all("), $5, make1_str(")"));
38093825
}
38103826
| a_expr '/' ALL '(' SubSelect ')'
38113827
{
3812-
$$ = make4_str($1, make1_str("/all("), $5, make1_str(")"));
3828+
$$ = make4_str($1, make1_str("/ all("), $5, make1_str(")"));
3829+
}
3830+
| a_expr '%' ALL '(' SubSelect ')'
3831+
{
3832+
$$ = make4_str($1, make1_str("% all("), $5, make1_str(")"));
38133833
}
38143834
| a_expr '*' ALL '(' SubSelect ')'
38153835
{
3816-
$$ = make4_str($1, make1_str("*all("), $5, make1_str(")"));
3836+
$$ = make4_str($1, make1_str("* all("), $5, make1_str(")"));
38173837
}
38183838
| a_expr '<' ALL '(' SubSelect ')'
38193839
{
3820-
$$ = make4_str($1, make1_str("<all("), $5, make1_str(")"));
3840+
$$ = make4_str($1, make1_str("< all("), $5, make1_str(")"));
38213841
}
38223842
| a_expr '>' ALL '(' SubSelect ')'
38233843
{
3824-
$$ = make4_str($1, make1_str(">all("), $5, make1_str(")"));
3844+
$$ = make4_str($1, make1_str("> all("), $5, make1_str(")"));
38253845
}
38263846
| a_expr '=' ALL '(' SubSelect ')'
38273847
{
3828-
$$ = make4_str($1, make1_str("=all("), $5, make1_str(")"));
3848+
$$ = make4_str($1, make1_str("= all("), $5, make1_str(")"));
38293849
}
38303850
| a_expr AND a_expr
38313851
{ $$ = cat3_str($1, make1_str("and"), $3); }
@@ -3862,6 +3882,8 @@ b_expr: attr opt_indirection
38623882
{ $$ = cat3_str($1, make1_str("-"), $3); }
38633883
| b_expr '/' b_expr
38643884
{ $$ = cat3_str($1, make1_str("/"), $3); }
3885+
| b_expr '%' b_expr
3886+
{ $$ = cat3_str($1, make1_str("%"), $3); }
38653887
| b_expr '*' b_expr
38663888
{ $$ = cat3_str($1, make1_str("*"), $3); }
38673889
/* not possible in embedded sql | ':' b_expr
@@ -4011,6 +4033,8 @@ position_expr: attr opt_indirection
40114033
{ $$ = cat3_str($1, make1_str("-"), $3); }
40124034
| position_expr '/' position_expr
40134035
{ $$ = cat3_str($1, make1_str("/"), $3); }
4036+
| position_expr '%' position_expr
4037+
{ $$ = cat3_str($1, make1_str("%"), $3); }
40144038
| position_expr '*' position_expr
40154039
{ $$ = cat3_str($1, make1_str("*"), $3); }
40164040
| '|' position_expr
@@ -5583,6 +5607,8 @@ ecpg_expr: attr opt_indirection
55835607
{ $$ = cat3_str($1, make1_str("-"), $3); }
55845608
| a_expr '/' ecpg_expr
55855609
{ $$ = cat3_str($1, make1_str("/"), $3); }
5610+
| a_expr '%' ecpg_expr
5611+
{ $$ = cat3_str($1, make1_str("%"), $3); }
55865612
| a_expr '*' ecpg_expr
55875613
{ $$ = cat3_str($1, make1_str("*"), $3); }
55885614
| a_expr '<' ecpg_expr
@@ -5751,6 +5777,10 @@ ecpg_expr: attr opt_indirection
57515777
{
57525778
$$ = make4_str($1, make1_str("/("), $4, make1_str(")"));
57535779
}
5780+
| a_expr '%' '(' SubSelect ')'
5781+
{
5782+
$$ = make4_str($1, make1_str("%("), $4, make1_str(")"));
5783+
}
57545784
| a_expr '*' '(' SubSelect ')'
57555785
{
57565786
$$ = make4_str($1, make1_str("*("), $4, make1_str(")"));
@@ -5773,59 +5803,67 @@ ecpg_expr: attr opt_indirection
57735803
}
57745804
| a_expr '+' ANY '(' SubSelect ')'
57755805
{
5776-
$$ = make4_str($1, make1_str("+any("), $5, make1_str(")"));
5806+
$$ = make4_str($1, make1_str("+ any("), $5, make1_str(")"));
57775807
}
57785808
| a_expr '-' ANY '(' SubSelect ')'
57795809
{
5780-
$$ = make4_str($1, make1_str("-any("), $5, make1_str(")"));
5810+
$$ = make4_str($1, make1_str("- any("), $5, make1_str(")"));
57815811
}
57825812
| a_expr '/' ANY '(' SubSelect ')'
57835813
{
5784-
$$ = make4_str($1, make1_str("/any("), $5, make1_str(")"));
5814+
$$ = make4_str($1, make1_str("/ any("), $5, make1_str(")"));
5815+
}
5816+
| a_expr '%' ANY '(' SubSelect ')'
5817+
{
5818+
$$ = make4_str($1, make1_str("% any("), $5, make1_str(")"));
57855819
}
57865820
| a_expr '*' ANY '(' SubSelect ')'
57875821
{
5788-
$$ = make4_str($1, make1_str("*any("), $5, make1_str(")"));
5822+
$$ = make4_str($1, make1_str("* any("), $5, make1_str(")"));
57895823
}
57905824
| a_expr '<' ANY '(' SubSelect ')'
57915825
{
5792-
$$ = make4_str($1, make1_str("<any("), $5, make1_str(")"));
5826+
$$ = make4_str($1, make1_str("< any("), $5, make1_str(")"));
57935827
}
57945828
| a_expr '>' ANY '(' SubSelect ')'
57955829
{
5796-
$$ = make4_str($1, make1_str(">any("), $5, make1_str(")"));
5830+
$$ = make4_str($1, make1_str("> any("), $5, make1_str(")"));
57975831
}
57985832
| a_expr '=' ANY '(' SubSelect ')'
57995833
{
5800-
$$ = make4_str($1, make1_str("=any("), $5, make1_str(")"));
5834+
$$ = make4_str($1, make1_str("= any("), $5, make1_str(")"));
58015835
}
58025836
| a_expr Op ALL '(' SubSelect ')'
58035837
{
58045838
$$ = make3_str($1, $2, make3_str(make1_str("all ("), $5, make1_str(")")));
58055839
}
58065840
| a_expr '+' ALL '(' SubSelect ')'
58075841
{
5808-
$$ = make4_str($1, make1_str("+all("), $5, make1_str(")"));
5842+
$$ = make4_str($1, make1_str("+ all("), $5, make1_str(")"));
58095843
}
58105844
| a_expr '-' ALL '(' SubSelect ')'
58115845
{
5812-
$$ = make4_str($1, make1_str("-all("), $5, make1_str(")"));
5846+
$$ = make4_str($1, make1_str("- all("), $5, make1_str(")"));
58135847
}
58145848
| a_expr '/' ALL '(' SubSelect ')'
58155849
{
5816-
$$ = make4_str($1, make1_str("/all("), $5, make1_str(")"));
5850+
$$ = make4_str($1, make1_str("/ all("), $5, make1_str(")"));
5851+
}
5852+
| a_expr '%' ALL '(' SubSelect ')'
5853+
{
5854+
$$ = make4_str($1, make1_str("% all("), $5, make1_str(")"));
58175855
}
58185856
| a_expr '*' ALL '(' SubSelect ')'
58195857
{
5820-
$$ = make4_str($1, make1_str("*all("), $5, make1_str(")"));
5858+
$$ = make4_str($1, make1_str("* all("), $5, make1_str(")"));
58215859
}
58225860
| a_expr '<' ALL '(' SubSelect ')'
58235861
{
5824-
$$ = make4_str($1, make1_str("<all("), $5, make1_str(")"));
5862+
$$ = make4_str($1, make1_str("< all("), $5, make1_str(")"));
58255863
}
58265864
| a_expr '>' ALL '(' SubSelect ')'
58275865
{
5828-
$$ = make4_str($1, make1_str(">all("), $5, make1_str(")"));
5866+
$$ = make4_str($1, make1_str("> all("), $5, make1_str(")"));
58295867
}
58305868
| a_expr '=' ALL '(' SubSelect ')'
58315869
{

0 commit comments

Comments
 (0)