%union { char *str; } %token ID %token ARROW %token EQUALS %% stmt : assignmentList edgeList assignmentList : assignmentList assignment | ; assignment : ID EQUALS ID ; edgeList : edgeList edge | ; edge : ID ARROW ID ; %%