[SCM] FreeFem++ packaging branch, master, updated. debian/3.16-1-22-g182c946

Dimitrios Eftaxiopoulos eftaxi12 at otenet.gr
Sun Nov 27 15:42:06 UTC 2011


The following commit has been merged in the master branch:
commit 5e8884aa91c5475aa67076467c49ce3ed3e91398
Merge: 19eb8f6732596f8d793ff5c1fbfd5ff3f524aedd b365eaeded255b0662d471557020ac2c14b82d24
Author: Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
Date:   Sun Nov 27 16:01:18 2011 +0200

    Merge commit 'upstream/3.17'
    
    Conflicts:
    	DOC/freefem++doc.pdf
    	examples++-load/all.edp

diff --combined examples++-load/load.link.in
index 3dd56af,8224bba..8704c62
--- a/examples++-load/load.link.in
+++ b/examples++-load/load.link.in
@@@ -108,7 -108,7 +108,7 @@@ while [ $# -ne 0 ]  ; d
  	MPICXX=*) MPICXX=`echo $1|sed 's/[A-Z0-9]*=//'`;withmpi=yes ;;
  	F77=*) F77=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
  	CXXFLAGS=*) CXXFLAGS=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
- 	FFLAGS=*) FFFFLAGS=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
+ 	FFLAGS=*) FFLAGS=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
  	MPI_LIB=*) MPI_LIB=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
  	-auto) autodep=yes;args=$argsp;;
  	-mpi) withmpi=yes;;
@@@ -171,7 -171,8 +171,8 @@@ if [ -z "$out" ] ; then  out=$o  ; fi
  if [ -z "$CXX"  ];then  CXX=g++ ; fi
  if [ -n "$withmpi" ]; then  CXX=$MPICXX;fi
  
- WMPI_LIB="$MPI_LIB"
+ test "$withmpi" = "yes" && WMPI_LIB="$MPI_LIB"
+ 
  INC="$INCFF $INC"  
  SUF=so
  SHARED="-shared"
@@@ -196,7 -197,7 +197,7 @@@ case "$WIN32$uu" i
          FLAGS=' '
          LIBS="'$b/libff.dll' $LIBS $DLL"
          SUF=dll;;
 -    FreeBSD|NetBSD)
 +    FreeBSD|NetBSD|GNU/kFreeBSD)
  	SHARED="-shared" 
  	FLAGS='-fPIC';;
  	# 64 bit Linux needs -fPIC (ALH)
@@@ -213,7 -214,10 +214,10 @@@
  esac
  
  
- FLAGS="$FLAGS $DEBUG $FFCXXFLAGS"
+ #FLAGS="$FLAGS $DEBUG $FFCXXFLAGS"
+ #  change F. H Version 3.17 
+ FLAGS="$FLAGS $DEBUG"
+ 
  if [ -n "$ffiles$files$fileso" ] ; then
      if [  -n "$WIN32"  -a  ! -f "$bin/libff.dll"  ]; then
  	echo " Sorry, no freefem .dll file (libff.dll)  in $bin dir "
@@@ -221,24 -225,24 +225,24 @@@
  	exit 1;
      fi
      if [ "$files" ] ;then 
- 	echo $CXX -c $FLAGS $CXXFLAGS $INC $PIC $files
+ 	echo $CXX -c $FLAGS $CXXFLAGS $FFCXXFLAGS $INC $PIC $files
  	if [  $do = yes ] ; then 
- 	    eval $CXX -c $INC $FLAGS $CXXFLAGS $PIC  $files
+ 	    eval $CXX -c $INC $FLAGS $CXXFLAGS $FFCXXFLAGS  $PIC  $files
  	    ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
  	fi
      fi
      if [ "$ffiles" ] ;then 
- 	echo $F77 -c $FLAGS $FFFFLAGS $INC $PIC $ffiles
+ 	echo $F77 -c $FLAGS $FFLAGS $FFFFLAGS $INC $PIC $ffiles
  	LIBS="$FFFLIBS $LIBS"
  	if [  $do = yes ] ; then 
- 	    eval $F77 -c $INC $FLAGS $FFFFLAGS $PIC  $ffiles
+ 	    eval $F77 -c $INC $FFLAGS $FLAGS $FFFFLAGS $PIC  $ffiles
  	    ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
  	fi
      fi
      if [ "$CONLY" != yes ]; then
- 	echo $CXX $SHARED $FLAGS $CXXFLAGS $fileso -o $out.$SUF $LIBS $DLL $OTHER $WMPI_LIB
+ 	echo $CXX $SHARED $FLAGS $CXXFLAGS $FFCXXFLAGS $fileso -o $out.$SUF $LIBS $DLL $OTHER $WMPI_LIB
  	if [  $do = yes ] ; then 
- 	   eval $CXX $SHARED $FLAGS $CXXFLAGS $fileso -o $out.$SUF $LIBS $DLL $OTHER $WMPI_LIB
+ 	   eval $CXX $SHARED $FLAGS $CXXFLAGS $FFCXXFLAGS $fileso -o $out.$SUF $LIBS $DLL $OTHER $WMPI_LIB
  	    ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
  	fi
  	if [  "$bin" != "." ]; then
diff --combined src/lglib/lg.tab.cpp
index 784c531,46f0242..aba475f
--- a/src/lglib/lg.tab.cpp
+++ b/src/lglib/lg.tab.cpp
@@@ -1,21 -1,24 +1,21 @@@
 -/* A Bison parser, made by GNU Bison 2.3.  */
 +/* A Bison parser, made by GNU Bison 2.5.  */
  
 -/* Skeleton implementation for Bison's Yacc-like parsers in C
 -
 -   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 -   Free Software Foundation, Inc.
 -
 -   This program is free software; you can redistribute it and/or modify
 +/* Bison implementation for Yacc-like parsers in C
 +   
 +      Copyright (C) 1984, 1989-1990, 2000-2011 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.
 -
 +   the Free Software Foundation, either version 3 of the License, 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.
 -
 +   
     You should have received a copy of the GNU General Public License
 -   along with this program; if not, write to the Free Software
 -   Foundation, Inc., 51 Franklin Street, Fifth Floor,
 -   Boston, MA 02110-1301, USA.  */
 +   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
  
  /* As a special exception, you may create a larger work that contains
     part or all of the Bison parser skeleton and distribute that work
@@@ -26,7 -29,7 +26,7 @@@
     special exception, which will cause the skeleton and the resulting
     Bison output files to be licensed under the GNU General Public
     License without this special exception.
 -
 +   
     This special exception was added by the Free Software Foundation in
     version 2.2 of Bison.  */
  
@@@ -44,7 -47,7 +44,7 @@@
  #define YYBISON 1
  
  /* Bison version.  */
 -#define YYBISON_VERSION "2.3"
 +#define YYBISON_VERSION "2.5"
  
  /* Skeleton name.  */
  #define YYSKELETON_NAME "yacc.c"
@@@ -52,28 -55,133 +52,28 @@@
  /* Pure parsers.  */
  #define YYPURE 0
  
 +/* Push parsers.  */
 +#define YYPUSH 0
 +
 +/* Pull parsers.  */
 +#define YYPULL 1
 +
  /* Using locations.  */
  #define YYLSP_NEEDED 0
  
  /* Substitute the variable and function names.  */
 -#define yyparse lgparse
 -#define yylex   lglex
 -#define yyerror lgerror
 -#define yylval  lglval
 -#define yychar  lgchar
 -#define yydebug lgdebug
 -#define yynerrs lgnerrs
 -
 -
 -/* Tokens.  */
 -#ifndef YYTOKENTYPE
 -# define YYTOKENTYPE
 -   /* Put the tokens into the symbol table, so that GDB and other debuggers
 -      know about them.  */
 -   enum yytokentype {
 -     IF = 258,
 -     ELSE = 259,
 -     SET = 260,
 -     GTGT = 261,
 -     LTLT = 262,
 -     OR = 263,
 -     AND = 264,
 -     NE = 265,
 -     EQ = 266,
 -     GE = 267,
 -     LE = 268,
 -     DOTSLASH = 269,
 -     DOTSTAR = 270,
 -     MOINSMOINS = 271,
 -     PLUSPLUS = 272,
 -     UNARY = 273,
 -     LNUM = 274,
 -     DNUM = 275,
 -     CNUM = 276,
 -     ID = 277,
 -     FESPACEID = 278,
 -     IDPARAM = 279,
 -     STRING = 280,
 -     ENDOFFILE = 281,
 -     INCLUDE = 282,
 -     LOAD = 283,
 -     BIDON = 284,
 -     FOR = 285,
 -     WHILE = 286,
 -     BREAK = 287,
 -     CONTINUE = 288,
 -     RETURN = 289,
 -     TRY = 290,
 -     CATCH = 291,
 -     THROW = 292,
 -     TYPE = 293,
 -     FUNCTION = 294,
 -     FESPACE = 295,
 -     FESPACE1 = 296,
 -     FESPACE3 = 297,
 -     PLUSEQ = 298,
 -     MOINSEQ = 299,
 -     MULEQ = 300,
 -     DIVEQ = 301,
 -     DOTMULEQ = 302,
 -     DOTDIVEQ = 303,
 -     ARROW = 304,
 -     BORDER = 305,
 -     CURVE = 306,
 -     SOLVE = 307
 -   };
 -#endif
 -/* Tokens.  */
 -#define IF 258
 -#define ELSE 259
 -#define SET 260
 -#define GTGT 261
 -#define LTLT 262
 -#define OR 263
 -#define AND 264
 -#define NE 265
 -#define EQ 266
 -#define GE 267
 -#define LE 268
 -#define DOTSLASH 269
 -#define DOTSTAR 270
 -#define MOINSMOINS 271
 -#define PLUSPLUS 272
 -#define UNARY 273
 -#define LNUM 274
 -#define DNUM 275
 -#define CNUM 276
 -#define ID 277
 -#define FESPACEID 278
 -#define IDPARAM 279
 -#define STRING 280
 -#define ENDOFFILE 281
 -#define INCLUDE 282
 -#define LOAD 283
 -#define BIDON 284
 -#define FOR 285
 -#define WHILE 286
 -#define BREAK 287
 -#define CONTINUE 288
 -#define RETURN 289
 -#define TRY 290
 -#define CATCH 291
 -#define THROW 292
 -#define TYPE 293
 -#define FUNCTION 294
 -#define FESPACE 295
 -#define FESPACE1 296
 -#define FESPACE3 297
 -#define PLUSEQ 298
 -#define MOINSEQ 299
 -#define MULEQ 300
 -#define DIVEQ 301
 -#define DOTMULEQ 302
 -#define DOTDIVEQ 303
 -#define ARROW 304
 -#define BORDER 305
 -#define CURVE 306
 -#define SOLVE 307
 -
 -
 +#define yyparse         lgparse
 +#define yylex           lglex
 +#define yyerror         lgerror
 +#define yylval          lglval
 +#define yychar          lgchar
 +#define yydebug         lgdebug
 +#define yynerrs         lgnerrs
  
  
  /* Copy the first part of user declarations.  */
 +
 +/* Line 268 of yacc.c  */
  #line 1 "lg.ypp"
   
      // -*- Mode : c++ -*-
