Problem with specifying small length strings

19 views
Skip to first unread message

Gideon Redelinghuys

unread,
Mar 10, 2010, 5:50:30 AM3/10/10
to hampi-devel
Hi, I've started to use Hampi but I'm running into a fatal exception,
for example when I run the following example:

"
import hampi.Hampi;
import hampi.constraints.Constraint;

public class HampiTest {
public static void main (String [] args) {
Hampi hampi = new Hampi();
Constraint c = hampi.regexpConstraint(hampi.varExpr("a"), true,
hampi.plusRegexp(hampi.constRegexp("ab")));
for (int i = 2; i < 10; i++) {
hampi.solve(c, i);
}
}
}
"

I get the following message, I think from the STP library (which also
terminates the entire environment it is running in):

"
Fatal Error: ComputeFormulaUsingModel: The value of a formula must be
TRUE or FALSE:

2:FALSE
0
"

I believe this is due to the small string length I give to the solver.
Should this exception be fixed? Or is there a way of knowing what is a
"good" string length?

Adam Kiezun

unread,
Mar 10, 2010, 10:20:46 PM3/10/10
to hampi-devel
Gideon,
What you're trying to do is currently not directly supported via API.
The problem is caused by trying to call STP on a core constraint with
an unbounded regexp. Normally, when you pass this to Hampi (via the
text interface):
var v : 2 .. 10;
reg R := or("ab");
assert v in R ;

Then Hampi will bound the regexp to size 2 and creates this core constraint:
VAR(v) in ab

But in your case, Hampi creates this core constraint:
VAR(a) in [ab . ab*]

I agree that Hampi should do the bounding automatically when called
via the API. So far, however, the priority has been the text interface
so this case has not received enough attention.

If you send me a patch that fixes this and passes the tests, I'll be
happy to review and check it in. Otherwise, I'm not sure when I'll be
able to get to this.

./adam

Gideon Redelinghuys

unread,
Mar 11, 2010, 5:41:17 AM3/11/10
to hampi...@googlegroups.com
I'll happily try and patch this up.

Although I must warn revision 40 from svn (which I have at the moment,
and I think is the latest revision available) do not appear to passing
all the given tests when running "make test". Also the files
"HampiLexer.java", "HampiParser.java" and "HampiTree.java" all contain
java 1.6 notation compilation errors.

Thus the revision I have is somewhat broken, and I can't guarantee
that my patch will not break a working system.

Adam Kiezun

unread,
Mar 11, 2010, 11:21:51 AM3/11/10
to hampi-devel
Gideon,
This is a bit strange - the code compiles and runs cleanly for me on 2
different machines. I wonder what can be different/wrong with your
install. Without getting a clean setup it's going to be hard for you
to work on the code and make sure the code remains functional.

What kinds of compilation/test errors do you get?
./adam

On Thu, Mar 11, 2010 at 5:41 AM, Gideon Redelinghuys

Gideon Redelinghuys

unread,
Mar 11, 2010, 12:20:33 PM3/11/10
to hampi-devel
Hi,

"testBoundInference3" used to fail when I "make verify" but this seem
to have resolved itself after a second "make clean", so sorry about
that, my mistake (I normally try to be as accurate as I can).

