Mercurial > hg > octave-nkf
view libinterp/mk-pkg-add @ 16224:4a848eb52de2
use stack for tracking lexer start states
* lex.h (octave_lexer::start_state_stack): New member variable.
(octave_lexer::push_start_state, octave_lexer::pop_start_state,
octave_lexer::clear_start_state, octave_lexer::start_state,
octave_lexer::display_start_state): New functions.
* lex.ll (INPUT_FILE_START): Rename from INPUT_FILE_BEGIN.
Use push_start_state and pop_start_state instead of switching flex
start states directly with the flex BEGIN macro.
(octave_lexer::init, octave_lexer::reset): Clear start state stack.
(octave_lexer::prep_for_file, octave_lexer::process_comment,
octave_lexer::handle_close_bracket): Don't use OCTAVE_YYG macro.
(octave_lexer::display_start_state): Rename from display_state.
Eliminate argument. Display current start state.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 08 Mar 2013 10:46:13 -0500 |
parents | 2fc554ffbc28 |
children | 474e6d189de1 |
line wrap: on
line source
#! /bin/sh -e # # Copyright (C) 2005-2012 John W. Eaton # # This file is part of Octave. # # Octave 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. # # Octave 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 Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. SED=${SED:-'sed'} for f in "$@"; do if [ -f $f ]; then ## Compute and print the autoloads. base=`basename $f | $SED 's/\.df$//'` fcns=`$SED -n -e 's/^ *XDEFUN_DLD_INTERNAL *( *\([^, ]*\)[, ].*$/\1/p' \ -e 's/^ *XDEFUNX_DLD_INTERNAL *( *"\([^"]*\)".*$/\1/p' $f | \ sort -u` if [ -n "$fcns" ]; then for n in $fcns; do if [ "$n" = "$base" ]; then true else echo "autoload (\"$n\", \"$base.oct\");" fi done fi ## Process PKG_ADD directives after autoloads so that all ## necessary functions can be found before they are used. $SED -n -e 's,^//* *PKG_ADD: *,,p' \ -e 's,^/\* *PKG_ADD: *\(.*\) *\*/ *$,\1,p' $f fi done exit $?