• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ compile函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中compile函数的典型用法代码示例。如果您正苦于以下问题:C++ compile函数的具体用法?C++ compile怎么用?C++ compile使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了compile函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: getString

/*
    Parse all the #cxy statements from the file.
    Binary nestings must run before the previous nest.
*/
void File::parse()
{
    std::string content = getString(m_id[Sti_t(Runstate::Execute)][Sti_t(Symbol::cntnt)]);
    content.push_back('\n');
    try
    {
        while (content.find("#cxy star") != std::string::npos)
        {

            sout("==================================================\n");
            sout("GENCONTENT:\n")
            sout(content)
            sout("==================================================\n");

            std::string instructions = get_first_most_nested_cxy_data(content);
            sout("==================================================\n");
            sout("Instructions queried:")
            sout(instructions)
            sout("==================================================\n");
            std::string operating_data;
            try
            {
                 operating_data = erase_all_cxy_statements(get_second_most_nested_data(content));
            }
            catch (std::exception &e)
            {
                std::cout << "Error during erasion stage: " << e.what() << std::endl;
            }

            reinstruct(instructions);
            m_data[m_id[Sti_t(Runstate::Execute)][Sti_t(Symbol::cntnt)]].push_back(operating_data); // Turn "cntnt" into the name... goto sleep

            compile();
            execute();

            std::string generated_content = m_data[m_id[Sti_t(Runstate::Execute)][Sti_t(Symbol::cntnt)]].back();

           // Remove the trailing ÿ or \n

            try
            {
                if (generated_content.size())
                generated_content.pop_back();
            }
            catch (std::out_of_range &exc_obj)
            {
                std::cout << "Out of range: " << exc_obj.what() << "\n";
                throw;
            }
                generated_content.push_back('\n');



                replace_second_most_nested_scope(content, generated_content);
                erase_first_most_nested_cxy_data(content);

        }

        m_data[m_id[Sti_t(Runstate::Execute)][Sti_t(Symbol::cntnt)]].back() = content;


    }
    catch (std::exception &e)
    {
        std::cout << "Error occurred during parsing: " << e.what() << std::endl;
        throw;
    }
}
开发者ID:BourgondAries,项目名称:Cxy-v0.1.0-draft.1,代码行数:72,代码来源:parse.cpp


示例2: compile

/*
 * break a collection of markdown input into
 * blocks of lists, code, html, and text to
 * be marked up.
 */
static Paragraph *
compile(Line *ptr, int toplevel, MMIOT *f)
{
    ParagraphRoot d = { 0, 0 };
    Paragraph *p = 0;
    Line *r;
    int para = toplevel;
    int blocks = 0;
    int hdr_type, list_type, list_class, indent;

    ptr = consume(ptr, &para);

    while ( ptr ) {
	if ( iscode(ptr) ) {
	    p = Pp(&d, ptr, CODE);
	    
	    if ( f->flags & MKD_1_COMPAT) {
		/* HORRIBLE STANDARDS KLUDGE: the first line of every block
		 * has trailing whitespace trimmed off.
		 */
		___mkd_tidy(&p->text->text);
	    }
	    
	    ptr = codeblock(p);
	}
#if WITH_FENCED_CODE
	else if ( iscodefence(ptr,3,0) && (p=fencedcodeblock(&d, &ptr)) )
	    /* yay, it's already done */ ;
#endif
	else if ( ishr(ptr) ) {
	    p = Pp(&d, 0, HR);
	    r = ptr;
	    ptr = ptr->next;
	    ___mkd_freeLine(r);
	}
	else if ( list_class = islist(ptr, &indent, f->flags, &list_type) ) {
	    if ( list_class == DL ) {
		p = Pp(&d, ptr, DL);
		ptr = definition_block(p, indent, f, list_type);
	    }
	    else {
		p = Pp(&d, ptr, list_type);
		ptr = enumerated_block(p, indent, f, list_class);
	    }
	}
	else if ( isquote(ptr) ) {
	    p = Pp(&d, ptr, QUOTE);
	    ptr = quoteblock(p, f->flags);
	    p->down = compile(p->text, 1, f);
	    p->text = 0;
	}
	else if ( ishdr(ptr, &hdr_type) ) {
	    p = Pp(&d, ptr, HDR);
	    ptr = headerblock(p, hdr_type);
	}
	else {
	    p = Pp(&d, ptr, MARKUP);
	    ptr = textblock(p, toplevel, f->flags);
	    /* tables are a special kind of paragraph */
	    if ( actually_a_table(f, p->text) )
		p->typ = TABLE;
	}

	if ( (para||toplevel) && !p->align )
	    p->align = PARA;

	blocks++;
	para = toplevel || (blocks > 1);
	ptr = consume(ptr, &para);

	if ( para && !p->align )
	    p->align = PARA;

    }
    return T(d);
}
开发者ID:Irfy,项目名称:discount,代码行数:81,代码来源:markdown.c


