summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac>2013-02-26 22:08:02 +0000
committersbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac>2013-02-26 22:08:02 +0000
commit2808b605fea61bbd9ff50a46020061579fb19f41 (patch)
treee86334398ead087bb21c3a76ea7f9bff3a50f779 /src
parent2cf1b70f96d4a02c3e52eedfee4f3256a906ec2e (diff)
(1) Fix compilation issues on Pandora
(2) Disallow setting multiple parameters on one line (3) Allow sign in floating point format to be optional (4) Use package piraha (5) change PirahaParser to cctk_PirahaParser (6) remove size.py git-svn-id: http://svn.cactuscode.org/flesh/trunk@4966 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src')
-rw-r--r--src/piraha/AutoGrammar.cc2
-rw-r--r--src/piraha/Bracket.cc4
-rw-r--r--src/piraha/Call.cc13
-rw-r--r--src/piraha/Dot.cc2
-rw-r--r--src/piraha/End.cc2
-rw-r--r--src/piraha/Grammar.cc2
-rw-r--r--src/piraha/Group.cc2
-rw-r--r--src/piraha/ILiteral.cc2
-rw-r--r--src/piraha/Literal.cc2
-rw-r--r--src/piraha/Lookup.cc2
-rw-r--r--src/piraha/Matcher.cc2
-rw-r--r--src/piraha/Multi.cc2
-rw-r--r--src/piraha/Or.cc2
-rw-r--r--src/piraha/Piraha.hpp4
-rw-r--r--src/piraha/ReParse.cc6
-rw-r--r--src/piraha/Seq.cc2
-rw-r--r--src/piraha/Start.cc2
-rw-r--r--src/piraha/size.py7
-rw-r--r--src/piraha/smart_ptr.hpp6
-rw-r--r--src/util/ParseFile.c4
20 files changed, 51 insertions, 19 deletions
diff --git a/src/piraha/AutoGrammar.cc b/src/piraha/AutoGrammar.cc
index 2ecfb741..26789e28 100644
--- a/src/piraha/AutoGrammar.cc
+++ b/src/piraha/AutoGrammar.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
smart_ptr<Grammar> AutoGrammar::reparserGenerator() {
smart_ptr<Grammar> g = new Grammar();
g->patterns.put("named",new Seq(
diff --git a/src/piraha/Bracket.cc b/src/piraha/Bracket.cc
index 2856a670..d1c52632 100644
--- a/src/piraha/Bracket.cc
+++ b/src/piraha/Bracket.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
typedef vector<smart_ptr<Range> >::iterator range_iter;
bool Range::match(Matcher *m) {
@@ -91,7 +93,7 @@ bool Bracket::match(Matcher *m) {
}
}
-std::ostream& operator<<(std::ostream& o,Bracket& b) {
+std::ostream& piraha::operator<<(std::ostream& o,Bracket& b) {
for(range_iter r = b.ranges.begin();r != b.ranges.end(); ++r) {
char lo = (*r)->lo, hi = (*r)->hi;
if(lo == hi) {
diff --git a/src/piraha/Call.cc b/src/piraha/Call.cc
index 0ccce795..9df8fd10 100644
--- a/src/piraha/Call.cc
+++ b/src/piraha/Call.cc
@@ -7,6 +7,8 @@
#include <map>
#include <math.h>
+namespace piraha {
+
#define VAR(X) " " #X "=" << X
extern "C" int CCTK_ParameterFilename(int len, char *filename);
@@ -58,7 +60,7 @@ bool lookup_var(smart_ptr<Group> gr,std::string& res) {
return true;
} else if(gr->group(0)->substring() == "pi") {
std::ostringstream ostr;
- ostr << (4.0*atan2(1,1)) << std::flush;
+ ostr << (4.0*atan2(1.,1.)) << std::flush;
res = ostr.str();
return true;
}
@@ -176,9 +178,10 @@ void meval(smart_ptr<Group> gr,std::string& val) {
}
}
-extern "C" int PirahaParser(const char *buffer,unsigned long buffersize,int (*set_function)(const char *, const char *, int)) {
+extern "C" int cctk_PirahaParser(const char *buffer,unsigned long buffersize,int (*set_function)(const char *, const char *, int)) {
const char *par_file_src =
"skipper = ([ \\t\\r\\n]|\\#.*)*\n"
+ "skipeol = ([ \\t\\r]|\\#.*)*\\n\n"
"# Note that / occurs in some par files. It is my\n"
"# feeling that this should require quote marks.\n"
@@ -187,7 +190,7 @@ extern "C" int PirahaParser(const char *buffer,unsigned long buffersize,int (*se
"inquot = ({var}|\\\\.|[^\\\\\"])*\n"
"fname = \\.?/[-\\./0-9a-zA-Z_]+\n"
"quot = \"{inquot}\"|{fname}\n"
- "num = [-+]?([0-9]+(\\.[0-9]*|)|\\.[0-9]+)(e[+-][0-9]+|)\n"
+ "num = [-+]?([0-9]+(\\.[0-9]*|)|\\.[0-9]+)(e[+-]?[0-9]+|)\n"
"env = ENV\\{{name}\\}\n"
"var = \\$({env}|{name}|\\{{name}\\})\n"
@@ -205,7 +208,7 @@ extern "C" int PirahaParser(const char *buffer,unsigned long buffersize,int (*se
"int = [0-9]+\n"
"index = \\[ {int} \\]\n"
"active = (?i:ActiveThorns)\n"
- "set = ({active}|{par}( {index}|)) = ({array}|{aexpr})\n"
+ "set = ({active}|{par}( {index}|)) = ({array}|{aexpr}){-skipeol}\n"
"file = ( !DESC {quot}|)( ({set} )*)$\n";
smart_ptr<Grammar> g = new Grammar();
@@ -279,3 +282,5 @@ extern "C" int PirahaParser(const char *buffer,unsigned long buffersize,int (*se
}
return 0;
}
+
+}
diff --git a/src/piraha/Dot.cc b/src/piraha/Dot.cc
index be0a6e75..8f1b0396 100644
--- a/src/piraha/Dot.cc
+++ b/src/piraha/Dot.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
bool Dot::match(Matcher *m) {
if(m->pos - m->input_size >= 0)
return false;
diff --git a/src/piraha/End.cc b/src/piraha/End.cc
index 815f9bc7..2c76dceb 100644
--- a/src/piraha/End.cc
+++ b/src/piraha/End.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
bool End::match(Matcher *m) {
return m->pos == (int)m->input_size;
}
diff --git a/src/piraha/Grammar.cc b/src/piraha/Grammar.cc
index 9cb7f0b0..b222a34a 100644
--- a/src/piraha/Grammar.cc
+++ b/src/piraha/Grammar.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
extern smart_ptr<Pattern> compile(smart_ptr<Group> g,bool ignCase,smart_ptr<Grammar> gram);
smart_ptr<Grammar> pegGrammar = AutoGrammar::reparserGenerator();
diff --git a/src/piraha/Group.cc b/src/piraha/Group.cc
index 732a637a..544e12be 100644
--- a/src/piraha/Group.cc
+++ b/src/piraha/Group.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
void Group::dump(int indent) {
for(int i=0;i<indent;i++)
std::cout << ' ';
diff --git a/src/piraha/ILiteral.cc b/src/piraha/ILiteral.cc
index f56d4414..a01c48fd 100644
--- a/src/piraha/ILiteral.cc
+++ b/src/piraha/ILiteral.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
ILiteral::ILiteral(char b) : lc(lc_(b)), uc(uc_(b)) {}
bool ILiteral::match(Matcher *m) {
diff --git a/src/piraha/Literal.cc b/src/piraha/Literal.cc
index eedae466..f19f7455 100644
--- a/src/piraha/Literal.cc
+++ b/src/piraha/Literal.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
bool Literal::match(Matcher *m) {
if(m->pos - m->input_size >= 0)
return false;
diff --git a/src/piraha/Lookup.cc b/src/piraha/Lookup.cc
index ed42e1d1..d2394c2a 100644
--- a/src/piraha/Lookup.cc
+++ b/src/piraha/Lookup.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
Lookup::Lookup(std::string name_,smart_ptr<Grammar> g) : gram(g), name(name_), capture(true) {
if(name[0] == '-') {
capture = false;
diff --git a/src/piraha/Matcher.cc b/src/piraha/Matcher.cc
index f1a24750..dad67a67 100644
--- a/src/piraha/Matcher.cc
+++ b/src/piraha/Matcher.cc
@@ -1,6 +1,8 @@
#include <string.h>
#include "Piraha.hpp"
+using namespace piraha;
+
Matcher::Matcher(smart_ptr<Grammar> g_,const char *pat_,const char *input_,int input_size_) :
Group(pat_,input_),
input(input_), g(g_), input_size(input_size_),
diff --git a/src/piraha/Multi.cc b/src/piraha/Multi.cc
index c7cfa447..4d718d59 100644
--- a/src/piraha/Multi.cc
+++ b/src/piraha/Multi.cc
@@ -1,6 +1,8 @@
#include <iostream>
#include "Piraha.hpp"
+using namespace piraha;
+
bool Multi::match(Matcher *m) {
unsigned int save;
int iter = 0;
diff --git a/src/piraha/Or.cc b/src/piraha/Or.cc
index eebf2e74..c5caec00 100644
--- a/src/piraha/Or.cc
+++ b/src/piraha/Or.cc
@@ -2,6 +2,8 @@
#include <stdarg.h>
#include "Piraha.hpp"
+using namespace piraha;
+
Or::Or(Pattern *p,...) : patterns() {
va_list ap;
va_start(ap,p);
diff --git a/src/piraha/Piraha.hpp b/src/piraha/Piraha.hpp
index 3ff07d6d..25892fbc 100644
--- a/src/piraha/Piraha.hpp
+++ b/src/piraha/Piraha.hpp
@@ -7,6 +7,8 @@
#include <iostream>
#include <smart_ptr.hpp>
+namespace piraha {
+
const int max_int = 10000;
using std::map;
@@ -291,4 +293,6 @@ extern smart_ptr<Grammar> pegGrammar;
extern smart_ptr<Pattern> compile(smart_ptr<Group> g,bool ignCase,smart_ptr<Grammar> gram);
extern void compileFile(smart_ptr<Grammar> g,const char *buffer,signed long buffersize=-1);
+}
+
#endif
diff --git a/src/piraha/ReParse.cc b/src/piraha/ReParse.cc
index 634e1f10..295b0b29 100644
--- a/src/piraha/ReParse.cc
+++ b/src/piraha/ReParse.cc
@@ -2,6 +2,8 @@
#include <stdlib.h>
#include <string.h>
+namespace piraha {
+
char getChar(smart_ptr<Group> gr) {
if(gr->groupCount()==1) {
std::string sub = gr->group(0)->substring();
@@ -73,7 +75,7 @@ void compileFile(smart_ptr<Grammar> g,const char *buffer,signed long buffersize)
for(int i=0;i<m->groupCount();i++) {
smart_ptr<Group> rule = m->group(i);
- smart_ptr<Pattern> ptmp = ::compile(rule->group(1), false, g);
+ smart_ptr<Pattern> ptmp = compile(rule->group(1), false, g);
std::string nm = rule->group(0)->substring();
g->patterns.put(nm,ptmp);
g->default_rule = nm;
@@ -188,3 +190,5 @@ smart_ptr<Pattern> compile(smart_ptr<Group> g,bool ignCase,smart_ptr<Grammar> gr
}
return NULL;
}
+
+}
diff --git a/src/piraha/Seq.cc b/src/piraha/Seq.cc
index 971c3e44..c0b697bc 100644
--- a/src/piraha/Seq.cc
+++ b/src/piraha/Seq.cc
@@ -2,6 +2,8 @@
#include <stdarg.h>
#include "Piraha.hpp"
+using namespace piraha;
+
Seq::Seq(Pattern *p,...) {
va_list ap;
va_start(ap,p);
diff --git a/src/piraha/Start.cc b/src/piraha/Start.cc
index 527a1b93..52e3cf40 100644
--- a/src/piraha/Start.cc
+++ b/src/piraha/Start.cc
@@ -1,5 +1,7 @@
#include "Piraha.hpp"
+using namespace piraha;
+
bool Start::match(Matcher *m) {
return m->pos == 0;
}
diff --git a/src/piraha/size.py b/src/piraha/size.py
deleted file mode 100644
index e81a2214..00000000
--- a/src/piraha/size.py
+++ /dev/null
@@ -1,7 +0,0 @@
-fac = 1+1/4.+1/16.
-diff = 1+fac - fac**3
-print diff
-init = 16
-nextv = init + (init>>2) + (init>>4)
-print nextv
-print 1.0*nextv/init
diff --git a/src/piraha/smart_ptr.hpp b/src/piraha/smart_ptr.hpp
index 0994a821..0ac761b3 100644
--- a/src/piraha/smart_ptr.hpp
+++ b/src/piraha/smart_ptr.hpp
@@ -20,8 +20,7 @@ extern std::vector<void*> ptrs;
inline void add(std::vector<void*>& v,void *t) {
if(t == NULL)
return;
- typedef typename std::vector<void*>::iterator iter;
- for(iter i=v.begin();i != v.end();++i) {
+ for(std::vector<void*>::iterator i=v.begin();i != v.end();++i) {
assert(*i != t);
}
v.push_back(t);
@@ -30,8 +29,7 @@ inline void add(std::vector<void*>& v,void *t) {
inline void remove(std::vector<void*>& v,void* t) {
if(t == NULL)
return;
- typedef typename std::vector<void*>::iterator iter;
- for(iter i=v.begin();i != v.end();++i) {
+ for(std::vector<void*>::iterator i=v.begin();i != v.end();++i) {
if(*i == t) {
v.erase(i);
return;
diff --git a/src/util/ParseFile.c b/src/util/ParseFile.c
index 3d17e787..c35c5037 100644
--- a/src/util/ParseFile.c
+++ b/src/util/ParseFile.c
@@ -119,7 +119,7 @@ static int lineno = 1;
@endreturndesc
@@*/
-int PirahaParser(const char *buffer,unsigned long buffersize,int (*set_function)(const char *, const char *, int));
+int cctk_PirahaParser(const char *buffer,unsigned long buffersize,int (*set_function)(const char *, const char *, int));
int ParseFile(FILE *ifp,
int (*set_function)(const char *, const char *, int),
@@ -137,7 +137,7 @@ int ParseFile(FILE *ifp,
// the new way
buffersize = strlen(buffer);
- retval = PirahaParser(buffer,buffersize,set_function);
+ retval = cctk_PirahaParser(buffer,buffersize,set_function);
} else {
// The old way
/* Ensure Unix line endings */