Changeset 5ae0b15 in tol


Ignore:
Timestamp:
May 31, 2011, 9:14:57 AM (15 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
3130ef1
Parents:
2ed326d
Message:

Fixes #1224

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

File:
1 edited

Legend:

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

    r2ed326d r5ae0b15  
    996996  if(BSpecialFunction::TestNumArg(_name_, 2, nb, 3))
    997997  {
    998     BSyntaxObject* desObj = GraText    ()->EvaluateTree(Branch(tre,1));
     998    BSyntaxObject* desObj = GraText()->EvaluateTree(Branch(tre,1));
    999999    if(!desObj) { return(NULL); }
    10001000    BText desc = Text(desObj);
    … …  
    10051005    {
    10061006      tokenName = tokenName.SubString(1,tokenName.Length());
    1007       obj = FindStruct(tokenName);
     1007      obj = FindClass(tokenName,-1);
    10081008      if(obj && nb==3)
    1009       { 
     1009      {
     1010        BText memberName = BParser::treToken(Branch(tre,3))->Name();
     1011        if(memberName[0]=='\"')
     1012        {
     1013          memberName = memberName.SubString(1,memberName.Length());
     1014          BClass* cls = (BClass*)obj;
     1015          if(!cls->PutMemberDescription(memberName, desc, false))
     1016          {
     1017            BSpecialFunction::TestResult(_name_,NIL,tre,NIL,BTRUE);
     1018          }
     1019          SAFE_DESTROY(desObj,obj);
     1020          return(NULL);
     1021        }
     1022        else
     1023        { 
     1024          Error(third_arg_error);
     1025        }
     1026      }
     1027      else if(nb==3)
     1028      {
    10101029        Error(third_arg_error);
    10111030      }
    1012       if(!obj)
    1013       {
    1014         obj = FindClass(tokenName,-1);
    1015         if(obj && nb==3)
    1016         {
    1017           BText memberName = BParser::treToken(Branch(tre,3))->Name();
    1018           if(memberName[0]=='\"')
    1019           {
    1020             memberName = memberName.SubString(1,memberName.Length());
    1021             BClass* cls = (BClass*)obj;
    1022             if(!cls->PutMemberDescription(memberName, desc, false))
    1023             {
    1024               BSpecialFunction::TestResult(_name_,NIL,tre,NIL,BTRUE);
    1025             }
    1026             SAFE_DESTROY(desObj,obj);
    1027             return(NULL);
    1028           }
    1029           else
    1030           { 
    1031             Error(third_arg_error);
    1032           }
    1033         }
     1031      else
     1032      {
     1033        obj = gra->LeftEvaluateExpr(tokenName);     
    10341034      }
    10351035    }
    … …  
    10401040    if(!obj)
    10411041    {
    1042       obj = GraAnything()->LeftEvaluateTree(Branch(tre,2));
     1042      obj = gra->LeftEvaluateTree(Branch(tre,2));
    10431043    };
    10441044    BGrammar::PutLast(gra);
Note: See TracChangeset for help on using the changeset viewer.