@@@ -119,7 -227,7 +119,7 @@@
  #include "error.hpp"
  class Iden;
  #include "strversionnumber.hpp"
- 
+ #include "InitFunct.hpp"
  #ifdef __MWERKS__
  #ifdef __INTEL__
  #include <malloc.h>
@@@ -198,9 -306,6 +198,9 @@@ void (*init_lgparallele)()=0
  void (*end_parallele)()=0;
  
  
 +/* Line 268 of yacc.c  */
 +#line 203 "lg.tab.cpp"
 +
  /* Enabling traces.  */
  #ifndef YYDEBUG
  # define YYDEBUG 1
@@@ -219,75 -324,10 +219,75 @@@
  # define YYTOKEN_TABLE 0
  #endif
  
 +
 +/* Tokens.  */
 +#ifndef YYTOKENTYPE
 +# define YYTOKENTYPE
 +   /* Put the tokens into the symbol table, so that GDB and other debuggers
 +      know about them.  */
 +   enum yytokentype {
 +     IF = 258,
 +     ELSE = 259,
 +     SET = 260,
 +     GTGT = 261,
 +     LTLT = 262,
 +     OR = 263,
 +     AND = 264,
 +     NE = 265,
 +     EQ = 266,
 +     GE = 267,
 +     LE = 268,
 +     DOTSLASH = 269,
 +     DOTSTAR = 270,
 +     MOINSMOINS = 271,
 +     PLUSPLUS = 272,
 +     UNARY = 273,
 +     LNUM = 274,
 +     DNUM = 275,
 +     CNUM = 276,
 +     ID = 277,
 +     FESPACEID = 278,
 +     IDPARAM = 279,
 +     STRING = 280,
 +     ENDOFFILE = 281,
 +     INCLUDE = 282,
 +     LOAD = 283,
 +     BIDON = 284,
 +     FOR = 285,
 +     WHILE = 286,
 +     BREAK = 287,
 +     CONTINUE = 288,
 +     RETURN = 289,
 +     TRY = 290,
 +     CATCH = 291,
 +     THROW = 292,
 +     TYPE = 293,
 +     FUNCTION = 294,
 +     FESPACE = 295,
 +     FESPACE1 = 296,
 +     FESPACE3 = 297,
 +     PLUSEQ = 298,
 +     MOINSEQ = 299,
 +     MULEQ = 300,
 +     DIVEQ = 301,
 +     DOTMULEQ = 302,
 +     DOTDIVEQ = 303,
 +     ARROW = 304,
 +     BORDER = 305,
 +     CURVE = 306,
 +     SOLVE = 307
 +   };
 +#endif
 +
 +
 +
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
  typedef union YYSTYPE
 +{
 +
 +/* Line 293 of yacc.c  */
  #line 124 "lg.ypp"
 -{ 
 + 
   double dnum;
   long lnum;
   char * str;
@@@ -300,23 -340,22 +300,23 @@@
   Block * block; 
   ListOfId *clist_id;
  /* ListCatch * clist_Catchs;*/
 -}
 -/* Line 193 of yacc.c.  */
 -#line 346 "lg.tab.cpp"
 -	YYSTYPE;
 +
 +
 +
 +/* Line 293 of yacc.c  */
 +#line 308 "lg.tab.cpp"
 +} YYSTYPE;
 +# define YYSTYPE_IS_TRIVIAL 1
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
  # define YYSTYPE_IS_DECLARED 1
  #endif
  
  
  /* Copy the second part of user declarations.  */
  
  
 -/* Line 216 of yacc.c.  */
 -#line 359 "lg.tab.cpp"
 +/* Line 343 of yacc.c  */
 +#line 320 "lg.tab.cpp"
  
  #ifdef short
  # undef short
@@@ -391,14 -430,14 +391,14 @@@ typedef short int yytype_int16
  #if (defined __STDC__ || defined __C99__FUNC__ \
       || defined __cplusplus || defined _MSC_VER)
  static int
 -YYID (int i)
 +YYID (int yyi)
  #else
  static int
 -YYID (i)
 -    int i;
 +YYID (yyi)
 +    int yyi;
  #endif
  {
 -  return i;
 +  return yyi;
  }
  #endif
  
@@@ -419,11 -458,11 +419,11 @@@
  #    define alloca _alloca
  #   else
  #    define YYSTACK_ALLOC alloca
 -#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
 +#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
       || defined __cplusplus || defined _MSC_VER)
  #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 -#     ifndef _STDLIB_H
 -#      define _STDLIB_H 1
 +#     ifndef EXIT_SUCCESS
 +#      define EXIT_SUCCESS 0
  #     endif
  #    endif
  #   endif
@@@ -446,24 -485,24 +446,24 @@@
  #  ifndef YYSTACK_ALLOC_MAXIMUM
  #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  #  endif
 -#  if (defined __cplusplus && ! defined _STDLIB_H \
 +#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
         && ! ((defined YYMALLOC || defined malloc) \
  	     && (defined YYFREE || defined free)))
  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 -#   ifndef _STDLIB_H
 -#    define _STDLIB_H 1
 +#   ifndef EXIT_SUCCESS
 +#    define EXIT_SUCCESS 0
  #   endif
  #  endif
  #  ifndef YYMALLOC
  #   define YYMALLOC malloc
 -#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
 +#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
       || defined __cplusplus || defined _MSC_VER)
  void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
  #   endif
  #  endif
  #  ifndef YYFREE
  #   define YYFREE free
 -#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
 +#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
       || defined __cplusplus || defined _MSC_VER)
  void free (void *); /* INFRINGES ON USER NAME SPACE */
  #   endif
@@@ -479,9 -518,9 +479,9 @@@
  /* A type that is properly aligned for any stack member.  */
  union yyalloc
  {
 -  yytype_int16 yyss;
 -  YYSTYPE yyvs;
 -  };
 +  yytype_int16 yyss_alloc;
 +  YYSTYPE yyvs_alloc;
 +};
  
  /* The size of the maximum gap between one aligned stack and the next.  */
  # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@@ -492,27 -531,6 +492,27 @@@
       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
        + YYSTACK_GAP_MAXIMUM)
  
 +# define YYCOPY_NEEDED 1
 +
 +/* Relocate STACK from its old location to the new one.  The
 +   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 +   elements in the stack, and YYPTR gives the new location of the
 +   stack.  Advance YYPTR to a properly aligned location for the next
 +   stack.  */
 +# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
 +    do									\
 +      {									\
 +	YYSIZE_T yynewbytes;						\
 +	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
 +	Stack = &yyptr->Stack_alloc;					\
 +	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 +	yyptr += yynewbytes / sizeof (*yyptr);				\
 +      }									\
 +    while (YYID (0))
 +
 +#endif
 +
 +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
  /* Copy COUNT objects from FROM to TO.  The source and destination do
     not overlap.  */
  # ifndef YYCOPY
@@@ -530,7 -548,24 +530,7 @@@
        while (YYID (0))
  #  endif
  # endif
 -
 -/* Relocate STACK from its old location to the new one.  The
 -   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 -   elements in the stack, and YYPTR gives the new location of the
 -   stack.  Advance YYPTR to a properly aligned location for the next
 -   stack.  */
 -# define YYSTACK_RELOCATE(Stack)					\
 -    do									\
 -      {									\
 -	YYSIZE_T yynewbytes;						\
 -	YYCOPY (&yyptr->Stack, Stack, yysize);				\
 -	Stack = &yyptr->Stack;						\
 -	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 -	yyptr += yynewbytes / sizeof (*yyptr);				\
 -      }									\
 -    while (YYID (0))
 -
 -#endif
 +#endif /* !YYCOPY_NEEDED */
  
  /* YYFINAL -- State number of the termination state.  */
  #define YYFINAL  81
@@@ -726,7 -761,7 +726,7 @@@ static const char *const yytname[] 
    "$end", "error", "$undefined", "IF", "ELSE", "','", "'='", "SET",
    "GTGT", "LTLT", "'|'", "OR", "'&'", "AND", "NE", "EQ", "'<'", "'>'",
    "GE", "LE", "'+'", "'-'", "'*'", "'/'", "'%'", "DOTSLASH", "DOTSTAR",
 -  "'!'", "MOINSMOINS", "PLUSPLUS", "UNARY", "'^'", "'''", "'_'", "'('",
 +  "'!'", "MOINSMOINS", "PLUSPLUS", "UNARY", "'^'", "'\\''", "'_'", "'('",
    "'['", "'.'", "')'", "']'", "LNUM", "DNUM", "CNUM", "ID", "FESPACEID",
    "IDPARAM", "STRING", "ENDOFFILE", "INCLUDE", "LOAD", "BIDON", "FOR",
    "WHILE", "BREAK", "CONTINUE", "RETURN", "TRY", "CATCH", "THROW", "TYPE",
@@@ -736,9 -771,9 +736,9 @@@
    "instructions", "list_of_id_args", "list_of_id1", "id", "list_of_dcls",
    "parameters_list", "type_of_dcl", "ID_space", "ID_array_space",
    "fespace123", "fespace", "spaceIDa", "spaceIDb", "spaceIDs",
 -  "fespace_def", "fespace_def_list", "declaration", "@1", "@2", "@3",
 -  "begin", "end", "for_loop", "while_loop", "declaration_for", "@4", "try",
 -  "instruction", "catchs", "bornes", "border_expr", "Expr", "unop",
 +  "fespace_def", "fespace_def_list", "declaration", "$@1", "$@2", "$@3",
 +  "begin", "end", "for_loop", "while_loop", "declaration_for", "$@4",
 +  "try", "instruction", "catchs", "bornes", "border_expr", "Expr", "unop",
    "no_comma_expr", "no_set_expr", "no_ternary_expr", "sub_script_expr",
    "parameters", "array", "unary_expr", "pow_expr", "primary", 0
  };