I've imported the project into Eclipse, and everything seems fine
except for those three files I've mentioned, here's a dump from
Eclipse on their problems (it seems I can't attach):

Description Resource Path Location Type
The method getDescription() of type HampiLexer.DFA12 should be tagged
with @Override since it actually overrides a superclass method
HampiLexer.java /Hampi/src/hampi/parser line 1686 Java Problem
The method getGrammarFileName() of type HampiLexer should be tagged
with @Override since it actually overrides a superclass method
HampiLexer.java /Hampi/src/hampi/parser line 87 Java Problem
The method getGrammarFileName() of type HampiParser should be tagged
with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 104 Java Problem
The method getGrammarFileName() of type HampiTree should be tagged
with @Override since it actually overrides a superclass method
HampiTree.java /Hampi/src/hampi/parser line 92 Java Problem
The method getTokenNames() of type HampiParser should be tagged with
@Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 103 Java Problem
The method getTokenNames() of type HampiTree should be tagged with
@Override since it actually overrides a superclass method
HampiTree.java /Hampi/src/hampi/parser line 91 Java Problem
The method getTree() of type HampiParser.cfgNonterminal_return should
be tagged with @Override since it actually overrides a superclass
method HampiParser.java /Hampi/src/hampi/parser line 1500 Java Problem
The method getTree() of type HampiParser.cfgProduction_return should
be tagged with @Override since it actually overrides a superclass
method HampiParser.java /Hampi/src/hampi/parser line 709 Java Problem
The method getTree() of type HampiParser.cfgProductionElement_return
should be tagged with @Override since it actually overrides a
superclass method HampiParser.java /Hampi/src/hampi/parser line 1037
Java Problem
The method getTree() of type
HampiParser.cfgProductionElementSet_return should be tagged with
@Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 925 Java Problem
The method getTree() of type HampiParser.cfgProductionSet_return
should be tagged with @Override since it actually overrides a
superclass method HampiParser.java /Hampi/src/hampi/parser line 805
Java Problem
The method getTree() of type HampiParser.cfgStmt_return should be
tagged with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 620 Java Problem
The method getTree() of type HampiParser.cfgTerminal_return should be
tagged with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 1442 Java Problem
The method getTree() of type HampiParser.program_return should be
tagged with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 109 Java Problem
The method getTree() of type HampiParser.regDefinition_return should
be tagged with @Override since it actually overrides a superclass
method HampiParser.java /Hampi/src/hampi/parser line 1653 Java Problem
The method getTree() of type HampiParser.regStmt_return should be
tagged with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 1551 Java Problem
The method getTree() of type HampiParser.statement_return should be
tagged with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 229 Java Problem
The method getTree() of type HampiParser.vardeclStmt_return should be
tagged with @Override since it actually overrides a superclass method
HampiParser.java /Hampi/src/hampi/parser line 384 Java Problem
The method mTokens() of type HampiLexer should be tagged with
@Override since it actually overrides a superclass method
HampiLexer.java /Hampi/src/hampi/parser line 1260 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 182 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 187 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 188 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 188 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 211 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 218 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 293 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 307 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 321 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 335 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 349 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 366 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 373 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 524 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 529 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 530 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 530 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 577 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 582 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 583 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 583 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 602 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 609 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 669 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 674 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 675 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 675 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 691 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 698 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 764 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 769 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 770 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 770 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 787 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 794 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 886 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 907 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 914 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 992 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 997 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 998 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 998 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1019 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1026 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1135 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1166 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1206 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1211 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1212 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1212 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1254 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1259 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1260 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1260 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1302 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1307 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1308 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1308 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1350 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1355 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1356 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1356 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1399 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1404 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1405 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1405 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1424 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1431 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1461 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1466 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1482 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1489 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1519 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1523 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1533 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1540 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1612 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1617 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1618 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1618 Java Problem
Unnecessary cast from Object to Object HampiParser.java /Hampi/src/
hampi/parser line 1635 Java Problem

I am using Eclipse 3.5.1 and Java 1.6 (update 15).

Thanks!

On Mar 11, 6:21 pm, Adam Kiezun <akie...@gmail.com> wrote:
> Gideon,
> This is a bit strange - the code compiles and runs cleanly for me on 2
> different machines. I wonder what can be different/wrong with your
> install. Without getting a clean setup it's going to be hard for you
> to work on the code and make sure the code remains functional.
>
> What kinds of compilation/test errors do you get?
> ./adam
>
> On Thu, Mar 11, 2010 at 5:41 AM, Gideon Redelinghuys
>
>
>
> <gjredelingh...@gmail.com> wrote:
> > I'll happily try and patch this up.
>
> > Although I must warn revision 40 from svn (which I have at the moment,
> > and I think is the latest revision available) do not appear to passing
> > all the given tests when running "make test". Also the files
> > "HampiLexer.java", "HampiParser.java" and "HampiTree.java" all contain
> > java 1.6 notation compilation errors.
>
> > Thus the revision I have is somewhat broken, and I can't guarantee
> > that my patch will not break a working system.
>

Adam Kiezun

unread,
Mar 11, 2010, 12:50:22 PM3/11/10
to hampi...@googlegroups.com
OK, these are not real compile errors. They result from overly strict
compiler settings in Eclipse. I think you just need to relax the
settings. Open the project properties and relax the relevant options
from Error to Warning. (Alternatively, you can try to open and re-save
these files (in Eclipse), which should run an auto fix for these
problems).

let me know how it goes.
./adam

Reply all
Reply to author
Forward
0 new messages