This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 22173
Collapse All | Expand All

(-)lexer/libsrc/org/netbeans/api/lexer/IncrementalAlgorithm.java (-3 / +28 lines)
Lines 41-47 Link Here
41
 * @version 1.00
41
 * @version 1.00
42
 */
42
 */
43
43
44
public class IncrementalAlgorithm {
44
public abstract class IncrementalAlgorithm extends Object {
45
    // most of the methods should be protected I guess
46
    
47
    /** Create the lexer input positioned to the location
48
     * of the begining of the token that would be returned
49
     * by the call to the <CODE>next()</CODE>.
50
     */
51
    public abstract LexerInput createInput();
52
    
53
    public abstract int relocate (int x);
54
55
    public abstract int readLookahead ();
56
    public abstract int readLookback ();
57
    public abstract Object readState ();
58
    
59
    public abstract void storeLookahead (int lookahead);
60
    public abstract void storeLookback (int lookback);
61
    public abstract void storeState (Object state);
62
63
    public abstract boolean hasNext ();
64
    public abstract boolean hasPrevious ();
65
    public abstract Token next ();
66
    public abstract Token previous ();
67
    
68
    public abstract void add (Token t);
69
    public abstract void remove ();
45
70
46
    /** Use incremental algorithm to update the list of tokens.
71
    /** Use incremental algorithm to update the list of tokens.
47
     * @param it token iterator that allows to iterate over the list of tokens
72
     * @param it token iterator that allows to iterate over the list of tokens
Lines 50-57 Link Here
50
     * @param length length (and type) of the modification.<BR>
75
     * @param length length (and type) of the modification.<BR>
51
     *  &gt;0 means insert and &lt;0 means remove.
76
     *  &gt;0 means insert and &lt;0 means remove.
52
     */
77
     */
53
    public static void update(TokenIterator it, Lexer lexer, int offset, int length) {
78
    protected final void update(Lexer lexer, int offset, int length) {
54
        org.netbeans.modules.lexer.inc.Algorithm.INSTANCE.update(it, lexer, offset, length);
79
        org.netbeans.modules.lexer.inc.Algorithm.INSTANCE.update(this, lexer, offset, length);
55
    }
80
    }
56
81
57
}
82
}
(-)lexer/libsrc/org/netbeans/modules/lexer/inc/AbstractTokenIterator.java (-4 / +3 lines)
Lines 14-20 Link Here
14
package org.netbeans.modules.lexer.inc;
14
package org.netbeans.modules.lexer.inc;
15
15
16
import org.netbeans.api.lexer.Token;
16
import org.netbeans.api.lexer.Token;
17
import org.netbeans.api.lexer.TokenIterator;
18
import org.netbeans.api.lexer.LexerInput;
17
import org.netbeans.api.lexer.LexerInput;
19
import java.util.NoSuchElementException;
18
import java.util.NoSuchElementException;
20
19
Lines 25-31 Link Here
25
 * @version 1.00
24
 * @version 1.00
26
 */
25
 */
27
26
28
public abstract class AbstractTokenIterator implements TokenIterator {
27
public abstract class AbstractTokenIterator extends org.netbeans.api.lexer.IncrementalAlgorithm {
29
    
28
    
30
    /** Empty array of tokens used initially as tokens array. */
29
    /** Empty array of tokens used initially as tokens array. */
31
    private static final Token[] EMPTY_TOKEN_ARRAY = new Token[0];
30
    private static final Token[] EMPTY_TOKEN_ARRAY = new Token[0];
Lines 65-71 Link Here
65
        return (iterIndex < getTokenCount());
64
        return (iterIndex < getTokenCount());
66
    }
65
    }
