Annotation of OpenXM/src/kan96xx/Kan/yy_polymake.y, Revision 1.2
1.2 ! takayama 1: /* $OpenXM: OpenXM/src/kan96xx/Kan/yy_polymake.y,v 1.1 2003/11/20 00:06:07 takayama Exp $ */
1.1 takayama 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: %%
1.2 ! takayama 14: program
! 15: :
! 16: programList {
! 17: pmPrintObject(stdout,$1);
! 18: fprintf(stdout,"\n");
! 19: }
! 20: ;
! 21:
1.1 takayama 22:
1.2 ! takayama 23: programList
1.1 takayama 24: :
1.2 ! takayama 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: }
1.1 takayama 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 {
1.2 ! takayama 87: $$=pmNewTreeObjecto($1);
1.1 takayama 88: }
89: | PM_keyword PM_newline pmlineList pmemptyLine {
1.2 ! takayama 90: pmObjectp ob;
! 91: ob = pmNewTreeObjecto($1);
! 92: ob = pmAddChild($3,ob);
! 93: $$=ob;
1.1 takayama 94: }
95: ;
96:
97:
98: pmemptyLine
99: :
100: PM_emptyLine
101: ;
102:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>