Changeset 348 for cpp/frams/vm


Ignore:
Timestamp:
04/09/15 23:51:28 (10 years ago)
Author:
Maciej Komosinski
Message:
  • explicit c_str() in SString instead of (const char*) cast
  • genetic converters and GenMan? are now thread-local which enables multi-threaded simulator separation
Location:
cpp/frams/vm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/vm/framscript.l

    r335 r348  
    115115int len=src.len();
    116116SString ret((len*11)/10+10);
    117 const char*t=(const char*)src;
     117const char*t=src.c_str();
    118118while(len>0)
    119119        {
  • cpp/frams/vm/framscript.y

    r345 r348  
    467467                   {trctx.err->printf("%s can't be iterated\n",str($4)); return 1;}
    468468           if ($4.objname)
    469                    trctx.out->printf("move %s.iterator,m[--m0]\n",(const char*)$4.getString());
     469                   trctx.out->printf("move %s.iterator,m[--m0]\n",$4.getString().c_str());
    470470           else
    471471                   trctx.out->printf("move s%d,m1\nmove [m1].\"iterator\",m[--m0]\n",0);
     
    662662
    663663       | OBJNAME ':' IDENT    {$$.constant=0; $$.ident=0;
    664                               trctx.out->printf("push %s:%s\n",(const char*)$1.getString(),
    665                                                  (const char*)$3.getString());
     664                              trctx.out->printf("push %s:%s\n",$1.getString().c_str(),
     665                                                 $3.getString().c_str());
    666666                              trstack.adjust(-1);
    667667                              }
     
    688688        trstack.adjust(-1);}
    689689        else if (globalOk($1))
    690         { trctx.out->printf("push @%s\n%s @%s\n",(const char*)$1.getString(),
    691                             $2.getInt()?"inc":"dec",(const char*)$1.getString());
     690        { trctx.out->printf("push @%s\n%s @%s\n",$1.getString().c_str(),
     691                            $2.getInt()?"inc":"dec",$1.getString().c_str());
    692692        trstack.adjust(-1);}
    693693        else {badVariable($$,$1); return 1;}
     
    697697                                if (!handleAssignOp($$,$1,$3,assign_op_names[$2.getInt()]))
    698698                                if (globalOk($1)) {SString t="@"; t+=$1.getString();
    699                                   handleAssignOp2($$,(const char*)t,$3,assign_op_names[$2.getInt()],0,1);}
     699                                  handleAssignOp2($$,t.c_str(),$3,assign_op_names[$2.getInt()],0,1);}
    700700                                else { badVariable($$,$1); return 1; }
    701701                              }
     
    895895                  if ($3.constant)
    896896                          {
    897                           handleAssignOp2($$,(const char*)t,$5,assign_op_names[$4.getInt()],0,1);
     897                          handleAssignOp2($$,t.c_str(),$5,assign_op_names[$4.getInt()],0,1);
    898898                          }
    899899                  else
     
    902902                          t=$1.getString();t+=".[m1]";
    903903                          trctx.out->printf("move s0,m1\n",str($1));
    904                           handleAssignOp2($$,(const char*)t,$5,assign_op_names[$4.getInt()],sp,0);
     904                          handleAssignOp2($$,t.c_str(),$5,assign_op_names[$4.getInt()],sp,0);
    905905                          if (sp) {trctx.out->printf("inc m0\n"); trstack.adjust(1);}
    906906                          }
     
    10081008     | FUNCTION IDENT
    10091009             { trctx.emitLine(); $$.constant=0; $$.ident=0; SString t=":"; t+=$1.getString(); $$.setString(t);
    1010              trctx.out->printf("push :%s\n",(const char*)$2.getString());
     1010             trctx.out->printf("push :%s\n",$2.getString().c_str());
    10111011             trstack.adjust(-1);
    10121012             }
     
    10531053                             {sp=1; trctx.out->printf("move s1,m1\n");}
    10541054                     t="[m1]."; t+=str($3);
    1055                      handleAssignOp2($$,(const char*)t,$5,assign_op_names[$4.getInt()],sp,0);
     1055                     handleAssignOp2($$,t.c_str(),$5,assign_op_names[$4.getInt()],sp,0);
    10561056                     if (sp) {trctx.out->printf("inc m0\n");trstack.adjust(1);}
    10571057                     }
     
    12951295SString ret((len*11)/10+10);
    12961296ret+='\"';
    1297 const char*t=(const char*)s;
     1297const char*t=s.c_str();
    12981298while(len>0)
    12991299        {
     
    14641464SymTabEntry* found=trstack.globals.find(var.getString());
    14651465if (found) return true;
    1466 return framscriptIsGlobalName(var.getString());
     1466return framscriptIsGlobalName(var.getString().c_str());
    14671467}
    14681468
     
    15391539else if (globalOk(var))
    15401540        {
    1541         trctx.out->printf("push @%s\n",(const char*)var.getString());
     1541        trctx.out->printf("push @%s\n",var.getString().c_str());
    15421542        trstack.adjust(-1);
    15431543        return true;
Note: See TracChangeset for help on using the changeset viewer.