您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ syntax函数代码示例

51自学网 2021-06-03 08:36:46
  C++
这篇教程C++ syntax函数代码示例写得很实用,希望能帮到您。

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

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

示例1: main

intmain(int argc, char **argv){	int	res;	char	*p;	if ((p = strrchr(argv[0], '/')) == NULL)		p = argv[0];	else		p++;	if (strcmp(p, "[") == 0) {		if (strcmp(argv[--argc], "]") != 0)			error("missing ]");		argv[argc] = NULL;	}	/* no expression => false */	if (--argc <= 0)		return 1;#ifndef SHELL	(void)setlocale(LC_CTYPE, "");#endif	nargc = argc;	t_wp = &argv[1];	parenlevel = 0;	if (nargc == 4 && strcmp(*t_wp, "!") == 0) {		/* Things like ! "" -o x do not fit in the normal grammar. */		--nargc;		++t_wp;		res = oexpr(t_lex(*t_wp));	} else		res = !oexpr(t_lex(*t_wp));	if (--nargc > 0)		syntax(*t_wp, "unexpected operator");	return res;}
开发者ID:bravelib,项目名称:poudriere,代码行数:39,


示例2: getE2

EPNODE *getE2(void)			/* E2 -> E2 MULOP E3 */				/*	 E3 */{    EPNODE  *ep1, *ep2;    ep1 = getE3();    while (nextc == '*' || nextc == '/') {	ep2 = newnode();	ep2->type = nextc;	scan();	addekid(ep2, ep1);	addekid(ep2, getE3());	if (esupport&E_RCONST) {		EPNODE	*ep3 = ep1->sibling;		if (ep1->type == NUM && ep3->type == NUM) {			ep2 = rconst(ep2);		} else if (ep3->type == NUM) {			if (ep2->type == '/') {				if (ep3->v.num == 0)					syntax("divide by zero constant");				ep2->type = '*';	/* for speed */				ep3->v.num = 1./ep3->v.num;			} else if (ep3->v.num == 0) {				ep1->sibling = NULL;	/* (E2 * 0) */				epfree(ep2);				ep2 = ep3;			}		} else if (ep1->type == NUM && ep1->v.num == 0) {			epfree(ep3);		/* (0 * E3) or (0 / E3) */			ep1->sibling = NULL;			efree((char *)ep2);			ep2 = ep1;		}	}	ep1 = ep2;    }    return(ep1);}
开发者ID:NREL,项目名称:Radiance,代码行数:39,


示例3: clearResult

MStatus tm_polyExtract::doIt( const MArgList& args ){	MStatus stat = MS::kSuccess;	clearResult();	MArgDatabase argData( syntax(), args);//	if(argData.isFlagSet( extractFaces_Flag))	{		MSelectionList selectionList;		argData.getObjects( selectionList);		MStringArray node_names;		bool result = extractFaces_Func( selectionList, node_names);		if(!result)		{			MGlobal::displayError("tm_polyExtract: extractFaces function call failed.");			return MStatus::kFailure;		}		setResult( node_names);		return stat;	}}
开发者ID:AlbertR,项目名称:cgru170,代码行数:22,


示例4: argData

MStatus userMessage::doIt( const MArgList& args ){	MStatus status = MS::kSuccess;	MArgDatabase argData(syntax(), args);	if (argData.isFlagSet(deregisterFlag))	{		MString event;		argData.getFlagArgument(deregisterFlag, 0, event);		status = MUserEventMessage::deregisterUserEvent(event);	}	else if (argData.isFlagSet(registerFlag))	{		// Register the new event and add two fixed callbacks to it.		MString event;		argData.getFlagArgument(registerFlag, 0, event);		if (!MUserEventMessage::isUserEvent(event)) {			status = MUserEventMessage::registerUserEvent(event);			if (status == MS::kSuccess)			{				MUserEventMessage::addUserEventCallback(event,userCallback1,(void*) &stringClientData,&status);				MUserEventMessage::addUserEventCallback(event,userCallback2,(void*) &stringClientData,&status);			}		}	}	else if (argData.isFlagSet(postFlag))	{		MString event;	 	argData.getFlagArgument(postFlag, 0, event);		status = MUserEventMessage::postUserEvent(event);	}	else if (argData.isFlagSet(testFlag))	{		runTests();	}	return status;}
开发者ID:DimondTheCat,项目名称:xray,代码行数:39,


示例5: syntax

CFX_ByteString CPDF_DefaultAppearance::GetColorString(    PaintOperation nOperation) {  CFX_ByteString csColor;  if (m_csDA.IsEmpty())    return csColor;  CPDF_SimpleParser syntax(m_csDA.AsStringC());  if (syntax.FindTagParamFromStart(          (nOperation == PaintOperation::STROKE ? "G" : "g"), 1)) {    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    return csColor;  }  if (syntax.FindTagParamFromStart(          (nOperation == PaintOperation::STROKE ? "RG" : "rg"), 3)) {    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    return csColor;  }  if (syntax.FindTagParamFromStart(          (nOperation == PaintOperation::STROKE ? "K" : "k"), 4)) {    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();    csColor += " ";    csColor += syntax.GetWord();  }  return csColor;}
开发者ID:documentcloud,项目名称:pdfium,代码行数:39,


示例6: syntax

FX_DWORD CPDF_StreamContentParser::Parse(const uint8_t* pData, FX_DWORD dwSize, FX_DWORD max_cost){    if (m_Level > _FPDF_MAX_FORM_LEVEL_) {        return dwSize;    }    FX_DWORD InitObjCount = m_pObjectList->CountObjects();    CPDF_StreamParser syntax(pData, dwSize);    CPDF_StreamParserAutoClearer auto_clearer(&m_pSyntax, &syntax);    m_CompatCount = 0;    while (1) {        FX_DWORD cost = m_pObjectList->CountObjects() - InitObjCount;        if (max_cost && cost >= max_cost) {            break;        }        switch (syntax.ParseNextElement()) {            case CPDF_StreamParser::EndOfData:                return m_pSyntax->GetPos();            case CPDF_StreamParser::Keyword:                if(!OnOperator((char*)syntax.GetWordBuf()) && _PDF_HasInvalidOpChar((char*)syntax.GetWordBuf())) {                    m_bAbort = TRUE;                }                if (m_bAbort) {                    return m_pSyntax->GetPos();                }                ClearAllParams();                break;            case CPDF_StreamParser::Number:                AddNumberParam((char*)syntax.GetWordBuf(), syntax.GetWordSize());                break;            case CPDF_StreamParser::Name:                AddNameParam((const FX_CHAR*)syntax.GetWordBuf() + 1, syntax.GetWordSize() - 1);                break;            default:                AddObjectParam(syntax.GetObject());        }    }    return m_pSyntax->GetPos();}
开发者ID:azunite,项目名称:pdf_clone,代码行数:38,


示例7: syntax

CFX_ByteString CPDF_DefaultAppearance::GetColorString(    FX_BOOL bStrokingOperation) {  CFX_ByteString csColor;  if (m_csDA.IsEmpty()) {    return csColor;  }  CPDF_SimpleParser syntax(m_csDA);  if (syntax.FindTagParam(bStrokingOperation ? "G" : "g", 1)) {    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    return csColor;  }  syntax.SetPos(0);  if (syntax.FindTagParam(bStrokingOperation ? "RG" : "rg", 3)) {    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    return csColor;  }  syntax.SetPos(0);  if (syntax.FindTagParam(bStrokingOperation ? "K" : "k", 4)) {    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();    csColor += " ";    csColor += (CFX_ByteString)syntax.GetWord();  }  return csColor;}
开发者ID:primiano,项目名称:pdfium-merge,代码行数:38,


示例8: func_reply_mail

void func_reply_mail(USER_DATA *usr, char *argument) {	MAIL_DATA *pMail;	char buf[STRING];	BUFFER *buffer;	int vnum = 1;	int anum = 0;	if (argument[0] == '/0' || !is_number(argument)) {		syntax("[#Wr#x]eply <mail number>", usr);		return;	}	anum = atoi(argument);	buffer = new_buf();	for (pMail = usr->pMailFirst; pMail; pMail = pMail->next) {		if (pMail && (vnum++ == anum))			break;	}	mail_attach(usr);	if (usr->pCurrentMail->to)		free_string(usr->pCurrentMail->to);	usr->pCurrentMail->to = str_dup(pMail->from);	if (usr->pCurrentMail->subject)		free_string(usr->pCurrentMail->subject);	if (pMail->subject[0] == 'R' && pMail->subject[1] == 'e'			&& pMail->subject[2] == ':' && pMail->subject[3] == ' ')		usr->pCurrentMail->subject = str_dup(pMail->subject);	else {		sprintf(buf, "Re: %s", pMail->subject);		usr->pCurrentMail->subject = str_dup(buf);	}	print_to_user(usr, "To: %s/n/rSubject: %s/n/r", usr->pCurrentMail->to,			usr->pCurrentMail->subject);	EDIT_MODE(usr) = EDITOR_MAIL_WRITE;	string_edit(usr, &usr->pCurrentMail->message);}
开发者ID:KodersCo,项目名称:hayalevi,代码行数:38,


示例9: argData

MStatus nodeCreatedCB::doIt( const MArgList& args )////	Description://		implements the MEL nodeCreatedCB command.//{	MStatus stat = MS::kSuccess;	MArgDatabase argData( syntax(), args );	// Parse command flags.	//	if ( argData.isFlagSet( kRegisterFlag ) ) {		// Register a new procedure.		//		MString proc;		argData.getFlagArgument( kRegisterFlag, 0, proc );		stat = registerMelProc( proc, argData.isFlagSet( kFullDagPathFlag ) );	} else if ( argData.isFlagSet( kUnregisterFlag ) ) {		// Unregister a procedure.		//		MString proc;		argData.getFlagArgument( kUnregisterFlag, 0, proc );		stat = unregisterMelProc( proc );	} else if ( argData.isFlagSet( kFilterFlag ) ) {		// Change the filter being applied.		//		MString filter;		argData.getFlagArgument( kFilterFlag, 0, filter );		stat = changeFilter( filter );	}		if ( stat.error() ) {		MGlobal::displayError( stat.errorString() );	}	return stat;}
开发者ID:BigRoy,项目名称:Maya-devkit,代码行数:38,


示例10: co_winnt_main

co_rc_t co_winnt_main(LPSTR szCmdLine) {	co_rc_t rc;	co_command_line_params_t cmdline;	int argc = 0;	char **args = NULL;	rc = co_os_parse_args(szCmdLine, &argc, &args);	if (!CO_OK(rc)) {		co_terminal_print("daemon: error parsing arguments/n");		syntax();		return CO_RC(ERROR);	}	rc = co_cmdline_params_alloc(args, argc, &cmdline);	if (!CO_OK(rc)) {		co_terminal_print("daemon: error parsing arguments/n");		co_os_free_parsed_args(args);		return CO_RC(ERROR);	}	return CO_RC(OK);}
开发者ID:matt81093,项目名称:Original-Colinux,代码行数:23,


示例11: argData

MStatus AlembicPolyMeshToSubdivCommand::doIt(const MArgList& args){	MStatus status;	MArgParser argData(syntax(), args, &status);	if (argData.isFlagSet("help"))	{		MGlobal::displayInfo("[ExocortexAlembic]: ExocortexAlembic_meshToSubdiv command:");		MGlobal::displayInfo("                    -m : mesh to assign the initialShadingGroup on");		return MS::kSuccess;	}	const MString mesh = argData.isFlagSet("mesh") ? ("/"" + argData.flagArgumentString("mesh", 0) + "/"") : "";	MString result;	MGlobal::executePythonCommand(("ExoAlembic._functions.alembicPolyMeshToSubdiv(" + mesh) + ")", result);	if (result.length())	{		MPxCommand::setResult(result);		return MS::kFailure;	}	return MS::kSuccess;}
开发者ID:EriLee,项目名称:ExocortexCrate,代码行数:23,


示例12: argData

MStatus geometrySurfaceConstraintCommand::parseArgs(const MArgList &argList){	MStatus			ReturnStatus;	MArgDatabase	argData(syntax(), argList, &ReturnStatus);	if ( ReturnStatus.error() )		return MS::kFailure;	// Settings only work at creation time. Would need an	// attribute on the node in order to push this state	// into the node at any time.	ConstraintType typ;	if (argData.isFlagSet(kConstrainToLargestWeightFlag))		typ = geometrySurfaceConstraintCommand::kLargestWeight;	else if (argData.isFlagSet(kConstrainToSmallestWeightFlag))		typ = geometrySurfaceConstraintCommand::kSmallestWeight;	else		typ = geometrySurfaceConstraintCommand::kLargestWeight;	weightType = typ;	// Need parent to process	return MS::kUnknownParameter;}
开发者ID:BigRoy,项目名称:Maya-devkit,代码行数:23,


示例13: testcmd

inttestcmd(shinstance *psh, int argc, char **argv){	int res;	if (strcmp(argv[0], "[") == 0) {		if (strcmp(argv[--argc], "]"))			error(psh, "missing ]");		argv[argc] = NULL;	}	if (argc < 2)		return 1;	psh->t_wp_op = NULL;	psh->t_wp = &argv[1];	res = !oexpr(psh, t_lex(psh, *psh->t_wp));	if (*psh->t_wp != NULL && *++psh->t_wp != NULL)		syntax(psh, *psh->t_wp, "unexpected operator");	return res;}
开发者ID:dezelin,项目名称:kBuild,代码行数:23,


示例14: setResult

MStatus RadiosityRenderer::prepareRenderView() {		if (!MRenderView::doesRenderEditorExist())	{		setResult( "Cannot renderViewRender in batch render mode. "				  "Please run in interactive mode, "				  "so that the render editor exists." );		return MS::kFailure;	}	else	{		printf("Past doesRenderEditorExist()");	}		// get optional flags	MArgDatabase	argData( syntax(), args );	parseSyntax( argData );		M3dView curView = M3dView::active3dView();	MDagPath camDagPath;	curView.getCamera( camDagPath );	printf("Rendering camera: %s", camDagPath.fullPathName().asChar());		if( MRenderView::setCurrentCamera( camDagPath ) != MS::kSuccess )	{		setResult( "renderViewRender: error occurred in setCurrentCamera." );		return MS::kFailure;	}		if (MRenderView::startRender( windowWidth, windowHeight, doNotClearBackground) != MS::kSuccess)	{		setResult( "renderViewRender: error occured in startRender." );		return MS::kFailure;	}		return MS::kSuccess;}
开发者ID:JakeCataford,项目名称:glradiosity,代码行数:37,


示例15: rpx_line

/* * Read, parse, and execute a command line. */static voidrpx_line(void){	struct tnode *t;	sigset_t nmask, omask;	char *wp;	linep = line;	wordp = word;	error_message = NULL;	nul_count = 0;	tree_count = 0;	do {		wp = linep;		get_word();	} while (*wp != EOL);	*wordp = NULL;	if (error_message != NULL) {		err(SH_ERR, FMT1S, error_message);		return;	}	if (wordp - word > 1) {		(void)sigfillset(&nmask);		(void)sigprocmask(SIG_SETMASK, &nmask, &omask);		t = NULL;		t = syntax(word, wordp);		(void)sigprocmask(SIG_SETMASK, &omask, NULL);		if (error_message != NULL)			err(SH_ERR, FMT1S, error_message);		else			execute(t, NULL, NULL);		tfree(t);		t = NULL;	}}
开发者ID:alwayrun,项目名称:v6shell,代码行数:40,


示例16: func_read_mail

void func_read_mail(USER_DATA *usr, char *argument) {	MAIL_DATA *pMail;	char buf[STRING];	BUFFER *buffer;	int vnum = 1;	int anum = 0;	if (argument[0] == '/0' || !is_number(argument)) {		syntax("[#Wre#x]ad <mail number>", usr);		return;	}	anum = atoi(argument);	buffer = new_buf();	for (pMail = usr->pMailFirst; pMail; pMail = pMail->next) {		if (pMail && (vnum++ == anum)) {			time_t *last_read = &pMail->read_time;			*last_read = UMAX(*last_read, pMail->stamp_time);			sprintf(buf, "Reading message %d./n/rDate: %s/n/rFrom: %s/n/r"				"Subject: %s/n/r/n/r", vnum - 1, time_str(pMail->stamp_time),					pMail->from, pMail->subject);			add_buf(buffer, buf);			add_buf(buffer, pMail->message);			add_buf(buffer, "#x/n/r");			page_to_user(buf_string(buffer), usr);			free_buf(buffer);			save_mail(usr);			return;		}	}	send_to_user("There aren't that many mail./n/r", usr);	return;}
开发者ID:KodersCo,项目名称:hayalevi,代码行数:36,


示例17: switch

static char *yes_no(char *arg, struct switch_s *s){  int value = s->min;  switch(arg[0]) {  case '+':    arg++;    value = ON;    break;  case '-':    arg++;    value = OFF;    break;  case 'o':  case 'O':    switch(toupper(arg[1])) {    case 'N':      arg += 2;       /* ON */      value = ON;      break;    case 'F':      if (toupper(arg[2]) == 'F') {        arg += 3;     /* OFF */        value = OFF;        break;      }    default:      syntax("ON, OFF or nothing expected after /%s", s->sw);    }  }  if (s->loc)    *(int *)s->loc = value;  defined_format |= s->ID;  forced_format |= s->ID;  return arg;}
开发者ID:FDOS,项目名称:ramdisk,代码行数:36,


示例18: main

int main (int argc, char *argv []){    int	argn,	argmax,	max,	used,	i,	j,	k,	n;    char	*p;    GROUP_	*gr;    no_mem_buffer = (char *) malloc (1024);    get_programname (argv [0]);    while (argc > 1 && argv [1][0] == '-') {	if (! strcmp (argv [1], "-o")) {	    argc--;	    argv++;	    outfile = argv [1];	} else if (! strcmp (argv [1], "-l")) {	    argc--;	    argv++;	    listfile = argv [1];	}	argc--;	argv++;    }    if (argc < 2 && ! listfile)	syntax ();    if (listfile) {	argc = 1;	argmax = 256;	p = argv [0];	argv = (char **) s_malloc (argmax * sizeof (char *));	argv [0] = p;	fileopen (listfile);	while (mygetline (FALSE)) {	    if (argc == argmax) {		argmax += 256;		argv = (char **) s_realloc (argv, argmax * sizeof (char *));	    }	    argv [argc++] = s_strdup (buffer);	}    }        fileopen (argv [1]);    while (mygetline (FALSE)) {	if (buffer [0] == 'l' || buffer [0] == 'L') {	    if (n_lbls == max_lbls) {		max_lbls += 256;		lbls = (char **) s_realloc (lbls, max_lbls * sizeof (char *));	    }	    i = 1;	    while (buffer [i] && isspace ((unsigned char) buffer [i]))		i++;	    lbls [n_lbls++] = s_strdup (buffer + i);	}    }    fclose (fp);    qsort (lbls, n_lbls, sizeof (char *), scmp);    if (outfile) {	fpout = fopen (outfile, "w");	if (! fpout)	    errit ("Creating file /"%s/": %s", outfile, strerror (errno));    } else	fpout = stdout;    fprintf (fpout, "# Number of cluster files:/n%i/n# Number of labels:/n%i/n# Labels:/n", argc - 1, n_lbls);    for (i = 0; i < n_lbls; i++)	fprintf (fpout, "%s/n", lbls [i]);    fprintf (fpout, "# Cluster count, cluster members, average cophenetic distance:/n");    max = n_lbls - 1;    cl = (CLUSTER_ *) s_malloc (max * sizeof (CLUSTER_));    members = (char *) s_malloc ((n_lbls + 1) * sizeof (char));    members [n_lbls] = '/0';    for (argn = 1; argn < argc; argn++) {	fileopen (argv [argn]);	for (used = 0; used < max; used++) {	    mygetline (TRUE);	    if (sscanf (buffer, "%i %f%n", &(cl [used].index), &(cl [used].value), &i) < 2)		errit ("Syntax error in /"%s/", line %i: /"%s/"", filename, inputline, buffer);	    for (n = 0; n < 2; n++) {		mygetline (TRUE);		switch (buffer [0]) {                    case 'l':                    case 'L':			cl [used].node [n] = LBL;//.........这里部分代码省略.........
开发者ID:coltekin,项目名称:Gabmap,代码行数:101,


示例19: syntaxCheck

 /**  * @brief Member function <b>parse</b> parses the expression.  If successful, the  * parse status is set to true.  *  * @param expr		a <b>std::string</b> const reference to the  *				expression to parse.  *  */ inline void syntaxCheck(const std::string &expr) {   setExpression(expr);   syntax(); }
开发者ID:00liujj,项目名称:trilinos,代码行数:12,


示例20: argData

//-*****************************************************************************MStatus AbcExport::doIt( const MArgList & args ){    MStatus status;    MTime oldCurTime = MAnimControl::currentTime();    MArgParser argData( syntax(), args, &status );    if ( status != MS::kSuccess )    {        return status;    }    unsigned int numberOfArguments = args.length();    MString msg;    msg += "AlembicSimpleAbcExport  [options] OutputFileName.abc/n/n";    msg += "Options:/n";        msg += "-h  / help  Print this message./n";    msg += "/n";        msg += "-fs / frameStart int (default: 0)/n";    msg += "The export start frame/n";    msg += "/n";        msg += "-fe / frameEnd int (default: 0)/n";    msg += "The export end frame/n";    msg += "/n";        msg += "-v  / verbose  Verbose output/n";    msg += "/n";        if ( argData.isFlagSet( "help" ) )    {        MGlobal::displayInfo( msg );        return MS::kSuccess;    }    bool verbose = argData.isFlagSet( "verbose" );    int frameStart = 0;    if ( argData.isFlagSet( "frameStart" ) )    {        argData.getFlagArgument( "frameStart", 0, frameStart );    }    int frameEnd = 0;    if ( argData.isFlagSet( "frameEnd" ) )    {        argData.getFlagArgument( "frameEnd", 0, frameEnd );    }    // status = argData.getCommandArgument(0, argStr);    // Get filenameArgument    MString fileNameStr = args.asString( numberOfArguments-1, &status );    // Okay, do it.    Parameters params;    params.fileName = fileNameStr.asChar();    params.startFrame = frameStart;    params.endFrame = frameEnd;    params.verbose = verbose;    params.polysAsSubds = false;    params.deforming = true;    params.allUserAttributes = true;    params.allMayaAttributes = false;    try    {        status = AbcExportSelected( params );    }    catch ( std::exception &exc )    {        MGlobal::displayError( exc.what() );        status = MS::kFailure;    }    catch ( ... )    {        MGlobal::displayError( "AlembicSimpleAbcExport: UNKNOWN EXCEPTION" );        status = MS::kFailure;    }       return status;}
开发者ID:ryutaro765,项目名称:Alembic,代码行数:85,


示例21: parse_parameter

static int parse_parameter ( ctx_t *ctx_p, uint16_t param_id, char *arg, paramsource_t paramsource ){	int ret = 0;#ifdef _DEBUG_FORCE	fprintf ( stderr, "Force-Debug: parse_parameter(): %i: %i = /"%s/"/n", paramsource, param_id, arg );#endif	switch ( paramsource ) {		case PS_CONTROL:		case PS_ARGUMENT:			if ( param_id & OPTION_CONFIGONLY ) {				syntax();				return 0;			}			ctx_p->flags_set[param_id] = 1;			break;		case PS_CONFIG:			if ( ctx_p->flags_set[param_id] )				return 0;			ctx_p->flags_set[param_id] = 1;			break;		case PS_DEFAULTS:#ifdef VERYPARANOID			if ( ctx_p->flags_set[param_id] ) {				error ( "Parameter #%i is already set. No need in setting the default value.", param_id );				return 0;			}#endif			break;		/*		case PS_REHASH:					arg = ctx_p->flags_values_raw[param_id];		#ifdef VERYPARANOID					critical_on (arg == NULL);		#endif					debug(9, "Rehash setting %i -> /"%s/"", param_id, arg);					break;*/		case PS_CORRECTION:			critical_on ( arg == NULL );			debug ( 9, "Correcting setting %i -> /"%s/"", param_id, arg );			break;		default:			error ( "Unknown parameter #%i source (value /"%s/").", param_id, arg != NULL ? arg : "" );			break;	}	if ( ( arg != NULL ) /*&& (paramsource != PS_REHASH)*/ ) {		if ( param_id != KVM_ARGS )			arg = parameter_expand ( ctx_p, arg, 0, NULL, NULL, parameter_get, ctx_p );		if ( ctx_p->flags_values_raw[param_id] != NULL )			free ( ctx_p->flags_values_raw[param_id] );		ctx_p->flags_values_raw[param_id] = arg;	}	switch ( param_id ) {		case '?':		case HELP:			syntax();			break;		case SHOW_VERSION:			version();			break;		case CONFIG_FILE:			ctx_p->config_path	= *arg ? arg : NULL;			break;		case CONFIG_GROUP:			ctx_p->config_group	= *arg ? arg : NULL;			break;		case CONFIG_GROUP_INHERITS:			break;		case VMS_MIN:			ctx_p->vms_min		= ( unsigned int ) xstrtol ( arg, &ret );			break;		case VMS_MAX:			ctx_p->vms_max		= ( unsigned int ) xstrtol ( arg, &ret );			break;		case VMS_SPARE_MIN:			ctx_p->vms_spare_min	= ( unsigned int ) xstrtol ( arg, &ret );			break;		case VMS_SPARE_MAX:			ctx_p->vms_spare_max	= ( unsigned int ) xstrtol ( arg, &ret );			break;//.........这里部分代码省略.........
开发者ID:xaionaro,项目名称:kvm-pool,代码行数:101,


示例22: aliasrun

/* * Karl Kleinpaste, 21oct1983. * Set up a one-word alias command, for use for special things. * This code is based on the mainline of process(). */voidaliasrun(int cnt, Char *s1, Char *s2){    struct wordent w, *new1, *new2;	/* for holding alias name */    struct command *t = NULL;    jmp_buf_t osetexit;    int status;    size_t omark;    getexit(osetexit);    if (seterr) {	xfree(seterr);	seterr = NULL;	/* don't repeatedly print err msg. */    }    w.word = STRNULL;    new1 = xcalloc(1, sizeof w);    new1->word = Strsave(s1);    if (cnt == 1) {	/* build a lex list with one word. */	w.next = w.prev = new1;	new1->next = new1->prev = &w;    }    else {	/* build a lex list with two words. */	new2 = xcalloc(1, sizeof w);	new2->word = Strsave(s2);	w.next = new2->prev = new1;	new1->next = w.prev = new2;	new1->prev = new2->next = &w;    }    cleanup_push(&w, lex_cleanup);    /* Save the old status */    status = getn(varval(STRstatus));    /* expand aliases like process() does. */    alias(&w);    /* build a syntax tree for the command. */    t = syntax(w.next, &w, 0);    cleanup_push(t, syntax_cleanup);    if (seterr)	stderror(ERR_OLD);    psavejob();    cleanup_push(&cnt, psavejob_cleanup); /* cnt is used only as a marker */    /* catch any errors here */    omark = cleanup_push_mark();    if (setexit() == 0)	/* execute the parse tree. */	/*	 * From: Michael Schroeder <[email
C++ syntaxError函数代码示例
C++ synopsis_pre函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。