[BACK]Return to parse.y CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/parse.y between version 1.3 and 1.4

version 1.3, 2000/08/22 05:04:27 version 1.4, 2000/09/21 09:19:27
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.2 2000/08/21 08:31:47 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.3 2000/08/22 05:04:27 noro Exp $
 */  */
 %{  %{
 #define malloc(x) GC_malloc(x)  #define malloc(x) GC_malloc(x)
Line 102  extern jmp_buf env;
Line 102  extern jmp_buf env;
 %type <p> desc rawstr  %type <p> desc rawstr
 %type <f> expr pexpr opt  %type <f> expr pexpr opt
 %type <s> stat complex  %type <s> stat complex
 %type <n> stats node _node pvars fields members optlist  %type <n> stats node _node pvars members optlist
   
 %right '=' BOPASS  %right '=' BOPASS
 %right '?' ':'  %right '?' ':'
Line 136  stat  : tail
Line 136  stat  : tail
                         { $$ = 0; }                          { $$ = 0; }
                 | GLOBAL { gdef=1; } pvars { gdef=0; } tail                  | GLOBAL { gdef=1; } pvars { gdef=0; } tail
                         { $$ = 0; }                          { $$ = 0; }
                 | STRUCT rawstr '{' fields '}' tail                  | STRUCT rawstr '{' members '}' tail
                         { structdef($2,$4); $$ = 0; }                          { structdef($2,$4); $$ = 0; }
                 | STRUCT rawstr '{' fields '}' pvars tail  
                         { structdef($2,$4); setstruct($2,$6); $$ = 0; }  
                 | STRUCT rawstr pvars tail  
                         { setstruct($2,$3); $$ = 0; }  
                 | expr tail                  | expr tail
                         { $$ = mksnode(1,S_SINGLE,$1); }                          { $$ = mksnode(1,S_SINGLE,$1); }
                 | complex                  | complex
Line 189  desc :
Line 185  desc :
 complex : '{' stats '}'  complex : '{' stats '}'
                         { $$ = mksnode(1,S_CPLX,$2); }                          { $$ = mksnode(1,S_CPLX,$2); }
                 ;                  ;
 fields  :  
                         { $$ = 0; }  
                 | fields members tail  
                         { MKNODE(a,0,$2); appendtonode($1,(pointer)a,&$$); }  
                 | fields STRUCT rawstr members tail  
                         { MKNODE(a,$3,$4); appendtonode($1,(pointer)a,&$$); }  
                 ;  
 members : rawstr  members : rawstr
                         { MKNODE($$,$1,0); }                          { MKNODE($$,$1,0); }
                 | members ',' rawstr                  | members ',' rawstr
Line 366  pexpr : STR
Line 355  pexpr : STR
                                 }                                  }
                         }                          }
                 | pexpr POINT rawstr                  | pexpr POINT rawstr
                         { memberofstruct($1,$3,&$$); }                          { $$ = mkfnode(2,I_POINT,$1,$3); }
                 ;                  ;
 expr    : pexpr  expr    : pexpr
                         { $$ = $1; }                          { $$ = $1; }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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