Mercurial Hosting > luan
comparison src/luan/modules/RegexLuan.java @ 1897:8ed184a0cde2
regex and swing
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 14 Apr 2025 12:46:45 -0600 |
parents | e59349d53fec |
children | aa24812aaf98 |
comparison
equal
deleted
inserted
replaced
1896:1cd29d57c9c1 | 1897:8ed184a0cde2 |
---|---|
1 package luan.modules; | 1 package luan.modules; |
2 | 2 |
3 import java.util.regex.Pattern; | 3 import java.util.regex.Pattern; |
4 import java.util.regex.Matcher; | 4 import java.util.regex.Matcher; |
5 import java.util.regex.PatternSyntaxException; | |
5 import luan.Luan; | 6 import luan.Luan; |
6 import luan.LuanMutable; | 7 import luan.LuanMutable; |
7 import luan.LuanTable; | 8 import luan.LuanTable; |
8 import luan.LuanFunction; | 9 import luan.LuanFunction; |
9 import luan.LuanException; | 10 import luan.LuanException; |
11 | 12 |
12 public final class RegexLuan implements LuanMutable { | 13 public final class RegexLuan implements LuanMutable { |
13 public Pattern pattern; | 14 public Pattern pattern; |
14 private boolean immutable = false; | 15 private boolean immutable = false; |
15 | 16 |
16 public RegexLuan(String s) { | 17 public RegexLuan(String s) throws LuanException { |
17 this.pattern = Pattern.compile(s); | 18 try { |
19 this.pattern = Pattern.compile(s); | |
20 } catch(java.util.regex.PatternSyntaxException e) { | |
21 throw new LuanException(e.getMessage(),e); | |
22 } | |
18 } | 23 } |
19 | 24 |
20 @Override public boolean isImmutable() { | 25 @Override public boolean isImmutable() { |
21 return immutable; | 26 return immutable; |
22 } | 27 } |
39 if( !m.find(start) ) | 44 if( !m.find(start) ) |
40 return null; | 45 return null; |
41 int n = m.groupCount(); | 46 int n = m.groupCount(); |
42 Object[] rtn = new Object[2+n]; | 47 Object[] rtn = new Object[2+n]; |
43 rtn[0] = m.start() + 1; | 48 rtn[0] = m.start() + 1; |
44 rtn[1] = m.end(); | 49 rtn[1] = m.end() + 1; |
45 for( int i=0; i<n; i++ ) { | 50 for( int i=0; i<n; i++ ) { |
46 rtn[2+i] = m.group(i+1); | 51 rtn[2+i] = m.group(i+1); |
47 } | 52 } |
48 return rtn; | 53 return rtn; |
49 } | 54 } |