javacc-7.0.4.classes.templates.cpp.JavaCC.h.template Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javacc Show documentation
Show all versions of javacc Show documentation
JavaCC modified by Tencent blueking.
The newest version!
\#ifndef JAVACC_JAVACC_H_
\#define JAVACC_JAVACC_H_
\#include
\#include
\#include
\#include
\#ifndef JAVACC_CHAR_TYPE
\#define JAVACC_CHAR_TYPE char
\#endif
\#ifndef JAVACC_STRING_TYPE
\#define JAVACC_STRING_TYPE std::basic_string
\#endif
\#define JAVACC_SIMPLE_STRING std::basic_string
typedef JAVACC_CHAR_TYPE JJChar;
typedef JAVACC_STRING_TYPE JJString;
typedef JAVACC_STRING_TYPE JJStringBuffer;
typedef JAVACC_SIMPLE_STRING JJSimpleString;
// Abstraction on stream classes to read a block of data into a buffer.
class ReaderStream {
public:
// Read block of data into a buffer and return the actual number read.
virtual size_t read(JAVACC_CHAR_TYPE *buffer, int offset, size_t len) { return 0; }
virtual bool endOfInput() { return true; }
virtual ~ReaderStream() {}
};
const JAVACC_CHAR_TYPE EMPTY[] = { 0 };
\#ifndef MAX
\#define MAX(a,b) (a>=b?a:b)
\#endif
\#ifndef MIN
\#define MIN(a,b) (a<=b?a:b)
\#endif
\#ifndef null
\#define null 0
\#endif
template
struct JJEnter
{
JJEnter(T f_) : f{f_} {f();}
~JJEnter(){}
T f;
};
template
struct JJExit
{
JJExit(T f_) : f{f_} {}
~JJExit(){f();}
T f;
};
\#endif