* m32c-desc.c: Regenerated.
[deliverable/binutils-gdb.git] / gdb / f-exp.y
index 0deb81682c286271dd4419d2c3d9d8517baf39fe..4e1f6359e2ec84e2e580c21e0e349d3925c10c48 100644 (file)
@@ -283,18 +283,39 @@ arglist   :       exp
                        { arglist_len = 1; }
        ;
 
-arglist :      substring
-                        { arglist_len = 2;}
+arglist :      subrange
+                       { arglist_len = 1; }
        ;
    
 arglist        :       arglist ',' exp   %prec ABOVE_COMMA
                        { arglist_len++; }
        ;
 
-substring:     exp ':' exp   %prec ABOVE_COMMA
-                       { } 
+/* There are four sorts of subrange types in F90.  */
+
+subrange:      exp ':' exp     %prec ABOVE_COMMA
+                       { write_exp_elt_opcode (OP_F90_RANGE); 
+                         write_exp_elt_longcst (NONE_BOUND_DEFAULT);
+                         write_exp_elt_opcode (OP_F90_RANGE); }
+       ;
+
+subrange:      exp ':' %prec ABOVE_COMMA
+                       { write_exp_elt_opcode (OP_F90_RANGE);
+                         write_exp_elt_longcst (HIGH_BOUND_DEFAULT);
+                         write_exp_elt_opcode (OP_F90_RANGE); }
        ;
 
+subrange:      ':' exp %prec ABOVE_COMMA
+                       { write_exp_elt_opcode (OP_F90_RANGE);
+                         write_exp_elt_longcst (LOW_BOUND_DEFAULT);
+                         write_exp_elt_opcode (OP_F90_RANGE); }
+       ;
+
+subrange:      ':'     %prec ABOVE_COMMA
+                       { write_exp_elt_opcode (OP_F90_RANGE);
+                         write_exp_elt_longcst (BOTH_BOUND_DEFAULT);
+                         write_exp_elt_opcode (OP_F90_RANGE); }
+       ;
 
 complexnum:     exp ',' exp 
                        { }                          
This page took 0.025794 seconds and 4 git commands to generate.