Skip to content
Snippets Groups Projects
Select Git revision
  • gmsh_4_13_0
  • master default protected
  • hierarchical-basis
  • alphashapes
  • bl
  • relaying
  • new_export_boris
  • oras_vs_osm
  • reassign_partitions
  • distributed_fwi
  • rename-classes
  • fix/fortran-api-example-t4
  • robust_partitions
  • reducing_files
  • fix_overlaps
  • 3115-issue-fix
  • 3023-Fillet2D-Update
  • convert_fdivs
  • tmp_jcjc24
  • fixedMeshIF
  • save_edges
  • gmsh_4_14_0
  • gmsh_4_13_1
  • gmsh_4_12_2
  • gmsh_4_12_1
  • gmsh_4_12_0
  • gmsh_4_11_1
  • gmsh_4_11_0
  • gmsh_4_10_5
  • gmsh_4_10_4
  • gmsh_4_10_3
  • gmsh_4_10_2
  • gmsh_4_10_1
  • gmsh_4_10_0
  • gmsh_4_9_5
  • gmsh_4_9_4
  • gmsh_4_9_3
  • gmsh_4_9_2
  • gmsh_4_9_1
  • gmsh_4_9_0
40 results

aneurysm.py

Blame
  • MacroManager.cpp 2.63 KiB
    // GetDP - Copyright (C) 1997-2015 P. Dular, C. Geuzaine
    //
    // See the LICENSE.txt file for license information. Please report all
    // bugs and problems to the public mailing list <getdp@onelab.info>.
    
    #include <stdio.h>
    #include <map>
    #include <stack>
    #include <string>
    #include "MacroManager.h"
    
    extern std::string getdp_yystring;
    
    class File_Position
    {
     public:
      long int lineno;
      fpos_t position;
      FILE *file;
      std::string filename;
    };
    
    class mystack
    {
     public:
      std::stack<File_Position> s;
    };
    
    class mymap
    {
     public:
      std::map<std::string, File_Position> inFile;
      std::map<std::string, std::string> inString;
    };
    
    MacroManager *MacroManager::_instance = 0;
    
    MacroManager::MacroManager()
    {
      _macros = new mymap;
      _calls = new mystack;
    }
    
    MacroManager *MacroManager::Instance()
    {
      if(!_instance) {
        _instance = new MacroManager;
      }
      return _instance;
    }
    
    void MacroManager::clear()
    {
      _macros->inFile.clear();
      _macros->inString.clear();
    }
    
    int MacroManager::enterMacro(const std::string &name, FILE **f,
                                 std::string &filename, long int &lno) const
    {
      if(_macros->inFile.find(name) == _macros->inFile.end())
        return 0;
      File_Position fpold;
      fpold.lineno = lno;
      fpold.filename = filename;
      fpold.file = *f;
      fgetpos(fpold.file, &fpold.position);
      _calls->s.push(fpold);
      File_Position fp = (_macros->inFile)[name];
      fsetpos(fp.file, &fp.position);