|
3 | 3 | importcom.github.simpleregex.parser.SRLBaseListener; |
4 | 4 | importcom.github.simpleregex.parser.SRLParser; |
5 | 5 | importorg.antlr.v4.runtime.ParserRuleContext; |
6 | | -importorg.antlr.v4.runtime.tree.ParseTreeWalker; |
7 | 6 | importorg.antlr.v4.runtime.tree.TerminalNode; |
8 | 7 |
|
9 | | -importjava.util.Arrays; |
10 | 8 | importjava.util.LinkedList; |
11 | 9 | importjava.util.List; |
12 | 10 | importjava.util.function.Consumer; |
13 | | -importjava.util.regex.Pattern; |
14 | 11 |
|
15 | 12 | /** |
16 | 13 | * Created by samtebbs on 06/09/2016. |
@@ -44,7 +41,7 @@ enum RegexElement { |
44 | 41 | ALL_LAZY("U"), |
45 | 42 | MULTI_LINE("m"), |
46 | 43 | END_OF_STRING("$"), |
47 | | -START_OF_STRING("^"), |
| 44 | +BEGINS_WITH("^"), |
48 | 45 | IF_FOLLOWED("(?=",")"), |
49 | 46 | IF_NOT_FOLLOWED("(?!",")"), |
50 | 47 | IF_HAD("(?<=",")"), |
@@ -131,7 +128,6 @@ public void enterStmt(SRLParser.StmtContext ctx) { |
131 | 128 | @Override |
132 | 129 | publicvoidenterQuantifier(SRLParser.QuantifierContextctx) { |
133 | 130 | booleanoptional =ctx.KEYW_OPTIONAL() !=null; |
134 | | -if(optional)addRegexStart(RegexElement.OPTIONAL); |
135 | 131 | visit(ctx.at_least(),this::enterAt_least); |
136 | 132 | visit(ctx.between(),this::enterBetween); |
137 | 133 | visit(ctx.exactly(),this::enterExactly); |
@@ -194,8 +190,10 @@ public void enterFlag(SRLParser.FlagContext ctx) { |
194 | 190 | @Override |
195 | 191 | publicvoidenterAnchor(SRLParser.AnchorContextctx) { |
196 | 192 | if(ctx.KEYW_END() !=null)addRegexVal(RegexElement.END_OF_STRING); |
197 | | -elseif(ctx.KEYW_BEGINS() !=null |ctx.KEYW_STARTS() !=null)addRegexVal(RegexElement.START_OF_STRING); |
198 | | -visit(ctx.block(),this::enterBlock); |
| 193 | +elseif(ctx.KEYW_BEGINS() !=null |ctx.KEYW_STARTS() !=null) { |
| 194 | +addRegexVal(RegexElement.BEGINS_WITH); |
| 195 | +visit(ctx.block(),this::enterBlock); |
| 196 | + } |
199 | 197 | } |
200 | 198 |
|
201 | 199 | @Override |
@@ -302,7 +300,9 @@ public void enterCapture(SRLParser.CaptureContext ctx) { |
302 | 300 |
|
303 | 301 | @Override |
304 | 302 | publicvoidenterBracketed_stmts(SRLParser.Bracketed_stmtsContextctx) { |
| 303 | +addRegexStart(RegexElement.GROUP); |
305 | 304 | ctx.stmt().forEach(this::enterStmt); |
| 305 | +addRegexEnd(RegexElement.GROUP); |
306 | 306 | } |
307 | 307 |
|
308 | 308 | @Override |
|