Patch title: Release 85 bulk changes
Abstract:
File: /pliant/language/parser/engine.c
Key:
    Removed line
    Added line
   
// Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
//
// This program is free software; you can redistribute it an
// modify it under the terms of the GNU General Public Licen
// as published by the Free Software Foundation.
// 
// This program is distributed in the hope that it will be u
// but WITHOUT ANY WARRANTY; without even the implied warran
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public
// version 2 along with this program; if not, write to the F
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA


// Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
//
// This program is free software; you can redistribute it an
// modify it under the terms of the GNU General Public Licen
// as published by the Free Software Foundation.
// 
// This program is distributed in the hope that it will be u
// but WITHOUT ANY WARRANTY; without even the implied warran
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public
// version 2 along with this program; if not, write to the F
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA


FUNCTION Void ParserContext_rearrange(struct ParserContext *
  ParserContext_fold_operators(&context->root->arguments);
  rec_precompile_rewrite(context->root); }
static Void default_pre_execute(struct Expression *e) {}

FUNCTION Void ParserContext_execute(struct ParserContext *co

FUNCTION Void ParserContext_execute(struct ParserContext *co
  ParserContext_fold_operators(&context->root->arguments);
  rec_precompile_rewrite(context->root); 
  (*G.pre_execute_hook)(context->root);
  Expression_execute(context->root);
  ParserContext_set_root(context);
  context->possible_side_effect=true; }


static Void parser_filter_execute(struct ParserContext *cont
  Arrow *c; struct Str temp; struct Str *id;
  if(context->current_expr!=context->root) return;
  for(c=Module_first(context->module,Str_map_string(&temp,"p
    check(entry_type(*c)==G.type_Ident);
    id=(struct Str *)*c;
    if(Str_len(line)>=Str_len(id) && memory_compare(line->ch
  Expression_execute(context->root);
  ParserContext_set_root(context);
  context->possible_side_effect=true; }


static Void parser_filter_execute(struct ParserContext *cont
  Arrow *c; struct Str temp; struct Str *id;
  if(context->current_expr!=context->root) return;
  for(c=Module_first(context->module,Str_map_string(&temp,"p
    check(entry_type(*c)==G.type_Ident);
    id=(struct Str *)*c;
    if(Str_len(line)>=Str_len(id) && memory_compare(line->ch
  if(context->root->arguments.nb!=0){
    ParserContext_rearrange(context);
    ParserContext_execute(context); }}
  if(context->root->arguments.nb!=0)
    ParserContext_execute(context); }