2 * Copyright winterwell Mathematics Ltd.
\r
3 * @author Daniel Winterstein
\r
6 package winterwell.markdown.editors;
\r
8 import java.util.ArrayList;
\r
9 import java.util.List;
\r
10 import java.util.Arrays;
\r
12 import org.eclipse.core.runtime.Assert;
\r
13 import org.eclipse.jface.text.rules.ICharacterScanner;
\r
14 import org.eclipse.jface.text.rules.IRule;
\r
15 import org.eclipse.jface.text.rules.IToken;
\r
16 import org.eclipse.jface.text.rules.Token;
\r
21 * @author Daniel Winterstein
\r
23 public class ListRule implements IRule {
\r
24 private ArrayList<Integer> markerList;
\r
25 protected IToken fToken;
\r
27 public ListRule(IToken token) {
\r
28 Assert.isNotNull(token);
\r
34 * @see IRule#evaluate(ICharacterScanner)
\r
37 public IToken evaluate(ICharacterScanner scanner) {
\r
38 if (scanner.getColumn() != 0) {
\r
39 return Token.UNDEFINED;
\r
42 // if (scanner.read() != '-') {
\r
43 // scanner.unread();
\r
44 // return Token.UNDEFINED;
\r
46 // if (Character.isWhitespace(scanner.read())) {
\r
49 // scanner.unread();
\r
50 // scanner.unread();
\r
51 // return Token.UNDEFINED;
\r
55 while ((c = scanner.read()) != ICharacterScanner.EOF) {
\r
57 if( !Character.isWhitespace( c ) ) {
\r
58 int after = scanner.read();
\r
61 // if ( markerList.contains(c) && Character.isWhitespace( after ) ) {
\r
62 if ( (c == '-' || c == '+' || c == '*')
\r
63 && Character.isWhitespace( after ) ) {
\r
66 for (; readCount > 0; readCount--)
\r
68 return Token.UNDEFINED;
\r
72 // Reached ICharacterScanner.EOF
\r
73 for (; readCount > 0; readCount--)
\r
75 return Token.UNDEFINED;
\r