%}
%define parse.error verbose
%define lr.type ielr
-%glr-parser
%union {
int ref;
%token <val> WIDTH
%token <val> D
%token <name> NAME
-%token SHIFT
//nonterminals
%type <int> ref_id
/* Syntax Directed Translation Scheme of the APC grammar */
;
map:
-NAME NUM NUM PATH {insert_map($1, 0, $3, $4, 0, $5);};
+NAME NUM NUM PATH {insert_map(0, $1, $2, $3, 0, $4);};
| NAME PATH {insert_map($1, 0, 0, 0, 0, $2);};
| NAME D PATH {insert_map($1, $2, 0, 0, 0, $3);};
| NAME D NUM NUM PATH {insert_map($1, $2, $3, $4, 0, $5);};
//shift list_namelist name > reduce mlink
mlink:
-MOPEN LINK NAME LINK link_namelist PATH {insert_mlink($4, 0); };
+MOPEN LINK NAME LINK link_namelist PATH {insert_mlink($3, 0); };
| MOPEN LINK link_namelist PATH {insert_mlink(NULL, 0); };
-| MOPEN LINK ref_id PATH {insert_mlink(NULL, $4); };
-| MOPEN LINK NAME LINK ref_id PATH {insert_mlink($4,$6); };
+| MOPEN LINK ref_id PATH {insert_mlink(NULL, $3); };
+| MOPEN LINK NAME LINK ref_id PATH {insert_mlink($3,$5); };
;
//shift list_namelist name > reduce vlink