view libinterp/mkdocs @ 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 d63878346099
line wrap: on
line source

#! /bin/sh
#
# Copyright (C) 1999-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'}

$SED -n -e '/^BEGIN_DOC_STRING/{
  : loop
  N
  /END_DOC_STRING/b done
  b loop
  : done
  s/BEGIN_DOC_STRING//
  s/END_DOC_STRING//
  p
}'