+2004-10-02  James A. Morrison  <phython@gcc.gnu.org>
+
+       * lex.l: Remove random whitespace.
+       * parse.y: Reformat copyright notice.  Indent declarations.
+       Wrap long lines, unwrap short lines.
+       * tree1.c: Reformat copyright notice.  Wrap long lines.
+       Remove random whitespace.
+       (lookup_tree_name): Use LOCATION_LINE.
+       * treetree.c: Reformat copyright notice.  Wrap long lines.
+       Remove random whitespace.
+
 2004-10-01  James A. Morrison  <phython@gcc.gnu.org>
 
        * parse.y (ELSE): Set tok to $1.
 
    ---------------------------------------------------------------------
    
    Written by Tim Josling 1999-2001, based in part on other parts of
-   the GCC compiler. 
- 
-*/
+   the GCC compiler.  */
 
 %{
 #include "config.h"
 int yylex (void);
 void update_yylval (int a); 
 
-static int next_tree_charno=1;
+static int next_tree_charno = 1;
  
 static void update_lineno_charno (void);
 static void dump_lex_value (int lexret);
 
 [ \n\t]+ {
   update_lineno_charno ();
-    NOT_RETURN (WHITESPACE);
+  NOT_RETURN (WHITESPACE);
 }
   
 "//".*  {
   /* Comment.  */
-    update_lineno_charno ();
-    NOT_RETURN (COMMENT);
+  update_lineno_charno ();
+  NOT_RETURN (COMMENT);
 }
    
 "{" {
 update_yylval (int a)
 {
   struct prod_token_parm_item * tok;
-  tok=yylval;
+  tok = yylval;
   
   tok->category = token_category;
   tok->type = a;
 
-%{ /* -*- c -*- emacs mode c */
-  /* 
+/* -*- c -*- emacs mode c */
+/* TREELANG Compiler parser.  
 
-     TREELANG Compiler parser.  
+---------------------------------------------------------------------
 
-     ---------------------------------------------------------------------
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+Free Software Foundation, Inc.
 
-     Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-     Free Software Foundation, Inc.
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
 
-     This program is free software; you can redistribute it and/or modify it
-     under the terms of the GNU General Public License as published by the
-     Free Software Foundation; either version 2, or (at your option) any
-     later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-     This program is distributed in the hope that it will be useful,
-     but WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-     GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.
 
-     You should have received a copy of the GNU General Public License
-     along with this program; if not, write to the Free Software
-     Foundation, 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+In other words, you are welcome to use, share and improve this program.
+You are forbidden to forbid anyone else to use, share and improve
+what you give them.   Help stamp out software-hoarding!  
 
-     In other words, you are welcome to use, share and improve this program.
-     You are forbidden to forbid anyone else to use, share and improve
-     what you give them.   Help stamp out software-hoarding!  
+---------------------------------------------------------------------
 
-     ---------------------------------------------------------------------
+Written by Tim Josling 1999-2001, based in part on other parts of
+the GCC compiler.  */
 
-     Written by Tim Josling 1999-2001, based in part on other parts of
-     the GCC compiler.
- 
-   */
-
-  /* 
-
-     Grammar Conflicts
-     *****************
-
-     There are no conflicts in this grammar.  Please keep it that way.
-
-   */
+/* Grammar Conflicts
+   *****************
+   There are no conflicts in this grammar.  Please keep it that way.  */
 
+%{ 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #define YYPRINT(file, type, value) print_token (file, type, value) 
 #define YYERROR_VERBOSE YES
 
-/* My yylex routine used to intercept calls to flex generated code, to
+  /* My yylex routine used to intercept calls to flex generated code, to
      record lex time.  */
-int yylex (void);
-static inline int my_yylex (void);
-/* Call lex, but ensure time is charged to TV_LEX.  */ 
-static inline int
-my_yylex (void)
-{
-  int res;
-  timevar_push (TV_LEX);
-  res = yylex ();
-  timevar_pop (TV_LEX);
-  return res;
-}
-#define yylex my_yylex
-
-extern int option_parser_trace;
-
-/* Local prototypes.  */
+  int yylex (void);
+  static inline int my_yylex (void);
 
-static void yyerror (const char *error_message);
-int yyparse (void);
-void print_token (FILE * file, unsigned int type ATTRIBUTE_UNUSED, YYSTYPE value);
-static struct prod_token_parm_item *reverse_prod_list (struct prod_token_parm_item *old_first);
-static void ensure_not_void (unsigned int type, struct prod_token_parm_item* name);
-static int check_type_match (int type_num, struct prod_token_parm_item *exp);
-static int get_common_type (struct prod_token_parm_item *type1,
-                            struct prod_token_parm_item *type2);
-static struct prod_token_parm_item *make_integer_constant (struct prod_token_parm_item* value);
-static struct prod_token_parm_item *make_plus_expression
-  (struct prod_token_parm_item* tok, struct prod_token_parm_item* op1,
-   struct prod_token_parm_item* op2, int type_code, int prod_code);
-static void set_storage (struct prod_token_parm_item *prod);
-
-/* File global variables.  */
-
-static struct prod_token_parm_item *current_function=NULL;
+  /* Call lex, but ensure time is charged to TV_LEX.  */ 
+  static inline int
+    my_yylex (void)
+    {
+      int res;
+      timevar_push (TV_LEX);
+      res = yylex ();
+      timevar_pop (TV_LEX);
+      return res;
+    }
+#define yylex my_yylex
 
+  extern int option_parser_trace;
+
+  /* Local prototypes.  */
+  static void yyerror (const char *error_message);
+  int yyparse (void);
+  void print_token (FILE * file, unsigned int type ATTRIBUTE_UNUSED,
+                   YYSTYPE value);
+  static struct prod_token_parm_item *reverse_prod_list
+    (struct prod_token_parm_item *old_first);
+  static void ensure_not_void (unsigned int type,
+                              struct prod_token_parm_item* name);
+  static int check_type_match (int type_num, struct prod_token_parm_item *exp);
+  static int get_common_type (struct prod_token_parm_item *type1,
+                             struct prod_token_parm_item *type2);
+  static struct prod_token_parm_item *make_integer_constant
+    (struct prod_token_parm_item* value);
+  static struct prod_token_parm_item *make_plus_expression
+    (struct prod_token_parm_item* tok, struct prod_token_parm_item* op1,
+     struct prod_token_parm_item* op2, int type_code, int prod_code);
+  static void set_storage (struct prod_token_parm_item *prod);
+
+  /* File global variables.  */
+  static struct prod_token_parm_item *current_function = NULL;
 %}
 
 /* Not %raw - seems to have bugs.  */
   SYMBOL_TABLE_NAME (prod) = tok;
   EXPRESSION_TYPE (prod) = $2;
   VAR_INIT (prod) = $4;
-  NUMERIC_TYPE (prod) = NUMERIC_TYPE (( (struct prod_token_parm_item*)EXPRESSION_TYPE (prod)));
+  NUMERIC_TYPE (prod) = 
+    NUMERIC_TYPE (( (struct prod_token_parm_item*)EXPRESSION_TYPE (prod)));
   ensure_not_void (NUMERIC_TYPE (prod), tok);
   if (insert_tree_name (prod))
     {
      ((struct prod_token_parm_item*)SYMBOL_TABLE_NAME (prod))->tp.tok.chars,
      ((struct prod_token_parm_item*)SYMBOL_TABLE_NAME (prod))->tp.tok.length,
      NUMERIC_TYPE (prod),
-     VAR_INIT (prod)? ((struct prod_token_parm_item*)VAR_INIT (prod))->tp.pro.code:NULL,
+     VAR_INIT (prod) ?
+     ((struct prod_token_parm_item*)VAR_INIT (prod))->tp.pro.code : NULL,
      tok->tp.tok.location);
   if (!prod->tp.pro.code) 
     abort ();
   prod = make_production (PROD_VARIABLE_NAME, tok);
   SYMBOL_TABLE_NAME (prod) = $2;
   EXPRESSION_TYPE (prod) = $1;
-  NUMERIC_TYPE (prod) = NUMERIC_TYPE (( (struct prod_token_parm_item*)EXPRESSION_TYPE (prod)));
+  NUMERIC_TYPE (prod) =
+    NUMERIC_TYPE (( (struct prod_token_parm_item*)EXPRESSION_TYPE (prod)));
   ensure_not_void (NUMERIC_TYPE (prod), tok);
   if (insert_tree_name (prod))
     {
   prod = make_production (PROD_FUNCTION_NAME, $3);
   SYMBOL_TABLE_NAME (prod) = $3;
   EXPRESSION_TYPE (prod) = $2;
-  NUMERIC_TYPE (prod) = NUMERIC_TYPE (( (struct prod_token_parm_item*)EXPRESSION_TYPE (prod)));
+  NUMERIC_TYPE (prod) =
+    NUMERIC_TYPE (( (struct prod_token_parm_item*)EXPRESSION_TYPE (prod)));
   PARAMETERS (prod) = reverse_prod_list ($5); 
   insert_tree_name (prod);
   STORAGE_CLASS_TOKEN (prod) = $1;
       this_parms = my_malloc (sizeof (struct prod_token_parm_item));
       if (!this_parm_var->tp.pro.main_token)
         abort ();
-      this_parms->tp.par.variable_name = this_parm_var->tp.pro.main_token->tp.tok.chars;
+
+      this_parms->tp.par.variable_name =
+       this_parm_var->tp.pro.main_token->tp.tok.chars;
       this_parms->category = parameter_category;
       this_parms->type = NUMERIC_TYPE 
         (( (struct prod_token_parm_item*)EXPRESSION_TYPE (this_parm_var)));
     }
   FIRST_PARMS (prod) = first_parms;
 
-  prod->tp.pro.code = tree_code_create_function_prototype
-    (tok->tp.tok.chars, STORAGE_CLASS (prod), NUMERIC_TYPE (type),
-     first_parms, tok->tp.tok.location);
+  prod->tp.pro.code =
+    tree_code_create_function_prototype (tok->tp.tok.chars,
+                                        STORAGE_CLASS (prod),
+                                        NUMERIC_TYPE (type),
+                                        first_parms, tok->tp.tok.location);
 }
 ;
 
   int type_code = get_common_type (op1, op2);
   if (!type_code)
     YYERROR;
-  $$ = make_plus_expression
-     (tok, op1, op2, type_code, EXP_PLUS);
+  $$ = make_plus_expression (tok, op1, op2, type_code, EXP_PLUS);
 }
 |expression tl_MINUS expression %prec tl_PLUS {
   struct prod_token_parm_item *tok = $2;
   int type_code = get_common_type (op1, op2);
   if (!type_code)
     YYERROR;
-  $$ = make_plus_expression
-     (tok, op1, op2, type_code, EXP_MINUS);
+  $$ = make_plus_expression (tok, op1, op2, type_code, EXP_MINUS);
 }
 |expression EQUALS expression {
   struct prod_token_parm_item *tok = $2;
     parms = tree_code_add_parameter (parms, var->tp.pro.code, exp->tp.pro.code);
   }
   type = tree_code_get_type (NUMERIC_TYPE (prod));
-  prod->tp.pro.code = tree_code_get_expression
-    (EXP_FUNCTION_INVOCATION, type, proto->tp.pro.code, parms, NULL);
+  prod->tp.pro.code = tree_code_get_expression (EXP_FUNCTION_INVOCATION, type,
+                                                proto->tp.pro.code, parms,
+                                                NULL);
   $$ = prod;
 }
 ;
     YYERROR;
   OP1 (prod) = $1;
   
-  prod->tp.pro.code = tree_code_get_expression (EXP_REFERENCE, type, 
-                                      symbol_table_entry->tp.pro.code, NULL, NULL);
+  prod->tp.pro.code =
+    tree_code_get_expression (EXP_REFERENCE, type, 
+                             symbol_table_entry->tp.pro.code, NULL, NULL);
   $$ = prod;
 }
 ;
    common type (min is signed int).  */
 
 static int 
