coan 4.2.4
|
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*/