示例3: native_compile

static void native_compile(JNIEnv* env, jobject object, jstring sqlString)
{
    compile(env, object, GET_HANDLE(env, object), sqlString);
}
开发者ID:Spotme,项目名称:android-database-sqlcipher,代码行数:4,代码来源:net_sqlcipher_database_SQLiteCompiledSql.cpp


示例4: compile

	static bool compile(bx::CommandLine& _cmdLine, uint32_t _version, const std::string& _code, bx::WriterI* _writer, bool _firstPass)
	{
		const char* profile = _cmdLine.findOption('p', "profile");
		if (NULL == profile)
		{
			fprintf(stderr, "Error: Shader profile must be specified.\n");
			return false;
		}

		s_compiler = load();

		bool result = false;
		bool debug = _cmdLine.hasArg('\0', "debug");

		uint32_t flags = D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY;
		flags |= debug ? D3DCOMPILE_DEBUG : 0;
		flags |= _cmdLine.hasArg('\0', "avoid-flow-control") ? D3DCOMPILE_AVOID_FLOW_CONTROL : 0;
		flags |= _cmdLine.hasArg('\0', "no-preshader") ? D3DCOMPILE_NO_PRESHADER : 0;
		flags |= _cmdLine.hasArg('\0', "partial-precision") ? D3DCOMPILE_PARTIAL_PRECISION : 0;
		flags |= _cmdLine.hasArg('\0', "prefer-flow-control") ? D3DCOMPILE_PREFER_FLOW_CONTROL : 0;
		flags |= _cmdLine.hasArg('\0', "backwards-compatibility") ? D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY : 0;

		bool werror = _cmdLine.hasArg('\0', "Werror");

		if (werror)
		{
			flags |= D3DCOMPILE_WARNINGS_ARE_ERRORS;
		}

		uint32_t optimization = 3;
		if (_cmdLine.hasArg(optimization, 'O') )
		{
			optimization = bx::uint32_min(optimization, BX_COUNTOF(s_optimizationLevelD3D11) - 1);
			flags |= s_optimizationLevelD3D11[optimization];
		}
		else
		{
			flags |= D3DCOMPILE_SKIP_OPTIMIZATION;
		}

		BX_TRACE("Profile: %s", profile);
		BX_TRACE("Flags: 0x%08x", flags);

		ID3DBlob* code;
		ID3DBlob* errorMsg;

		// Output preprocessed shader so that HLSL can be debugged via GPA
		// or PIX. Compiling through memory won't embed preprocessed shader
		// file path.
		std::string hlslfp;

		if (debug)
		{
			hlslfp = _cmdLine.findOption('o');
			hlslfp += ".hlsl";
			writeFile(hlslfp.c_str(), _code.c_str(), (int32_t)_code.size() );
		}

		HRESULT hr = D3DCompile(_code.c_str()
			, _code.size()
			, hlslfp.c_str()
			, NULL
			, NULL
			, "main"
			, profile
			, flags
			, 0
			, &code
			, &errorMsg
			);
		if (FAILED(hr)
		|| (werror && NULL != errorMsg) )
		{
			const char* log = (char*)errorMsg->GetBufferPointer();

			int32_t line   = 0;
			int32_t column = 0;
			int32_t start  = 0;
			int32_t end    = INT32_MAX;

			bool found = false
				|| 2 == sscanf(log, "(%u,%u):",  &line, &column)
				|| 2 == sscanf(log, " :%u:%u: ", &line, &column)
				;

			if (found
			&&  0 != line)
			{
				start = bx::uint32_imax(1, line - 10);
				end   = start + 20;
			}

			printCode(_code.c_str(), line, start, end, column);
			fprintf(stderr, "Error: D3DCompile failed 0x%08x %s\n", (uint32_t)hr, log);
			errorMsg->Release();
			return false;
		}

		UniformArray uniforms;
		uint8_t numAttrs = 0;
//.........这里部分代码省略.........
开发者ID:CallmeNezha,项目名称:bgfx,代码行数:101,代码来源:shaderc_hlsl.cpp


示例5: address

int*
address(void)
{
	int sign, *a, opcnt, nextopand, *b, c;

	nextopand = -1;
	sign = 1;
	opcnt = 0;
	a = dot;
	do {
		do {
			c = getchr();
		} while(c == ' ' || c == '\t');
		if(c >= '0' && c <= '9') {
			peekc = c;
			if(!opcnt)
				a = zero;
			a += sign*getnum();
		} else
		switch(c) {
		case '$':
			a = dol;
		case '.':
			if(opcnt)
				error(Q);
			break;
		case '\'':
			c = getchr();
			if(opcnt || c < 'a' || c > 'z')
				error(Q);
			a = zero;
			do {
				a++;
			} while(a <= dol && names[c-'a'] != (*a & ~01));
			break;
		case '?':
			sign = -sign;
		case '/':
			compile(c);
			b = a;
			for(;;) {
				a += sign;
				if(a <= zero)
					a = dol;
				if(a > dol)
					a = zero;
				if(match(a))
					break;
				if(a == b)
					error(Q);
			}
			break;
		default:
			if(nextopand == opcnt) {
				a += sign;
				if(a < zero || dol < a)
					continue;       /* error(Q); */
			}
			if(c != '+' && c != '-' && c != '^') {
				peekc = c;
				if(opcnt == 0)
					a = 0;
				return a;
			}
			sign = 1;
			if(c != '+')
				sign = -sign;
			nextopand = ++opcnt;
			continue;
		}
		sign = 1;
		opcnt++;
	} while(zero <= a && a <= dol);
	error(Q);
	return 0;
}
开发者ID:9fans,项目名称:plan9port,代码行数:76,代码来源:ed.c


示例6: main

int main(int argc, char* argv[]){
	int buffer_size = 0;
	FILE* byte_code = 0;
	FILE* source = 0;
	char sign[2] = {'k', 'k'};
	char* output_file_name = "";
	double* buffer = (double*) calloc (MAX_BYTE_CODE_SIZE, sizeof(double));
	assert(buffer);
	
	if (argc == 1) {
		printf("Empty input file  name\n");
		free(buffer);
		return 0;
	}
	
	if (argc == 2) {
		printf("Empty output file name\n");
		free(buffer);
		return 0;
	}
	
	source = fopen(argv[1], "r+");
	output_file_name = strcat(argv[2],".kvm");
	byte_code = fopen(output_file_name, "wb");
	buffer_size = compile(source, buffer);
	
	if (buffer_size == 0) {
		printf("Translation error:Incorrect input file\n");
		free(buffer);
		fclose(source);
		fclose(byte_code);		
		return 0;
	}
	
	rewind(source);
	buffer_size = compile(source, buffer);

	if (buffer_size == 0) {
		printf("Translation error:Incorrect input file\n");
		free(buffer);
		fclose(source);
		fclose(byte_code);		
		return 0;
	}
	fwrite(sign, sizeof(char), 2, byte_code);

	if (fwrite(buffer, sizeof(double), buffer_size, byte_code) != buffer_size) {
		printf("Translation error\n");
		free(buffer);
		fclose(source);
		fclose(byte_code);
		return 0;
	}
	
	printf("Translation complete.\nByte-code size = %d\n", buffer_size);
	
	free(buffer);
	fclose(source);
	fclose(byte_code);
	return 0; 
}
开发者ID:proffK,项目名称:iLab,代码行数:61,代码来源:My_asm.c


示例7: compile

beregex::beregex(std::string pat_,int flags_):pat(pat_),flags(flags_),nreg_(0)
{
    compile();
}
开发者ID:jonstewart,项目名称:be13_api,代码行数:4,代码来源:beregex.cpp


示例8: hook_dxgi

bool hook_dxgi(void)
{
    pD3DCompile compile;
    ID3D10Blob *blob;
    HMODULE dxgi_module = get_system_module("dxgi.dll");
    HRESULT hr;
    void *present_addr;
    void *resize_addr;

    if (!dxgi_module) {
        return false;
    }

    compile = get_compiler();
    if (!compile) {
        hlog("hook_dxgi: failed to find d3d compiler library");
        return true;
    }

    /* ---------------------- */

    hr = compile(vertex_shader_string, sizeof(vertex_shader_string),
                 "vertex_shader_string", nullptr, nullptr, "main",
                 "vs_4_0", D3D10_SHADER_OPTIMIZATION_LEVEL1, 0, &blob,
                 nullptr);
    if (FAILED(hr)) {
        hlog_hr("hook_dxgi: failed to compile vertex shader", hr);
        return true;
    }

    vertex_shader_size = (size_t)blob->GetBufferSize();
    memcpy(vertex_shader_data, blob->GetBufferPointer(),
           blob->GetBufferSize());
    blob->Release();

    /* ---------------------- */

    hr = compile(pixel_shader_string, sizeof(pixel_shader_string),
                 "pixel_shader_string", nullptr, nullptr, "main",
                 "ps_4_0", D3D10_SHADER_OPTIMIZATION_LEVEL1, 0, &blob,
                 nullptr);
    if (FAILED(hr)) {
        hlog_hr("hook_dxgi: failed to compile pixel shader", hr);
        return true;
    }

    pixel_shader_size = (size_t)blob->GetBufferSize();
    memcpy(pixel_shader_data, blob->GetBufferPointer(),
           blob->GetBufferSize());
    blob->Release();

    /* ---------------------- */

    present_addr = get_offset_addr(dxgi_module,
                                   global_hook_info->offsets.dxgi.present);
    resize_addr = get_offset_addr(dxgi_module,
                                  global_hook_info->offsets.dxgi.resize);

    hook_init(&present, present_addr, (void*)hook_present,
              "IDXGISwapChain::Present");
    hook_init(&resize_buffers, resize_addr, (void*)hook_resize_buffers,
              "IDXGISwapChain::ResizeBuffers");

    rehook(&resize_buffers);
    rehook(&present);

    hlog("Hooked DXGI");
    return true;
}
开发者ID:reboot,项目名称:obs-studio,代码行数:69,代码来源:dxgi-capture.cpp


示例9: main

int main() {

  S.malloc = malloc;
  S.free = free;
  S.funcs = funcs;
  S.num_funcs = 0;
  while (funcs[S.num_funcs].name) S.num_funcs++;

  #ifdef BCM2708_PERI_BASE
  setup_io();
  #endif

  printf("Welcome to uscript.\n");
  FILE* fd = fopen(DATA_FILE, "r");
  if (fd) {
    if (fgetc(fd) == 'u') {
      while (1) {
        int key = fgetc(fd);
        if (key == 'u') break;
        printf("Loading %c...\n", key + 'a');
        int len = fgetc(fd);
        len = (len << 8) | fgetc(fd);
        uint8_t* stub = S.stubs[key] = malloc(len);
        int j;
        for (j = 0; j < len; j++) {
          stub[j] = fgetc(fd);
        }
      }

    }
    fclose(fd);
  }
  if (S.stubs[0]) {
    printf("Running auto script...\n");
    number out;
    signal(SIGINT, intHandler);
    stopLoop = 0;
    eval(&S, S.stubs[0], &out);
    signal(SIGINT, SIG_DFL);
  }

  uint8_t* line = NULL;
  size_t size = 0;
  while (1) {

    printf(KNRM "> " KGRN);
    if (getline((char**)&line, &size, stdin) < 0) {
      printf(KNRM "\n");
      return 0;
    }
    printf(KNRM);
    int len = compile(&S, line);
    if ((int) len < 0) {
      int offset = 1 - (int)len;
      while (offset--) printf(" ");
      printf(KRED "^\n");
      printf("Unexpected input\n" KNRM);
      continue;
    }
    uint8_t* program = line;
    while (program - line < len) {
      number result;
      signal(SIGINT, intHandler);
      stopLoop = 0;
      program = eval(&S, program, &result);
      signal(SIGINT, SIG_DFL);
      printf("%s%"PRId64"%s\n", KBLU, result, KNRM);
    }
  }

  return 0;
}
开发者ID:creationix,项目名称:uscript,代码行数:72,代码来源:main.c


示例10: compile

bool Shader::loadFromMemory(const std::string& vertexShader, const std::string& fragmentShader)
{
    // Compile the shader program
    return compile(vertexShader.c_str(), fragmentShader.c_str());
}
开发者ID:AbdulTheProgrammer,项目名称:Bullet_Bomber,代码行数:5,代码来源:Shader.cpp


示例11: main

int main(int argc, char *argv[])
{
    char buffer[256];
    char *p;
    BOOLEAN multipleFiles = FALSE;
    BOOLEAN openOutput = TRUE;
    int rv;
    char realOutFile[260];
    char oldOutFile[260];
    srand(time(0));

        /*   signal(SIGSEGV,internalError) ;*/
        /*   signal(SIGFPE, internalError) ;*/

    /* initialize back end */
    if (!init_backend(&argc,argv))
        fatal("Could not initialize back end");

    if (chosenAssembler->Args)
    {
        CMDLIST *newArgs = calloc(sizeof(Args) + sizeof(Args[0]) * chosenAssembler->ArgCount, 1);
        if (newArgs)
        {
            memcpy(&newArgs[0], chosenAssembler->Args, 
                   chosenAssembler->ArgCount *sizeof(Args[0]));
            memcpy(&newArgs[chosenAssembler->ArgCount], &Args[0], sizeof(Args));
            ArgList = newArgs;
        }
    }		
    /* parse environment variables, command lines, and config files  */
    ccinit(argc, argv);
    
    /* loop through and preprocess all the files on the file list */
    if (clist && clist->next)
        multipleFiles = TRUE;
#ifdef PARSER_ONLY
    strcpy(buffer, clist->data);
    strcpy(realOutFile, outfile);
    outputfile(realOutFile, buffer, ".ods");
    if (!ccDBOpen(realOutFile))
        fatal("Cannot open database file %s", realOutFile);
#else
    BitInit();
    regInit();
#endif
    if (chosenAssembler->main_preprocess)
        openOutput = chosenAssembler->main_preprocess();
    while (clist)
    {
        cparams.prm_cplusplus = FALSE;
        strcpy(buffer, clist->data);
#ifndef PARSER_ONLY
        strcpy(realOutFile, outfile);
        if (cparams.prm_asmfile)
            outputfile(realOutFile, buffer, chosenAssembler->asmext);
        else
            outputfile(realOutFile, buffer, chosenAssembler->objext);
        strcpy(oldOutFile, realOutFile);
        StripExt(oldOutFile);
        AddExt(oldOutFile, ".tmp");
#else
        ccNewFile(buffer, TRUE);
#endif
        AddExt(buffer, ".C");
        p = strrchr(buffer, '.');
        if (*(p - 1) != '.')
        {
            if (p[1] == 'h' || p[1] == 'H') // compile H files as C++ for the IDE
                cparams.prm_cplusplus = TRUE;
            if (p[1] == 'c' || p[1] == 'C')
            if (p[2] == 'p' || p[2] == 'P')
            {
                if (p[3] == 'p' || p[3] == 'P')
                    cparams.prm_cplusplus = TRUE;
            }
            else
            {
                if (p[2] == 'x' || p[2] == 'X')
                {
                    if (p[3] == 'x' || p[3] == 'X')
                        cparams.prm_cplusplus = TRUE;
                }
            }
            else if ((p[2] == 'c' ||p[2] == 'C' ) && !p[3])
            {
                        cparams.prm_cplusplus = TRUE;
            }
            else
            {
                if (p[2] == '+')
                {
                    if (p[3] == '+')
                        cparams.prm_cplusplus = TRUE;
                }
            }
        }
        if (cparams.prm_cplusplus && chosenAssembler->msil)
            fatal("MSIL compiler does not compile C++ files at this time");
        inputFile = SrchPth2(buffer, "", "r");
        if (!inputFile)
//.........这里部分代码省略.........
开发者ID:bencz,项目名称:OrangeC,代码行数:101,代码来源:ccmain.c


示例12: va_arg

/*---------------------------------------------------------------------------
|   Facility      :  libnform
|   Function      :  static void *Make_RegularExpression_Type(va_list * ap)
|
|   Description   :  Allocate structure for regex type argument.
|
|   Return Values :  Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
static void *Make_RegularExpression_Type(va_list * ap)
{
#if HAVE_REGEX_H_FUNCS
  char *rx = va_arg(*ap,char *);
  RegExp_Arg *preg;

  preg = (RegExp_Arg*)malloc(sizeof(RegExp_Arg));
  if (preg)
    {
      if (((preg->pRegExp = (regex_t*)malloc(sizeof(regex_t))) != (regex_t*)0)
       && !regcomp(preg->pRegExp,rx,
		   (REG_EXTENDED | REG_NOSUB | REG_NEWLINE) ))
	{
	  preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
	  *(preg->refCount) = 1;
	}
      else
	{
	  if (preg->pRegExp)
	    free(preg->pRegExp);
	  free(preg);
	  preg = (RegExp_Arg*)0;
	}
    }
  return((void *)preg);
#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
  char *rx = va_arg(*ap,char *);
  RegExp_Arg *pArg;

  pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));

  if (pArg)
    {
      int blen = RX_INCREMENT;
      pArg->compiled_expression = NULL;
      pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
      *(pArg->refCount) = 1;

      do {
	char *buf = (char *)malloc(blen);
	if (buf)
	  {
#if HAVE_REGEXP_H_FUNCS
	    char *last_pos = compile (rx, buf, &buf[blen], '\0');
#else /* HAVE_REGEXPR_H_FUNCS */
	    char *last_pos = compile (rx, buf, &buf[blen]);
#endif
	    if (reg_errno)
	      {
		free(buf);
		if (reg_errno==50)
		  blen += RX_INCREMENT;
		else
		  {
		    free(pArg);
		    pArg = NULL;
		    break;
		  }
	      }
	    else
	      {
		pArg->compiled_expression = buf;
		break;
	      }
	  }
      } while( blen <= MAX_RX_LEN );
    }
  if (pArg && !pArg->compiled_expression)
    {
      free(pArg);
      pArg = NULL;
    }
  return (void *)pArg;
