static Regex getvar = null;
- final static Regex getv()
+ private static Regex getv()
{
// Thanks to Michael Jimenez for pointing out the need
// to clone getvar rather than simply returning it.
"\\\\c([\u0000-\uFFFF])|" + // ref 8
"\\\\x([A-Fa-f0-9]{2})|" + // ref 9
"\\\\([\u0000-\uFFFF])" + // ref 10
- ")");
+ ")", "");
getvar.optimize();
return getvar;
}
head = add(head, new StringRule(s.substring(mt, mf)));
}
String var = null;
- if ((var = gv.stringMatched(1 + off)) != null
- || (var = gv.stringMatched(2 + off)) != null
- || (var = gv.stringMatched(5 + off)) != null)
+ if ((var = gv.stringMatchedI(1 + off)) != null
+ || (var = gv.stringMatchedI(2 + off)) != null
+ || (var = gv.stringMatchedI(5 + off)) != null)
{
int d = 0;
for (int i = 0; i < var.length(); i++)
head = new StringRule("" + (char) d);
}
}
- else if ((var = gv.stringMatched(10 + off)) != null)
+ else if ((var = gv.stringMatchedI(10 + off)) != null)
{
if ("QELlUu".indexOf(var) >= 0)
{
head = add(head, new StringRule(var));
}
}
- else if ((var = gv.stringMatched(3 + off)) != null
- || (var = gv.stringMatched(4 + off)) != null
- || (var = gv.stringMatched(6 + off)) != null)
+ else if ((var = gv.stringMatchedI(3 + off)) != null
+ || (var = gv.stringMatchedI(4 + off)) != null
+ || (var = gv.stringMatchedI(6 + off)) != null)
{
String arg = "";
int pc;
head = add(head, new StringRule("${" + var + "}"));
}
}
- else if ((var = gv.stringMatched(7 + off)) != null)
+ else if ((var = gv.stringMatchedI(7 + off)) != null)
{
char c = var.charAt(0);
if (c == 'n')
head = add(head, new StringRule("" + (char) 12));
}
}
- else if ((var = gv.stringMatched(8 + off)) != null)
+ else if ((var = gv.stringMatchedI(8 + off)) != null)
{
char c = var.charAt(0);
if (c < Ctrl.cmap.length)
}
head = add(head, new StringRule("" + c));
}
- else if ((var = gv.stringMatched(9 + off)) != null)
+ else if ((var = gv.stringMatchedI(9 + off)) != null)
{
int d = 16 * getHexDigit(var.charAt(0))
+ getHexDigit(var.charAt(1));