1 23 24 package net.percederberg.grammatica.test; 25 26 import java.io.Reader ; 27 28 import net.percederberg.grammatica.parser.ParserCreationException; 29 import net.percederberg.grammatica.parser.TokenPattern; 30 import net.percederberg.grammatica.parser.Tokenizer; 31 32 38 class RegexpTokenizer extends Tokenizer { 39 40 48 public RegexpTokenizer(Reader input) 49 throws ParserCreationException { 50 51 super(input, false); 52 createPatterns(); 53 } 54 55 61 private void createPatterns() throws ParserCreationException { 62 TokenPattern pattern; 63 64 pattern = new TokenPattern(RegexpConstants.LEFT_PAREN, 65 "LEFT_PAREN", 66 TokenPattern.STRING_TYPE, 67 "("); 68 addPattern(pattern); 69 70 pattern = new TokenPattern(RegexpConstants.RIGHT_PAREN, 71 "RIGHT_PAREN", 72 TokenPattern.STRING_TYPE, 73 ")"); 74 addPattern(pattern); 75 76 pattern = new TokenPattern(RegexpConstants.LEFT_BRACKET, 77 "LEFT_BRACKET", 78 TokenPattern.STRING_TYPE, 79 "["); 80 addPattern(pattern); 81 82 pattern = new TokenPattern(RegexpConstants.RIGHT_BRACKET, 83 "RIGHT_BRACKET", 84 TokenPattern.STRING_TYPE, 85 "]"); 86 addPattern(pattern); 87 88 pattern = new TokenPattern(RegexpConstants.LEFT_BRACE, 89 "LEFT_BRACE", 90 TokenPattern.STRING_TYPE, 91 "{"); 92 addPattern(pattern); 93 94 pattern = new TokenPattern(RegexpConstants.RIGHT_BRACE, 95 "RIGHT_BRACE", 96 TokenPattern.STRING_TYPE, 97 "}"); 98 addPattern(pattern); 99 100 pattern = new TokenPattern(RegexpConstants.QUESTION, 101 "QUESTION", 102 TokenPattern.STRING_TYPE, 103 "?"); 104 addPattern(pattern); 105 106 pattern = new TokenPattern(RegexpConstants.ASTERISK, 107 "ASTERISK", 108 TokenPattern.STRING_TYPE, 109 "*"); 110 addPattern(pattern); 111 112 pattern = new TokenPattern(RegexpConstants.PLUS, 113 "PLUS", 114 TokenPattern.STRING_TYPE, 115 "+"); 116 addPattern(pattern); 117 118 pattern = new TokenPattern(RegexpConstants.VERTICAL_BAR, 119 "VERTICAL_BAR", 120 TokenPattern.STRING_TYPE, 121 "|"); 122 addPattern(pattern); 123 124 pattern = new TokenPattern(RegexpConstants.DOT, 125 "DOT", 126 TokenPattern.STRING_TYPE, 127 "."); 128 addPattern(pattern); 129 130 pattern = new TokenPattern(RegexpConstants.COMMA, 131 "COMMA", 132 TokenPattern.STRING_TYPE, 133 ","); 134 addPattern(pattern); 135 136 pattern = new TokenPattern(RegexpConstants.NUMBER, 137 "NUMBER", 138 TokenPattern.REGEXP_TYPE, 139 "[0-9]+"); 140 addPattern(pattern); 141 142 pattern = new TokenPattern(RegexpConstants.CHAR, 143 "CHAR", 144 TokenPattern.REGEXP_TYPE, 145 "(\\\\.)|."); 146 addPattern(pattern); 147 } 148 } 149 | Popular Tags |