mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 12:11:25 +00:00
Fix VC++'s problems with re2c 0.16
- I'm surprised GCC didn't complain about all the struct/class mismatches. - INFINITY is a macro in VC++ land, so rename it to INFINITI.
This commit is contained in:
parent
43c6c9b5ee
commit
f3ab0ff41b
7 changed files with 18 additions and 13 deletions
|
@ -5,6 +5,11 @@ if( NOT CMAKE_CROSSCOMPILING )
|
||||||
include( CheckFunctionExists )
|
include( CheckFunctionExists )
|
||||||
include( CheckTypeSize )
|
include( CheckTypeSize )
|
||||||
|
|
||||||
|
if( MSVC )
|
||||||
|
# Runtime type information is required
|
||||||
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR" )
|
||||||
|
endif()
|
||||||
|
|
||||||
set( PACKAGE_NAME re2c )
|
set( PACKAGE_NAME re2c )
|
||||||
set( PACKAGE_TARNAME re2c )
|
set( PACKAGE_TARNAME re2c )
|
||||||
set( PACKAGE_VERSION 0.16 )
|
set( PACKAGE_VERSION 0.16 )
|
||||||
|
|
|
@ -10,8 +10,8 @@ namespace re2c
|
||||||
|
|
||||||
struct Go;
|
struct Go;
|
||||||
struct Span;
|
struct Span;
|
||||||
class State;
|
struct State;
|
||||||
class OutputFile;
|
struct OutputFile;
|
||||||
|
|
||||||
class BitMap
|
class BitMap
|
||||||
{
|
{
|
||||||
|
|
|
@ -106,7 +106,7 @@ void DFA::emit_body (OutputFile & o, uint32_t& ind, const std::set<label_t> & us
|
||||||
for (State * s = head; s; s = s->next)
|
for (State * s = head; s; s = s->next)
|
||||||
{
|
{
|
||||||
bool readCh = false;
|
bool readCh = false;
|
||||||
emit_state (o, ind, s, used_labels.count (s->label));
|
emit_state (o, ind, s, used_labels.count (s->label) != 0);
|
||||||
emit_action (s->action, o, ind, readCh, s, cond, skeleton, used_labels, save_yyaccept);
|
emit_action (s->action, o, ind, readCh, s, cond, skeleton, used_labels, save_yyaccept);
|
||||||
s->go.emit(o, ind, readCh);
|
s->go.emit(o, ind, readCh);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace re2c
|
||||||
{
|
{
|
||||||
|
|
||||||
class BitMap;
|
class BitMap;
|
||||||
class State;
|
struct State;
|
||||||
struct If;
|
struct If;
|
||||||
|
|
||||||
struct Span
|
struct Span
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace re2c
|
||||||
|
|
||||||
struct OutputFile;
|
struct OutputFile;
|
||||||
class RuleOp;
|
class RuleOp;
|
||||||
class State;
|
struct State;
|
||||||
|
|
||||||
struct Initial
|
struct Initial
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
namespace re2c
|
namespace re2c
|
||||||
{
|
{
|
||||||
|
|
||||||
static const size_t INFINITY = std::numeric_limits<size_t>::max();
|
static const size_t INFINITI = std::numeric_limits<size_t>::max();
|
||||||
static const size_t UNDEFINED = INFINITY - 1;
|
static const size_t UNDEFINED = INFINITI - 1;
|
||||||
|
|
||||||
static bool loopback(size_t node, size_t narcs, const size_t *arcs)
|
static bool loopback(size_t node, size_t narcs, const size_t *arcs)
|
||||||
{
|
{
|
||||||
|
@ -38,12 +38,12 @@ static bool loopback(size_t node, size_t narcs, const size_t *arcs)
|
||||||
* - values in range [0 .. stack size] mean that this node is on stack
|
* - values in range [0 .. stack size] mean that this node is on stack
|
||||||
* (link to a node with the smallest index reachable from this one)
|
* (link to a node with the smallest index reachable from this one)
|
||||||
* - UNDEFINED means that this node has not been visited yet
|
* - UNDEFINED means that this node has not been visited yet
|
||||||
* - INFINITY means that this node has already been popped off stack
|
* - INFINITI means that this node has already been popped off stack
|
||||||
*
|
*
|
||||||
* We use stack size (rather than topological sort index) as unique index
|
* We use stack size (rather than topological sort index) as unique index
|
||||||
* of a node on stack. This is safe because indices of nodes on stack are
|
* of a node on stack. This is safe because indices of nodes on stack are
|
||||||
* still unique and less than indices of nodes that have been popped off
|
* still unique and less than indices of nodes that have been popped off
|
||||||
* stack (INFINITY).
|
* stack (INFINITI).
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static void scc(
|
static void scc(
|
||||||
|
@ -87,7 +87,7 @@ static void scc(
|
||||||
{
|
{
|
||||||
j = stack.top();
|
j = stack.top();
|
||||||
stack.pop();
|
stack.pop();
|
||||||
lowlink[j] = INFINITY;
|
lowlink[j] = INFINITI;
|
||||||
}
|
}
|
||||||
while (j != i);
|
while (j != i);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
namespace re2c
|
namespace re2c
|
||||||
{
|
{
|
||||||
|
|
||||||
struct Range;
|
class Range;
|
||||||
struct RegExp;
|
class RegExp;
|
||||||
struct RuleOp;
|
class RuleOp;
|
||||||
|
|
||||||
struct nfa_state_t
|
struct nfa_state_t
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue