pike.git / src / lex.c

version» Context lines:

pike.git/src/lex.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: lex.c,v 1.31 1997/12/16 22:31:25 grubba Exp $"); + RCSID("$Id: lex.c,v 1.32 1997/12/16 22:48:14 grubba Exp $");   #include "language.h"   #include "array.h"   #include "lex.h"   #include "stralloc.h"   #include "dynamic_buffer.h"   #include "constants.h"   #include "hashtable.h"   #include "stuff.h"   #include "pike_memory.h"   #include "interpret.h"
pike.git/src/lex.c:1841:    if(s && find_define(s))    UNGETSTR(" 1 ",3);    else    UNGETSTR(" 0 ",3);       continue;    }       if(!strcmp("efun",my_yylval.str) || !strcmp("constant",my_yylval.str))    { -  SKIPWHITE(); -  if(!GOBBLE('(')) -  { -  yyerror("Missing '(' in #if constant().\n"); -  return; -  } -  READBUF(isidchar(C)); -  if(!GOBBLE(')')) -  { -  yyerror("Missing ')' in #if constant().\n"); -  return; -  } -  s=findstring(buf); -  -  if(s && low_mapping_string_lookup(get_builtin_constants(), s)) -  UNGETSTR(" 1 ",3); -  else -  UNGETSTR(" 0 ",3); -  -  continue; -  } else if (!strcmp("resolv", my_yylval.str)) { +     int res = 0;    struct svalue *oldsp = sp; -  +  struct svalue *sv;       SKIPWHITE();    if (!GOBBLE('(')) { -  yyerror("Missing '(' in #if resolv().\n"); +  yyerror("Missing '(' in #if constant().\n");    return;    }    READBUF(isidchar(C));    -  /* code from low_idents here */ -  if (get_master) { +     push_text(buf); -  +  if (sv = low_mapping_string_lookup(get_builtin_constants(), +  sp[-1].u.string)) { +  pop_stack(); +  push_svalue(sv); +  res = 1; +  } else if (get_master) {    current_file->refs++;    push_string(current_file);       SAFE_APPLY_MASTER("resolv", 2);       if ((throw_value.type != T_STRING) &&    (!(IS_ZERO(sp-1) && sp[-1].subtype == 1))) {    res = 1;    } -  } else { -  res = 0; +     }       while(GOBBLE('.')) {    READBUF(isidchar(C));    if (res) {    JMP_BUF recovery;       push_text(buf);       free_svalue(&throw_value);
pike.git/src/lex.c:1911:    f_index(2);    if (IS_ZERO(sp-1) && sp[-1].subtype == 1) {    res = 0;    }    }    UNSETJMP(recovery);    }    }       if (!GOBBLE(')')) { -  yyerror("Missing ')' in #if resolv().\n"); +  yyerror("Missing ')' in #if constant().\n");    return;    }       if (sp > oldsp) {    pop_n_elems(sp - oldsp);    }       if (res) {    UNGETSTR(" 1 ", 3);    } else {