@@@ -808,8 -843,8 +808,8 @@@ static const yytype_uint8 yyr2[] 
         3,     4,     3,     4,     2,     2,     4,     3,     3
  };
  
 -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
 -   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
 +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
 +   Performed when YYTABLE doesn't specify something else to do.  Zero
     means the default is an error.  */
  static const yytype_uint8 yydefact[] =
  {
@@@ -926,7 -961,8 +926,7 @@@ static const yytype_int16 yypgoto[] 
  
  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
     positive, shift that token.  If negative, reduce the rule which
 -   number is the opposite.  If zero, do what YYDEFACT says.
 -   If YYTABLE_NINF, syntax error.  */
 +   number is the opposite.  If YYTABLE_NINF, syntax error.  */
  #define YYTABLE_NINF -31
  static const yytype_int16 yytable[] =
  {
@@@ -1040,12 -1076,6 +1040,12 @@@
       117,   118,   119,   120,   121,   122,   123
  };
  
 +#define yypact_value_is_default(yystate) \
 +  ((yystate) == (-230))
 +
 +#define yytable_value_is_error(yytable_value) \
 +  YYID (0)
 +
  static const yytype_int16 yycheck[] =
  {
        33,     7,    39,    24,    86,     8,   235,   132,     5,   138,
@@@ -1217,18 -1247,9 +1217,18 @@@ static const yytype_uint8 yystos[] 
  
  /* Like YYERROR except do call yyerror.  This remains here temporarily
     to ease the transition to the new meaning of YYERROR, for GCC.
 -   Once GCC version 2 has supplanted version 1, this can go.  */
 +   Once GCC version 2 has supplanted version 1, this can go.  However,
 +   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
 +   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
 +   discussed.  */
  
  #define YYFAIL		goto yyerrlab
 +#if defined YYFAIL
 +  /* This is here to suppress warnings from the GCC cpp's
 +     -Wunused-macros.  Normally we don't worry about that warning, but
 +     some users do, and we want to make it easy for users to remove
 +     YYFAIL uses, which will produce warnings from Bison 2.5.  */
 +#endif
  
  #define YYRECOVERING()  (!!yyerrstatus)
  
@@@ -1238,6 -1259,7 +1238,6 @@@ do								
      {								\
        yychar = (Token);						\
        yylval = (Value);						\
 -      yytoken = YYTRANSLATE (yychar);				\
        YYPOPSTACK (1);						\
        goto yybackup;						\
      }								\
@@@ -1279,10 -1301,19 +1279,10 @@@ while (YYID (0)
  #endif
  
  
 -/* YY_LOCATION_PRINT -- Print the location on the stream.
 -   This macro was not mandated originally: define only if we know
 -   we won't break user code: when these are the locations we know.  */
 +/* This macro is provided for backward compatibility. */
  
  #ifndef YY_LOCATION_PRINT
 -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
 -#  define YY_LOCATION_PRINT(File, Loc)			\
 -     fprintf (File, "%d.%d-%d.%d",			\
 -	      (Loc).first_line, (Loc).first_column,	\
 -	      (Loc).last_line,  (Loc).last_column)
 -# else
 -#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 -# endif
 +# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
  #endif
  
  
@@@ -1386,20 -1417,17 +1386,20 @@@ yy_symbol_print (yyoutput, yytype, yyva
  #if (defined __STDC__ || defined __C99__FUNC__ \
       || defined __cplusplus || defined _MSC_VER)
  static void
 -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
 +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
  #else
  static void
 -yy_stack_print (bottom, top)
 -    yytype_int16 *bottom;
 -    yytype_int16 *top;
 +yy_stack_print (yybottom, yytop)
 +    yytype_int16 *yybottom;
 +    yytype_int16 *yytop;
  #endif
  {
    YYFPRINTF (stderr, "Stack now");
 -  for (; bottom <= top; ++bottom)
 -    YYFPRINTF (stderr, " %d", *bottom);
 +  for (; yybottom <= yytop; yybottom++)
 +    {
 +      int yybot = *yybottom;
 +      YYFPRINTF (stderr, " %d", yybot);
 +    }
    YYFPRINTF (stderr, "\n");
  }
  
@@@ -1433,11 -1461,11 +1433,11 @@@ yy_reduce_print (yyvsp, yyrule
    /* The symbols being reduced.  */
    for (yyi = 0; yyi < yynrhs; yyi++)
      {
 -      fprintf (stderr, "   $%d = ", yyi + 1);
 +      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
        yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
  		       &(yyvsp[(yyi + 1) - (yynrhs)])
  		       		       );
 -      fprintf (stderr, "\n");
 +      YYFPRINTF (stderr, "\n");
      }
  }
  
@@@ -1474,6 -1502,7 +1474,6 @@@ int yydebug
  # define YYMAXDEPTH 10000
  #endif
  
 -
  
  #if YYERROR_VERBOSE
  
@@@ -1576,142 -1605,115 +1576,142 @@@ yytnamerr (char *yyres, const char *yys
  }
  # endif
  
 -/* Copy into YYRESULT an error message about the unexpected token
 -   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
 -   including the terminating null byte.  If YYRESULT is null, do not
 -   copy anything; just return the number of bytes that would be
 -   copied.  As a special case, return 0 if an ordinary "syntax error"
 -   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
 -   size calculation.  */
 -static YYSIZE_T
 -yysyntax_error (char *yyresult, int yystate, int yychar)
 -{
 -  int yyn = yypact[yystate];
 +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
 +   about the unexpected token YYTOKEN for the state stack whose top is
 +   YYSSP.
  
 -  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
 -    return 0;
 -  else
 +   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
 +   not large enough to hold the message.  In that case, also set
 +   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
 +   required number of bytes is too large to store.  */
 +static int
 +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 +                yytype_int16 *yyssp, int yytoken)
 +{
 +  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
 +  YYSIZE_T yysize = yysize0;
 +  YYSIZE_T yysize1;
 +  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
 +  /* Internationalized format string. */
 +  const char *yyformat = 0;
 +  /* Arguments of yyformat. */
 +  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
 +  /* Number of reported tokens (one for the "unexpected", one per
 +     "expected"). */
 +  int yycount = 0;
 +
 +  /* There are many possibilities here to consider:
 +     - Assume YYFAIL is not used.  It's too flawed to consider.  See
 +       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
 +       for details.  YYERROR is fine as it does not invoke this
 +       function.
 +     - If this state is a consistent state with a default action, then
 +       the only way this function was invoked is if the default action
 +       is an error action.  In that case, don't check for expected
 +       tokens because there are none.
 +     - The only way there can be no lookahead present (in yychar) is if
 +       this state is a consistent state with a default action.  Thus,
 +       detecting the absence of a lookahead is sufficient to determine
 +       that there is no unexpected or expected token to report.  In that
 +       case, just report a simple "syntax error".
 +     - Don't assume there isn't a lookahead just because this state is a
 +       consistent state with a default action.  There might have been a
 +       previous inconsistent state, consistent state with a non-default
 +       action, or user semantic action that manipulated yychar.
 +     - Of course, the expected token list depends on states to have
 +       correct lookahead information, and it depends on the parser not
 +       to perform extra reductions after fetching a lookahead from the
 +       scanner and before detecting a syntax error.  Thus, state merging
 +       (from LALR or IELR) and default reductions corrupt the expected
 +       token list.  However, the list is correct for canonical LR with
 +       one exception: it will still contain any token that will not be
 +       accepted due to an error action in a later state.
 +  */
 +  if (yytoken != YYEMPTY)
      {
 -      int yytype = YYTRANSLATE (yychar);
 -      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
 -      YYSIZE_T yysize = yysize0;
 -      YYSIZE_T yysize1;
 -      int yysize_overflow = 0;
 -      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
 -      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
 -      int yyx;
 -
 -# if 0
 -      /* This is so xgettext sees the translatable formats that are
 -	 constructed on the fly.  */
 -      YY_("syntax error, unexpected %s");
 -      YY_("syntax error, unexpected %s, expecting %s");
 -      YY_("syntax error, unexpected %s, expecting %s or %s");
 -      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
 -      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
 -# endif
 -      char *yyfmt;
 -      char const *yyf;
 -      static char const yyunexpected[] = "syntax error, unexpected %s";
 -      static char const yyexpecting[] = ", expecting %s";
 -      static char const yyor[] = " or %s";
 -      char yyformat[sizeof yyunexpected
 -		    + sizeof yyexpecting - 1
 -		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
 -		       * (sizeof yyor - 1))];
 -      char const *yyprefix = yyexpecting;
 -
 -      /* Start YYX at -YYN if negative to avoid negative indexes in
 -	 YYCHECK.  */
 -      int yyxbegin = yyn < 0 ? -yyn : 0;
 -
 -      /* Stay within bounds of both yycheck and yytname.  */
 -      int yychecklim = YYLAST - yyn + 1;
 -      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
 -      int yycount = 1;
 -
 -      yyarg[0] = yytname[yytype];
 -      yyfmt = yystpcpy (yyformat, yyunexpected);
 -
 -      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 -	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 -	  {
 -	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
 -	      {
 -		yycount = 1;
 -		yysize = yysize0;
 -		yyformat[sizeof yyunexpected - 1] = '\0';
 -		break;
 -	      }
 -	    yyarg[yycount++] = yytname[yyx];
 -	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
 -	    yysize_overflow |= (yysize1 < yysize);
 -	    yysize = yysize1;
 -	    yyfmt = yystpcpy (yyfmt, yyprefix);
 -	    yyprefix = yyor;
 -	  }
 +      int yyn = yypact[*yyssp];
 +      yyarg[yycount++] = yytname[yytoken];
 +      if (!yypact_value_is_default (yyn))
 +        {
 +          /* Start YYX at -YYN if negative to avoid negative indexes in
 +             YYCHECK.  In other words, skip the first -YYN actions for
 +             this state because they are default actions.  */
 +          int yyxbegin = yyn < 0 ? -yyn : 0;
 +          /* Stay within bounds of both yycheck and yytname.  */
 +          int yychecklim = YYLAST - yyn + 1;
 +          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
 +          int yyx;
 +
 +          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 +            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
 +                && !yytable_value_is_error (yytable[yyx + yyn]))
 +              {
 +                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
 +                  {
 +                    yycount = 1;
 +                    yysize = yysize0;
 +                    break;
 +                  }
 +                yyarg[yycount++] = yytname[yyx];
 +                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
 +                if (! (yysize <= yysize1
 +                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
 +                  return 2;
 +                yysize = yysize1;
 +              }
 +        }
 +    }
  
 -      yyf = YY_(yyformat);
 -      yysize1 = yysize + yystrlen (yyf);
 -      yysize_overflow |= (yysize1 < yysize);
 -      yysize = yysize1;
 +  switch (yycount)
 +    {
 +# define YYCASE_(N, S)                      \
 +      case N:                               \
 +        yyformat = S;                       \
 +      break
 +      YYCASE_(0, YY_("syntax error"));
 +      YYCASE_(1, YY_("syntax error, unexpected %s"));
 +      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
 +      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
 +      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
 +      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
 +# undef YYCASE_
 +    }
  
 -      if (yysize_overflow)
 -	return YYSIZE_MAXIMUM;
 +  yysize1 = yysize + yystrlen (yyformat);
 +  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
 +    return 2;
 +  yysize = yysize1;
  
 -      if (yyresult)
 -	{
 -	  /* Avoid sprintf, as that infringes on the user's name space.
 -	     Don't have undefined behavior even if the translation
 -	     produced a string with the wrong number of "%s"s.  */
 -	  char *yyp = yyresult;
 -	  int yyi = 0;
 -	  while ((*yyp = *yyf) != '\0')
 -	    {
 -	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
 -		{
 -		  yyp += yytnamerr (yyp, yyarg[yyi++]);
 -		  yyf += 2;
 -		}
 -	      else
 -		{
 -		  yyp++;
 -		  yyf++;
 -		}
 -	    }
 -	}
 -      return yysize;
 +  if (*yymsg_alloc < yysize)
 +    {
 +      *yymsg_alloc = 2 * yysize;
 +      if (! (yysize <= *yymsg_alloc
 +             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
 +        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
 +      return 1;
      }
 +
 +  /* Avoid sprintf, as that infringes on the user's name space.
 +     Don't have undefined behavior even if the translation
 +     produced a string with the wrong number of "%s"s.  */
 +  {
 +    char *yyp = *yymsg;
 +    int yyi = 0;
 +    while ((*yyp = *yyformat) != '\0')
 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
 +        {
 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
 +          yyformat += 2;
 +        }
 +      else
 +        {
 +          yyp++;
 +          yyformat++;
 +        }
 +  }
 +  return 0;
  }
  #endif /* YYERROR_VERBOSE */
 -
  
  /*-----------------------------------------------.
  | Release the memory associated to this symbol.  |
@@@ -1743,9 -1745,10 +1743,9 @@@ yydestruct (yymsg, yytype, yyvaluep
  	break;
      }
  }
 -
  
 -/* Prevent warnings from -Wmissing-prototypes.  */
  
 +/* Prevent warnings from -Wmissing-prototypes.  */
  #ifdef YYPARSE_PARAM
  #if defined __STDC__ || defined __cplusplus
  int yyparse (void *YYPARSE_PARAM);
@@@ -1761,16 -1764,18 +1761,16 @@@ int yyparse ()
  #endif /* ! YYPARSE_PARAM */
  
  
 -
 -/* The look-ahead symbol.  */
 +/* The lookahead symbol.  */
  int yychar;
  
 -/* The semantic value of the look-ahead symbol.  */
 +/* The semantic value of the lookahead symbol.  */
  YYSTYPE yylval;
  
  /* Number of syntax errors so far.  */
  int yynerrs;
  
  
 -
  /*----------.
  | yyparse.  |
  `----------*/
@@@ -1797,66 -1802,66 +1797,66 @@@ yyparse (
  #endif
  #endif
  {
 -  
 -  int yystate;
 -  int yyn;
 -  int yyresult;
 -  /* Number of tokens to shift before error messages enabled.  */
 -  int yyerrstatus;
 -  /* Look-ahead token as an internal (translated) token number.  */
 -  int yytoken = 0;
 -#if YYERROR_VERBOSE
 -  /* Buffer for error messages, and its allocated size.  */
 -  char yymsgbuf[128];
 -  char *yymsg = yymsgbuf;
 -  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
 -#endif
 -
 -  /* Three stacks and their tools:
 -     `yyss': related to states,
 -     `yyvs': related to semantic values,
 -     `yyls': related to locations.
 +    int yystate;
 +    /* Number of tokens to shift before error messages enabled.  */
 +    int yyerrstatus;
  
 -     Refer to the stacks thru separate pointers, to allow yyoverflow
 -     to reallocate them elsewhere.  */
 +    /* The stacks and their tools:
 +       `yyss': related to states.
 +       `yyvs': related to semantic values.
  
 -  /* The state stack.  */
 -  yytype_int16 yyssa[YYINITDEPTH];
 -  yytype_int16 *yyss = yyssa;
 -  yytype_int16 *yyssp;
 +       Refer to the stacks thru separate pointers, to allow yyoverflow
 +       to reallocate them elsewhere.  */
  
 -  /* The semantic value stack.  */
 -  YYSTYPE yyvsa[YYINITDEPTH];
 -  YYSTYPE *yyvs = yyvsa;
 -  YYSTYPE *yyvsp;
 +    /* The state stack.  */
 +    yytype_int16 yyssa[YYINITDEPTH];
 +    yytype_int16 *yyss;
 +    yytype_int16 *yyssp;
  
 +    /* The semantic value stack.  */
 +    YYSTYPE yyvsa[YYINITDEPTH];
 +    YYSTYPE *yyvs;
 +    YYSTYPE *yyvsp;
  
 +    YYSIZE_T yystacksize;
  
 -#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 -
 -  YYSIZE_T yystacksize = YYINITDEPTH;
 -
 +  int yyn;
 +  int yyresult;
 +  /* Lookahead token as an internal (translated) token number.  */
 +  int yytoken;
    /* The variables used to return semantic value and location from the
       action routines.  */
    YYSTYPE yyval;
  
 +#if YYERROR_VERBOSE
 +  /* Buffer for error messages, and its allocated size.  */
 +  char yymsgbuf[128];
 +  char *yymsg = yymsgbuf;
 +  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
 +#endif
 +
 +#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  
    /* The number of symbols on the RHS of the reduced rule.
       Keep to zero when no symbol should be popped.  */
    int yylen = 0;
  
 +  yytoken = 0;
 +  yyss = yyssa;
 +  yyvs = yyvsa;
 +  yystacksize = YYINITDEPTH;
 +
    YYDPRINTF ((stderr, "Starting parse\n"));
  
    yystate = 0;
    yyerrstatus = 0;
    yynerrs = 0;
 -  yychar = YYEMPTY;		/* Cause a token to be read.  */
 +  yychar = YYEMPTY; /* Cause a token to be read.  */
  
    /* Initialize stack pointers.
       Waste one element of value and location stack
       so that they stay on the same level as the state stack.
       The wasted elements are never initialized.  */
 -
    yyssp = yyss;
    yyvsp = yyvs;
  
@@@ -1886,6 -1891,7 +1886,6 @@@
  	YYSTYPE *yyvs1 = yyvs;
  	yytype_int16 *yyss1 = yyss;
  
 -
  	/* Each stack pointer address is followed by the size of the
  	   data in use in that stack, in bytes.  This used to be a
  	   conditional around just the two extra args, but that might
@@@ -1893,6 -1899,7 +1893,6 @@@
  	yyoverflow (YY_("memory exhausted"),
  		    &yyss1, yysize * sizeof (*yyssp),
  		    &yyvs1, yysize * sizeof (*yyvsp),
 -
  		    &yystacksize);
  
  	yyss = yyss1;
@@@ -1915,8 -1922,9 +1915,8 @@@
  	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
  	if (! yyptr)
  	  goto yyexhaustedlab;
 -	YYSTACK_RELOCATE (yyss);
 -	YYSTACK_RELOCATE (yyvs);
 -
 +	YYSTACK_RELOCATE (yyss_alloc, yyss);
 +	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
  #  undef YYSTACK_RELOCATE
  	if (yyss1 != yyssa)
  	  YYSTACK_FREE (yyss1);
@@@ -1927,6 -1935,7 +1927,6 @@@
        yyssp = yyss + yysize - 1;
        yyvsp = yyvs + yysize - 1;
  
 -
        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
  		  (unsigned long int) yystacksize));
  
@@@ -1936,9 -1945,6 +1936,9 @@@
  
    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  
 +  if (yystate == YYFINAL)
 +    YYACCEPT;
 +
    goto yybackup;
  
  /*-----------.
@@@ -1947,16 -1953,16 +1947,16 @@@
  yybackup:
  
    /* Do appropriate processing given the current state.  Read a
 -     look-ahead token if we need one and don't already have one.  */
 +     lookahead token if we need one and don't already have one.  */
  
 -  /* First try to decide what to do without reference to look-ahead token.  */
 +  /* First try to decide what to do without reference to lookahead token.  */
    yyn = yypact[yystate];
 -  if (yyn == YYPACT_NINF)
 +  if (yypact_value_is_default (yyn))
      goto yydefault;
  
 -  /* Not known => get a look-ahead token if don't already have one.  */
 +  /* Not known => get a lookahead token if don't already have one.  */
  
 -  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
 +  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
    if (yychar == YYEMPTY)
      {
        YYDPRINTF ((stderr, "Reading a token: "));
@@@ -1982,22 -1988,26 +1982,22 @@@
    yyn = yytable[yyn];
    if (yyn <= 0)
      {
 -      if (yyn == 0 || yyn == YYTABLE_NINF)
 -	goto yyerrlab;
 +      if (yytable_value_is_error (yyn))
 +        goto yyerrlab;
        yyn = -yyn;
        goto yyreduce;
      }
  
 -  if (yyn == YYFINAL)
 -    YYACCEPT;
 -
    /* Count tokens shifted since error; after three, turn off error
       status.  */
    if (yyerrstatus)
      yyerrstatus--;
  
 -  /* Shift the look-ahead token.  */
 +  /* Shift the lookahead token.  */
    YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
  
 -  /* Discard the shifted token unless it is eof.  */
 -  if (yychar != YYEOF)
 -    yychar = YYEMPTY;
 +  /* Discard the shifted token.  */
 +  yychar = YYEMPTY;
  
    yystate = yyn;
    *++yyvsp = yylval;
@@@ -2037,8 -2047,6 +2037,8 @@@ yyreduce
    switch (yyn)
      {
          case 2:
 +
 +/* Line 1806 of yacc.c  */
  #line 257 "lg.ypp"
      {
  		        const char *  magicffglut="#!ffglutdata3.1\n";// for complex and vector 3d plot 
@@@ -2079,472 -2087,340 +2079,472 @@@
                          
  			    if (NbPtr) { cout << " ######## We forget of deleting   " << NbPtr 
  			                      << " Nb pointer,   " <<  lg1-lg0 << "Bytes " << " ,  mpirank " << mpirank <<endl;}
 -  return 0;;}
 +  return 0;}
      break;
  
    case 4:
 +
 +/* Line 1806 of yacc.c  */
  #line 302 "lg.ypp"
 -    {(yyval.cinst)=(yyvsp[(1) - (1)].cexp);;;;}
 +    {(yyval.cinst)=(yyvsp[(1) - (1)].cexp);;;}
      break;
  
    case 5:
 +
 +/* Line 1806 of yacc.c  */
  #line 303 "lg.ypp"
      { (yyval.cinst)= ((yyvsp[(1) - (2)].cinst)+=(yyvsp[(2) - (2)].cexp)) ;}
      break;
  
    case 6:
 +
 +/* Line 1806 of yacc.c  */
  #line 306 "lg.ypp"
 -    { (yyval.clist_id)=new ListOfId();;}
 +    { (yyval.clist_id)=new ListOfId();}
      break;
  
    case 7:
 +
 +/* Line 1806 of yacc.c  */
  #line 307 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(1) - (1)].str)));}
      break;
  
    case 8:
 +
 +/* Line 1806 of yacc.c  */
  #line 308 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].cexp))) ;}
      break;
  
    case 9:
 +
 +/* Line 1806 of yacc.c  */
  #line 309 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(2) - (2)].str),Find((yyvsp[(1) - (2)].str)),atype<FE<double,2> **>()));}
      break;
  
    case 10:
 +
 +/* Line 1806 of yacc.c  */
  #line 310 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (3)].str),Find((yyvsp[(1) - (3)].str)),atype<FE<double,2> **>(),true));}
      break;
  
    case 11:
 +
 +/* Line 1806 of yacc.c  */
  #line 311 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(2) - (2)].str),Find((yyvsp[(1) - (2)].str)),atype<FE<double,3> **>()));}
      break;
  
    case 12:
 +
 +/* Line 1806 of yacc.c  */
  #line 312 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (3)].str),Find((yyvsp[(1) - (3)].str)),atype<FE<double,3> **>(),true));}
      break;
  
    case 13:
 +
 +/* Line 1806 of yacc.c  */
  #line 313 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(2) - (2)].str),C_F0(),(yyvsp[(1) - (2)].type)->right())) ;}
      break;
  
    case 14:
 +
 +/* Line 1806 of yacc.c  */
  #line 314 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (3)].str),C_F0(),(yyvsp[(1) - (3)].type),true)) ;}
      break;
  
    case 15:
 +
 +/* Line 1806 of yacc.c  */
  #line 315 "lg.ypp"
      { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(2) - (3)].clist_id))) ;}
      break;
  
    case 16:
 +
 +/* Line 1806 of yacc.c  */
  #line 316 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (3)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (3)].str))) ;}
      break;
  
    case 17:
 +
 +/* Line 1806 of yacc.c  */
  #line 317 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (5)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(4) - (5)].clist_id))) ;}
      break;
  
    case 18:
 +
 +/* Line 1806 of yacc.c  */
  #line 318 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (5)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (5)].str),(yyvsp[(5) - (5)].cexp))) ;}
      break;
  
    case 19:
 +
 +/* Line 1806 of yacc.c  */
  #line 319 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (4)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(4) - (4)].str),Find((yyvsp[(3) - (4)].str)),atype<FE<double,2> **>())) ;}
      break;
  
    case 20:
 +
 +/* Line 1806 of yacc.c  */
  #line 320 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (5)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(5) - (5)].str),Find((yyvsp[(3) - (5)].str)),atype<FE<double,2> **>(),true)) ;}
      break;
  
    case 21:
 +
 +/* Line 1806 of yacc.c  */
  #line 321 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (4)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(4) - (4)].str),Find((yyvsp[(3) - (4)].str)),atype<FE<double,3> **>())) ;}
      break;
  
    case 22:
 +
 +/* Line 1806 of yacc.c  */
  #line 322 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (5)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(5) - (5)].str),Find((yyvsp[(3) - (5)].str)),atype<FE<double,3> **>(),true)) ;}
      break;
  
    case 23:
 +
 +/* Line 1806 of yacc.c  */
  #line 323 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (4)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(4) - (4)].str),C_F0(),(yyvsp[(3) - (4)].type)->right())) ;}
      break;
  
    case 24:
 +
 +/* Line 1806 of yacc.c  */
  #line 324 "lg.ypp"
      { (yyval.clist_id) = (yyvsp[(1) - (5)].clist_id); (yyval.clist_id)->push_back(UnId((yyvsp[(5) - (5)].str),C_F0(),(yyvsp[(3) - (5)].type),true)) ;}
      break;
  
    case 25:
 +
 +/* Line 1806 of yacc.c  */
  #line 327 "lg.ypp"
 -    { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(1) - (1)].str))); ;}
 +    { (yyval.clist_id) = new ListOfId(); (yyval.clist_id)->push_back(UnId((yyvsp[(1) - (1)].str))); }
      break;
  
    case 26:
 +
 +/* Line 1806 of yacc.c  */
  #line 328 "lg.ypp"
 -    { (yyval.clist_id)=(yyvsp[(1) - (3)].clist_id)  ; (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (3)].str))); ;}
 +    { (yyval.clist_id)=(yyvsp[(1) - (3)].clist_id)  ; (yyval.clist_id)->push_back(UnId((yyvsp[(3) - (3)].str))); }
      break;
  
    case 31:
 +
 +/* Line 1806 of yacc.c  */
  #line 333 "lg.ypp"
      {(yyval.cexp)=currentblock->NewVar<LocalVariable>((yyvsp[(1) - (1)].str),dcltype);}
      break;
  
    case 32:
 +
 +/* Line 1806 of yacc.c  */
  #line 334 "lg.ypp"
      {(yyval.cexp)=currentblock->NewVar<LocalVariable>((yyvsp[(1) - (3)].str),dcltype,(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 33:
 +
 +/* Line 1806 of yacc.c  */
  #line 335 "lg.ypp"
      {(yyval.cexp)=currentblock->NewVar<LocalVariable>((yyvsp[(1) - (4)].str),dcltype,(yyvsp[(3) - (4)].args));
                                                (yyvsp[(3) - (4)].args).destroy();}
      break;
  
    case 34:
 +
 +/* Line 1806 of yacc.c  */
  #line 337 "lg.ypp"
      {(yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 35:
 +
 +/* Line 1806 of yacc.c  */
  #line 344 "lg.ypp"
      {(yyval.args)=(yyvsp[(1) - (1)].cexp);}
      break;
  
    case 36:
 +
 +/* Line 1806 of yacc.c  */
  #line 345 "lg.ypp"
      {(yyval.args)=Find((yyvsp[(1) - (2)].str));}
      break;
  
    case 37:
 +
 +/* Line 1806 of yacc.c  */
  #line 346 "lg.ypp"
      {(yyval.args)=Find((yyvsp[(1) - (2)].str));}
      break;
  
    case 38:
 +
 +/* Line 1806 of yacc.c  */
  #line 347 "lg.ypp"
      {(yyval.args)=Find((yyvsp[(1) - (2)].str));}
      break;
  
    case 39:
 +
 +/* Line 1806 of yacc.c  */
  #line 348 "lg.ypp"
      { (yyval.args)=make_pair<const char *,const C_F0>((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 40:
 +
 +/* Line 1806 of yacc.c  */
  #line 349 "lg.ypp"
      { (yyval.args) = ((yyvsp[(1) - (3)].args) += (yyvsp[(3) - (3)].cexp)) ;}
      break;
  
    case 41:
 +
 +/* Line 1806 of yacc.c  */
  #line 350 "lg.ypp"
      { (yyval.args)= ((yyvsp[(1) - (5)].args)+= make_pair<const char *,const C_F0>((yyvsp[(3) - (5)].str),(yyvsp[(5) - (5)].cexp)));}
      break;
  
    case 43:
 +
 +/* Line 1806 of yacc.c  */
  #line 354 "lg.ypp"
      {(yyval.type)=TypeArray((yyvsp[(1) - (4)].type),(yyvsp[(3) - (4)].type));}
      break;
  
    case 44:
 +
 +/* Line 1806 of yacc.c  */
  #line 355 "lg.ypp"
      {(yyval.type)=TypeArray((yyvsp[(1) - (6)].type),(yyvsp[(3) - (6)].type),(yyvsp[(5) - (6)].type));}
      break;
  
    case 45:
 +
 +/* Line 1806 of yacc.c  */
  #line 356 "lg.ypp"
      {(yyval.type)=TypeTemplate((yyvsp[(1) - (4)].type),(yyvsp[(3) - (4)].type));}
      break;
  
    case 46:
 +
 +/* Line 1806 of yacc.c  */
  #line 357 "lg.ypp"
      {(yyval.type)=TypeArray(TypeTemplate((yyvsp[(1) - (7)].type),(yyvsp[(3) - (7)].type)),(yyvsp[(6) - (7)].type));}
      break;
  
    case 47:
 +
 +/* Line 1806 of yacc.c  */
  #line 358 "lg.ypp"
      {(yyval.type)=TypeArray(TypeTemplate((yyvsp[(1) - (9)].type),(yyvsp[(3) - (9)].type)),(yyvsp[(6) - (9)].type),(yyvsp[(8) - (9)].type));}
      break;
  
    case 48:
 +
 +/* Line 1806 of yacc.c  */
  #line 365 "lg.ypp"
 -    { (yyval.cexp) =  NewFEvariable((yyvsp[(1) - (1)].str),currentblock,fespacetype,fespacecomplex,fespacedim); ;}
 +    { (yyval.cexp) =  NewFEvariable((yyvsp[(1) - (1)].str),currentblock,fespacetype,fespacecomplex,fespacedim); }
      break;
  
    case 49:
 +
 +/* Line 1806 of yacc.c  */
  #line 366 "lg.ypp"
 -    { (yyval.cexp) =  NewFEarray((yyvsp[(1) - (4)].str),currentblock,fespacetype,(yyvsp[(3) - (4)].cexp),fespacecomplex,fespacedim); ;}
 +    { (yyval.cexp) =  NewFEarray((yyvsp[(1) - (4)].str),currentblock,fespacetype,(yyvsp[(3) - (4)].cexp),fespacecomplex,fespacedim); }
      break;
  
    case 50:
 +
 +/* Line 1806 of yacc.c  */
  #line 367 "lg.ypp"
      { (yyval.cexp) =  NewFEvariable((yyvsp[(1) - (3)].str),currentblock,fespacetype,(yyvsp[(3) - (3)].cexp),fespacecomplex,fespacedim) ;}
      break;
  
    case 51:
 +
 +/* Line 1806 of yacc.c  */
  #line 368 "lg.ypp"
      { (yyval.cexp) =  NewFEvariable((yyvsp[(2) - (3)].clist_id),currentblock,fespacetype,fespacecomplex,fespacedim) ;}
      break;
  
    case 52:
 +
 +/* Line 1806 of yacc.c  */
  #line 369 "lg.ypp"
      { (yyval.cexp) =  NewFEarray((yyvsp[(2) - (6)].clist_id),currentblock,fespacetype,(yyvsp[(5) - (6)].cexp),fespacecomplex,fespacedim) ;}
      break;
  
    case 53:
 +
 +/* Line 1806 of yacc.c  */
  #line 370 "lg.ypp"
      { (yyval.cexp) =  NewFEvariable((yyvsp[(2) - (5)].clist_id),currentblock,fespacetype,(yyvsp[(5) - (5)].cexp),fespacecomplex,fespacedim) ;}
      break;
  
    case 54:
 +
 +/* Line 1806 of yacc.c  */
  #line 373 "lg.ypp"
 -    { (yyval.cexp) =  NewFEarray((yyvsp[(1) - (4)].str),currentblock,fespacetype,(yyvsp[(3) - (4)].cexp),fespacecomplex,fespacedim); ;}
 +    { (yyval.cexp) =  NewFEarray((yyvsp[(1) - (4)].str),currentblock,fespacetype,(yyvsp[(3) - (4)].cexp),fespacecomplex,fespacedim); }
      break;
  
    case 55:
 +
 +/* Line 1806 of yacc.c  */
  #line 374 "lg.ypp"
      { (yyval.cexp) =  NewFEarray((yyvsp[(2) - (6)].clist_id),currentblock,fespacetype,(yyvsp[(5) - (6)].cexp),fespacecomplex,fespacedim) ;}
      break;
  
    case 56:
 +
 +/* Line 1806 of yacc.c  */
  #line 378 "lg.ypp"
      { fespacedim=2;}
      break;
  
    case 57:
 +
 +/* Line 1806 of yacc.c  */
  #line 378 "lg.ypp"
      { fespacedim=1;}
      break;
  
    case 58:
 +
 +/* Line 1806 of yacc.c  */
  #line 378 "lg.ypp"
      { fespacedim=3;}
      break;
  
    case 59:
 +
 +/* Line 1806 of yacc.c  */
  #line 379 "lg.ypp"
 -    {fespacecomplex=false;  fespacetype = Find((yyvsp[(1) - (1)].str));;}
 +    {fespacecomplex=false;  fespacetype = Find((yyvsp[(1) - (1)].str));}
      break;
  
    case 60:
 +
 +/* Line 1806 of yacc.c  */
  #line 380 "lg.ypp"
      {
               if ((yyvsp[(3) - (4)].type) != typevarreal && (yyvsp[(3) - (4)].type) != typevarcomplex) lgerror (" type of finite element <real> or <complex>");
               fespacecomplex=((yyvsp[(3) - (4)].type)==typevarcomplex);
 -             fespacetype = Find((yyvsp[(1) - (4)].str));;}
 +             fespacetype = Find((yyvsp[(1) - (4)].str));}
      break;
  
    case 61:
 +
 +/* Line 1806 of yacc.c  */
  #line 385 "lg.ypp"
      {  (yyval.cexp) = (yyvsp[(1) - (1)].cexp)  ;}
      break;
  
    case 62:
 +
 +/* Line 1806 of yacc.c  */
  #line 386 "lg.ypp"
 -    { (yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));;}
 +    { (yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 63:
 +
 +/* Line 1806 of yacc.c  */
  #line 388 "lg.ypp"
      {  (yyval.cexp) = (yyvsp[(1) - (1)].cexp)  ;}
      break;
  
    case 64:
 +
 +/* Line 1806 of yacc.c  */
  #line 389 "lg.ypp"
 -    { (yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));;}
 +    { (yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 65:
 +
 +/* Line 1806 of yacc.c  */
  #line 391 "lg.ypp"
      { (yyval.cexp)=0;  (yyval.cexp) = (yyvsp[(2) - (2)].cexp);}
      break;
  
    case 66:
 +
 +/* Line 1806 of yacc.c  */
  #line 392 "lg.ypp"
      { (yyval.cexp)=0;  (yyval.cexp) = (yyvsp[(5) - (5)].cexp);}
      break;
  
    case 67:
 +
 +/* Line 1806 of yacc.c  */
  #line 396 "lg.ypp"
      {(yyval.cexp)=currentblock->NewVar<LocalVariableFES,size_t>((yyvsp[(1) - (4)].str),typeFESpace((yyvsp[(3) - (4)].args)),(yyvsp[(3) - (4)].args),dimFESpaceImage((yyvsp[(3) - (4)].args)));
 -     (yyvsp[(3) - (4)].args).destroy(); ;}
 +     (yyvsp[(3) - (4)].args).destroy(); }
      break;
  
    case 69:
 +
 +/* Line 1806 of yacc.c  */
  #line 400 "lg.ypp"
      {(yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 70:
 +
 +/* Line 1806 of yacc.c  */
  #line 403 "lg.ypp"
      {dcltype=(yyvsp[(1) - (1)].type);}
      break;
  
    case 71:
 +
 +/* Line 1806 of yacc.c  */
  #line 403 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(3) - (4)].cexp);}
      break;
  
    case 72:
 +
 +/* Line 1806 of yacc.c  */
  #line 404 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(2) - (3)].cexp);}
      break;
  
    case 73:
 +
 +/* Line 1806 of yacc.c  */
  #line 405 "lg.ypp"
      { (yyval.cexp)=(yyvsp[(1) - (2)].cexp);}
      break;
  
    case 74:
 +
 +/* Line 1806 of yacc.c  */
  #line 406 "lg.ypp"
 -    {(yyval.cexp)=currentblock->NewID((yyvsp[(1) - (5)].type),(yyvsp[(2) - (5)].str),(yyvsp[(4) - (5)].cexp));;}
 +    {(yyval.cexp)=currentblock->NewID((yyvsp[(1) - (5)].type),(yyvsp[(2) - (5)].str),(yyvsp[(4) - (5)].cexp));}
      break;
  
    case 75:
 +
 +/* Line 1806 of yacc.c  */
  #line 408 "lg.ypp"
      {   /* use the stack to store the prev return type*/
                        assert(kkembtype+1<nbembtype);
@@@ -2553,194 -2429,144 +2553,194 @@@
                        (yyvsp[(5) - (6)].routine)=new Routine((yyvsp[(1) - (6)].type),(yyvsp[(2) - (6)].type)->right(),(yyvsp[(3) - (6)].str),(yyvsp[(5) - (6)].clist_id),currentblock);
  		      // routineinblock[kkembtype]->Add($3,"(",$<routine>5); //pas recursif pour l'instanat test  FH 27 dec 2008
                       // cout << " \n after new routine \n " << endl;                      
 -                      ;}
 +                      }
      break;
  
    case 76:
 +
 +/* Line 1806 of yacc.c  */
  #line 417 "lg.ypp"
      { currentblock=(yyvsp[(5) - (10)].routine)->Set((yyvsp[(9) - (10)].cinst));
                         currentblock->Add((yyvsp[(3) - (10)].str),"(",(yyvsp[(5) - (10)].routine)); //pas recursif pour l'instant test  FH 27 dec 2008
                         kkembtype--;
                         (yyval.cexp)=0;
                      
 -                        ;}
 +                        }
      break;
  
    case 77:
 +
 +/* Line 1806 of yacc.c  */
  #line 424 "lg.ypp"
 -    {Block::open(currentblock); (yyvsp[(1) - (5)].type)->SetArgs((yyvsp[(4) - (5)].clist_id));;}
 +    {Block::open(currentblock); (yyvsp[(1) - (5)].type)->SetArgs((yyvsp[(4) - (5)].clist_id));}
      break;
  
    case 78:
 +
 +/* Line 1806 of yacc.c  */
  #line 426 "lg.ypp"
      {  (yyval.cinst)=currentblock->close(currentblock);
                           (yyval.cexp)=currentblock->NewID((yyvsp[(1) - (9)].type),(yyvsp[(2) - (9)].str),(yyvsp[(8) - (9)].cexp),*(yyvsp[(4) - (9)].clist_id));
                           delete (yyvsp[(4) - (9)].clist_id); //  FH 23032005
 -                         ;}
 +                         }
      break;
  
    case 79:
 +
 +/* Line 1806 of yacc.c  */
  #line 432 "lg.ypp"
      {  Block::open(currentblock);}
      break;
  
    case 80:
 +
 +/* Line 1806 of yacc.c  */
  #line 433 "lg.ypp"
      {  (yyval.cexp)=currentblock->close(currentblock);}
      break;
  
    case 81:
 +
 +/* Line 1806 of yacc.c  */
  #line 435 "lg.ypp"
      {ffassert(inloopcount<sizeStackOfLoop);  // modif FH july 2005
 -                StackOfLoop[inloopcount++]=currentblock;;}
 +                StackOfLoop[inloopcount++]=currentblock;}
      break;
  
    case 82:
 +
 +/* Line 1806 of yacc.c  */
  #line 437 "lg.ypp"
      {ffassert(inloopcount<sizeStackOfLoop);
 -                StackOfLoop[inloopcount++]=currentblock;;}
 +                StackOfLoop[inloopcount++]=currentblock;}
      break;
  
    case 83:
 +
 +/* Line 1806 of yacc.c  */
  #line 442 "lg.ypp"
 -    {dcltype=(yyvsp[(1) - (1)].type); Block::open(currentblock);  ;}
 +    {dcltype=(yyvsp[(1) - (1)].type); Block::open(currentblock);  }
      break;
  
    case 84:
 +
 +/* Line 1806 of yacc.c  */
  #line 443 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(3) - (3)].cexp);}
      break;
  
    case 85:
 +
 +/* Line 1806 of yacc.c  */
  #line 445 "lg.ypp"
      { Block::open(currentblock) ;}
      break;
  
    case 86:
 +
 +/* Line 1806 of yacc.c  */
  #line 447 "lg.ypp"
 -    {(yyval.cexp)=0;;}
 +    {(yyval.cexp)=0;}
      break;
  
    case 87:
 +
 +/* Line 1806 of yacc.c  */
  #line 448 "lg.ypp"
 -    {zzzfff->input((yyvsp[(2) - (2)].str));(yyval.cexp)= 0; ;}
 +    {zzzfff->input((yyvsp[(2) - (2)].str));(yyval.cexp)= 0; }
      break;
  
    case 88:
 +
 +/* Line 1806 of yacc.c  */
  #line 449 "lg.ypp"
 -    {load((yyvsp[(2) - (2)].str));(yyval.cexp)= 0; ;}
 +    {load((yyvsp[(2) - (2)].str));(yyval.cexp)= 0; }
      break;
  
    case 89:
 +
 +/* Line 1806 of yacc.c  */
  #line 450 "lg.ypp"
 -    {(yyval.cexp)=Try((yyvsp[(3) - (5)].cinst),(yyvsp[(5) - (5)].cexp),currentblock->close(currentblock));;}
 +    {(yyval.cexp)=Try((yyvsp[(3) - (5)].cinst),(yyvsp[(5) - (5)].cexp),currentblock->close(currentblock));}
      break;
  
    case 90:
 +
 +/* Line 1806 of yacc.c  */
  #line 451 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(1) - (2)].cexp);}
      break;
  
    case 91:
 +
 +/* Line 1806 of yacc.c  */
  #line 452 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(1) - (1)].cexp);}
      break;
  
    case 92:
 +
 +/* Line 1806 of yacc.c  */
  #line 453 "lg.ypp"
      {inloopcount--; (yyval.cexp)=For((yyvsp[(3) - (9)].cexp),(yyvsp[(5) - (9)].cexp),(yyvsp[(7) - (9)].cexp),(yyvsp[(9) - (9)].cexp));}
      break;
  
    case 93:
 +
 +/* Line 1806 of yacc.c  */
  #line 455 "lg.ypp"
      {inloopcount--; 
                  (yyval.cexp)=C_F0(For((yyvsp[(3) - (9)].cexp),(yyvsp[(5) - (9)].cexp),(yyvsp[(7) - (9)].cexp),(yyvsp[(9) - (9)].cexp)),currentblock->close(currentblock));}
      break;
  
    case 94:
 +
 +/* Line 1806 of yacc.c  */
  #line 458 "lg.ypp"
      {inloopcount--;(yyval.cexp)=While((yyvsp[(3) - (5)].cexp),(yyvsp[(5) - (5)].cexp));}
      break;
  
    case 95:
 +
 +/* Line 1806 of yacc.c  */
  #line 459 "lg.ypp"
      {(yyval.cexp)=FIf((yyvsp[(3) - (5)].cexp),(yyvsp[(5) - (5)].cexp));}
      break;
  
    case 96:
 +
 +/* Line 1806 of yacc.c  */
  #line 460 "lg.ypp"
      {(yyval.cexp)=FIf((yyvsp[(3) - (7)].cexp),(yyvsp[(5) - (7)].cexp),(yyvsp[(7) - (7)].cexp));}
      break;
  
    case 97:
 +
 +/* Line 1806 of yacc.c  */
  #line 461 "lg.ypp"
      { 
                        (yyval.cexp)=C_F0(new E_block((yyvsp[(2) - (3)].cinst),(yyvsp[(3) - (3)].cexp)),atype<void>()) ;}
      break;
  
    case 98:
 +
 +/* Line 1806 of yacc.c  */
  #line 463 "lg.ypp"
      {
                        (yyval.cexp)=0;currentblock->NewID(atype<const E_Border *>(),(yyvsp[(2) - (3)].str),C_F0(TheOperators,"[border]",(yyvsp[(3) - (3)].args)));}
      break;
  
    case 99:
 +
 +/* Line 1806 of yacc.c  */
  #line 465 "lg.ypp"
      {
                        (yyval.cexp)=0;currentblock->NewID(atype<const E_Border *>(),(yyvsp[(2) - (6)].str),C_F0(TheOperators,"[border]",(yyvsp[(4) - (6)].args)));}
      break;
  
    case 100:
 +
 +/* Line 1806 of yacc.c  */
  #line 468 "lg.ypp"
      {
                      if(inloopcount) 
@@@ -2749,8 -2575,6 +2749,8 @@@
      break;
  
    case 101:
 +
 +/* Line 1806 of yacc.c  */
  #line 472 "lg.ypp"
      { 
                      if(inloopcount)
@@@ -2759,8 -2583,6 +2759,8 @@@
      break;
  
    case 102:
 +
 +/* Line 1806 of yacc.c  */
  #line 476 "lg.ypp"
      { 
                      if (kkembtype>=0)
@@@ -2769,15 -2591,11 +2769,15 @@@
      break;
  
    case 103:
 +
 +/* Line 1806 of yacc.c  */
  #line 483 "lg.ypp"
 -    {(yyval.cexp) =  (yyvsp[(7) - (7)].cexp); ;}
 +    {(yyval.cexp) =  (yyvsp[(7) - (7)].cexp); }
      break;
  
    case 104:
 +
 +/* Line 1806 of yacc.c  */
  #line 486 "lg.ypp"
      { 
     Block::open(currentblock);
@@@ -2787,8 -2605,6 +2787,8 @@@
      break;
  
    case 105:
 +
 +/* Line 1806 of yacc.c  */
  #line 492 "lg.ypp"
      {   
     (yyval.args) = ((yyvsp[(1) - (2)].args) += (yyvsp[(2) - (2)].cexp));
@@@ -2796,491 -2612,351 +2796,491 @@@
      break;
  
    case 107:
 +
 +/* Line 1806 of yacc.c  */
  #line 499 "lg.ypp"
 -    {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));;}
 +    {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 114:
 +
 +/* Line 1806 of yacc.c  */
  #line 513 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 115:
 +
 +/* Line 1806 of yacc.c  */
  #line 514 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"+=",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 116:
 +
 +/* Line 1806 of yacc.c  */
  #line 515 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"-=",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 117:
 +
 +/* Line 1806 of yacc.c  */
  #line 516 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"*=",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 118:
 +
 +/* Line 1806 of yacc.c  */
  #line 517 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"/=",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 119:
 +
 +/* Line 1806 of yacc.c  */
  #line 518 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,".*=",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 120:
 +
 +/* Line 1806 of yacc.c  */
  #line 519 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"./=",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 122:
 +
 +/* Line 1806 of yacc.c  */
  #line 525 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"?:",(yyvsp[(1) - (5)].cexp),(yyvsp[(3) - (5)].cexp),(yyvsp[(5) - (5)].cexp));}
      break;
  
    case 123:
 +
 +/* Line 1806 of yacc.c  */
  #line 526 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"::",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 124:
 +
 +/* Line 1806 of yacc.c  */
  #line 527 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,"::",(yyvsp[(1) - (5)].cexp),(yyvsp[(3) - (5)].cexp),(yyvsp[(5) - (5)].cexp));}
      break;
  
    case 126:
 +
 +/* Line 1806 of yacc.c  */
  #line 532 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 127:
 +
 +/* Line 1806 of yacc.c  */
  #line 533 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 128:
 +
 +/* Line 1806 of yacc.c  */
  #line 534 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 129:
 +
 +/* Line 1806 of yacc.c  */
  #line 535 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 130:
 +
 +/* Line 1806 of yacc.c  */
  #line 536 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 131:
 +
 +/* Line 1806 of yacc.c  */
  #line 537 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 132:
 +
 +/* Line 1806 of yacc.c  */
  #line 538 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 133:
 +
 +/* Line 1806 of yacc.c  */
  #line 539 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 134:
 +
 +/* Line 1806 of yacc.c  */
  #line 540 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 135:
 +
 +/* Line 1806 of yacc.c  */
  #line 541 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 136:
 +
 +/* Line 1806 of yacc.c  */
  #line 542 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 137:
 +
 +/* Line 1806 of yacc.c  */
  #line 543 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 138:
 +
 +/* Line 1806 of yacc.c  */
  #line 544 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 139:
 +
 +/* Line 1806 of yacc.c  */
  #line 545 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 140:
 +
 +/* Line 1806 of yacc.c  */
  #line 546 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 141:
 +
 +/* Line 1806 of yacc.c  */
  #line 547 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 142:
 +
 +/* Line 1806 of yacc.c  */
  #line 548 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 143:
 +
 +/* Line 1806 of yacc.c  */
  #line 549 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 144:
 +
 +/* Line 1806 of yacc.c  */
  #line 550 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 145:
 +
 +/* Line 1806 of yacc.c  */
  #line 555 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(1) - (1)].cexp);}
      break;
  
    case 146:
 +
 +/* Line 1806 of yacc.c  */
  #line 556 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,":");}
      break;
  
    case 147:
 +
 +/* Line 1806 of yacc.c  */
  #line 557 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,":",(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 148:
 +
 +/* Line 1806 of yacc.c  */
  #line 558 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,":",(yyvsp[(1) - (5)].cexp),(yyvsp[(3) - (5)].cexp),(yyvsp[(5) - (5)].cexp));}
      break;
  
    case 149:
 +
 +/* Line 1806 of yacc.c  */
  #line 562 "lg.ypp"
      {(yyval.args)=0;}
      break;
  
    case 150:
 +
 +/* Line 1806 of yacc.c  */
  #line 563 "lg.ypp"
      {(yyval.args)=Find((yyvsp[(1) - (1)].str));}
      break;
  
    case 151:
 +
 +/* Line 1806 of yacc.c  */
  #line 564 "lg.ypp"
      {(yyval.args)=Find((yyvsp[(1) - (1)].str));}
      break;
  
    case 152:
 +
 +/* Line 1806 of yacc.c  */
  #line 565 "lg.ypp"
      {(yyval.args)=Find((yyvsp[(1) - (1)].str));}
      break;
  
    case 153:
 +
 +/* Line 1806 of yacc.c  */
  #line 566 "lg.ypp"
      { (yyval.args)=make_pair<const char *,const C_F0>((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 154:
 +
 +/* Line 1806 of yacc.c  */
  #line 567 "lg.ypp"
      {(yyval.args)=(yyvsp[(1) - (1)].cexp);}
      break;
  
    case 155:
 +
 +/* Line 1806 of yacc.c  */
  #line 568 "lg.ypp"
      { (yyval.args) = ((yyvsp[(1) - (3)].args) += Find((yyvsp[(3) - (3)].str))) ;}
      break;
  
    case 156:
 +
 +/* Line 1806 of yacc.c  */
  #line 569 "lg.ypp"
      { (yyval.args) = ((yyvsp[(1) - (3)].args) += Find((yyvsp[(3) - (3)].str))) ;}
      break;
  
    case 157:
 +
 +/* Line 1806 of yacc.c  */
  #line 570 "lg.ypp"
      { (yyval.args) = ((yyvsp[(1) - (3)].args) += Find((yyvsp[(3) - (3)].str))) ;}
      break;
  
    case 158:
 +
 +/* Line 1806 of yacc.c  */
  #line 571 "lg.ypp"
      { (yyval.args) = ((yyvsp[(1) - (3)].args) += (yyvsp[(3) - (3)].cexp)) ;}
      break;
  
    case 159:
 +
 +/* Line 1806 of yacc.c  */
  #line 572 "lg.ypp"
      { (yyval.args)= ((yyvsp[(1) - (5)].args)+= make_pair<const char *,const C_F0>((yyvsp[(3) - (5)].str),(yyvsp[(5) - (5)].cexp))) ;}
      break;
  
    case 160:
 +
 +/* Line 1806 of yacc.c  */
  #line 575 "lg.ypp"
      {(yyval.args)=(yyvsp[(1) - (1)].cexp);}
      break;
  
    case 161:
 +
 +/* Line 1806 of yacc.c  */
  #line 576 "lg.ypp"
      {(yyval.args) = ((yyvsp[(1) - (3)].args) += (yyvsp[(3) - (3)].cexp)) ;}
      break;
  
    case 163:
 +
 +/* Line 1806 of yacc.c  */
  #line 581 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(1) - (2)].oper),(yyvsp[(2) - (2)].cexp));}
      break;
  
    case 165:
 +
 +/* Line 1806 of yacc.c  */
  #line 585 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 166:
 +
 +/* Line 1806 of yacc.c  */
  #line 586 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (3)].oper),(yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].cexp));}
      break;
  
    case 167:
 +
 +/* Line 1806 of yacc.c  */
  #line 587 "lg.ypp"
      {(yyval.cexp)=C_F0(TheOperators,(yyvsp[(2) - (2)].oper),(yyvsp[(1) - (2)].cexp));}
      break;
  
    case 168:
 +
 +/* Line 1806 of yacc.c  */
  #line 591 "lg.ypp"
 -    {(yyval.cexp)=Find((yyvsp[(1) - (1)].str));;}
 +    {(yyval.cexp)=Find((yyvsp[(1) - (1)].str));}
      break;
  
    case 169:
 +
 +/* Line 1806 of yacc.c  */
  #line 592 "lg.ypp"
      {(yyval.cexp)= CConstant((yyvsp[(1) - (1)].lnum));}
      break;
  
    case 170:
 +
 +/* Line 1806 of yacc.c  */
  #line 593 "lg.ypp"
      {(yyval.cexp)= CConstant((yyvsp[(1) - (1)].dnum));}
      break;
  
    case 171:
 +
 +/* Line 1806 of yacc.c  */
  #line 594 "lg.ypp"
      {(yyval.cexp)= CConstant(complex<double>(0,(yyvsp[(1) - (1)].dnum)));}
      break;
  
    case 172:
 +
 +/* Line 1806 of yacc.c  */
  #line 595 "lg.ypp"
      {(yyval.cexp)= CConstant<const char *>((yyvsp[(1) - (1)].str));}
      break;
  
    case 173:
 +
 +/* Line 1806 of yacc.c  */
  #line 596 "lg.ypp"
 -    {(yyval.cexp)=C_F0((yyvsp[(1) - (4)].cexp),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args));;}
 +    {(yyval.cexp)=C_F0((yyvsp[(1) - (4)].cexp),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args));}
      break;
  
    case 174:
 +
 +/* Line 1806 of yacc.c  */
  #line 597 "lg.ypp"
      {(yyval.cexp)=C_F0((yyvsp[(1) - (4)].cexp),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].cexp));}
      break;
  
    case 175:
 +
 +/* Line 1806 of yacc.c  */
  #line 598 "lg.ypp"
      {(yyval.cexp)=C_F0((yyvsp[(1) - (6)].cexp),(yyvsp[(2) - (6)].oper),(yyvsp[(3) - (6)].cexp),(yyvsp[(5) - (6)].cexp));}
      break;
  
    case 176:
 +
 +/* Line 1806 of yacc.c  */
  #line 599 "lg.ypp"
      {(yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),"[]");}
      break;
  
    case 177:
 +
 +/* Line 1806 of yacc.c  */
  #line 600 "lg.ypp"
 -    { (yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].str)) ;;}
 +    { (yyval.cexp)=C_F0((yyvsp[(1) - (3)].cexp),(yyvsp[(3) - (3)].str)) ;}
      break;
  
    case 178:
 +
 +/* Line 1806 of yacc.c  */
  #line 601 "lg.ypp"
 -    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (3)].str)),(yyvsp[(3) - (3)].str)) ;;}
 +    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (3)].str)),(yyvsp[(3) - (3)].str)) ;}
      break;
  
    case 179:
 +
 +/* Line 1806 of yacc.c  */
  #line 602 "lg.ypp"
 -    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (4)].str)),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args)) ;;}
 +    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (4)].str)),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args)) ;}
      break;
  
    case 180:
 +
 +/* Line 1806 of yacc.c  */
  #line 603 "lg.ypp"
 -    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (3)].str)),(yyvsp[(3) - (3)].str)) ;;}
 +    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (3)].str)),(yyvsp[(3) - (3)].str)) ;}
      break;
  
    case 181:
 +
 +/* Line 1806 of yacc.c  */
  #line 604 "lg.ypp"
 -    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (4)].str)),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args)) ;;}
 +    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (4)].str)),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args)) ;}
      break;
  
    case 182:
 +
 +/* Line 1806 of yacc.c  */
  #line 605 "lg.ypp"
 -    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (3)].str)),(yyvsp[(3) - (3)].str)) ;;}
 +    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (3)].str)),(yyvsp[(3) - (3)].str)) ;}
      break;
  
    case 183:
 +
 +/* Line 1806 of yacc.c  */
  #line 606 "lg.ypp"
 -    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (4)].str)),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args)) ;;}
 +    { (yyval.cexp)=C_F0(Find((yyvsp[(1) - (4)].str)),(yyvsp[(2) - (4)].oper),(yyvsp[(3) - (4)].args)) ;}
      break;
  
    case 184:
 +
 +/* Line 1806 of yacc.c  */
  #line 607 "lg.ypp"
      {(yyval.cexp)=C_F0(TheRightOperators,(yyvsp[(2) - (2)].oper),(yyvsp[(1) - (2)].cexp));}
      break;
  
    case 185:
 +
 +/* Line 1806 of yacc.c  */
  #line 608 "lg.ypp"
      {(yyval.cexp)=C_F0(TheRightOperators,(yyvsp[(2) - (2)].oper),(yyvsp[(1) - (2)].cexp));}
      break;
  
    case 186:
 +
 +/* Line 1806 of yacc.c  */
  #line 609 "lg.ypp"
      {
               if ((yyvsp[(1) - (4)].type)->right()->CastingFrom((yyvsp[(3) - (4)].cexp).left()) ) 
@@@ -3290,40 -2966,24 +3290,40 @@@
                                          (yyvsp[(1) - (4)].type)->right()->name() << endl;
                                  CompileError(" Error in type(exp) "); }
               }
 -            ;}
 +            }
      break;
  
    case 187:
 +
 +/* Line 1806 of yacc.c  */
  #line 618 "lg.ypp"
      {(yyval.cexp)=(yyvsp[(2) - (3)].cexp);}
      break;
  
    case 188:
 +
 +/* Line 1806 of yacc.c  */
  #line 619 "lg.ypp"
      { (yyval.cexp)=C_F0(TheOperators,"[]",(yyvsp[(2) - (3)].args));}
      break;
  
  
 -/* Line 1267 of yacc.c.  */
 -#line 2985 "lg.tab.cpp"
 +
 +/* Line 1806 of yacc.c  */
 +#line 3314 "lg.tab.cpp"
        default: break;
      }
 +  /* User semantic actions sometimes alter yychar, and that requires
 +     that yytoken be updated with the new translation.  We take the
 +     approach of translating immediately before every use of yytoken.
 +     One alternative is translating here after every semantic action,
 +     but that translation would be missed if the semantic action invokes
 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
 +     incorrect destructor might then be invoked immediately.  In the
 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
 +     to an incorrect destructor call or verbose syntax error message
 +     before the lookahead is translated.  */
    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
  
    YYPOPSTACK (yylen);