#else
  return 0;
#endif
}
开发者ID:aosm,项目名称:old_ncurses,代码行数:85,代码来源:fty_regex.c


示例13: pattern

RegularExpression::Private::Private()
    : pattern("")
{
    compile(true);
}
开发者ID:jackiekaon,项目名称:owb-mirror,代码行数:5,代码来源:BCRegularExpressionWK.cpp


示例14: type_

	shader::shader(GLenum type, const std::string& name, const std::string& code)
		: type_(type), shader_(0), name_(name)
	{
		ASSERT_LOG(compile(code), "Error compiling shader for " << name_);
	}
开发者ID:sweetkristas,项目名称:hexes,代码行数:5,代码来源:shaders.cpp


示例15: connect

void TestRunner::run()
{
    runOutput_.clear();
    connect(this, &TestRunner::compileFinished, this, &TestRunner::run_onCompileFinished_);
    compile();
}
开发者ID:dalboris,项目名称:QtProjectTemplate,代码行数:6,代码来源:TestRunner.cpp


示例16: main

int
main(int argc, char *argv[])
{
	int c, fflag;
	char *temp_arg;

	(void) setlocale(LC_ALL, "");

	fflag = 0;
	inplace = NULL;

	while ((c = getopt(argc, argv, "EI:ae:f:i:lnr")) != -1)
		switch (c) {
		case 'r':		/* Gnu sed compat */
		case 'E':
			rflags = REG_EXTENDED;
			break;
		case 'I':
			inplace = optarg;
			ispan = 1;	/* span across input files */
			break;
		case 'a':
			aflag = 1;
			break;
		case 'e':
			eflag = 1;
			if ((temp_arg = malloc(strlen(optarg) + 2)) == NULL)
				err(1, "malloc");
			strcpy(temp_arg, optarg);
			strcat(temp_arg, "\n");
			add_compunit(CU_STRING, temp_arg);
			break;
		case 'f':
			fflag = 1;
			add_compunit(CU_FILE, optarg);
			break;
		case 'i':
			inplace = optarg;
			ispan = 0;	/* don't span across input files */
			break;
		case 'l':
			if(setlinebuf(stdout) != 0)
				warnx("setlinebuf() failed");
			break;
		case 'n':
			nflag = 1;
			break;
		default:
		case '?':
			usage();
		}
	argc -= optind;
	argv += optind;

	/* First usage case; script is the first arg */
	if (!eflag && !fflag && *argv) {
		add_compunit(CU_STRING, *argv);
		argv++;
	}

	compile();

	/* Continue with first and start second usage */
	if (*argv)
		for (; *argv; argv++)
			add_file(*argv);
	else
		add_file(NULL);
	process();
	cfclose(prog, NULL);
	if (fclose(stdout))
		err(1, "stdout");
	exit(rval);
}
开发者ID:edgar-pek,项目名称:PerspicuOS,代码行数:74,代码来源:main.c


