[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/8] dfa: do not use MATCHES_*_CONTEXT directly
From: |
Paolo Bonzini |
Subject: |
[PATCH 6/8] dfa: do not use MATCHES_*_CONTEXT directly |
Date: |
Fri, 20 Jan 2012 16:35:19 +0100 |
* src/dfa.c (dfastate): Use SUCCEEDS_IN_CONTEXT.
---
src/dfa.c | 21 +++++++++------------
1 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/src/dfa.c b/src/dfa.c
index bc57e3f..60d456d 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -2493,23 +2493,20 @@ dfastate (int s, struct dfa *d, int trans[])
/* Some characters may need to be eliminated from matches because
they fail in the current context. */
- if (pos.constraint != 0xFF)
+ if (pos.constraint != NO_CONSTRAINT)
{
- if (! MATCHES_NEWLINE_CONTEXT(pos.constraint,
- d->states[s].context, CTX_NEWLINE))
- clrbit(eolbyte, matches);
- if (! MATCHES_NEWLINE_CONTEXT(pos.constraint,
- d->states[s].context, ~CTX_NEWLINE))
+ if (! SUCCEEDS_IN_CONTEXT(pos.constraint,
+ d->states[s].context, CTX_NEWLINE))
for (j = 0; j < CHARCLASS_INTS; ++j)
- matches[j] &= newline[j];
- if (! MATCHES_LETTER_CONTEXT(pos.constraint,
- d->states[s].context, CTX_LETTER))
+ matches[j] &= ~newline[j];
+ if (! SUCCEEDS_IN_CONTEXT(pos.constraint,
+ d->states[s].context, CTX_LETTER))
for (j = 0; j < CHARCLASS_INTS; ++j)
matches[j] &= ~letters[j];
- if (! MATCHES_LETTER_CONTEXT(pos.constraint,
- d->states[s].context, ~CTX_LETTER))
+ if (! SUCCEEDS_IN_CONTEXT(pos.constraint,
+ d->states[s].context, CTX_NONE))
for (j = 0; j < CHARCLASS_INTS; ++j)
- matches[j] &= letters[j];
+ matches[j] &= letters[j] | newline[j];
/* If there are no characters left, there's no point in going on. */
for (j = 0; j < CHARCLASS_INTS && !matches[j]; ++j)
--
1.7.7.1
- [PATCH 0/8] fix problems with ^ and $ together with \< and \>, Paolo Bonzini, 2012/01/20
- [PATCH 7/8] dfa: fix constraint encoding, Paolo Bonzini, 2012/01/20
- [PATCH 8/8] dfa: merge calls to SUCCEEDS_IN_CONTEXT, Paolo Bonzini, 2012/01/20
- [PATCH 1/8] dfa: remove useless check, Paolo Bonzini, 2012/01/20
- [PATCH 2/8] dfa: introduce contexts for the values in d->success, Paolo Bonzini, 2012/01/20
- [PATCH 5/8] dfa: change meaning of a state context, Paolo Bonzini, 2012/01/20
- [PATCH 3/8] dfa: change newline/letter to a single context value, Paolo Bonzini, 2012/01/20
- [PATCH 6/8] dfa: do not use MATCHES_*_CONTEXT directly,
Paolo Bonzini <=
- [PATCH 4/8] dfa: refactor common context computations, Paolo Bonzini, 2012/01/20
- Re: [PATCH 0/8] fix problems with ^ and $ together with \< and \>, Paul Eggert, 2012/01/20