SUBSTR
%left PRINT PRINTF RETURN SPLIT SPRINTF STRING SUB SUBSTR
| SUBSTR '(' pattern comma pattern comma pattern ')'
{ $$ = op3(SUBSTR, $3, $5, $7); }
| SUBSTR '(' pattern comma pattern ')'
{ $$ = op3(SUBSTR, $3, $5, NIL); }
{ "substr", SUBSTR, SUBSTR },
{ SUBSTR, "substr", "substr" },
case SUBSTR:
case SUBSTR:
SUBSTR, LENGTH, INDEX
| SUBSTR '(' expr ',' expr ',' expr ')'
{ $$ = op3(SUBSTR, $3, $5, $7); }
| SUBSTR '(' expr ',' expr ')'
{ $$ = op3(SUBSTR, $3, $5, 0); }
%left NUMBER VAR ARRAY FNCN SUBSTR LSUBSTR INDEX
{ SUBSTR, "substr", "substr"},
MATCH, SUBSTR, LENGTH, INDEX };
%token A_STRING SUBSTR LENGTH INDEX NOARG MATCH
%left SUBSTR
| SUBSTR expr expr expr { $$ = substr($2, $3, $4); }