Line 232... |
Line 232... |
SYM *sp;
|
SYM *sp;
|
|
|
snp = NewStatement(st_spinlock, TRUE);
|
snp = NewStatement(st_spinlock, TRUE);
|
if (lastst==openpa)
|
if (lastst==openpa)
|
NextToken();
|
NextToken();
|
if( lastst != id ) {
|
if( NonCommaExpression(&(snp->exp)) == 0 )
|
error(ERR_IDEXPECT);
|
error(ERR_EXPREXPECT);
|
return 0;
|
snp->incrExpr = 1;
|
}
|
snp->initExpr = 0;
|
if( (sp = search(lastid,&gsyms[0])) == NULL ) {
|
//if( lastst != id ) {
|
error( ERR_UNDEFINED );
|
// error(ERR_IDEXPECT);
|
return 0;
|
// return 0;
|
}
|
// }
|
|
// if( (sp = search(lastid,&gsyms[0])) == NULL ) {
|
|
// error( ERR_UNDEFINED );
|
|
// return 0;
|
|
// }
|
|
// NextToken();
|
|
if (lastst==comma) {
|
NextToken();
|
NextToken();
|
|
snp->incrExpr = GetIntegerExpression();
|
|
if (snp->incrExpr < 1 || snp->incrExpr > 15)
|
|
error(ERR_SEMA_INCR);
|
|
snp->incrExpr = (int)snp->incrExpr & 15;
|
|
}
|
if (lastst==comma) {
|
if (lastst==comma) {
|
NextToken();
|
NextToken();
|
snp->exp = GetIntegerExpression();
|
snp->initExpr = GetIntegerExpression();
|
}
|
}
|
if (lastst==closepa)
|
if (lastst==closepa)
|
NextToken();
|
NextToken();
|
snp->label = sp->name;
|
// snp->label = sp->name;
|
snp->next = 0;
|
snp->next = 0;
|
snp->s1 = ParseStatement();
|
snp->s1 = ParseStatement();
|
if (lastst==kw_lockfail) {
|
if (lastst==kw_lockfail) {
|
NextToken();
|
NextToken();
|
snp->s2 = ParseStatement();
|
snp->s2 = ParseStatement();
|
Line 263... |
Line 274... |
{
|
{
|
Statement *snp;
|
Statement *snp;
|
SYM *sp;
|
SYM *sp;
|
|
|
snp = NewStatement(st_spinunlock, TRUE);
|
snp = NewStatement(st_spinunlock, TRUE);
|
|
snp->incrExpr = 1;
|
if (lastst==openpa)
|
if (lastst==openpa)
|
NextToken();
|
NextToken();
|
if( lastst != id ) {
|
if( expression(&(snp->exp)) == 0 )
|
error(ERR_IDEXPECT);
|
error(ERR_EXPREXPECT);
|
return 0;
|
if (lastst==comma) {
|
}
|
NextToken();
|
if( (sp = search(lastid,&gsyms[0])) == NULL ) {
|
snp->incrExpr = GetIntegerExpression();
|
error( ERR_UNDEFINED );
|
if (snp->incrExpr < 1 || snp->incrExpr > 15)
|
return 0;
|
error(ERR_SEMA_INCR);
|
}
|
snp->incrExpr = (int)snp->incrExpr & 15;
|
|
}
|
|
//if( lastst != id ) {
|
|
// error(ERR_IDEXPECT);
|
|
// return 0;
|
|
//}
|
|
// if( (sp = search(lastid,&gsyms[0])) == NULL ) {
|
|
// error( ERR_UNDEFINED );
|
|
//return 0;
|
|
// }
|
NextToken();
|
NextToken();
|
if (lastst==closepa)
|
if (lastst==closepa)
|
NextToken();
|
NextToken();
|
snp->label = sp->name;
|
//snp->label = sp->name;
|
snp->next = 0;
|
snp->next = 0;
|
return snp;
|
return snp;
|
}
|
}
|
|
|
Statement *ParseFirstcallStatement()
|
Statement *ParseFirstcallStatement()
|