示例17: main

int main(int argc, char **argv)
{
	int c;
	int codegen = 0;
	unsigned long repeat = 1;
	char *end;

	warn_section = 0;
	warn_undefined = 0;

	while ((c = getopt(argc, argv, "cf:m:n:qsv:W:")) != EOF)
		switch (c) {
		case 'c':
			codegen++;
			break;
		case 'f':
			fail = optarg;
			break;
		case 'm':
			add_midi(optarg);
			break;
		case 'n':
			repeat = strtoul(optarg, &end, 0);
			if (*end)
				usage(*argv);
			break;
		case 'q':
			quiet = 1;
			break;
		case 's':
			symbols = 1;
			break;
		case 'v':
			trace_var = optarg;
			break;
		case 'W':
			if (!strcmp(optarg, "section"))
				warn_section = 1;
			else if (!strcmp(optarg, "undefined"))
				warn_undefined = 1;
			else
				usage(*argv);
			break;
		default:
			usage(*argv);
		}

	if (codegen && (fail || symbols))
		usage(*argv);

	switch (argc-optind) {
	case 0:
		buffer = read_stdin();
		atexit(free_buffer);
		break;
	case 1:
		buffer = argv[optind];
		break;
	default:
		usage(*argv);
	}

	while (repeat--)
		switch (codegen) {
		case 0:
			parse_only(buffer);
			break;
		case 1:
			compile(buffer, 1);
			break;
		case 2:
			compile_vm(buffer);
			break;
		case 3:
			compile(buffer, 0);
			break;
		default:
			usage(*argv);
		}

	return 0;
}
开发者ID:SayCV,项目名称:flickernoise,代码行数:82,代码来源:ptest.c


