Skip to content

Commit

Permalink
org.joni.ast.ConsAltNode cannot be cast to org.joni.ast.StringNode issue
Browse files Browse the repository at this point in the history
  • Loading branch information
lopex committed Feb 13, 2012
1 parent 2c08ee4 commit eaa1ef7
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 8 deletions.
10 changes: 5 additions & 5 deletions src/org/joni/Analyser.java
Expand Up @@ -1776,14 +1776,14 @@ protected final void setupTree(Node node, int state) {
int len = sn.length();

if (len * qn.lower <= EXPAND_STRING_MAX_LENGTH) {
StringNode str = qn.convertToString();
// if (str.parent == null) root = str;
StringNode str = qn.convertToString(sn.flag);
int n = qn.lower;
for (int i=0; i<n; i++) {
str.cat(sn.bytes, sn.p, sn.end);
for (int i = 0; i < n; i++) {
str.cat(sn.bytes, sn.p, sn.end);
}
break; /* break case NT_QTFR: */
}
break; /* break case NT_QTFR: */

}
}
if (Config.USE_OP_PUSH_OR_JUMP_EXACT) {
Expand Down
4 changes: 2 additions & 2 deletions src/org/joni/ast/QuantifierNode.java
Expand Up @@ -69,9 +69,9 @@ public void setTarget(Node tgt) {
tgt.parent = this;
}

public StringNode convertToString() {
public StringNode convertToString(int flag) {
StringNode sn = new StringNode();
sn.flag = ((StringNode)target).flag;
sn.flag = flag;
sn.swap(this);
return sn;
}
Expand Down
2 changes: 1 addition & 1 deletion src/org/joni/ast/StringNode.java
Expand Up @@ -31,7 +31,7 @@ public final class StringNode extends Node implements StringType {
public int p;
public int end;

int flag;
public int flag;

public StringNode() {
this.bytes = new byte[NODE_STR_BUF_SIZE];
Expand Down
5 changes: 5 additions & 0 deletions test/org/joni/test/TestU8.java
Expand Up @@ -44,6 +44,11 @@ public Syntax syntax() {

public void test() {
xx("^\\d\\d\\d-".getBytes(), new byte []{-30, -126, -84, 48, 45}, 0, 0, 0, true);
x2s("x{2}", "xx", 0, 2, Option.IGNORECASE);
x2s("x{2}", "XX", 0, 2, Option.IGNORECASE);
x2s("x{3}", "XxX", 0, 3, Option.IGNORECASE);
ns("x{2}", "x", Option.IGNORECASE);
ns("x{2}", "X", Option.IGNORECASE);
}

public static void main(String[] args) throws Throwable {
Expand Down

0 comments on commit eaa1ef7

Please sign in to comment.