[BACK]Return to yy_polymake.y CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / trans

Annotation of OpenXM/src/kan96xx/trans/yy_polymake.y, Revision 1.2

1.2     ! takayama    1: /* $OpenXM: OpenXM/src/kan96xx/trans/yy_polymake.y,v 1.1 2003/11/24 02:33:39 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: %%
                     14: program
                     15: :
                     16: programList {
                     17:   pmPrintObject(stdout,$1);
1.2     ! takayama   18:   fprintf(stdout,"\n");
        !            19: }
        !            20: | pmemptyLine programList {
        !            21:   pmPrintObject(stdout,$2);
1.1       takayama   22:   fprintf(stdout,"\n");
                     23: }
                     24: ;
                     25:
                     26:
                     27: programList
                     28: :
                     29: pmdata {
                     30:   pmObjectp ob;
                     31:   ob = pmNewTreeObject("data");
                     32:   ob = pmAddChild($1,ob);
                     33:   $$ = ob;
                     34: }
                     35: | pmdata programList {
                     36:   pmObjectp ob;
                     37:   ob = $2;
                     38:   ob = pmAddChild($1,ob);
                     39:   $$ = ob;
                     40: }
                     41: ;
                     42:
                     43: pmnumberList
                     44: :
                     45: PM_number {
                     46:   $$=pmNewListObject($1);
                     47: }
                     48: | PM_number pmnumberList {
                     49:   pmObjectp t;
                     50:   t = $2;
                     51:   if (t->tag != PMobject_list) {
                     52:        fprintf(stderr,"pmnumberList: list is broken.");
                     53:        $$=$1;
                     54:   }else{
                     55:        $$=pmCons($1,(struct pmList *)(t->body));
                     56:   }
                     57: }
                     58: ;
                     59:
                     60:
                     61: pmline
                     62: : pmnumberList  PM_newline {
                     63:   $$=$1;
                     64: }
                     65: | PM_LCurryBrace pmnumberList PM_RCurryBrace PM_newline {
                     66:   $$=$2;
                     67: }
                     68: ;
                     69:
                     70: pmlineList
                     71: :
                     72: pmline {
                     73:   $$=pmNewListObject($1);
                     74: }
                     75: | pmline pmlineList {
                     76:   pmObjectp t;
                     77:   t = $2;
                     78:   if (t->tag != PMobject_list) {
                     79:        fprintf(stderr,"pmlineList: list is broken.");
                     80:        $$=$1;
                     81:   }else{
                     82:     $$=pmCons($1,(struct pmList *)(t->body));
                     83:   }
                     84: }
                     85: ;
                     86:
                     87:
                     88: pmdata
                     89: :
                     90: PM_keyword   PM_newline pmemptyLine {
                     91:   $$=pmNewTreeObjecto($1);
                     92: }
                     93: | PM_keyword PM_newline pmlineList pmemptyLine {
                     94:   pmObjectp ob;
                     95:   ob = pmNewTreeObjecto($1);
                     96:   ob = pmAddChild($3,ob);
                     97:   $$=ob;
                     98: }
                     99: ;
                    100:
                    101:
                    102: pmemptyLine
                    103: :
                    104: PM_emptyLine
                    105: ;
                    106:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>