Annotation of OpenXM/src/kan96xx/trans/yy_polymake.y, Revision 1.1
1.1 ! takayama 1: /* $OpenXM$ */
! 2: /* yacc -d -b yy_polymake -p PM yy_polymake.y */
! 3: /* yacc -d -b yy_polymake -p PM yy_polymake.y ; gcc yylex_polymake.c yy_polymake.tab.c*/
! 4: %{
! 5: #include <stdio.h>
! 6: #include "yylex_polymake.h"
! 7: %}
! 8:
! 9:
! 10: %token PM_emptyLine PM_keyword PM_LCurryBrace PM_RCurryBrace
! 11: %token PM_number PM_newline
! 12:
! 13: %%
! 14: program
! 15: :
! 16: programList {
! 17: pmPrintObject(stdout,$1);
! 18: fprintf(stdout,"\n");
! 19: }
! 20: ;
! 21:
! 22:
! 23: programList
! 24: :
! 25: pmdata {
! 26: pmObjectp ob;
! 27: ob = pmNewTreeObject("data");
! 28: ob = pmAddChild($1,ob);
! 29: $$ = ob;
! 30: }
! 31: | pmdata programList {
! 32: pmObjectp ob;
! 33: ob = $2;
! 34: ob = pmAddChild($1,ob);
! 35: $$ = ob;
! 36: }
! 37: ;
! 38:
! 39: pmnumberList
! 40: :
! 41: PM_number {
! 42: $$=pmNewListObject($1);
! 43: }
! 44: | PM_number pmnumberList {
! 45: pmObjectp t;
! 46: t = $2;
! 47: if (t->tag != PMobject_list) {
! 48: fprintf(stderr,"pmnumberList: list is broken.");
! 49: $$=$1;
! 50: }else{
! 51: $$=pmCons($1,(struct pmList *)(t->body));
! 52: }
! 53: }
! 54: ;
! 55:
! 56:
! 57: pmline
! 58: : pmnumberList PM_newline {
! 59: $$=$1;
! 60: }
! 61: | PM_LCurryBrace pmnumberList PM_RCurryBrace PM_newline {
! 62: $$=$2;
! 63: }
! 64: ;
! 65:
! 66: pmlineList
! 67: :
! 68: pmline {
! 69: $$=pmNewListObject($1);
! 70: }
! 71: | pmline pmlineList {
! 72: pmObjectp t;
! 73: t = $2;
! 74: if (t->tag != PMobject_list) {
! 75: fprintf(stderr,"pmlineList: list is broken.");
! 76: $$=$1;
! 77: }else{
! 78: $$=pmCons($1,(struct pmList *)(t->body));
! 79: }
! 80: }
! 81: ;
! 82:
! 83:
! 84: pmdata
! 85: :
! 86: PM_keyword PM_newline pmemptyLine {
! 87: $$=pmNewTreeObjecto($1);
! 88: }
! 89: | PM_keyword PM_newline pmlineList pmemptyLine {
! 90: pmObjectp ob;
! 91: ob = pmNewTreeObjecto($1);
! 92: ob = pmAddChild($3,ob);
! 93: $$=ob;
! 94: }
! 95: ;
! 96:
! 97:
! 98: pmemptyLine
! 99: :
! 100: PM_emptyLine
! 101: ;
! 102:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>