[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.22 and 1.26

version 1.22, 2003/12/01 02:18:53 version 1.26, 2005/04/07 08:33:12
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.21 2003/05/30 00:47:25 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.25 2004/06/21 09:05:16 noro Exp $
 */  */
 %{  %{
 #define malloc(x) GC_malloc(x)  #define malloc(x) GC_malloc(x)
Line 89  extern jmp_buf env;
Line 89  extern jmp_buf env;
         pointer p;          pointer p;
 }  }
   
 %token <i> STRUCT POINT NEWSTRUCT ANS FDEF PFDEF MODDEF MODEND  %token <i> STRUCT POINT NEWSTRUCT ANS FDEF PFDEF MODDEF MODEND
 %token <i> GLOBAL MGLOBAL LOCAL LOCALF CMP OR AND CAR CDR QUOTED COLONCOLON  %token <i> GLOBAL MGLOBAL LOCAL LOCALF CMP OR AND CAR CDR QUOTED COLONCOLON
 %token <i> DO WHILE FOR IF ELSE BREAK RETURN CONTINUE PARIF MAP RECMAP TIMER GF2NGEN GFPNGEN GFSNGEN GETOPT  %token <i> DO WHILE FOR IF ELSE BREAK RETURN CONTINUE PARIF MAP RECMAP TIMER GF2NGEN GFPNGEN GFSNGEN GETOPT
 %token <i> FOP_AND FOP_OR FOP_IMPL FOP_REPL FOP_EQUIV FOP_NOT LOP  %token <i> FOP_AND FOP_OR FOP_IMPL FOP_REPL FOP_EQUIV FOP_NOT LOP
Line 267  pexpr : STR
Line 267  pexpr : STR
                                         if ( f )                                          if ( f )
                                                 $$ = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0));                                                  $$ = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0));
                                         else {                                          else {
                                                 searchf(sysf,$1,&f);                                                  gen_searchf_searchonly($1,(FUNC *)&f);
                                                 if ( !f )  
                                                         searchf(ubinf,$1,&f);  
                                                 if ( !f )  
                                                         searchpf($1,&f);  
                                                 if ( !f )  
                                                         searchf(usrf,$1,&f);  
                                                 if ( f )                                                  if ( f )
                                                         makesrvar(f,(P *)&val);                                                          makesrvar(f,(P *)&val);
                                                 else                                                  else
Line 342  pexpr : STR
Line 336  pexpr : STR
                 | '('  '*' expr ')' '(' node ')'                  | '('  '*' expr ')' '(' node ')'
                         {                          {
                                 $$ = mkfnode(2,I_IFUNC,$3,mkfnode(1,I_LIST,$6));                                  $$ = mkfnode(2,I_IFUNC,$3,mkfnode(1,I_LIST,$6));
                           }
                   | UCASE '(' node ')'
                           {
                                   if ( main_parser || allow_create_var )
                                           t = mkfnode(2,I_PVAR,makepvar($1),0);
                                   else {
                                           ind = searchpvar($1);
                                           if ( ind == -1 ) {
                                                   fprintf(stderr,"%s : no such variable.\n",$1);
                                                   YYABORT;
                                           } else
                                                   t = mkfnode(2,I_PVAR,ind,0);
                                   }
                                   $$ = mkfnode(2,I_IFUNC,t,mkfnode(1,I_LIST,$3));
                         }                          }
                 | CAR '(' expr ')'                  | CAR '(' expr ')'
                         { $$ = mkfnode(1,I_CAR,$3); }                          { $$ = mkfnode(1,I_CAR,$3); }

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.26

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