Skip to content

Commit

Permalink
Revert all except head/tail
Browse files Browse the repository at this point in the history
  • Loading branch information
alkino committed Nov 1, 2023
1 parent ebfa582 commit 0d02808
Show file tree
Hide file tree
Showing 6 changed files with 1,389 additions and 43 deletions.
2 changes: 1 addition & 1 deletion cmake/NeuronFileLists.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ set(NMODL_FILES_LIST
units.cpp
version.cpp)

set(IVOS_FILES_LIST listimpl.cpp observe.cpp resource.cpp)
set(IVOS_FILES_LIST listimpl.cpp observe.cpp regexp.cpp resource.cpp)

set(MPI_DYNAMIC_INCLUDE nrnmpi_dynam.h nrnmpi_dynam_cinc nrnmpi_dynam_wrappers.inc)

Expand Down
1 change: 1 addition & 0 deletions src/ivos/InterViews/_defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@
#define Raster _lib_iv(Raster)
#define RasterRep _lib_iv(RasterRep)
#define Reducer _lib_iv(Reducer)
#define Regexp _lib_iv(Regexp)
#define ReqErr _lib_iv(ReqErr)
#define Requirement _lib_iv(Requirement)
#define Requisition _lib_iv(Requisition)
Expand Down
1 change: 1 addition & 0 deletions src/ivos/InterViews/_undefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@
#undef Raster
#undef RasterRep
#undef Reducer
#undef Regexp
#undef ReqErr
#undef Requirement
#undef Requisition
Expand Down
80 changes: 80 additions & 0 deletions src/ivos/InterViews/regexp.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* Copyright (c) 1987, 1988, 1989, 1990, 1991 Stanford University
* Copyright (c) 1991 Silicon Graphics, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that (i) the above copyright notices and this permission notice appear in
* all copies of the software and related documentation, and (ii) the names of
* Stanford and Silicon Graphics may not be used in any advertising or
* publicity relating to the software without the specific, prior written
* permission of Stanford and Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL STANFORD OR SILICON GRAPHICS BE LIABLE FOR
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/

/*
* Regexp - regular expression searching
*/

#ifndef iv_regexp_h
#define iv_regexp_h

#include <InterViews/enter-scope.h>

/*
* These definitions are from Henry Spencers public-domain regular
* expression matching routines.
*
* Definitions etc. for regexp(3) routines.
*
* Caveat: this is V8 regexp(3) [actually, a reimplementation thereof],
* not the System V one.
*/
#define NSUBEXP 10
struct regexp {
char *startp[NSUBEXP];
char *endp[NSUBEXP];
char *textStart;
char regstart; /* Internal use only. */
char reganch; /* Internal use only. */
char *regmust; /* Internal use only. */
int regmlen; /* Internal use only. */
char program[1]; /* Unwarranted chumminess with compiler. */
};

/*
* The first byte of the regexp internal "program" is actually this magic
* number; the start node begins in the second byte. This used to be the octal
* integer literal 0234 = 156, which would be implicitly converted to -100 when
* narrowing to signed 8 bit char. This conversion was implementation defined
* before C++20.
*/
#define REGEXP_MAGIC static_cast<char>(-100)

class Regexp {
public:
Regexp(const char*);
Regexp(const char*, int length);
~Regexp();

const char* pattern() const;
int Search(const char* text, int length, int index, int range);
int Match(const char* text, int length, int index);
int BeginningOfMatch(int subexp = 0);
int EndOfMatch(int subexp = 0);
private:
char* pattern_;
regexp* c_pattern;
};

#endif
Loading

0 comments on commit 0d02808

Please sign in to comment.