OpenCores
URL https://opencores.org/ocsvn/raptor64/raptor64/trunk

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [software/] [c64/] [source/] [ParseStatements.c] - Diff between revs 37 and 51

Show entire file | Details | Blame | View Log

Rev 37 Rev 51
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()

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.