pike.git / lib / modules / Search.pmod / Grammar.pmod / DefaultParser.pike

version» Context lines:

pike.git/lib/modules/Search.pmod/Grammar.pmod/DefaultParser.pike:1:   // This file is part of Roxen Search   // Copyright © 2001 Roxen IS. All rights reserved.   // - // $Id: DefaultParser.pike,v 1.9 2002/03/11 15:02:56 grubba Exp $ + // $Id: DefaultParser.pike,v 1.10 2002/03/12 15:38:07 js Exp $      static inherit Search.Grammar.AbstractParser;   static inherit Search.Grammar.Lexer;   static private inherit "./module.pmod";   //static constant ParseNode = Search.Grammar.ParseNode;   //static constant OrNode = Search.Grammar.OrNode;   //static constant AndNode = Search.Grammar.AndNode;   //static constant TextNode = Search.Grammar.TextNode;      #include "debug.h"
pike.git/lib/modules/Search.pmod/Grammar.pmod/DefaultParser.pike:291:    if (sizeof(res->children) == 1) return res->children[0];    return 0;   }      static void parseExpr6(int prefix, TextNode node) {    // TRACE;       if (peek()[0] == TOKEN_TEXT) {    string text = peek()[1];    advance(); +  string star = "86196759014593256"; +  string questionmark = "76196758925470133"; +  text=replace(text,({"*","?"}), ({star, questionmark}));    array(string) words = Unicode.split_words_and_normalize(text); -  +  for(int i=0; i<sizeof(words); i++) +  words[i]=replace(words[i], ({star, questionmark}), ({"*","?"})); +  // End of abominable kludge    if (words) {    if (sizeof(words) == 1)    switch (prefix) {    case '+': node->plusWords += words; break;    case '-': node->minusWords += words; break;    default: node->words += words; break;    }    else if (sizeof(words) > 1)    switch (prefix) {    case '+': node->plusPhrases += ({ words }); break;