[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.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>