@@@ -3332,6 -2992,7 +3332,6 @@@
  
    *++yyvsp = yyval;
  
 -
    /* Now `shift' the result of the reduction.  Determine what state
       that goes to, based on the state we popped back to and the rule
       number reduced by.  */
@@@ -3351,10 -3012,6 +3351,10 @@@
  | yyerrlab -- here on detecting error |
  `------------------------------------*/
  yyerrlab:
 +  /* Make sure we have latest lookahead translation.  See comments at
 +     user semantic actions for why this is necessary.  */
 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
 +
    /* If not already recovering from an error, report this error.  */
    if (!yyerrstatus)
      {
@@@ -3362,36 -3019,37 +3362,36 @@@
  #if ! YYERROR_VERBOSE
        yyerror (YY_("syntax error"));
  #else
 +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
 +                                        yyssp, yytoken)
        {
 -	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
 -	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
 -	  {
 -	    YYSIZE_T yyalloc = 2 * yysize;
 -	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
 -	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
 -	    if (yymsg != yymsgbuf)
 -	      YYSTACK_FREE (yymsg);
 -	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
 -	    if (yymsg)
 -	      yymsg_alloc = yyalloc;
 -	    else
 -	      {
 -		yymsg = yymsgbuf;
 -		yymsg_alloc = sizeof yymsgbuf;
 -	      }
 -	  }
 -
 -	if (0 < yysize && yysize <= yymsg_alloc)
 -	  {
 -	    (void) yysyntax_error (yymsg, yystate, yychar);
 -	    yyerror (yymsg);
 -	  }
 -	else
 -	  {
 -	    yyerror (YY_("syntax error"));
 -	    if (yysize != 0)
 -	      goto yyexhaustedlab;
 -	  }
 +        char const *yymsgp = YY_("syntax error");
 +        int yysyntax_error_status;
 +        yysyntax_error_status = YYSYNTAX_ERROR;
 +        if (yysyntax_error_status == 0)
 +          yymsgp = yymsg;
 +        else if (yysyntax_error_status == 1)
 +          {
 +            if (yymsg != yymsgbuf)
 +              YYSTACK_FREE (yymsg);
 +            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
 +            if (!yymsg)
 +              {
 +                yymsg = yymsgbuf;
 +                yymsg_alloc = sizeof yymsgbuf;
 +                yysyntax_error_status = 2;
 +              }
 +            else
 +              {
 +                yysyntax_error_status = YYSYNTAX_ERROR;
 +                yymsgp = yymsg;
 +              }
 +          }
 +        yyerror (yymsgp);
 +        if (yysyntax_error_status == 2)
 +          goto yyexhaustedlab;
        }
 +# undef YYSYNTAX_ERROR
  #endif
      }
  
@@@ -3399,7 -3057,7 +3399,7 @@@
  
    if (yyerrstatus == 3)
      {
 -      /* If just tried and failed to reuse look-ahead token after an
 +      /* If just tried and failed to reuse lookahead token after an
  	 error, discard it.  */
  
        if (yychar <= YYEOF)
@@@ -3416,7 -3074,7 +3416,7 @@@
  	}
      }
  
 -  /* Else will try to reuse look-ahead token after shifting the error
 +  /* Else will try to reuse lookahead token after shifting the error
       token.  */
    goto yyerrlab1;
  
@@@ -3450,7 -3108,7 +3450,7 @@@ yyerrlab1
    for (;;)
      {
        yyn = yypact[yystate];
 -      if (yyn != YYPACT_NINF)
 +      if (!yypact_value_is_default (yyn))
  	{
  	  yyn += YYTERROR;
  	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@@ -3473,6 -3131,9 +3473,6 @@@
        YY_STACK_PRINT (yyss, yyssp);
      }
  
 -  if (yyn == YYFINAL)
 -    YYACCEPT;
 -
    *++yyvsp = yylval;
  
  
@@@ -3497,7 -3158,7 +3497,7 @@@ yyabortlab
    yyresult = 1;
    goto yyreturn;
  
 -#ifndef yyoverflow
 +#if !defined(yyoverflow) || YYERROR_VERBOSE
  /*-------------------------------------------------.
  | yyexhaustedlab -- memory exhaustion comes here.  |
  `-------------------------------------------------*/