67
66
68
    public Object next() {
67
    public Token next() {
69
        try {
68
        try {
70
            Token token = tokenArray[getRawIndex(iterIndex)];
69
            Token token = tokenArray[getRawIndex(iterIndex)];
71
            lastRetIterIndex = iterIndex;
70
            lastRetIterIndex = iterIndex;
Lines 81-87 Link Here
81
        return (iterIndex > 0);
80
        return (iterIndex > 0);
82
    }
81
    }
83
82
84
    public Object previous() {
83
    public Token previous() {
85
        try {
84
        try {
86
            int prevIndex = iterIndex - 1;
85
            int prevIndex = iterIndex - 1;
87
            Token token = tokenArray[getRawIndex(prevIndex)];
86
            Token token = tokenArray[getRawIndex(prevIndex)];
(-)lexer/libsrc/org/netbeans/modules/lexer/inc/Algorithm.java (-15 / +14 lines)
Lines 15-21 Link Here
15
15
16
import org.netbeans.api.lexer.Token;
16
import org.netbeans.api.lexer.Token;
17
import org.netbeans.api.lexer.TokenConstants;
17
import org.netbeans.api.lexer.TokenConstants;
18
import org.netbeans.api.lexer.TokenIterator;
18
import org.netbeans.api.lexer.IncrementalAlgorithm;
19
import org.netbeans.api.lexer.Lexer;
19
import org.netbeans.api.lexer.Lexer;
20
import org.netbeans.api.lexer.LexerInput;
20
import org.netbeans.api.lexer.LexerInput;
21
import org.netbeans.modules.lexer.util.IntegerCache;
21
import org.netbeans.modules.lexer.util.IntegerCache;
Lines 46-77 Link Here
46
        return org.netbeans.modules.lexer.util.Compatibility.getLength(t);
46
        return org.netbeans.modules.lexer.util.Compatibility.getLength(t);
47
    }
47
    }
48
48
49
    protected int getLookahead(TokenIterator it) {
49
    protected int getLookahead(IncrementalAlgorithm it) {
50
        return ((Integer)it.getAttribute(TokenConstants.LOOKAHEAD)).intValue();
50
        return it.readLookahead ();
51
    }
51
    }
52
52
53
    protected int getLookback(TokenIterator it) {
53
    protected int getLookback(IncrementalAlgorithm it) {
54
        Integer lb = (Integer)it.getAttribute(TokenConstants.LOOKBACK);
54
        return it.readLookback ();
55
        return (lb == null) ? -1 : lb.intValue();
56
    }
55
    }
57
    
56
    
58
    protected Object getState(TokenIterator it) {
57
    protected Object getState(IncrementalAlgorithm it) {
59
        return it.getAttribute(TokenConstants.STATE);
58
        return it.readState ();
60
    }
59
    }
61
    
60
    
62
    protected void setLookahead(TokenIterator it, int lookahead) {
61
    protected void setLookahead(IncrementalAlgorithm it, int lookahead) {
63
        it.setAttribute(TokenConstants.LOOKAHEAD, getInteger(lookahead));
62
        it.storeLookahead (lookahead);
64
    }
63
    }
65
64
66
    protected void setLookback(TokenIterator it, int lookback) {
65
    protected void setLookback(IncrementalAlgorithm it, int lookback) {
67
        it.setAttribute(TokenConstants.LOOKBACK, getInteger(lookback));
66
        it.storeLookback (lookback);
68
    }
67
    }
69
    
68
    
70
    protected void setState(TokenIterator it, Object state) {
69
    protected void setState(IncrementalAlgorithm it, Object state) {
71
        it.setAttribute(TokenConstants.STATE, state);
70
        it.storeState (state);
72
    }
71
    }
73
    
72
    
74
    public void update(TokenIterator it, Lexer lexer, int offset, int length) {
73
    public void update(IncrementalAlgorithm it, Lexer lexer, int offset, int length) {
75
        if (length == 0) {
74
        if (length == 0) {
76
            return;
75
            return;
77
        }
76
        }
(-)lexer/libsrc/org/netbeans/modules/lexer/inc/OffsetTokenIterator.java (-1 lines)
Lines 14-20 Link Here
14
package org.netbeans.modules.lexer.inc;
14
package org.netbeans.modules.lexer.inc;
15
15
16
import org.netbeans.api.lexer.Token;
16
import org.netbeans.api.lexer.Token;
17
import org.netbeans.api.lexer.TokenIterator;
18
import org.netbeans.api.lexer.LexerInput;
17
import org.netbeans.api.lexer.LexerInput;
19
18
20
/**
19
/**
(-)lexer/libsrc/org/netbeans/modules/lexer/inc/TextTokenIterator.java (-1 lines)
Lines 15-21 Link Here
15
15
16
import org.netbeans.api.lexer.TokenId;
16
import org.netbeans.api.lexer.TokenId;
17
import org.netbeans.api.lexer.Token;
17
import org.netbeans.api.lexer.Token;
18
import org.netbeans.api.lexer.TokenIterator;
19
import org.netbeans.api.lexer.LexerInput;
18
import org.netbeans.api.lexer.LexerInput;
20
import org.netbeans.modules.lexer.inc.OffsetTokenIterator;
19
import org.netbeans.modules.lexer.inc.OffsetTokenIterator;
21
20
(-)lexer/libsrc/org/netbeans/modules/lexer/swing/TokenDocument.java (-1 lines)
Lines 15-21 Link Here
15
15
16
import javax.swing.text.StyledDocument;
16
import javax.swing.text.StyledDocument;
17
import org.netbeans.api.lexer.Language;
17
import org.netbeans.api.lexer.Language;
18
import org.netbeans.api.lexer.TokenIterator;
19
18
20
/**
19
/**
21
 * Document maintaining the list of tokens over its text.
20
 * Document maintaining the list of tokens over its text.

Return to bug 22173