-get_common_type (struct prod_token_parm_item *type1, struct prod_token_parm_item *type2)
+get_common_type (struct prod_token_parm_item *type1,
+                struct prod_token_parm_item *type2)
 {
   if (NUMERIC_TYPE (type1) == UNSIGNED_INT)
     return UNSIGNED_INT;
     NUMERIC_TYPE (prod) = SIGNED_INT;
   else
     NUMERIC_TYPE (prod) = UNSIGNED_INT;
-  prod->tp.pro.code = tree_code_get_integer_value (tok->tp.tok.chars, tok->tp.tok.length);
+  prod->tp.pro.code = tree_code_get_integer_value (tok->tp.tok.chars,
+                                                  tok->tp.tok.length);
   return prod;
 }
 
 
-  /* 
+/* TREELANG Compiler almost main (tree1)
+   Called by GCC's toplev.c
 
-    TREELANG Compiler almost main (tree1)
-    Called by GCC's toplev.c
+   Copyright (C) 1986, 87, 89, 92-96, 1997, 1999, 2000, 2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
 
-    Copyright (C) 1986, 87, 89, 92-96, 1997, 1999, 2000, 2001, 2002, 2003, 2004
-    Free Software Foundation, Inc.
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
 
-    This program is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2, or (at your option) any
-    later version.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, 59 Temple Place - Suite 330,
-    Boston, MA 02111-1307, USA.
+   In other words, you are welcome to use, share and improve this program.
+   You are forbidden to forbid anyone else to use, share and improve
+   what you give them.   Help stamp out software-hoarding!  
 
-    In other words, you are welcome to use, share and improve this program.
-    You are forbidden to forbid anyone else to use, share and improve
-    what you give them.   Help stamp out software-hoarding!  
+   ---------------------------------------------------------------------------
 
-    ---------------------------------------------------------------------------
-
-    Written by Tim Josling 1999, 2000, 2001, based in part on other
-    parts of the GCC compiler.
-
-*/
+   Written by Tim Josling 1999, 2000, 2001, based in part on other
+   parts of the GCC compiler.  */
 
 #include "config.h"
 #include "system.h"
       sanity_check (this_tok);
       if (tok->tp.tok.length != this_tok->tp.tok.length) 
         continue;
