lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Engels" <reng...@ix.netcom.com>
Subject RE: Troubling with StandarTokenizer/QueryParser code generate in JavaCC
Date Sat, 16 Apr 2005 23:05:13 GMT
I'll restate this again. Dump the Deplhi port, and concentrate on the Delphi
C binding - it should be trivial and probably perform better.

-----Original Message-----
From: Mario Alejandro M. [mailto:mamcxyz@gmail.com]
Sent: Saturday, April 16, 2005 5:09 PM
To: java-dev@lucene.apache.org
Subject: Troubling with StandarTokenizer/QueryParser code generate in
JavaCC


I'm porting Lucene to Delphi. And is going great, I only need to pass 10
test case to get the indexing code... however I'm stuck with
StandarTokenizer and QueryParser, all the JavaCC generated code.

Port it prove dificult, the code is machine generate, and I don't get it. I
can spend hours porting it voodo style! but that is not a productive way.
Also if this code is changed later then I need to recode it.

So, how I can work on this?

- Is possible output from JavaCC Delphi/Pascal code?

I think if this is possible, maybe is the best way. However I need a
ready-to-go solution, I don't have experiencia in Java.

- Generate the parser in other tool. I think in CoCor for Delphi (
http://www.tetzel.com/CocoR/). If must other, please tell me

The truth is, i don't know anything about generate parsers/compilers, I can
do some basic stuff with regular expressions but this is something never
before I need to do.

However playing a bit i *think* I can go this way. But, this mean that this
code is work in isolation. In the other hand, I can control it more and the
main thing, I need something I can understand.

If this is a good way, how proced? Today, i get this:

COMPILER LuceneQuery

DELPHI
PRIVATE
PUBLIC
CREATE
END_DELPHI

IGNORE CASE

CHARACTERS
digit = '1234567890' .
special = '"' + "%&'()*+,-./:;<=>?|" .
letter = CHR(33)..CHR(255) - special - digit.

TOKENS
term DESCRIPTION "term"
= letter { letter | digit } .

fieldterm = letter ":" letter .

phrase = '"' letter { letter | digit } '"' .

integer = digit { digit } .


IGNORE CHR(1)..CHR(31)

PRODUCTIONS

LuceneQuery = (Query) .

Query = (QueryTermList).

QueryTerm = (term | phrase | fieldterm).

GroupedQueryTerm = OpenParens QueryTermList { QueryTermList } CloseParens .

ValidQueryTerm = QueryTerm | GroupedQueryTerm .

QueryTermList = ValidQueryTerm
{ QueryUnion
ValidQueryTerm } .

QueryUnion = ("AND" | "OR" ) .

OpenParens = "(" .

CloseParens = WEAK ")" .

END LuceneQuery .

But this is based in my understanding of the query parser and not in the
actual grammar of JavaCC. Also, I don't understand at all the rules of
StandarAnalyzer...

- Get pain :(

Do voodo with the code and hope it works...

Thanks for your suggestions..

--
Mario Alejandro Montoya
MCP
www.solucionesvulcano.com <http://www.solucionesvulcano.com>
!Obtenga su sitio Web dinĂ¡mico!
MUTIS
The open source indexing engine for Delphi!
http://mutis.sourceforge.net/


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message