@@@ -3508,14 -3169,9 +3508,14 @@@ yyexhaustedlab
  #endif
  
  yyreturn:
 -  if (yychar != YYEOF && yychar != YYEMPTY)
 -     yydestruct ("Cleanup: discarding lookahead",
 -		 yytoken, &yylval);
 +  if (yychar != YYEMPTY)
 +    {
 +      /* Make sure we have latest lookahead translation.  See comments at
 +         user semantic actions for why this is necessary.  */
 +      yytoken = YYTRANSLATE (yychar);
 +      yydestruct ("Cleanup: discarding lookahead",
 +                  yytoken, &yylval);
 +    }
    /* Do not reclaim the symbols of the rule which action triggered
       this YYABORT or YYACCEPT.  */
    YYPOPSTACK (yylen);
@@@ -3539,8 -3195,6 +3539,8 @@@
  }
  
  
 +
 +/* Line 2067 of yacc.c  */
  #line 624 "lg.ypp"
   
  
@@@ -3638,7 -3292,7 +3638,7 @@@ extern  bool echo_edp
  int mainff (int  argc, char **argv)
  {
      
- 
+    ffapi::init(); 
    if(argc)  
      prognamearg=argv[0];
  
@@@ -3708,9 -3362,10 +3708,10 @@@
     zzzfff->Add("try",TRY);
     zzzfff->Add("catch",CATCH);
     zzzfff->Add("throw",THROW);
-    Init_map_type();
+ //   Init_map_type();
     if(verbosity>2 || (mpirank==0 ) ) cout << " Load: ";
-    init_lgfem() ;
+    callInitsFunct() ; //  init for dynamique libs ...
+   // init_lgfem() ;
     init_lgmesh() ;
     init_lgmesh3() ;
     init_algo();
@@@ -3720,6 -3375,7 +3721,7 @@@
  #endif   
  
     if(init_lgparallele)  init_lgparallele(); 
+   //  callInitsFunct() ; //  init for dynamique libs ...
  
     if(verbosity>2 || mpirank==0)  cout << endl;
    zzzfff->input(cc);

-- 
FreeFem++ packaging



More information about the debian-science-commits mailing list