KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jedit > syntax > PropsTokenMarker


1 package org.jedit.syntax;
2
3 /*
4  * PropsTokenMarker.java - Java props/DOS INI token marker
5  * Copyright (C) 1998, 1999 Slava Pestov
6  *
7  * You may use and modify this package for any purpose. Redistribution is
8  * permitted, in both source and binary form, provided that this notice
9  * remains intact in all source distributions of this package.
10  */

11
12 import javax.swing.text.Segment JavaDoc;
13
14 /**
15  * Java properties/DOS INI token marker.
16  *
17  * @author Slava Pestov
18  * @version $Id: PropsTokenMarker.java,v 1.1 2003/12/14 16:29:49 daggerrz Exp $
19  */

20 public class PropsTokenMarker extends TokenMarker
21 {
22    public static final byte VALUE = Token.INTERNAL_FIRST;
23
24    public byte markTokensImpl(byte token, Segment JavaDoc line, int lineIndex)
25    {
26       char[] array = line.array;
27       int offset = line.offset;
28       int lastOffset = offset;
29       int length = line.count + offset;
30 loop: for(int i = offset; i < length; i++)
31       {
32          int i1 = (i+1);
33
34          switch(token)
35          {
36          case Token.NULL:
37             switch(array[i])
38             {
39             case '#': case ';':
40                if(i == offset)
41                {
42                   addToken(line.count,Token.COMMENT1);
43                   lastOffset = length;
44                   break loop;
45                }
46                break;
47             case '[':
48                if(i == offset)
49                {
50                   addToken(i - lastOffset,token);
51                   token = Token.KEYWORD2;
52                   lastOffset = i;
53                }
54                break;
55             case '=':
56                addToken(i - lastOffset,Token.KEYWORD1);
57                token = VALUE;
58                lastOffset = i;
59                break;
60             }
61             break;
62          case Token.KEYWORD2:
63             if(array[i] == ']')
64             {
65                addToken(i1 - lastOffset,token);
66                token = Token.NULL;
67                lastOffset = i1;
68             }
69             break;
70          case VALUE:
71             break;
72          default:
73             throw new InternalError JavaDoc("Invalid state: "
74                + token);
75          }
76       }
77       if(lastOffset != length)
78          addToken(length - lastOffset,Token.NULL);
79       return Token.NULL;
80    }
81
82    public boolean supportsMultilineTokens()
83    {
84       return false;
85    }
86 }
87
Popular Tags