Mercurial > hg > octave-lyh
view doc/interpreter/grammar.txi @ 15524:15628a84a4fa stable
Document form of warning IDs is NAMESPACE:WARNING-NAME (bug #37559)
* errors.txi: Add explanation of warning ID form to documentation.
Correct example code to properly use warning IDs.
* error.cc (Fwarning): Document form of warning ID in warning()
docstring.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 15 Oct 2012 07:18:31 -0700 |
parents | 72c96de7a403 |
children | 71a198cca35b |
line wrap: on
line source
@c Copyright (C) 1996-2012 John W. Eaton @c @c This file is part of Octave. @c @c Octave is free software; you can redistribute it and/or modify it @c under the terms of the GNU General Public License as published by the @c Free Software Foundation; either version 3 of the License, or (at @c your option) any later version. @c @c Octave is distributed in the hope that it will be useful, but WITHOUT @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License @c for more details. @c @c You should have received a copy of the GNU General Public License @c along with Octave; see the file COPYING. If not, see @c <http://www.gnu.org/licenses/>. @node Grammar and Parser @appendix Grammar and Parser @cindex grammar rules @cindex language definition This appendix will eventually contain a semi-formal description of Octave's language. @menu * Keywords:: * Parser:: @end menu @node Keywords @section Keywords @cindex keywords The following identifiers are keywords, and may not be used as variable or function names: @multitable @columnfractions .33 .33 .33 @item @code{__FILE__} @tab @code{__LINE__} @tab @code{break} @item @code{case} @tab @code{catch} @tab @code{classdef} @item @code{continue} @tab @code{do} @tab @code{else} @item @code{elseif} @tab @code{end} @tab @code{end_try_catch} @item @code{end_unwind_protect} @tab @code{endclassdef} @tab @code{endenumeration} @item @code{endevents} @tab @code{endfor} @tab @code{endfunction} @item @code{endif} @tab @code{endmethods} @tab @code{endparfor} @item @code{endproperties} @tab @code{endswitch} @tab @code{endwhile} @item @code{enumeration} @tab @code{events} @tab @code{for} @item @code{function} @tab @code{get} @tab @code{global} @item @code{if} @tab @code{methods} @tab @code{otherwise} @item @code{parfor} @tab @code{persistent} @tab @code{properties} @item @code{return} @tab @code{set} @tab @code{static} @item @code{switch} @tab @code{try} @tab @code{until} @item @code{unwind_protect} @tab @code{unwind_protect_cleanup} @tab @code{while} @end multitable The function @code{iskeyword} can be used to quickly check whether an identifier is reserved by Octave. @DOCSTRING(iskeyword) @node Parser @section Parser @cindex parser The parser has a number of variables that affect its internal operation. These variables are generally documented in the manual alongside the code that they affect. For example, @code{allow_noninteger_range_as_index} is discussed in the section on index expressions. In addition, there are three non-specific parser customization functions. @code{add_input_event_hook} can be used to schedule a user function for periodic evaluation. @code{remove_input_event_hook} will stop a user function from being evaluated periodically. @DOCSTRING(add_input_event_hook) @DOCSTRING(remove_input_event_hook) Finally, when the parser cannot identify an input token it calls a particular function to handle this. By default, this is the function "unimplemented" which makes suggestions about possible Octave substitutes for @sc{matlab} functions. @DOCSTRING(missing_function_hook)