pike.git / src / cpp.cmod

version» Context lines:

pike.git/src/cpp.cmod:913:    *! @value "disassemble"    *! Enable disassembly output for the code being compiled.    *! Note that this option essentially has a function-level    *! scope, so enabling it for just a few lines is usually    *! a noop. This is similar to @[Debug.assembler_debug()]    *! level @expr{3@}.    *! @value "no_disassemble"    *! Disable disassembly output (default).    *! @endstring   */ +  PIKEFUN string(0..0) directive_pragma(int flags, string line) +  { +  struct CPP_struct *this = THIS;    -  +  if (OUTP()) { +  /* FIXME: Prefix with this->prefix? */ +  string_builder_strcat(&this->buf, "#pragma "); +  +  ref_push_string(line); +  push_int(flags); +  apply_current(f_CPP_low_cpp_fun_num, 2); +  pop_stack(); +  } +  +  push_empty_string(); +  } +    /*! @decl int(0..1) defined(mixed identifier)    *!    *! Check whether an identifier is a cpp macro or not.    *!    *! @returns    *! @[defined] returns true if the symbol given as argument    *! is defined.    *!    *! @note    *! @tt{#if defined(MY_DEF)@} is equivalent to
pike.git/src/cpp.cmod:4106:    return len;    } else {    cpp_error(this, "What charset?");    }    break;    }    goto unknown_preprocessor_directive;    }    case 'p': /* pragma */    { -  -  if(GOBBLE_WORD(pragma_)) -  { -  if(OUTP()) -  string_builder_strcat(&this->buf, "#pragma"); -  else -  FIND_EOL(); -  break; -  } +     if(GOBBLE_WORD(pike_))    {    if(OUTP())    {    int major, minor;    ptrdiff_t tmp;    PCHARP ptr;       string_builder_strcat(&this->buf, "#pike");    tmp= this->buf.s->len;