pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: las.c,v 1.57 1998/04/09 20:38:28 hubbe Exp $"); + RCSID("$Id: las.c,v 1.58 1998/04/10 04:35:20 hubbe Exp $");      #include "language.h"   #include "interpret.h"   #include "las.h"   #include "array.h"   #include "object.h"   #include "stralloc.h"   #include "dynamic_buffer.h"   #include "lex.h"   #include "pike_types.h"
pike.git/src/las.c:20:   #include "multiset.h"   #include "error.h"   #include "docode.h"   #include "main.h"   #include "pike_memory.h"   #include "operators.h"   #include "callback.h"   #include "pike_macros.h"   #include "peep.h"   #include "builtin_functions.h" + #include "cyclic.h"      #define LASDEBUG      int lasdebug=0;      static node *eval(node *);   static void optimize(node *n);      node *init_node = 0;   int num_parse_error;
pike.git/src/las.c:697:    case T_PROGRAM:    case T_FLOAT:    case T_STRING:    case T_ARRAY:    yyerror("Failed to index module (Not a module?)");    pop_stack();    push_int(0);    break;       default: +  { +  DECLARE_CYCLIC(); +  if(BEGIN_CYCLIC(sp[-1].u.refs, id)) +  { +  my_yyerror("Recursive module dependency in '%s'.",id->str); +  pop_stack(); +  push_int(0); +  }else{ +  SET_CYCLIC_RET(1);    ref_push_string(id);    f_index(2);       if(sp[-1].type == T_INT &&    !sp[-1].u.integer &&    sp[-1].subtype==NUMBER_UNDEFINED)    {    my_yyerror("Index '%s' not present in module.",id->str);    } -  +  END_CYCLIC();    }    } -  +  } +  }    UNSETJMP(tmp);    ret=mkconstantsvaluenode(sp-1);    pop_stack();    return ret;   }         int node_is_eq(node *a,node *b)   {    check_tree(a,0);