Changeset 994e0b6 in tol


Ignore:
Timestamp:
Mar 3, 2009, 9:36:22 AM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
545d679
Parents:
3d1329c
Message:

Separating NameBlock father from current that is used for scope rules.
Themes related to father and full name are now solved in operator = (BEqualOperator::Evaluate)
New member cppFile_ and access methods to store source path for built-in functions

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/bgrammar/tol_boper.h

    r3d1329c r994e0b6  
    144144
    145145  BUserFunCode* uCode_;
     146  BText cppFile_;
     147
    146148  void AddSystemOperator();
    147149
    … …  
    156158  void* GetProfiler()          { return(profiler_); }
    157159  void  PutProfiler(void* prf) { profiler_=prf; }
     160
     161  const BText& CppFile() const;
     162  void PutCppFile(const BText& cppFile);
    158163
    159164  //! Gets operator's grammar
    … …  
    197202{
    198203private:
    199   static BText   creatingName_;
     204  static BText creatingName_;
     205  static BText currentFatherName_;
     206  static bool  isCreatingNameBlock_;
     207  static BText currentFullName_;
    200208  static const BClass* creatingClass_;
    201209public:
    … …  
    211219  BSyntaxObject* Evaluate (const List*) ;
    212220  static const BText&  CreatingName () { return(creatingName_); }
     221  static const BText&  CurrentFatherName () { return(currentFatherName_); }
     222  static const bool IsCreatingNameBlock () { return(isCreatingNameBlock_); }
     223  static const BText&  CurrentFullName () { return(currentFullName_); }
    213224  static const BClass* CreatingClass() { return(creatingClass_); }
    214225  static void CleanCreating() { creatingName_=""; creatingClass_=NULL; }
    … …  
    528539#define DefIntOpr(ORD, CLASS, NAME , MINARG, MAXARG, LISTARGS, DESC, CL)   \
    529540  static void * clone##CLASS##Int##ORD () {                                \
    530     return new BInternalOperator                                           \
    531            IntOprConstructor(CLASS,NAME,MINARG,MAXARG,LISTARGS,DESC,CL);   \
     541     BInternalOperator* opr = new BInternalOperator                            \
     542           IntOprConstructor(CLASS,NAME,MINARG,MAXARG,LISTARGS,DESC,CL);         \
     543     opr->PutCppFile(__FILE__);                                            \
     544     return opr;                                                           \
    532545  }                                                                        \
    533546  static BInternalOperator* CLASS##Int##ORD  =                             \
    … …  
    579592#  define DefExtOpr(ORD,CLASS,NAME,MINARG,MAXARG,LISTGRA,LISTARGS,DES,CL)  \
    580593    static void * clone##CLASS##Ext##ORD () {                              \
    581       return new BExternalOperator                                         \
     594      BExternalOperator* opr = new BExternalOperator                         \
    582595      ExtOprConstructor(CLASS,NAME,MINARG,MAXARG,LISTGRA,LISTARGS,DES,CL); \
     596      opr->PutCppFile(__FILE__);                                           \
     597      return opr;                                                          \
    583598    }                                                                      \
    584599    static BExternalOperator* CLASS##Ext##ORD  =                           \
Note: See TracChangeset for help on using the changeset viewer.