-      if (memcmp (tok->tp.tok.chars, this_tok->tp.tok.chars, this_tok->tp.tok.length))
+      if (memcmp (tok->tp.tok.chars, this_tok->tp.tok.chars,
+                 this_tok->tp.tok.length))
         continue;
+
       if (option_parser_trace)
         fprintf (stderr, "Found symbol %s (%i:%i) as %i \n",
-                tok->tp.tok.chars, 
-                tok->tp.tok.location.line, tok->tp.tok.charno,
-                NUMERIC_TYPE (this));
+                tok->tp.tok.chars, LOCATION_LINE (tok->tp.tok.location),
+                tok->tp.tok.charno, NUMERIC_TYPE (this));
       return this;
     }
+
   if (option_parser_trace)
     fprintf (stderr, "Not found symbol %s (%i:%i) as %i \n",
-            tok->tp.tok.chars, 
-            tok->tp.tok.location.line, tok->tp.tok.charno, tok->type);
+            tok->tp.tok.chars, LOCATION_LINE (tok->tp.tok.location),
+            tok->tp.tok.charno, tok->type);
   return NULL;
 }
 
 {
   switch (item->category)
     {
-    case   token_category:
+    case token_category:
     case production_category:
     case parameter_category:
       break;
 
-/*
-
-    TREELANG Compiler interface to GCC's middle end (treetree.c)
-    Called by the parser.
+/* TREELANG Compiler interface to GCC's middle end (treetree.c)
+   Called by the parser.
 
-    If you want a working example of how to write a front end to GCC,
-    you are in the right place.
+   If you want a working example of how to write a front end to GCC,
+   you are in the right place.
 
-    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-    1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+   1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
-    This code is based on toy.c written by Richard Kenner.
+   This code is based on toy.c written by Richard Kenner.
 
-    It was later modified by Jonathan Bartlett whose changes have all
-    been removed (by Tim Josling).
+   It was later modified by Jonathan Bartlett whose changes have all
+   been removed (by Tim Josling).
 
-    Various bits and pieces were cloned from the GCC main tree, as
-    GCC evolved, for COBOLForGCC, by Tim Josling.
+   Various bits and pieces were cloned from the GCC main tree, as
+   GCC evolved, for COBOLForGCC, by Tim Josling.
 
-    It was adapted to TREELANG by Tim Josling 2001.
+   It was adapted to TREELANG by Tim Josling 2001.
 
-    Updated to function-at-a-time by James A. Morrison, 2004.
+   Updated to function-at-a-time by James A. Morrison, 2004.
 
-    ---------------------------------------------------------------------------
+   -----------------------------------------------------------------------
 
-    This program is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2, or (at your option) any
-    later version.
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, 59 Temple Place - Suite 330,
-    Boston, MA 02111-1307, USA.
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
 
-    In other words, you are welcome to use, share and improve this program.
-    You are forbidden to forbid anyone else to use, share and improve
-    what you give them.   Help stamp out software-hoarding!
+   In other words, you are welcome to use, share and improve this program.
+   You are forbidden to forbid anyone else to use, share and improve
+   what you give them.   Help stamp out software-hoarding!
 
-    ---------------------------------------------------------------------------
+   -----------------------------------------------------------------------  */
 
- */
-
-/*
-  Assumption: garbage collection is never called implicitly.  It will
-  not be called 'at any time' when short of memory.  It will only be
-  called explicitly at the end of each function.  This removes the
-  need for a *lot* of bother to ensure everything is in the mark trees
-  at all times.  */
+/* Assumption: garbage collection is never called implicitly.  It will
+   not be called 'at any time' when short of memory.  It will only be
+   called explicitly at the end of each function.  This removes the
+   need for a *lot* of bother to ensure everything is in the mark trees
+   at all times.  */
 
 /* Note, it is OK to use GCC extensions such as long long in a compiler front
    end.  This is because the GCC front ends are built using GCC.   */
 {
   tree cond_exp, cond;
   cond_exp = fold (build2 (NE_EXPR, boolean_type_node, exp,
-                     fold (build1 (CONVERT_EXPR, TREE_TYPE (exp), integer_zero_node))));
+                          fold (build1 (CONVERT_EXPR, TREE_TYPE (exp),
+                                        integer_zero_node))));
   SET_EXPR_LOCATION (cond_exp, loc);
   cond = build3 (COND_EXPR, void_type_node, cond_exp, NULL_TREE,
                  NULL_TREE);
 
   TYPE_NAME (TREE_TYPE (var_decl)) = TYPE_NAME (var_type);
   return pushdecl (copy_node (var_decl));
-
 }
 
 
 
       {
         tree fun_ptr;
-        fun_ptr = fold (build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (op1)),
-                                op1));
+        fun_ptr = fold (build1 (ADDR_EXPR,
+                                build_pointer_type (TREE_TYPE (op1)), op1));
         ret1 = build3 (CALL_EXPR, type, fun_ptr, nreverse (op2), NULL_TREE);
       }
       break;
 {
   tree new_exp;
   new_exp = tree_cons (NULL_TREE,
-                       fold (build1 (CONVERT_EXPR, TREE_TYPE (proto_exp), exp)),
-                       NULL_TREE);
+                       fold (build1 (CONVERT_EXPR, TREE_TYPE (proto_exp),
+                                    exp)), NULL_TREE);
   if (!list)
     return new_exp;
   return chainon (new_exp, list);