Changeset 13374b7 in tol


Ignore:
Timestamp:
Sep 22, 2009, 1:17:36 PM (17 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
4a46d0f
Parents:
55e561e
Message:

Fixes #741

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@1425 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/bgrammar/oprimp.cpp

    r55e561e r13374b7  
    14641464  arguments_ = "";
    14651465  BToken* tok = BParser::treToken(dec);
    1466   while(tok && (tok->TokenType()==BINARY)&&(tok->Name()=="::"))
     1466  BTokenType type = tok->TokenType();
     1467  while(tok && (type==BINARY)&&(tok->Name()=="::"))
    14671468  {
    14681469    dec = Tree::treRight(dec);
    14691470    tok = dec?BParser::treToken(dec):NULL;
    14701471  }
    1471   if(tok->TokenType()==TYPE)
    1472   {
    1473     dec = dec->cdr();
     1472  assert(tok->TokenType()==TYPE);
     1473  dec = dec->cdr();
    14741474//  if(((BToken*)Car((BTree*)Car(dec)))->TokenType()!=TYPE)
    1475     if(dec &&
    1476        Tree::treNode(dec) &&
    1477        (Tree::treNode(dec))->car() &&
    1478        ((BToken*) (Tree::treNode(dec))->car())->TokenType()!=TYPE)
    1479     {
    1480       dec = Tree::treNode(dec);
    1481     }
    1482   }
    1483   BTokenType type = BParser::treToken(dec)->TokenType();
     1475  if(dec)
     1476  {
     1477    List* auxTre = Tree::treNode(dec);
     1478    if(auxTre)
     1479    {
     1480      BCore* auxCar = auxTre->car();
     1481      if(auxCar && !auxCar->IsListClass())
     1482      {
     1483        BToken* auxTok = (BToken*) auxCar;
     1484        BTokenType auxType = auxTok->TokenType();
     1485        if((auxType==FUNCTION) || (auxType==SEPARATOR))
     1486        {
     1487          dec = auxTre->cdr();
     1488        }
     1489      }
     1490    }
     1491  }
     1492  tok = BParser::treToken(dec);
     1493  type = tok->TokenType();
    14841494  if(allRight)
    14851495  {
    1486     if((type==FUNCTION) || (type==SEPARATOR))
    1487     {
    1488       dec = dec->cdr();
    1489     }
    14901496    numArg_ = minArg_ = maxArg_ = dec->length();
    14911497    lastCalling_.ReallocBuffer(maxArg_);
Note: See TracChangeset for help on using the changeset viewer.