Mercurial > hg > octave-lyh
view bootstrap.conf @ 16320:09f0cb9cac7d
don't modify symbol table scope in the parser
* symtab.h (symbol_table::insert): Accept scope as argument.
* lex.h (symbol_table_context): New class.
(octave_lexer::symtab_context: New data member.
* parse-private.h: Delete.
* parse.h, oct-parse.in.yy (parser_symtab_context): Delete global
variable and all uses.
* lex.ll (octave_lexer::reset): Clear symtab_context.
(octave_base_lexer::handle_superclass_identifier,
octave_base_lexer::handle_meta_identifier,
octave_base_lexer::handle_identifier): Get current symbol table scope
for parsing from symtab_context. Use it to insert new variables in
the symbol table.
* oct-parse.in.yy (ABORT_PARSE): Don't pop symtab_context.
(push_fcn_symtab, param_list_beg): Push newly allocated scope on the
symtab_context stack. Don't modify symbol table scope.
(make_anon_fcn_handle): Get function scope from symtab_context instead
of the symbol table. Pop symtab_context.
(start_function): Get function scope from symtab_context instead
of the symbol table.
(octave_base_parser::recover_from_parsing_function):
Pop symtab_context.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 16 Mar 2013 02:02:43 -0400 |
parents | 3a93af21d206 |
children | a801d0ab5830 |
line wrap: on
line source
# Bootstrap configuration. # Copyright (C) 2006-2007, 2009-2012 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 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, see <http://www.gnu.org/licenses/>. # gnulib modules used by this package. gnulib_modules=" base64 canonicalize chdir close closedir copysign copysignf crypto/md5 dup2 fclose fcntl fflush filemode float floor floorf fnmatch fopen fpucw fseek ftell getcwd gethostname getopt-gnu gettimeofday glob isatty largefile link lstat malloc-gnu mkdir mkfifo mkostemp mktime nanosleep nproc open opendir pathmax putenv progname readdir readlink realloc-gnu rename rmdir round roundf select sigaction signal sigprocmask sleep stat stddef stdint stdio strerror strftime strptime symlink sys_stat sys_time sys_times time times tmpfile trunc truncf unistd unlink vasprintf " # Additional xgettext options to use. Use "\\\newline" to break lines. XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ --from-code=UTF-8\\\ --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\ --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\ --flag=wrapf:1:c-format\\\ ' # If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]" # appears in configure.ac, exclude some unnecessary files. # Without grep's -E option (not portable enough, pre-configure), # the following test is ugly. Also, this depends on the existence # of configure.ac, not the obsolescent-named configure.in. But if # you're using this infrastructure, you should care about such things. gettext_external=0 grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && gettext_external=1 grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && gettext_external=1 if test $gettext_external = 1; then # Gettext supplies these files, but we don't need them since # we don't have an intl subdirectory. excluded_files=' m4/glibc2.m4 m4/intdiv0.m4 m4/lcmessage.m4 m4/lock.m4 m4/printf-posix.m4 m4/size_max.m4 m4/uintmax_t.m4 m4/ulonglong.m4 m4/visibility.m4 m4/xsize.m4 ' fi # Build prerequisites buildreq="\ autoconf 2.59 automake 1.9.6 git 1.5.5 tar - " checkout_only_file=etc/HACKING gnulib_tool_option_extras="--libtool" gnulib_name="libgnu" source_base="libgnu" ## Use --foreign since we auto-generate the AUTHORS file and the default ## --gnu strictness level doesn't like it if the AUTHORS file is missing. AUTOMAKE="automake --foreign --warnings=no-portability" export AUTOMAKE bootstrap_post_import_hook () { ## Check for files that automake --gnu would normally look for, except ## AUTHORS, which we autogenerate from the documentation files along ## with building the rest of Octave, and INSTALL, which is linked from ## gnulib/doc/INSTALL by the bootstrap script. for f in NEWS README COPYING CITATION; do if ! test -f $f; then echo "required file $f is missing" 2>&1 exit 1 fi done echo "generating source lists for liboctave/operators/module.mk..." (cd liboctave/operators; ./config-ops.sh) echo "generating doc/interpreter/images.mk..." (cd doc/interpreter; ./config-images.sh) echo "generating libinterp/dldfcn/module.mk..." (cd libinterp/dldfcn; ./config-module.sh) } bootstrap_epilogue () { ## G77 is obsolete, but it is still the first option in the autoconf ## Fortran macros. We should avoid it, because mixing old versions of ## g77 with modern gcc and g++ causes trouble. The following will ## make it harder (but not impossible) for users to make this mistake. ## ## FIXME -- we should really work to fix autoconf so that it prefers ## gfortran over g77 even when searching for a Fortran 77 compiler. echo "replacing all occurrences of g77 with gfortran in configure script..." sed 's/g77/gfortran/g' configure > configure.t mv configure.t configure chmod 755 configure }