示例18: lastMatchLength

inline RegularExpression::Private::Private(const String& pattern, TextCaseSensitivity caseSensitivity)
    : lastMatchLength(-1)
    , m_regexp(compile(pattern, caseSensitivity))
{
}
开发者ID:arjunroy,项目名称:cinder_webkit,代码行数:5,代码来源:RegularExpression.cpp


示例19: compile

QRegExp &QRegExp::operator=( const QCString &pattern )
{
    rxstring = pattern;
    compile();
    return *this;
}
开发者ID:adei-kit,项目名称:kitcube-tools,代码行数:6,代码来源:qregexp.cpp


示例20: U32

U32 (*setpatch(U32 maddr, U32 (*code)(struct m_registers *, void *)))(struct m_registers *, void *)
{
  struct seg_info *seg;
  struct code_info *ci;
  
#ifdef DEBUG
  printf("Setpatch(0x%08x)\n", maddr);
#endif /* DEBUG */

  if (maddr & 0xff000001) {
    fprintf(stderr, "setpatch: Bad address 0x%08x\n", maddr);
    return(NULL);
  }

  if ((!(seg = find_seg(code_tree, maddr))) ||
      (!(ci = find_ci(&seg->codeinfo, maddr)))) {
    U32 mend;
    ci = new_codeinfo(maddr);

#ifdef DEBUG
    if (debuglevel & DL_RUNTIME_TRACE) {
      fprintf(stdout, "setpatch: Compiling 0x%08x...\n", maddr);
    }
#endif /* DEBUG */
    mend = compile(ci);
      
    if (!seg) {
#ifdef DEBUG
      if (debuglevel & DL_COMPILER_VERBOSE) {
	fprintf(stdout, "Creating new segment, maddr: %08x, end: %08x\n",
		maddr, mend);
      }
#endif /* DEBUG */
      seg = insert_seg(&code_tree, maddr, mend);
      if (!seg) {
	/* BUS ERROR? */
	fprintf(stderr, "Out of memory?\n");
	abort();
      }
    } else if (mend != seg->mend) {
      fprintf(stderr, "Strange ending, orig:%08x, new:%08x\n", seg->mend, mend);
      abort();
    }
    /* Link it first */
    ci->next = seg->codeinfo;
    seg->codeinfo = ci;

#ifdef DEBUG
    if (debuglevel & DL_COMPILER_DISASSEMBLY) {
      disassemble(maddr, mend);
    }
#endif /* DEBUG */    
  }
  /* Don't attempt to patch an already patched function */
  if (ci->flags & CIF_PATCHED) {
    return(NULL);
  } else {
    U32 (*retval)(struct m_registers *, void *);

     /* Don't attempt to free a patched function in the garbage collector */
    retval = ci->code;
    if (retval) {
      ci->flags |= CIF_LOCKED | CIF_PATCHED;
      ci->code = code;
    } else {
      fprintf(stderr, "Setpatch(0x%08x): retval == NULL\n", maddr);
      breakme();
    }
    return(retval);
  }
}
开发者ID:grubba,项目名称:LMTAE,代码行数:71,代码来源:setpatch.c



注:本文中的compile函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ compileExpression函数代码示例发布时间:2022-05-30
下一篇:
C++ comperr函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap