Re: [htdig3-dev] Re: [htdig] SYNTAXERROR - bug?


Gilles Detillieux (grdetil@scrc.umanitoba.ca)
Tue, 16 Feb 1999 14:31:32 -0600 (CST)


According to Geoff Hutchison:
> These would make sense. This is an untest patch, but I assume it works
> -Geoff
>
> Index: parser.cc
> ===================================================================
> RCS file: /opt/htdig/cvs/htdig3/htsearch/parser.cc,v
> retrieving revision 1.6
> diff -c -3 -p -r1.6 parser.cc
> *** parser.cc 1998/12/06 18:45:10 1.6
> --- parser.cc 1999/02/16 18:20:07
> *************** Parser::factor(int output)
> *** 155,160 ****
> --- 155,163 ----
> else
> {
> valid = 0;
> + error = 0;
> + error << " ')' instead of '" << current->word.get();

I think you want "expected ')' instead ..." up there!

> + error << '\'';
> }
> }
> else if (lookahead == WORD)
> *************** Parser::factor(int output)
> *** 168,173 ****
> --- 171,179 ----
> else
> {
> valid = 0;
> + error = 0;
> + error << "expected a word instead of '" << current->word.get();
> + error << '\'';
> }
> }
>

The other problem is that the and's and or's have been changed to &'s and
|'s, so the error message is a tad misleading. E.g.:

        expected a word instead of '|'

when I tried tool and or toolbar. Here's my patch:

--- ./htsearch/parser.cc.errors Mon Feb 15 20:37:20 1999
+++ ./htsearch/parser.cc Tue Feb 16 14:17:21 1999
@@ -155,6 +155,9 @@
         else
         {
             valid = 0;
+ error = 0;
+ error << "expected ')' instead of '" << current->word.get();
+ error << '\'';
         }
     }
     else if (lookahead == WORD)
@@ -168,6 +171,19 @@
     else
     {
         valid = 0;
+ error = 0;
+ error << "expected a word instead of '" << current->word.get();
+ error << '\'';
+ }
+
+ if (!valid)
+ {
+ switch (lookahead)
+ {
+ case '&': error << " or 'AND'"; break;
+ case '|': error << " or 'OR'"; break;
+ case '!': error << " or 'NOT'"; break;
+ }
     }
 }
 

There's still another problem -- when I try an expression that doesn't have
enough closing parentheses, instead of a syntax error message, I get an
internal server error, with this error in the error log for Apache:

        access to /home/httpd/cgi-bin/htsearch failed for cliff.scrc.umanitoba.ca, reason: Premature end of script headers

This suggests that htsearch is dying before even putting out a Content-type
header. Any ideas?

-- 
Gilles R. Detillieux              E-mail: <grdetil@scrc.umanitoba.ca>
Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/~grdetil
Dept. Physiology, U. of Manitoba  Phone:  (204)789-3766
Winnipeg, MB  R3E 3J7  (Canada)   Fax:    (204)789-3930
------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
htdig3-dev@htdig.org containing the single word "unsubscribe" in
the SUBJECT of the message.



This archive was generated by hypermail 2.0b3 on Tue Feb 16 1999 - 13:02:01 PST