coan 4.2.4
if_control.h
Go to the documentation of this file.
00001 #ifndef IF_CONTROL_H
00002 #define IF_CONTROL_H
00003 
00004 /***************************************************************************
00005  *   Copyright (C) 2004, 2006 Symbian Software Ltd.                        *
00006  *   All rights reserved.                                                  *
00007  *   Copyright (C) 2002, 2003 Tony Finch <dot@dotat.at>.                   *
00008  *   All rights reserved.                                                  *
00009  *   Copyright (C) 1985, 1993 The Regents of the University of California. *
00010  *   All rights reserved.                                                  *
00011  *   Copyright (C) 2007-2011 Mike Kinghan, imk@strudl.org                  *
00012  *   All rights reserved.                                                  *
00013  *                                                                         *
00014  *   Contributed by Mike Kinghan, imk@strudl.org, derived from the code    *
00015  *   of Tony Finch                                                         *
00016  *                                                                         *
00017  *   Redistribution and use in source and binary forms, with or without    *
00018  *   modification, are permitted provided that the following conditions    *
00019  *   are met:                                                              *
00020  *                                                                         *
00021  *   Redistributions of source code must retain the above copyright        *
00022  *   notice, this list of conditions and the following disclaimer.         *
00023  *                                                                         *
00024  *   Redistributions in binary form must reproduce the above copyright     *
00025  *   notice, this list of conditions and the following disclaimer in the   *
00026  *   documentation and/or other materials provided with the distribution.  *
00027  *                                                                         *
00028  *   Neither the name of Symbian Software Ltd. nor the names of its        *
00029  *   contributors may be used to endorse or promote products derived from  *
00030  *   this software without specific prior written permission.              *
00031  *                                                                         *
00032  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   *
00033  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     *
00034  *   LIMITED TO, THE IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS    *
00035  *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE        *
00036  *   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,   *
00037  *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,  *
00038  *   BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS *
00039  *   OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED    *
00040  *   AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,*
00041  *   OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF *
00042  *   THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH  *
00043  *   DAMAGE.                                                               *
00044  *                                                                         *
00045  **************************************************************************/
00046 #include "evaluator.h"
00047 
00055 
00057 typedef enum {
00058     IF_STATE_OUTSIDE,
00060     IF_STATE_FALSE_PREFIX,
00062     IF_STATE_TRUE_PREFIX,
00064     IF_STATE_PASS_MIDDLE,
00066     IF_STATE_FALSE_MIDDLE,
00068     IF_STATE_TRUE_MIDDLE,
00070     IF_STATE_PASS_ELSE,
00072     IF_STATE_FALSE_ELSE,
00074     IF_STATE_TRUE_ELSE,
00076     IF_STATE_FALSE_TRAILER,
00078     IF_STATE_COUNT
00080 } if_state_t;
00081 
00090 extern void
00091 transition(line_type_t linetype);
00092 
00094 extern bool
00095 dead_line(void);
00096 
00098 extern bool
00099 was_unconditional_line(void);
00100 
00104 extern bool
00105 is_unconditional_line(void);
00106 
00110 extern size_t
00111 if_start_line(void);
00112 
00114 extern size_t
00115 if_depth(void);
00116 
00118 extern if_state_t
00119 if_state(void);
00120 
00122 void
00123 if_control_toplevel(void);
00124 
00125 
00130 IMPORT_INITOR(if_control);
00131 IMPORT_FINITOR(if_control);
00135 #endif /* EOF*/
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines