Changes in / [1b5c81ed:f80e0218]
- Files:
-
- 175 added
- 425 deleted
- 111 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
r1b5c81ed rf80e0218 31 31 # generated by bison and lex from cfa.yy and lex.ll, respectively 32 32 src/Parser/parser.output 33 34 # generated by latex35 *.aux36 *.bbl37 *.blg38 *.brf39 *.dvi40 *.idx41 *.ilg42 *.ind43 *.log44 *.out45 *.pdf46 *.ps47 *.toc -
Jenkinsfile
r1b5c81ed rf80e0218 1 node ('linux'){ 2 stage 'Build' 3 checkout scm //checkout the source code from source control 4 sh 'CC=gcc-4.9 CXX=g++-4.9 ./configure' 5 sh 'make -j 8' 6 } 1 #!groovy 2 3 //=========================================================================================================== 4 // Main compilation routine 5 //=========================================================================================================== 6 //Compilation script is done here but environnement set-up and error handling is done in main loop 7 def cfa_build(boolean full_build) { 8 build_stage 'Checkout' 9 def install_dir = pwd tmp: true 10 //checkout the source code and clean the repo 11 checkout scm 12 13 //Clean all temporary files to make sure no artifacts of the previous build remain 14 sh 'git clean -fdqx' 15 16 //Reset the git repo so no local changes persist 17 sh 'git reset --hard' 18 19 build_stage 'Build' 20 21 //Configure the conpilation (Output is not relevant) 22 //Use the current directory as the installation target so nothing 23 //escapes the sandbox 24 //Also specify the compiler by hand 25 sh "./configure CXX=${currentCC.cpp_cc} --with-backend-compiler=${currentCC.cfa_backend_cc} --prefix=${install_dir} --enable-silent-rules --quiet" 26 27 //Compile the project 28 sh 'make -j 8 --no-print-directory V=0 install' 29 30 build_stage 'Test' 31 32 //Run the tests from the tests directory 33 dir ('src/tests') { 34 if (full_build) { 35 sh 'make all-tests' 36 } 37 else { 38 sh 'make' 39 } 40 } 41 42 build_stage 'Cleanup' 43 44 //do a maintainer-clean to make sure we need to remake from scratch 45 sh 'make maintainer-clean > /dev/null' 46 } 47 48 def make_doc() { 49 def err = null 50 51 try { 52 sh 'make clean > /dev/null' 53 sh 'make > /dev/null 2>&1' 54 } 55 56 catch (Exception caughtError) { 57 //rethrow error later 58 err = caughtError 59 60 sh 'cat *.log' 61 } 62 63 finally { 64 /* Must re-throw exception to propagate error */ 65 if (err) { 66 throw err 67 } 68 } 69 } 70 71 def doc_build() { 72 stage 'Documentation' 73 74 status_prefix = 'Documentation' 75 76 dir ('doc/user') { 77 make_doc() 78 } 79 80 dir ('doc/refrat') { 81 make_doc() 82 } 83 } 84 85 def push_build() { 86 //Don't use the build_stage function which outputs the compiler 87 stage 'Push' 88 89 status_prefix = 'Push' 90 91 def out_dir = pwd tmp: true 92 sh "mkdir -p ${out_dir}" 93 94 //parse git logs to find what changed 95 sh "git remote > ${out_dir}/GIT_REMOTE" 96 git_remote = readFile("${out_dir}/GIT_REMOTE") 97 remoteDoLangExists = git_remote.contains("DoLang") 98 99 if( !remoteDoLangExists ) { 100 sh 'git remote add DoLang git@gitlab.do-lang.org:internal/cfa-cc.git' 101 } 102 103 sh "git push DoLang ${gitRefNewValue}:master" 104 } 105 106 //=========================================================================================================== 107 // Helper classes/variables/routines to make the status and stage name easier to use 108 //=========================================================================================================== 109 //Description of a compiler (Must be serializable since pipelines are persistent) 110 class CC_Desc implements Serializable { 111 public String cc_name 112 public String cpp_cc 113 public String cfa_backend_cc 114 115 CC_Desc(String cc_name, String cpp_cc, String cfa_backend_cc) { 116 this.cc_name = cc_name 117 this.cpp_cc = cpp_cc 118 this.cfa_backend_cc = cfa_backend_cc 119 } 120 } 121 122 //Global Variables defining the compiler and at which point in the build we are 123 // These variables are used but can't be declared before hand because of wierd scripting rules 124 // @Field String currentCC 125 // @Field String status_prefix 126 127 //Wrapper to sync stage name and status name 128 def build_stage(String name) { 129 def stage_name = "${currentCC.cc_name} ${name}".trim() 130 stage stage_name 131 132 status_prefix = stage_name 133 } 134 135 //Helper routine to collect information about the git history 136 def collect_git_info() { 137 138 //create the temporary output directory in case it doesn't already exist 139 def out_dir = pwd tmp: true 140 sh "mkdir -p ${out_dir}" 141 142 //parse git logs to find what changed 143 gitRefName = env.BRANCH_NAME 144 dir("../${gitRefName}@script") { 145 sh "git reflog > ${out_dir}/GIT_COMMIT" 146 } 147 git_reflog = readFile("${out_dir}/GIT_COMMIT") 148 gitRefOldValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][1] 149 gitRefNewValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][2] 150 } 151 152 //=========================================================================================================== 153 // Main loop of the compilation 154 //=========================================================================================================== 155 node ('master'){ 156 157 boolean doPromoteBuild2DoLang 158 def err = null 159 def log_needed = false 160 currentBuild.result = "SUCCESS" 161 status_prefix = '' 162 163 try { 164 //Prevent the build from exceeding 30 minutes 165 timeout(60) { 166 167 //Wrap build to add timestamp to command line 168 wrap([$class: 'TimestamperBuildWrapper']) { 169 170 collect_git_info() 171 172 properties ([ \ 173 [$class: 'ParametersDefinitionProperty', \ 174 parameterDefinitions: [ \ 175 [$class: 'BooleanParameterDefinition', \ 176 defaultValue: false, \ 177 description: 'If true, the build will be promoted to the do-lang git repository (on successful builds only)', \ 178 name: 'promoteBuild2DoLang' \ 179 ]] \ 180 ]]) 181 182 doPromoteBuild2DoLang = promoteBuild2DoLang == 'true' 183 184 echo "FULL BUILD = ${doPromoteBuild2DoLang}" 185 186 //Compile using gcc-4.9 187 currentCC = new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9') 188 cfa_build(doPromoteBuild2DoLang) 189 190 //Compile latex documentation 191 doc_build() 192 193 if( doPromoteBuild2DoLang ) { 194 //Compile using gcc-5 195 currentCC = new CC_Desc('gcc-5', 'g++-5', 'gcc-5') 196 cfa_build(true) 197 198 //Compile using gcc-4.9 199 currentCC = new CC_Desc('gcc-6', 'g++-6', 'gcc-6') 200 cfa_build(true) 201 202 //Push latest changes to do-lang repo 203 push_build() 204 } 205 } 206 } 207 } 208 209 //If an exception is caught we need to change the status and remember to 210 //attach the build log to the email 211 catch (Exception caughtError) { 212 //rethrow error later 213 err = caughtError 214 215 //An error has occured, the build log is relevent 216 log_needed = true 217 218 //Store the result of the build log 219 currentBuild.result = "${status_prefix} FAILURE".trim() 220 } 221 222 finally { 223 //Send email with final results 224 notify_result(doPromoteBuild2DoLang, err, currentBuild.result, log_needed) 225 226 /* Must re-throw exception to propagate error */ 227 if (err) { 228 throw err 229 } 230 } 231 } 232 233 //=========================================================================================================== 234 //Routine responsible of sending the email notification once the build is completed 235 //=========================================================================================================== 236 def notify_result(boolean promote, Exception err, String status, boolean log) { 237 echo 'Build completed, sending result notification' 238 if(promote) { 239 if( err ) { 240 promote_email(status) 241 } 242 } 243 else { 244 email(status, log) 245 } 246 } 247 248 //Email notification on a full build failure 249 def promote_email(String status) { 250 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line 251 //Configurations for email format 252 def email_subject = "[cforall git][PROMOTE - FAILURE]" 253 def email_body = """This is an automated email from the Jenkins build machine. It was 254 generated because of a git hooks/post-receive script following 255 a ref change was pushed to the repository containing 256 the project "UNNAMED PROJECT". 257 258 Check console output at ${env.BUILD_URL} to view the results. 259 260 - Status -------------------------------------------------------------- 261 262 PROMOTE FAILURE - ${status} 263 """ 264 265 def email_to = "pabuhr@uwaterloo.ca, rschlunt@uwaterloo.ca, a3moss@uwaterloo.ca, tdelisle@uwaterloo.ca, brice.dobry@huawei.com" 266 267 //send email notification 268 emailext body: email_body, subject: email_subject, to: email_to, attachLog: true 269 } 270 271 //Standard build email notification 272 def email(String status, boolean log) { 273 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line 274 //Configurations for email format 275 def project_name = (env.JOB_NAME =~ /(.+)\/.+/)[0][1].toLowerCase() 276 277 def gitLog = 'Error retrieving git logs' 278 def gitDiff = 'Error retrieving git diff' 279 280 try { 281 282 sh "git rev-list --format=short ${gitRefOldValue}...${gitRefNewValue} > GIT_LOG" 283 gitLog = readFile('GIT_LOG') 284 285 sh "git diff --stat ${gitRefNewValue} ${gitRefOldValue} > GIT_DIFF" 286 gitDiff = readFile('GIT_DIFF') 287 } 288 catch (Exception error) {} 289 290 def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${status}] - branch ${env.BRANCH_NAME}" 291 def email_body = """This is an automated email from the Jenkins build machine. It was 292 generated because of a git hooks/post-receive script following 293 a ref change was pushed to the repository containing 294 the project "UNNAMED PROJECT". 295 296 The branch ${env.BRANCH_NAME} has been updated. 297 via ${gitRefOldValue} (commit) 298 from ${gitRefNewValue} (commit) 299 300 Check console output at ${env.BUILD_URL} to view the results. 301 302 - Status -------------------------------------------------------------- 303 304 BUILD# ${env.BUILD_NUMBER} - ${status} 305 306 - Log ----------------------------------------------------------------- 307 ${gitLog} 308 ----------------------------------------------------------------------- 309 Summary of changes: 310 ${gitDiff} 311 """ 312 313 def email_to = "pabuhr@uwaterloo.ca, rschlunt@uwaterloo.ca, a3moss@uwaterloo.ca, tdelisle@uwaterloo.ca, brice.dobry@huawei.com" 314 315 //send email notification 316 emailext body: email_body, subject: email_subject, to: email_to, attachLog: log 317 } -
Makefile.am
r1b5c81ed rf80e0218 11 11 ## Created On : Sun May 31 22:14:18 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Mon Jan 25 22:16:13201614 ## Update Count : 1 013 ## Last Modified On : Fri Jun 17 14:56:18 2016 14 ## Update Count : 13 15 15 ############################################################################### 16 16 … … 20 20 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 21 21 22 MAINTAINERCLEANFILES = lib/* bin/* 22 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* -
Makefile.in
r1b5c81ed rf80e0218 51 51 CONFIG_CLEAN_FILES = 52 52 CONFIG_CLEAN_VPATH_FILES = 53 AM_V_GEN = $(am__v_GEN_@AM_V@) 54 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 55 am__v_GEN_0 = @echo " GEN " $@; 56 AM_V_at = $(am__v_at_@AM_V@) 57 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 58 am__v_at_0 = @ 53 59 SOURCES = 54 60 DIST_SOURCES = … … 111 117 ALLOCA = @ALLOCA@ 112 118 AMTAR = @AMTAR@ 119 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 113 120 AUTOCONF = @AUTOCONF@ 114 121 AUTOHEADER = @AUTOHEADER@ … … 118 125 CC = @CC@ 119 126 CCDEPMODE = @CCDEPMODE@ 127 CFA_BACKEND_CC = @CFA_BACKEND_CC@ 120 128 CFA_BINDIR = @CFA_BINDIR@ 121 129 CFA_INCDIR = @CFA_INCDIR@ … … 136 144 EGREP = @EGREP@ 137 145 EXEEXT = @EXEEXT@ 138 GCC_PATH = @GCC_PATH@139 146 GREP = @GREP@ 140 147 INSTALL = @INSTALL@ … … 215 222 SUBDIRS = src/driver src src/libcfa # order important, src before libcfa because cfa-cpp used to build prelude 216 223 EXTRA_DIST = Docs # non-source files 217 MAINTAINERCLEANFILES = lib/* bin/* 224 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* 218 225 all: config.h 219 226 $(MAKE) $(AM_MAKEFLAGS) all-recursive -
aclocal.m4
r1b5c81ed rf80e0218 899 899 AC_MSG_RESULT(yes)]) 900 900 901 # Copyright (C) 2009, 2011 Free Software Foundation, Inc. 902 # 903 # This file is free software; the Free Software Foundation 904 # gives unlimited permission to copy and/or distribute it, 905 # with or without modifications, as long as this notice is preserved. 906 907 # serial 2 908 909 # AM_SILENT_RULES([DEFAULT]) 910 # -------------------------- 911 # Enable less verbose build rules; with the default set to DEFAULT 912 # (`yes' being less verbose, `no' or empty being verbose). 913 AC_DEFUN([AM_SILENT_RULES], 914 [AC_ARG_ENABLE([silent-rules], 915 [ --enable-silent-rules less verbose build output (undo: `make V=1') 916 --disable-silent-rules verbose build output (undo: `make V=0')]) 917 case $enable_silent_rules in 918 yes) AM_DEFAULT_VERBOSITY=0;; 919 no) AM_DEFAULT_VERBOSITY=1;; 920 *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; 921 esac 922 dnl 923 dnl A few `make' implementations (e.g., NonStop OS and NextStep) 924 dnl do not support nested variable expansions. 925 dnl See automake bug#9928 and bug#10237. 926 am_make=${MAKE-make} 927 AC_CACHE_CHECK([whether $am_make supports nested variables], 928 [am_cv_make_support_nested_variables], 929 [if AS_ECHO([['TRUE=$(BAR$(V)) 930 BAR0=false 931 BAR1=true 932 V=1 933 am__doit: 934 @$(TRUE) 935 .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then 936 am_cv_make_support_nested_variables=yes 937 else 938 am_cv_make_support_nested_variables=no 939 fi]) 940 if test $am_cv_make_support_nested_variables = yes; then 941 dnl Using `$V' instead of `$(V)' breaks IRIX make. 942 AM_V='$(V)' 943 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' 944 else 945 AM_V=$AM_DEFAULT_VERBOSITY 946 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY 947 fi 948 AC_SUBST([AM_V])dnl 949 AM_SUBST_NOTMAKE([AM_V])dnl 950 AC_SUBST([AM_DEFAULT_V])dnl 951 AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl 952 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl 953 AM_BACKSLASH='\' 954 AC_SUBST([AM_BACKSLASH])dnl 955 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl 956 ]) 957 901 958 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 902 959 # -
config.h.in
r1b5c81ed rf80e0218 1 1 /* config.h.in. Generated from configure.ac by autoheader. */ 2 3 /* Location of include files. */ 4 #undef CFA_BACKEND_CC 2 5 3 6 /* Location of cfa command. */ … … 20 23 /* Define to 1 if using `alloca.c'. */ 21 24 #undef C_ALLOCA 22 23 /* Path/name of C compiler. */24 #undef GCC_PATH25 25 26 26 /* Define to 1 if you have `alloca', as a function or macro. */ -
configure
r1b5c81ed rf80e0218 643 643 CFA_INCDIR 644 644 CFA_PREFIX 645 CFA_BACKEND_CC 645 646 BACKEND_CC 646 GCC_PATH647 647 MAINT 648 648 MAINTAINER_MODE_FALSE … … 671 671 INSTALL_SCRIPT 672 672 INSTALL_PROGRAM 673 AM_BACKSLASH 674 AM_DEFAULT_VERBOSITY 675 AM_DEFAULT_V 676 AM_V 673 677 target_alias 674 678 host_alias … … 712 716 ac_user_opts=' 713 717 enable_option_checking 718 enable_silent_rules 714 719 enable_maintainer_mode 715 720 with_backend_compiler … … 1346 1351 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) 1347 1352 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 1353 --enable-silent-rules less verbose build output (undo: `make V=1') 1354 --disable-silent-rules verbose build output (undo: `make V=0') 1348 1355 --disable-maintainer-mode disable make rules and dependencies not useful 1349 1356 (and sometimes confusing) to the casual installer … … 2408 2415 ac_config_headers="$ac_config_headers config.h" 2409 2416 2417 # Check whether --enable-silent-rules was given. 2418 if test "${enable_silent_rules+set}" = set; then : 2419 enableval=$enable_silent_rules; 2420 fi 2421 2422 case $enable_silent_rules in 2423 yes) AM_DEFAULT_VERBOSITY=0;; 2424 no) AM_DEFAULT_VERBOSITY=1;; 2425 *) AM_DEFAULT_VERBOSITY=1;; 2426 esac 2427 am_make=${MAKE-make} 2428 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 2429 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } 2430 if ${am_cv_make_support_nested_variables+:} false; then : 2431 $as_echo_n "(cached) " >&6 2432 else 2433 if $as_echo 'TRUE=$(BAR$(V)) 2434 BAR0=false 2435 BAR1=true 2436 V=1 2437 am__doit: 2438 @$(TRUE) 2439 .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then 2440 am_cv_make_support_nested_variables=yes 2441 else 2442 am_cv_make_support_nested_variables=no 2443 fi 2444 fi 2445 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 2446 $as_echo "$am_cv_make_support_nested_variables" >&6; } 2447 if test $am_cv_make_support_nested_variables = yes; then 2448 AM_V='$(V)' 2449 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' 2450 else 2451 AM_V=$AM_DEFAULT_VERBOSITY 2452 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY 2453 fi 2454 AM_BACKSLASH='\' 2455 2410 2456 2411 2457 if test "x${CXXFLAGS}" = "x"; then … … 2922 2968 # Check whether --with-backend-compiler was given. 2923 2969 if test "${with_backend_compiler+set}" = set; then : 2924 withval=$with_backend_compiler; backcompiler=$withval 2925 else 2926 backcompiler="" 2927 fi 2928 2929 if test x$backcompiler != x; then 2930 cat >>confdefs.h <<_ACEOF 2931 #define GCC_PATH "${backcompiler}" 2932 _ACEOF 2933 2934 BACKEND_CC=${backcompiler} 2935 else 2970 withval=$with_backend_compiler; backendcompiler=$withval 2971 else 2972 backendcompiler="" 2973 fi 2974 2975 if test "x$backendcompiler" != x; then 2976 BACKEND_CC=${backendcompiler} 2977 else 2936 2978 # Extract the first word of "gcc", so it can be a program name with args. 2937 2979 set dummy gcc; ac_word=$2 2938 2980 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 2939 2981 $as_echo_n "checking for $ac_word... " >&6; } 2940 if ${ac_cv_path_ GCC_PATH+:} false; then :2982 if ${ac_cv_path_BACKEND_CC+:} false; then : 2941 2983 $as_echo_n "(cached) " >&6 2942 2984 else 2943 case $ GCC_PATHin2985 case $BACKEND_CC in 2944 2986 [\\/]* | ?:[\\/]*) 2945 ac_cv_path_ GCC_PATH="$GCC_PATH" # Let the user override the test with a path.2987 ac_cv_path_BACKEND_CC="$BACKEND_CC" # Let the user override the test with a path. 2946 2988 ;; 2947 2989 *) … … 2953 2995 for ac_exec_ext in '' $ac_executable_extensions; do 2954 2996 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 2955 ac_cv_path_ GCC_PATH="$as_dir/$ac_word$ac_exec_ext"2997 ac_cv_path_BACKEND_CC="$as_dir/$ac_word$ac_exec_ext" 2956 2998 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 2957 2999 break 2 … … 2961 3003 IFS=$as_save_IFS 2962 3004 2963 test -z "$ac_cv_path_GCC_PATH" && ac_cv_path_GCC_PATH="N/A"2964 3005 ;; 2965 3006 esac 2966 3007 fi 2967 GCC_PATH=$ac_cv_path_GCC_PATH 2968 if test -n "$ GCC_PATH"; then2969 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ GCC_PATH" >&52970 $as_echo "$ GCC_PATH" >&6; }3008 BACKEND_CC=$ac_cv_path_BACKEND_CC 3009 if test -n "$BACKEND_CC"; then 3010 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BACKEND_CC" >&5 3011 $as_echo "$BACKEND_CC" >&6; } 2971 3012 else 2972 3013 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 … … 2975 3016 2976 3017 2977 if test " $GCC_PATH" = "N/A"; then3018 if test "x$BACKEND_CC" = "x"; then 2978 3019 as_fn_error $? "some version of gcc is needed. Get it at ftp://ftp.gnu.org" "$LINENO" 5 2979 3020 exit 1 2980 3021 fi 3022 fi 2981 3023 2982 3024 cat >>confdefs.h <<_ACEOF 2983 #define GCC_PATH "${GCC_PATH}" 2984 _ACEOF 2985 2986 BACKEND_CC=${GCC_PATH} 2987 fi 3025 #define CFA_BACKEND_CC "${BACKEND_CC}" 3026 _ACEOF 3027 2988 3028 2989 3029 … … 5757 5797 5758 5798 5759 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/examples/Makefile src/ libcfa/Makefile"5799 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/examples/Makefile src/tests/Makefile src/libcfa/Makefile" 5760 5800 5761 5801 … … 6503 6543 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; 6504 6544 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 6545 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 6505 6546 "src/libcfa/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcfa/Makefile" ;; 6506 6547 -
configure.ac
r1b5c81ed rf80e0218 7 7 #AC_CONFIG_SRCDIR([src/main.cc]) 8 8 AC_CONFIG_HEADERS([config.h]) 9 AM_SILENT_RULES([no]) 9 10 10 11 if test "x${CXXFLAGS}" = "x"; then … … 19 20 # Installation paths 20 21 21 AC_ARG_WITH(backend-compiler, 22 [ --with-backend-compiler=PROGRAM PROGRAM that performs the final code compilation (must be gcc-compatible) ], 23 backcompiler=$withval, backcompiler="") 24 if test x$backcompiler != x; then 25 AC_DEFINE_UNQUOTED(GCC_PATH, "${backcompiler}") 26 BACKEND_CC=${backcompiler} 27 else 28 AC_PATH_PROG(GCC_PATH, gcc, N/A) 29 if test "$GCC_PATH" = "N/A"; then 22 AC_ARG_WITH(backend-compiler, 23 [ --with-backend-compiler=PROGRAM PROGRAM that performs the final code compilation (must be gcc-compatible) ], 24 backendcompiler=$withval, backendcompiler="") 25 if test "x$backendcompiler" != x; then 26 BACKEND_CC=${backendcompiler} 27 else 28 AC_PATH_PROG(BACKEND_CC, gcc, []) 29 if test "x$BACKEND_CC" = "x"; then 30 30 AC_MSG_ERROR(some version of gcc is needed. Get it at ftp://ftp.gnu.org) 31 31 exit 1 32 32 fi 33 AC_DEFINE_UNQUOTED(GCC_PATH, "${GCC_PATH}", [Path/name of C compiler.]) 34 BACKEND_CC=${GCC_PATH} 35 fi 36 AC_SUBST(BACKEND_CC) 33 fi 34 AC_DEFINE_UNQUOTED(CFA_BACKEND_CC, "${BACKEND_CC}", [Location of include files.]) 35 AC_SUBST(CFA_BACKEND_CC) 37 36 38 37 if test "x$prefix" = "xNONE"; then … … 40 39 else 41 40 cfa_prefix=${prefix} 42 fi 41 fi 43 42 AC_DEFINE_UNQUOTED(CFA_PREFIX, "${cfa_prefix}", [Location of cfa install.]) 44 43 AC_SUBST(CFA_PREFIX, ${cfa_prefix}) … … 48 47 else 49 48 cfa_incdir=${includedir} 50 fi 49 fi 51 50 AC_DEFINE_UNQUOTED(CFA_INCDIR, "${cfa_incdir}", [Location of include files.]) 52 51 AC_SUBST(CFA_INCDIR, ${cfa_incdir}) … … 56 55 else 57 56 cfa_bindir=${bindir} 58 fi 57 fi 59 58 AC_DEFINE_UNQUOTED(CFA_BINDIR, "${cfa_bindir}", [Location of cfa command.]) 60 59 AC_SUBST(CFA_BINDIR, ${cfa_bindir}) … … 64 63 else 65 64 cfa_libdir=${libdir} 66 fi 65 fi 67 66 AC_DEFINE_UNQUOTED(CFA_LIBDIR, "${cfa_libdir}", [Location of cc1 and cfa-cpp commands.]) 68 67 AC_SUBST(CFA_LIBDIR, ${cfa_libdir}) … … 107 106 src/Makefile 108 107 src/examples/Makefile 108 src/tests/Makefile 109 109 src/libcfa/Makefile 110 110 ]) -
doc/LaTeXmacros/common.tex
r1b5c81ed rf80e0218 11 11 %% Created On : Sat Apr 9 10:06:17 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Sat Apr 9 10:06:39201614 %% Update Count : 1 13 %% Last Modified On : Mon Jun 20 09:35:20 2016 14 %% Update Count : 178 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 17 17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 18 18 19 \setlength{\textheight}{9in} 20 %\oddsidemargin 0.0in 21 \renewcommand{\topfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 22 \renewcommand{\bottomfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 23 \renewcommand{\floatpagefraction}{0.8} % float must be greater than X of the page before it is forced onto its own page 24 \renewcommand{\textfraction}{0.0} % the entire page maybe devoted to floats with no text on the page at all 25 26 \lefthyphenmin=4 27 \righthyphenmin=4 28 29 \usepackage{pslatex} % reduce size of san serif font 30 31 \usepackage[ignoredisplayed]{enumitem} % do not affect trivlist 32 \setlist{labelsep=1ex}% global 33 \setlist[itemize]{topsep=0.5ex,parsep=0.25ex,itemsep=0.25ex,listparindent=\parindent,leftmargin=\parindent}% global 34 \setlist[itemize,1]{label=\textbullet}% local 35 %\renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}} 36 \setlist[enumerate]{listparindent=\parindent}% global 37 \setlist[enumerate,2]{leftmargin=\parindent,labelsep=*,align=parleft,label=\alph*.}% local 38 \setlist[description]{listparindent=\parindent,leftmargin=\parindent,labelsep=*} 39 19 40 % Names used in the document. 20 41 21 \newcommand{\CFA}{C$\mathbf\forall$\xspace} 22 \newcommand{\CFL}{Cforall\xspace} 23 \newcommand{\CC}{ C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name42 \newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name 43 \newcommand{\CFL}{Cforall\xspace} % set language text name 44 \newcommand{\CC}{\rm C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name 24 45 \def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name) 25 46 … … 27 48 28 49 \makeatletter 50 % parindent is relative, i.e., toggled on/off in environments like itemize, so store the value for 51 % use rather than use \parident directly. 52 \newlength{\parindentlnth} 53 \setlength{\parindentlnth}{\parindent} 54 29 55 % allow escape sequence in lstinline 30 56 %\usepackage{etoolbox} 31 57 %\patchcmd{\lsthk@TextStyle}{\let\lst@DefEsc\@empty}{}{}{\errmessage{failed to patch}} 32 58 33 % make fontsize "small" slightly larger, specifically for san serif (helvetica) in program code 34 \renewcommand\small{% 35 \@setfontsize\small{8.5}{11}% 36 \abovedisplayskip 8.5pt \@plus 3pt \@minus 4pt 37 \abovedisplayshortskip \z@ \@plus 2pt 38 \belowdisplayshortskip 4pt \@plus 2pt \@minus 2pt 39 \def\@listi{\leftmargin\leftmargini 40 \topsep 4pt \@plus 2pt \@minus 2pt 41 \parsep 2pt \@pluspt \@minuspt 42 \itemsep \parsep}% 43 \belowdisplayskip \abovedisplayskip 44 } 45 \usepackage{relsize} % must be after change to small or selects old size 59 \usepackage{pslatex} % reduce size of san serif font 60 \usepackage{relsize} % must be after change to small or selects old size 46 61 47 62 % reduce size of chapter/section titles … … 66 81 \vskip 50\p@ 67 82 }} 68 \renewcommand\section{\@startsection{section}{1}{\z@}{-3. 0ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\large\bfseries}}69 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}{- 2.5ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\normalsize\bfseries}}83 \renewcommand\section{\@startsection{section}{1}{\z@}{-3.5ex \@plus -1ex \@minus -.2ex}{1.75ex \@plus .2ex}{\normalfont\large\bfseries}} 84 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex \@plus -1ex \@minus -.2ex}{1.5ex \@plus .2ex}{\normalfont\normalsize\bfseries}} 70 85 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{-2.5ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\normalsize\bfseries}} 71 86 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{-2.0ex \@plus -1ex \@minus -.2ex}{-1em}{\normalfont\normalsize\bfseries}} … … 75 90 \newcommand{\definition}[1]{\textbf{\hyperpage{#1}}} 76 91 \newcommand{\see}[1]{\emph{see} #1} 77 78 % reduce bullet size and spacing for "itemize" macro79 \renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}}80 \renewenvironment{itemize}{\begin{list}{\labelitemi}{\topsep=5pt\itemsep=5pt\parsep=0pt}}{\end{list}}81 92 82 93 % Define some commands that produce formatted index entries suitable for cross-references. … … 109 120 \newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi} 110 121 122 \newcommand{\Indexc}[1]{\lstinline$#1$\index{#1@\lstinline$#1$}} 123 \newcommand{\indexc}[1]{\index{#1@\lstinline$#1$}} 124 111 125 \newcommand{\newtermFontInline}{\emph} 112 126 \newcommand{\newterm}{\@ifstar\@snewterm\@newterm} … … 116 130 117 131 \newenvironment{quote2}{% 118 \list{}{\lstset{resetmargins=true }\leftmargin=\parindent\rightmargin\leftmargin}%132 \list{}{\lstset{resetmargins=true,aboveskip=0pt,belowskip=0pt}\topsep=4pt\parsep=0pt\leftmargin=\parindent\rightmargin\leftmargin}% 119 133 \item\relax 120 134 }{% … … 122 136 }% quote2 123 137 \newenvironment{rationale}{% 124 \begin{quot ation}\noindent$\Box$\enspace138 \begin{quote2}\noindent$\Box$\enspace 125 139 }{% 126 \hfill\enspace$\Box$\end{quot ation}140 \hfill\enspace$\Box$\end{quote2} 127 141 }% 128 142 129 143 % blocks and titles 130 144 \newcommand{\define}[1]{\emph{#1\/}\index{#1}} 131 \newcommand{\rewrite}{\(\Rightarrow\)}132 145 \newcommand{\rewriterules}{\paragraph{Rewrite Rules}~\par\noindent} 133 146 \newcommand{\examples}{\paragraph{Examples}~\par\noindent} … … 137 150 138 151 % BNF macros 139 \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]} 140 \let\endsyntax=\endtrivlist 141 \newcommand{\lhs}[1]{\par{\emph{#1:}}\index{#1@{\emph{#1}}|italic}} 142 \newcommand{\rhs}{\hfil\break\hbox{\hskip1in}} 143 \newcommand{\oldlhs}[1]{\emph{#1: \ldots}\index{#1@{\emph{#1}}|italic}} 144 \newcommand{\nonterm}[1]{\emph{#1\/}\index{#1@{\emph{#1}}|italic}} 152 \newenvironment{syntax}{ 153 \paragraph{Syntax} 154 \begin{quote2} 155 \begin{description}[noitemsep,leftmargin=\parindentlnth] 156 }{ 157 \end{description} 158 \end{quote2} 159 } 160 % \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]} 161 %\let\endsyntax=\endtrivlist 162 \newcommand{\lhs}[1]{\item[\emph{#1:}\index{#1@{\emph{#1}}|italic}]~\ignorespaces} 163 \newcommand{\oldlhs}[1]{\item[\emph{#1:}\index{#1@{\emph{#1}}|italic}~\dots]~} 164 \newcommand{\rhs}{\hfil\newline} 165 \newcommand{\nonterm}[1]{\emph{#1}\index{#1@{\emph{#1}}|italic}} 145 166 \newcommand{\opt}{$_{opt}$\ } 146 167 … … 179 200 fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert, 180 201 _Thread_local,throw,throwResume,trait,try,typeof,__typeof,__typeof__,}, 181 moredelim=**[is][\color{red}]{`}{`}, % red highlighting of program text182 202 }% 183 203 … … 185 205 language=CFA, 186 206 columns=flexible, 187 basicstyle=\sf\relsize{-1}, 207 basicstyle=\linespread{0.9}\sf, 208 stringstyle=\tt, 188 209 tabsize=4, 189 xleftmargin=\parindent, 190 escapechar=@, 210 xleftmargin=\parindentlnth, 211 extendedchars=true, 212 escapechar=§, 191 213 mathescape=true, 192 214 keepspaces=true, 193 215 showstringspaces=false, 194 216 showlines=true, 195 aboveskip=6pt, 196 belowskip=4pt, 197 literate={\\`}{\raisebox{0.3ex}{\ttfamily\upshape \hspace*{-2pt}`}}1, % escape \`, otherwise used for red highlighting 217 aboveskip=4pt, 218 belowskip=3pt, 219 moredelim=**[is][\color{red}]{®}{®}, % red highlighting 220 moredelim=**[is][\color{blue}]{ß}{ß}, % blue highlighting 221 moredelim=**[is][\color{OliveGreen}]{¢}{¢}, % green highlighting 222 moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords 223 % replace/adjust listing characters that look bad in sanserif 224 literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1 225 {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {_}{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1 226 {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2 {...}{$\dots$}2, 198 227 }% 199 228 200 \makeatletter 201 % replace/adjust listings characters that look bad in sanserif 202 \lst@CCPutMacro 203 \lst@ProcessOther{"22}{\lst@ttfamily{"}{\raisebox{0.3ex}{\ttfamily\upshape "}}} % replace double quote 204 \lst@ProcessOther{"27}{\lst@ttfamily{'}{\raisebox{0.3ex}{\ttfamily\upshape '\hspace*{-2pt}}}} % replace single quote 205 \lst@ProcessOther{"2D}{\lst@ttfamily{-}{\ttfamily\upshape -}} % replace minus 206 \lst@ProcessOther{"3C}{\lst@ttfamily{<}{\texttt{<}}} % replace less than 207 \lst@ProcessOther{"3E}{\lst@ttfamily{<}{\texttt{>}}} % replace greater than 208 \lst@ProcessOther{"5E}{\raisebox{0.4ex}{$\scriptstyle\land\,$}} % replace circumflex 209 \lst@ProcessOther{"5F}{\lst@ttfamily{\char95}{{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}}} % replace underscore 210 \lst@ProcessOther{"60}{\lst@ttfamily{`}{\raisebox{0.3ex}{\ttfamily\upshape \hspace*{-2pt}`}}} % replace backquote 211 \lst@ProcessOther{"7E}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}} % replace tilde 212 %\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde 213 \@empty\z@\@empty % NECESSARY DO NOT REMOVE 214 \makeatother 229 \lstMakeShortInline© % single-character for \lstinline 215 230 216 231 % Local Variables: % -
doc/bibliography/cfa.bib
-
Property mode
changed from
120000
to100644
r1b5c81ed rf80e0218 1 /usr/local/bibliographies/pl.bib 1 % Conventions: uncross-referenced entries appear first, then 2 % cross-referenced entries. In both groups, entries are sorted by their 3 % title field. Lines like "% A" exist to speed searches. The main 4 % paper on a language uses the language name as the citation key. Other 5 % papers use ``<language name>:'' as a prefix. Please consider leaving 6 % keyword lists and an abstract or comment for future generations, and 7 % put some identification in a contributer field. 8 9 % Predefined journal names: 10 % acmcs: Computing Surveys acta: Acta Infomatica 11 % cacm: Communications of the ACM 12 % ibmjrd: IBM J. Research & Development ibmsj: IBM Systems Journal 13 % ieeese: IEEE Trans. on Soft. Eng. ieeetc: IEEE Trans. on Computers 14 % ieeetcad: IEEE Trans. on Computer-Aided Design of Integrated Circuits 15 % ipl: Information Processing Letters jacm: Journal of the ACM 16 % jcss: J. Computer & System Sciences scp: Science of Comp. Programming 17 % sicomp: SIAM J. on Computing tocs: ACM Trans. on Comp. Systems 18 % tods: ACM Trans. on Database Sys. tog: ACM Trans. on Graphics 19 % toms: ACM Trans. on Math. Software toois: ACM Trans. on Office Info. Sys. 20 % toplas: ACM Trans. on Prog. Lang. & Sys. 21 % tcs: Theoretical Computer Science 22 @string{ieeepds="IEEE Transactions on Parallel and Distributed Systems"} 23 @string{ieeese="IEEE Transactions on Software Engineering"} 24 @string{spe="Software---\-Practice and Experience"} 25 @string{sigplan="SIGPLAN Notices"} 26 @string{joop="Journal of Object-Oriented Programming"} 27 @string{popl="Conference Record of the ACM Symposium on Principles of Programming Languages"} 28 @string{osr="Operating Systems Review"} 29 @string{pldi="Programming Language Design and Implementation"} 30 31 % A 32 33 @incollection{ABC++, 34 keywords = {concurrency, parallel, distributed, C++}, 35 contributer = {pabuhr@plg}, 36 author = {William G. O'Farrell and Frank Ch. Eigler and S. David Pullara and Gregory V. Wilson }, 37 title = {{ABC}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 38 editor = {Gregory V. Wilson and Paul Lu}, 39 booktitle = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 40 publisher = {MIT Press}, 41 series = {Scientific and Engineering Computation Series}, 42 year = 1996, 43 pages = {1-42}, 44 } 45 46 @techreport{CL90abstract, 47 keywords = {}, 48 contributer = {gjditchfield@plg}, 49 author = {Luca Cardelli and Xavier Leroy}, 50 title = {Abstract Types and the Dot Notation}, 51 institution = {Systems Research Center}, 52 year = 1990, 53 address = {130 Lytton Avenue, Palo Alto, CA 94301}, 54 number = 56, 55 summary = { 56 The existential types of Mitchell and Plotkin \cite{atet} model 57 abstract types, but their ``open'' notation is unlike the usual dot 58 notation used in programming languages. This paper gives 59 translations between the ``open'' and ``dot'' forms, and suggests 60 extensions for nested and for parameterized abstractions. 61 } 62 } 63 64 @article{atet, 65 keywords = {lambda calculus, polymorphism}, 66 contributer = {gjditchfield@plg}, 67 author = {John C. Mitchell and Gordon D. Plotkin}, 68 title = {Abstract Types have Existential Type}, 69 journal = toplas, 70 year = 1988, 71 month = jul, volume = 10, number = 3, pages = {470-502}, 72 abstract = { 73 Abstract data type declarations appear in typed programming 74 languages like Ada, Alphard, CLU and ML. This form of declaration 75 binds a list of identifiers to a type with associated operations, a 76 composite ``value'' we call a {\em data algebra}. We use a 77 second-order typed lambda calculus SOL to show how data algebras 78 may be given types, passed as parameters, and returned as results of 79 function calls. In the process, we discuss the semantics of 80 abstract data type declarations and review a connection between 81 typed programming languages and constructive logic. 82 } 83 } 84 85 @article{alphard:intro, 86 keywords = {encapsulation, data abstraction}, 87 contributer = {gjditchfield@plg}, 88 author = {Wm. A. Wulf and Ralph L. London and Mary Shaw}, 89 title = {Abstraction and Verification in Alphard: Introduction to Language and Methodology}, 90 journal = ieeese, 91 year = 1976, 92 month = dec, volume = {SE-2}, number = 4, pages = {253-265}, 93 note = {Reprinted in \cite{alphard}.}, 94 abstract = { 95 Alphard is a programming language whose goals include supporting 96 both the development of well-structured programs and the formal 97 verification of these programs. This paper attempts to capture the 98 symbiotic influence of these two goals on the design of the 99 language. To that end the language description is interleaved with 100 the presentation of a proof technique and discudssion of 101 programming methodology. Examples to illustrate both the language 102 and the verification technique are included. 103 } 104 } 105 106 @book{Hilfinger83, 107 keywords = {ada}, 108 author = {Paul N. Hilfinger}, 109 title = {Abstraction Mechanisms and Language Design}, 110 publisher = {MIT Press}, 111 series = {ACM Distinguished Dissertations}, 112 year = 1983, 113 } 114 115 @incollection{Lavender96, 116 author = {R. Greg Lavender and Douglas C. Schmidt}, 117 chapter = {Active Object: An Object Behavioral Pattern for Concurrent Programming}, 118 title = {Pattern Languages of Program Design 2}, 119 editor = {John M. Vlissides and James O. Coplien and Norman L. Kerth}, 120 year = 1996, 121 pages = {483-499}, 122 publisher = {Addison-Wesley Longman Publishing Co., Inc.}, 123 address = {Boston, MA, USA}, 124 } 125 126 @article{Nierstrasz87, 127 keywords = {Hybrid, active objects, object-oriented languages, 128 object-based languages, delegation, concurrency}, 129 contributer = {pabuhr@plg}, 130 author = {O. M. Nierstrasz}, 131 title = {Active Objects in {Hybrid}}, 132 journal = sigplan, 133 volume = 22, 134 number = 12, 135 month = dec, 136 year = 1987, 137 pages = {243-253}, 138 note = {Proceedings of the OOPSLA'87 Conference, Oct. 4--8, 1987, Orlando, Florida}, 139 abstract = { 140 Most object-oriented languages are strong on reusability or on 141 strong-typing, but weak on concurrency. In response to this gap, 142 we are developing {\it Hybrid}, an object-oriented language in which 143 objects are the active entities. Objects in Hybrid are organized 144 into {\it domains}, and concurrent executions into {\it activities}. 145 All object communications are based on remote procedure calls. 146 Unstructured {\it sends\/} and {\it accepts\/} are forbidden. To 147 this the mechanisms of {\it delegation\/} and {\it delay queues\/} 148 are added to enable switching and triggering of activities. 149 Concurrent subactivities and atomic actions are provided for 150 compactness and simplicity. We show how solutions to many important 151 concurrent problems [sic], such as pipelining, constraint management 152 and ``administration'' can be compactly expressed using these 153 mechanisms. 154 }, 155 comment = {Mentions Thoth in reference to delegation} 156 } 157 158 @book{Actors, 159 keywords = {actors, concurrency}, 160 contributer = {pabuhr@plg}, 161 author = {Gul A. Agha}, 162 title = {Actors: A Model of Concurrent Computation in Distributed Systems}, 163 publisher = {MIT Press, Cambridge, Mass.}, 164 year = 1986 165 } 166 167 @article{polymorphImpl, 168 keywords = {Napier88}, 169 contributer = {gjditchfield@plg}, 170 author = {R. Morrison and A. Dearle and R. C. H. Connor and A. L. Brown}, 171 title = {An Ad Hoc Approach to the Implementation of Polymorphism}, 172 journal = toplas, 173 year = 1991, 174 month = jul, 175 volume = 13, 176 number = 3, 177 pages = {342-371}, 178 abstract = { 179 Polymorphic abstraction provides the ability to write programs that 180 are independent of the form of the data over which they operate. 181 There are a number of different categories of polymorphic 182 expression---ad hoc and universal, which includes parametric and 183 inclusion---all of which have many advantages in terms of code 184 reuse and software economics. It has proved difficult to provide 185 efficient implementations of polymorphism. Here, we address this 186 problem and describe a new technique that can implement all forms 187 of polymorphism, use a conventional machine architecture, and 188 support nonuniform data representations. Furthermore, the method 189 ensures that any extra cost of implementation applies to 190 polymorphic forms only, and allows such polymorphic forms to 191 persist over program invocations. 192 }, 193 summary = { 194 They give three ways to implement polymorphism: {\em textual 195 polymorphism}, which seems to be template instantiation, {\em 196 uniform polymorphism}, which they explain badly, and {\em tagged 197 polymorphism}, where object code performs type tests. 198 199 They use first-class procedures to implement polymorphism: routines 200 with type parameters are implemented as curried routines that 201 return a nested routine that refers to the type parameter. 202 } 203 } 204 205 @article{dim:ada, 206 keywords = {Dimensional Analysis, Ada}, 207 contributer = {gjditchfield@plg}, 208 author = {Paul N. Hilfinger}, 209 title = {An {Ada} Package for Dimensional Analysis}, 210 journal = toplas, 211 month = apr, 212 year = 1988, 213 volume = 10, 214 number = 2, 215 pages = {189-203}, 216 } 217 218 @mastersthesis{Younger91, 219 keywords = {concurrency, C++, postponing requests}, 220 contributer = {pabuhr@plg}, 221 author = {Brian M. Younger}, 222 title = {Adding Concurrency to {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 223 school = {University of Waterloo}, 224 year = 1991, 225 address = {Waterloo, Ontario, Canada, N2L 3G1}, 226 } 227 228 @inproceedings{Buhr92c, 229 keywords = {concurrency}, 230 contributer = {pabuhr@plg}, 231 author = {Peter A. Buhr and Glen Ditchfield}, 232 title = {Adding Concurrency to a Programming Language}, 233 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Technical Conference Proceedings}, 234 organization= {USENIX Association}, 235 address = {Portland, Oregon, U.S.A.}, 236 month = aug, 237 year = 1992, 238 pages = {207-224}, 239 } 240 241 @article{Buhr89b, 242 keywords = {concurrency, C++}, 243 contributer = {pabuhr@plg}, 244 author = {P. A. Buhr and Glen Ditchfield and C. R. Zarnke}, 245 title = {Adding Concurrency to a Statically Type-Safe Object-Oriented Programming Language}, 246 journal = sigplan, 247 volume = 24, 248 number = 4, 249 month = apr, 250 year = 1989, 251 pages = {18-21}, 252 note = {Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, Sept. 26--27, 1988, San Diego, California, U.S.A.}, 253 } 254 255 @article{Knuth66, 256 keywords = {N-thread software-solution mutual exclusion}, 257 contributer = {pabuhr@plg}, 258 author = {Donald E. Knuth}, 259 title = {Additional Comments on a Problem in Concurrent Programming Control}, 260 journal = cacm, 261 month = may, 262 year = 1966, 263 volume = 9, 264 number = 5, 265 pages = {321-322}, 266 note = {Letter to the Editor} 267 } 268 269 @article{DeBruijn67, 270 keywords = {N-thread software-solution mutual exclusion}, 271 contributer = {pabuhr@plg}, 272 author = {Nicolaas Govert de Bruijn}, 273 title = {Additional Comments on a Problem in Concurrent Programming Control}, 274 journal = cacm, 275 month = mar, 276 year = 1967, 277 volume = 10, 278 number = 3, 279 pages = {137-138}, 280 note = {letter to the Editor} 281 } 282 283 @phdthesis{Krischer10, 284 author = {Roy Krischer}, 285 title = {Advanced Concepts in Asynchronous Exception Handling}, 286 school = {University of Waterloo}, 287 year = 2010, 288 month = dec, 289 address = {Waterloo, Ontario, Canada, N2L 3G1}, 290 optnote = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/10012/\-5751\-/1/Krischer\_Roy.pdf}}, 291 note = {\href{http://uwspace.uwaterloo.ca/bitstream/10012/5751/1/Krischer_Roy.pdf}{http://uwspace.uwaterloo.ca/\-bitstream/10012/\-5751\-/1/Krischer\_Roy.pdf}}, 292 } 293 294 @article{Buhr00a, 295 keywords = {exception handling}, 296 contributer = {pabuhr@plg}, 297 author = {Peter A. Buhr and W. Y. Russell Mok}, 298 title = {Advanced Exception Handling Mechanisms}, 299 journal = ieeese, 300 volume = 26, 301 number = 9, 302 month = sep, 303 year = 2000, 304 pages = {820-836}, 305 } 306 307 @book{Richter97, 308 keywords = {Win32, threads}, 309 author = {Jeffrey M. Richter}, 310 title = {Advanced Windows}, 311 publisher = {Microsoft Press}, 312 year = 1997, 313 edition = {third}, 314 } 315 316 @article{Francez77, 317 keywords = {parameter passing, named/positional arguments}, 318 contributer = {pabuhr@plg}, 319 author = {Nissim Francez}, 320 title = {Another Advantage of Key word Notation for Parameter Communication with Subprograms}, 321 journal = cacm, 322 volume = 20, 323 number = 8, 324 month = aug, 325 year = 1977, 326 pages = {604-605}, 327 } 328 329 @article{Algol60, 330 keywords = {Algol60}, 331 contributer = {pabuhr@plg}, 332 author = {J. W. Backus and F. L. Bauer and J. Green and C. Katz and 333 J. McCarthy and P. Naur and A. J. Perlis and H. Rutishauser and K. Samuelson 334 and B. Vauquois and J.H. Wegstein and A. van Wijngaarden and M. Woodger}, 335 title = {Revised Report on the Algorithmic Language Algol 60}, 336 editor = {Peter Nauer}, 337 journal = cacm, 338 volume = 6, 339 number = 1, 340 month = jan, 341 year = 1963, 342 pages = {1-17}, 343 } 344 345 @article{Mellor-Crummey91, 346 keywords = {spin locks, compare-and-swap, barriers}, 347 contributer = {pabuhr@plg}, 348 author = {John M. Mellor-Crummey and Michael L. Scott}, 349 title = {Algorithm for Scalable Synchronization on Shared-Memory Multiprocessors}, 350 journal = tocs, 351 volume = 9, 352 number = 1, 353 month = feb, 354 year = 1991, 355 pages = {21-65}, 356 } 357 358 @article{Cormack81, 359 keywords = {}, 360 contributer = {gjditchfield@plg}, 361 author = {Gordon V. Cormack}, 362 title = {An Algorithm for the Selection of Overloaded Functions in {Ada}}, 363 journal = sigplan, 364 year = 1981, 365 month = feb, volume = 16, number = 2, pages = {48-52}, 366 comment = { 367 A one-pass, top-down algorithm for overload resolution. Input is a 368 parse tree and the desired result type, and output is the number of 369 solutions. For each overloading of the root identifier with a 370 matching parameter list, recursively solve for each parameter for 371 the corresponding argument type---there should be one solution. 372 } 373 } 374 375 @book{Raynal86, 376 keywords = {mutual exclusion, locks}, 377 contributer = {pabuhr@plg}, 378 author = {M. Raynal}, 379 title = {Algorithms for Mutual Exclusion}, 380 publisher = {The MIT Press}, 381 address = {Cambridge, Massachusetts}, 382 series = {Scientific Computation Series}, 383 year = 1986, 384 note = {Translated by D. Beeson}, 385 } 386 387 @incollection{Gidenstam05, 388 keywords = {lock free, dynamic memory allocation}, 389 contributer = {pabuhr@plg}, 390 author = {Anders Gidenstam and Marina Papatriantafilou and Philippas Tsigas}, 391 title = {Allocating Memory in a Lock-free Manner}, 392 editor = {Gerth St{\o}lting Brodal and Stefano Leonardi}, 393 booktitle = {Algorithms -- ESA 2005}, 394 pages = {329-342}, 395 publisher = {Springer}, 396 year = 2005, 397 volume = 3669, 398 series = {Lecture Notes in Computer Science}, 399 } 400 401 @book{Sites92, 402 keywords = {computers, Alpha}, 403 contributer = {pabuhr@plg}, 404 editor = {Richard L. Sites}, 405 title = {Alpha Architecture Reference Manual}, 406 publisher = {Digital Press, One Burlington Woods Drive, Burlington, MA, U. S. A., 01803}, 407 year = 1992, 408 } 409 410 @book{alphard, 411 keywords = {Parametric polymorphism, alphard, iterators, nested types}, 412 contributer = {gjditchfield@plg}, 413 editor = {Mary Shaw}, 414 title = {{ALPHARD}: Form and Content}, 415 publisher = {Springer-Verlag}, 416 year = 1981, 417 comment = {Collection of papers about Alphard.} 418 } 419 420 @article{Kessels77, 421 keywords = {monitors}, 422 contributer = {pabuhr@plg}, 423 author = {Joep L. W. Kessels}, 424 title = {An Alternative to Event Queues for Synchronization in Monitors}, 425 journal = cacm, 426 volume = 20, 427 number = 7, 428 month = jul, 429 year = 1977, 430 pages = {500-503}, 431 annote = { 432 } 433 } 434 435 @article{descr, 436 keywords = {X2, subclasses, inheritance, parameterized classes}, 437 contributer = {gjditchfield@plg}, 438 author = {David Sandberg}, 439 title = {An Alternative to Subclassing}, 440 journal = sigplan, 441 volume = {21}, number = {11}, 442 pages = {424-428}, 443 month = nov, year = 1986, 444 comment = { 445 The Smalltalk class hierarchy has three uses: factoring out code; 446 ``Abstraction superclasses'' such as Collection; rapid construction 447 of new classes by incremental change. 448 449 ``A descriptive class specifies a partial behavior by specifying a 450 set of procedure headings that describe what can be done with 451 instances of classes that belong to the descriptive class.'' An 452 ``instance'' statement declares a class to be an instance of a 453 descriptive class and defines the correspondence between 454 operations. Procedures with descriptive class parameters take any 455 instance as arguments. Descriptive classes can describe relations 456 like ``c is a collection with element type e'', but how such things 457 are used isn't explained. 458 459 For each descriptive class used in a parameter list, an implicit 460 parameter is created that is passed a vector of procedures. 461 } 462 } 463 464 @incollection{Matsuoka93, 465 keywords = {inheritance anomaly}, 466 contributer = {pabuhr@plg}, 467 author = {Satoshi Matsuoka and Akinori Yonezawa}, 468 title = {Analysis of Inheritance Anomaly in Object-Oriented Concurrent Programming Languages}, 469 booktitle = {Research Directions in Concurrent Object-Oriented Programming}, 470 editor = {Gul Agha and Peter Wegner and Akinori Yonezawa}, 471 publisher = {MIT Press}, 472 year = 1993, 473 pages = {107-150}, 474 } 475 476 @article{Sinha00, 477 author = {Saurabh Sinha and Mary Jean Harrold}, 478 title = {Analysis and Testing of Programs with Exception-Handling Constructs}, 479 journal = ieeese, 480 year = 2000, 481 month = sep, 482 volume = 26, 483 number = 9, 484 pages = {849--871}, 485 } 486 487 @inproceedings{Robillard99, 488 author = {Martin P. Robillard and Gail C. Murphy}, 489 title = {Analyzing Exception Flow in {J}ava Programs}, 490 booktitle = {ESEC/FSE-7: Proceedings of the 7th European Software Engineering Conference held jointly 491 with the 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering}, 492 year = 1999, 493 pages = {322--337}, 494 isbn = {3-540-66538-2}, 495 location = {Toulouse, France}, 496 doi = {http://doi.acm.org/10.1145/318773.319251}, 497 publisher = {Springer-Verlag}, 498 address = {London, UK}, 499 } 500 501 @book{C++, 502 keywords = {C++, ANSI}, 503 author = {Margaret A. Ellis and Bjarne Stroustrup}, 504 title = {The Annotated {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Reference Manual}, 505 publisher = {Addison-Wesley}, 506 year = 1990, 507 edition = {first}, 508 } 509 510 @book{APL, 511 keywords = {APL}, 512 contributer = {pabuhr@plg}, 513 author = {K. E. Iverson}, 514 title = {A Programming Language}, 515 publisher = {Wiley, New York}, 516 year = 1962 517 } 518 519 @article{PS-Algol:old, 520 author = {M. Atkinson and P. Bailey and K. Chisholm and P. Cockshott and R. Morrison}, 521 title = {An Approach to Persistent Programming}, 522 journal = {The Computer Journal}, 523 year = 1983, 524 volume = 26, 525 number = 4, 526 pages = {360-365}, 527 } 528 529 @article{Kessels82, 530 keywords = {concurrency, critical section}, 531 contributer = {pabuhr@plg}, 532 author = {Joep L. W. Kessels}, 533 title = {Arbitration Without Common Modifiable Variables}, 534 journal = acta, 535 volume = 17, 536 number = 2, 537 month = jun, 538 year = 1982, 539 pages = {135-141}, 540 } 541 542 @article{Buhr95a, 543 keywords = {concurrency, library approach}, 544 contributer = {pabuhr@plg}, 545 author = {Peter A. Buhr}, 546 title = {Are Safe Concurrency Libraries Possible?}, 547 journal = cacm, 548 month = feb, 549 year = 1995, 550 volume = 38, 551 number = 2, 552 pages = {117-120}, 553 } 554 555 @book{ARMv7, 556 key = {ARM processor}, 557 title = {ARM Architecture Reference Manual}, 558 publisher = {ARM}, 559 volume = {ARM DDI 0406C.b (ID072512)}, 560 year = 2012, 561 } 562 563 @book{Herlihy08, 564 contributer = {pabuhr@plg}, 565 author = {Herlihy, Maurice and Shavit, Nir}, 566 title = {The Art of Multiprocessor Programming}, 567 year = 2008, 568 isbn = {0123705916, 9780123705914}, 569 publisher = {Morgan Kaufmann Publishers Inc.}, 570 address = {San Francisco, CA, USA}, 571 } 572 573 @inproceedings{Chung10, 574 keywords = {transactional memory, lock-free programming, x86 architecture}, 575 contributer = {pabuhr@plg}, 576 author = {Jaewoong Chung and Luke Yen and Stephan Diestelhorst and Martin Pohlack and Michael Hohmuth and David Christie and Dan Grossman}, 577 title = {ASF: AMD64 Extension for Lock-Free Data Structures and Transactional Memory}, 578 booktitle = {Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture}, 579 series = {MICRO '43}, 580 year = 2010, 581 pages = {39--50}, 582 numpages = {12}, 583 publisher = {IEEE Computer Society}, 584 address = {Washington, DC, USA}, 585 } 586 587 @article{Buhr94a, 588 keywords = {assignment, parameter passing, multiple assignment}, 589 contributer = {pabuhr@plg}, 590 author = {P. A. Buhr and David Till and C. R. Zarnke}, 591 title = {Assignment as the Sole Means of Updating Objects}, 592 journal = spe, 593 month = sep, 594 year = 1994, 595 volume = 24, 596 number = 9, 597 pages = {835-870}, 598 } 599 600 @inproceedings{Krischer08, 601 keywords = {exception handling, asynchronous, blocked tasks}, 602 contributer = {pabuhr@plg}, 603 author = {Roy Krischer and Peter A. Buhr}, 604 title = {Asynchronous Exception Propagation in Blocked Tasks}, 605 booktitle = {4th International Workshop on Exception Handling (WEH.08)}, 606 organization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)}, 607 address = {Atlanta, U.S.A}, 608 month = nov, 609 year = 2008, 610 pages = {8-15}, 611 } 612 613 @article{oop:modpascal, 614 keywords = {ModPascal}, 615 contributer = {gjditchfield@plg}, 616 author = {Walter G. Olthoff}, 617 title = {Augmentation of Object-Oriented Programming by Concepts of Abstract Data Type Theory: The ModPascal Experience}, 618 journal = sigplan, 619 volume = 21, 620 number = 11, 621 pages = {429-443}, 622 month = nov, 623 year = 1986 624 } 625 626 @inproceedings{Shen91, 627 keywords = {Ada, polymorphism}, 628 contributer = {pabuhr@plg}, 629 author = {Jun Shen and Gordon V. Cormack}, 630 title = {Automatic instantiation in Ada}, 631 booktitle = {Proceedings of the ACM Tri-Ada Conference}, 632 organization= {ACM}, 633 address = {San Jose, California, U.S.A}, 634 month = oct, 635 year = 1991, 636 pages = {338-346}, 637 } 638 639 @article{Havender68, 640 keywords = {deadlock}, 641 contributer = {pabuhr@plg}, 642 author = {J. W. Havender}, 643 title = {Avoiding Deadlock in Multitasking Systems}, 644 journal = ibmsj, 645 volume = 7, 646 number = 2, 647 year = 1968, 648 pages = {74-84}, 649 } 650 651 % B 652 653 @incollection{beta:old, 654 keywords = {beta, patterns, virtual types}, 655 contributer = {gjditchfield@plg}, 656 author = {Bent Bruun Kristensen and Ole Lehrmann Madsen and Birger M{\o}ller-Pedersen and Kristen Nygaard}, 657 title = {The BETA Programming Language}, 658 booktitle = {Research Directions in Object-Oriented Programming}, 659 publisher = {MIT Press}, 660 series = {Computer Systems Series}, 661 year = 1987, 662 pages = {7-48}, 663 editor = {Bruce Shriver and Peter Wegner} 664 } 665 666 @article{Knudsen87, 667 keyword = {static exception handling mechanism, BETA, sequel}, 668 contributor = {wyrmok@plg}, 669 author = {J{\o}rgen Lindskov Knudsen}, 670 title = {Better Exception Handling in Block Structured Systems}, 671 journal = {IEEE Software}, 672 year = 1987, 673 month = may, 674 volume = 4, 675 number = 3, 676 pages = {40-49}, 677 comments = { 678 Going up the call hierarchy to look for a handler does not fit an 679 otherwise statically scoped language. Also, not knowing which handler 680 to be used when raising an abnormal event is seen as a weakness of the 681 (dynamic) exception handling mechanism. Knudsen believed that raising 682 an exception should specify the handler for the exception -- the 683 handler is chosen when the exception is raised. However, I don't think 684 his scheme can solve the problem, especially with all the callback 685 routines commonly found in OO programming. 686 687 BETA exception handling mechanism uses his work as a foundation. 688 However, I don't see any benefits BETA has over other language that is 689 a direct consequence of Knudsen's work. On the other hand, my knowledge 690 on BETA is very limited. 691 } 692 } 693 694 @book{BCPL, 695 keywords = {BCPL}, 696 contributer = {pabuhr@plg}, 697 author = {M. Richards and C. Whitby-Strevens}, 698 title = {{BCPL} -- The Language and Its Compiler}, 699 publisher = {Cambridge University Press, Cambridge}, 700 year = 1979, 701 } 702 703 @incollection{Madsen87, 704 keywords = {nested classes}, 705 contributer = {pabuhr@watmsg}, 706 author = {Ole Lehrmann Madsen}, 707 title = {Block Structure and Object Oriented Languages}, 708 booktitle = {Research Directions in Object-Oriented Programming}, 709 editor = {Bruce Shriver and Peter Wegner}, 710 publisher = {MIT Press}, 711 series = {Computer Systems Series}, 712 year = 1987, 713 pages = {113-128} 714 } 715 716 @inproceedings{booleanClasses, 717 keywords = {specifications}, 718 contributer = {gjditchfield@plg}, 719 author = {David McAllester and Ramin Zabih}, 720 title = {Boolean Classes}, 721 crossref = "OOPSLA86", 722 pages = {417-423}, 723 abstract = { 724 We extend the notion of class so that any Boolean combination of 725 classes is also a class. Boolean classes allow greater precision 726 and conciseness in naming the class of objects governed a 727 particular method [sic]. A class can be viewed as a predicate 728 which is either true or false of any given object. Unlike 729 predicates however classes have an inheritance hierarchy which is 730 known at compile time. Boolean classes extend the notion of class, 731 making classes more like predicates, while preserving the compile 732 time computable inheritance hierarchy. 733 }, 734 comment = { 735 Classes are predicates; if object {\tt o} is in class {\tt C}, then 736 {\tt C} is true of {\tt o}. Classes are combined with {\tt :AND}, 737 {\tt :OR}, and {\tt :NOT}. Inheritance is treated as implication: 738 {\tt (:implies C E)} means that if class {\tt C} is true of {\tt 739 o}, class expression {\tt E} is true of {\tt o}, so if {\tt E} is a 740 class, it is a superclass of {\tt C}. Some class expressions, i.e. 741 {\tt (:OR c1 c2)}, can't be instantiated. Others, i.e. {\tt (:NOT 742 c)}, can't be given methods or members because almost all classes 743 would inherit them, violating modularity. The rules for spotting 744 these problems are complex. Determining if one class inherits from 745 another needs an exponential algorithm. 746 } 747 } 748 749 @mastersthesis{Krischer02, 750 author = {Roy Krischer }, 751 title = {Bound Exceptions in Object-Oriented Programming Languages}, 752 school = {Universit\"at Mannheim}, 753 address = {Mannheim, Deutschland}, 754 year = 2002, 755 month = oct, 756 type = {Diplomarbeit}, 757 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-KrischerThesis.ps.gz}}}, 758 } 759 760 @inproceedings{Buhr03, 761 keywords = {exception handling, bound handler}, 762 contributer = {pabuhr@plg}, 763 author = {Peter A. Buhr and Roy Krischer}, 764 title = {Bound Exceptions in Object Programming}, 765 booktitle = {Proceedings of the ECOOP 2003 Workshop on Exception Handling in Object Oriented Systems: 766 Towards Emerging Application Areas and New Programming Paradigms}, 767 organization= {ECOOP}, 768 address = {Darmstadt, Germany}, 769 month = jul, 770 year = 2003, 771 pages = {20-26}, 772 } 773 % note = {http://www.cs.umn.edu/research/technical_reports.php/listing/technical_reports.php?page=report&report_id=03-028} 774 775 @inproceedings{Buhr06b, 776 keywords = {exception handling, bound exceptions}, 777 author = {Peter A. Buhr and Roy Krischer}, 778 title = {Bound Exceptions in Object-Oriented Programming}, 779 editor = {C. Dony and J. L. Knudsen and A. Romanovsky and A. Tripathi}, 780 booktitle = {Advanced Topics in Exception Handling Techniques}, 781 publisher = {Springer-Verlag}, 782 series = {Lecture Notes in Computer Science}, 783 volume = 4119, 784 year = 2006, 785 pages = {1-21} 786 } 787 788 % C 789 790 @book{C, 791 keywords = {C}, 792 contributer = {pabuhr@plg}, 793 author = {Brian W. Kernighan and Dennis M. Ritchie}, 794 title = {The {C} Programming Language}, 795 publisher = {Prentice Hall}, 796 year = 1988, 797 edition = {second}, 798 series = {Prentice Hall Software Series}, 799 comment = { 800 based on draft-proposed ANSI C 801 } 802 } 803 804 @book{C:old, 805 keywords = {C}, 806 contributer = {pabuhr@plg}, 807 author = {Brian W. Kernighan and Dennis M. Ritchie}, 808 title = {The {C} Programming Language}, 809 publisher = {Prentice Hall}, 810 year = 1978, 811 edition = {first}, 812 } 813 814 @manual{ANSI89:C, 815 keywords = {ANSI C 89}, 816 contributer = {gjditchfield@plg}, 817 title = {American National Standard for Information Systems -- Programming Language -- {C}}, 818 organization= {American National Standards Institute}, 819 address = {1430 Broadway, New York, New York 10018}, 820 month = dec, 821 year = 1989, 822 note = {X3.159-1989} 823 } 824 825 @manual{C11, 826 keywords = {ISO/IEC C 11}, 827 contributer = {pabuhr@plg}, 828 key = {C11}, 829 title = {American National Standard Information technology -- Programming Languages -- {C}}, 830 organization= {International Standard ISO/IEC 9899-2011[2012]}, 831 publisher = {International Standard Organization}, 832 address = {http://www.iso.org}, 833 year = 2012, 834 } 835 836 @mastersthesis{Esteves04, 837 keywords = {Cforall, parametric polymorphism, overloading}, 838 contributer = {pabuhr@plg}, 839 author = {Rodolfo Gabriel Esteves}, 840 title = {C$\forall$, a Study in Evolutionary Design in Programming Languages}, 841 school = {School of Computer Science, University of Waterloo}, 842 year = 2004, 843 address = {Waterloo, Ontario, Canada, N2L 3G1}, 844 note = {\href{http://plg.uwaterloo.ca/theses/EstevesThesis.pdf}{http://\-plg.uwaterloo.ca/\-theses/\-EstevesThesis.pdf}}, 845 } 846 847 @inproceedings{c++scheme, 848 keywords = {}, 849 contributer = {gjditchfield@plg}, 850 author = {Vincent F. Russo and Simon M. Kaplan}, 851 title = {A {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Interpreter for {S}cheme}, 852 booktitle = {Usenix {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference}, 853 year = 1988, 854 pages = {95-108}, 855 summary = { 856 The SIOD interpreter for a Scheme subset, written in C, has a 857 tagged union representing data objects, and read(), eval(), and 858 print() functions that are basically large switch statements that 859 switch based on the tag. The authors rewrote it to use a class 860 with virtual read(), eval(), and print() members, without changing 861 any algorithms. The result was more modular, more easily 862 extensible, more reliable, and slightly faster. 863 }, 864 comment = { 865 The evidence given is thin. 866 } 867 } 868 869 @article{doskernel, 870 keywords = {light weight processes}, 871 contributer = {gjditchfield@plg}, 872 author = {Tom Green}, 873 title = {A {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Multitasking Kernel}, 874 journal = {Dr. Dobb's Journal of Software Tools}, 875 year = 1989, 876 month = feb, volume = 14, number = 2, pages = {45-51}, 877 comment = { 878 A light-weight multitasking kernel for MS-DOS. A task\_control 879 object holds task objects, which may block themselves on signal 880 objects. Task switching is normally preemptive, but tasks can turn 881 off preemption before calling non-reentrant routines. Source code 882 is given. 883 } 884 } 885 886 @inproceedings{Doeppner87, 887 keywords = {concurrency}, 888 contributer = {pabuhr@plg}, 889 author = {Thomas W. Doeppner and Alan J. Gebele}, 890 title = {{C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} on a Parallel Machine}, 891 booktitle = {Proceedings and Additional Papers {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Workshop}, 892 organization= {USENIX Association}, 893 address = {Santa Fe, New Mexico, U.S.A}, 894 month = nov, 895 year = 1987, 896 pages = {94-107}, 897 } 898 899 @book{Lippman91, 900 keywords = {C++}, 901 contributer = {pabuhr@plg}, 902 author = {Stanley B. Lippman}, 903 title = {{C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Primer}, 904 publisher = {Addison-Wesley}, 905 year = 1991, 906 edition = {second}, 907 note = {QA76.73.C15L57}, 908 } 909 910 @book{c++:v1, 911 keywords = {C++}, 912 contributer = {gjditchfield@plg}, 913 author = {Bjarne Stroustrup}, 914 title = {The {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language}, 915 publisher = {Addison-Wesley}, 916 year = 1986, 917 edition = {first}, 918 series = {Addison-Wesley Series in Computer Science} 919 } 920 921 @book{c++:v2, 922 keywords = {C++}, 923 contributer = {pabuhr@plg}, 924 author = {Bjarne Stroustrup}, 925 title = {The {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language}, 926 publisher = {Addison-Wesley}, 927 year = 1991, 928 edition = {second}, 929 } 930 931 @book{c++:v3, 932 keywords = {C++}, 933 contributer = {pabuhr@plg}, 934 author = {Bjarne Stroustrup}, 935 title = {The {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language}, 936 publisher = {Addison-Wesley}, 937 year = 1997, 938 edition = {third}, 939 } 940 941 @manual{Csharp, 942 keywords = {C#}, 943 contributer = {pabuhr@plg}, 944 title = {C\# Language Specification, Standard ECMA-334}, 945 organization= {ECMA International Standardizing Information and Communication Systems}, 946 month = jun, 947 year = 2006, 948 edition = {4th}, 949 } 950 951 @article{Buhr85, 952 keywords = {goto, multi-exit loop}, 953 contributer = {pabuhr@plg}, 954 author = {P. A. Buhr}, 955 title = {A Case for Teaching Multi-exit Loops to Beginning Programmers}, 956 journal = sigplan, 957 volume = 20, 958 number = 11, 959 month = nov, 960 year = 1985, 961 pages = {14-22} 962 } 963 964 @techreport{cforall-ug, 965 keywords = {cforall, user guide}, 966 contributer = {pabuhr@plg}, 967 author = {Peter A. Buhr and Glen Ditchfield and David Till and Charles R. Zarnke}, 968 title = {\mbox{\mdseries\sffamily C{$\mathbf{\forall}$}}\ Users Guide, Version 0.1}, 969 institution = {Department of Computer Science, University of Waterloo}, 970 address = {Waterloo, Ontario, Canada, N2L 3G1}, 971 month = oct, 972 year = 2001, 973 note = {\href{http://plg.uwaterloo.ca/~cforall/cfa.ps}{http://\-plg.uwaterloo.ca/\-\char`\~cforall/\-cfa.ps}}, 974 } 975 976 @manual{cforall, 977 keywords = {polymorphism}, 978 contributer = {gjditchfield@plg}, 979 author = {Glen Ditchfield}, 980 title = {Cforall Reference Manual and Rationale}, 981 edition = {Revision 1.82}, 982 month = jan, 983 year = 1998, 984 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-Cforall/\-refrat.ps.gz}}}, 985 } 986 987 @book{Yourdon79, 988 keywords = {software engineering}, 989 contributer = {pabuhr@plg}, 990 editor = {Edward Nash Yourdon}, 991 title = {Classics in Software Engineering}, 992 publisher = {Yourdon Press}, 993 year = 1979, 994 } 995 996 @inproceedings{Crnogorac98, 997 keywords = {inheritance anomaly}, 998 contributer = {pabuhr@plg}, 999 author = {Lobel Crnogorac and Anand S. Rao and Kotagiri Ramamohanarao}, 1000 title = {Classifying Inheritance Mechanisms in Concurrent Object-Oriented Programming}, 1001 editor = {Eric Jul}, 1002 booktitle = {{ECOOP}~'98---Object-Oriented Programming}, 1003 series = {Lecture Notes in Computer Science}, 1004 publisher = {Springer}, 1005 volume = 1445, 1006 year = 1998, 1007 pages = {571-601}, 1008 ISBN = {3-540-64737-6}, 1009 ISSN = {0302-9743}, 1010 abstract = { 1011 Inheritance is one of the key concepts in object-oriented rogramming. However, the 1012 usefulness of inheritance in concurrent object-oriented programming is greatly 1013 reduced by the problem of inheritance anomaly. Inheritance anomaly is manifested 1014 by undesirable re-definitions of inherited code. The problem is aggravated by the 1015 lack of a formal analysis, with a multitude of differing proposals and conflicting 1016 opinions causing the current state of research, and further directions, to be 1017 unclear. In this paper we present a formal analysis of inheritance anomaly in 1018 concurrent object-oriented programming. Starting from a formal definition of the 1019 problem we develop a taxonomy of the anomaly, and use it to classify the various 1020 proposals. As a result, the major ideas, trends and limitations of the various 1021 proposals are clearly exposed. Formal analysis of the anomaly and a thorough 1022 exposition of its causes and implications are the pre-requisites for a successful 1023 integration of inheritance and concurrency. 1024 }, 1025 } 1026 1027 @book{CLU, 1028 keywords = {CLU}, 1029 contributer = {gjditchfield@plg}, 1030 author = {Barbara Liskov and Russell Atkinson and Toby Bloom and Eliot 1031 Moss and J. Craig Schaffert and Robert Scheifler and Alan Snyder}, 1032 title = {CLU Reference Manual}, 1033 publisher = {Springer-Verlag}, 1034 year = 1981, 1035 volume = 114, 1036 series = {Lecture Notes in Computer Science} 1037 } 1038 1039 @manual{Cobol14, 1040 keywords = {ISO/IEC Cobol 14}, 1041 contributer = {pabuhr@plg}, 1042 key = {Cobol14}, 1043 title = {Programming Languages -- {Cobol}}, 1044 edition = {second}, 1045 organization= {International Standard ISO/IEC 1989:2014}, 1046 publisher = {International Standard Organization}, 1047 address = {http://www.iso.org}, 1048 year = 2014, 1049 } 1050 1051 @article{coagulation, 1052 keywords = {register allocation, instruction selection, jello}, 1053 contributer = {gjditchfield@plg}, 1054 author = {Michael Karr}, 1055 title = {Code Generation by Coagulation}, 1056 journal = sigplan, 1057 year = 1984, 1058 month = jun, volume = 19, number = 6, pages = {1-12}, 1059 note = {Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction}, 1060 abstract = { 1061 This paper describes a new approach to code-generation. The 1062 central tenet is that there must be a more intimate coupling 1063 between register allocation and instruction selection than exists 1064 in present-day technology. This is achieved by generating code in 1065 very small regions and gradually coalescing the part of the program 1066 that is ``compiled''. 1067 }, 1068 comment = { 1069 Imagine the program, including the subroutines, spread out over a 1070 table, with the compiler dropping Jello on the parts as they are 1071 compiled. At first little drops appear in seemingly random places. 1072 These get bigger and combine with other drops to form growing 1073 globs. When two globs meet, ripples will go out through each as 1074 they adjust to each other's presence, although the parts of the 1075 globs that formed first are less affected by the ripples. When 1076 compilation is complete, there is one congealed mass. 1077 } 1078 } 1079 1080 @article{Soloway83, 1081 keywords = {goto, structure programming}, 1082 contributer = {pabuhr@plg}, 1083 author = {E. Soloway and J. Bonar and K. Ehrlich}, 1084 title = {Cognitive Strategies and Looping Constructs: An Empirical Study}, 1085 journal = cacm, 1086 month = nov, 1087 year = 1983, 1088 volume = 26, 1089 number = 11, 1090 pages = {853-860}, 1091 } 1092 1093 @book{sml:commentary, 1094 author = {Robin Milner and Mads Tofte}, 1095 title = {Commentary on Standard {ML}}, 1096 publisher = {MIT Press}, 1097 address = {Cambridge, Massachusetts, U.S.A.}, 1098 year = 1991 1099 } 1100 1101 @article{Hyman66, 1102 keywords = {mutual exclusion, software solution, incorrect}, 1103 contributer = {pabuhr@plg}, 1104 author = {Harris Hyman}, 1105 title = {Comments on a Problem in Concurrent Programming Control}, 1106 journal = cacm, 1107 month = jan, 1108 year = 1966, 1109 volume = 9, 1110 number = 1, 1111 pages = {45}, 1112 note = {Letter to the Editor} 1113 } 1114 1115 @inproceedings{clos, 1116 keywords = {}, 1117 contributer = {gjditchfield@plg}, 1118 author = {Linda G. DeMichiel and Richard P. Gabriel}, 1119 title = {The Common Lisp Object System: An Overview}, 1120 booktitle = {ECOOP '87. European Conference on Object-Oriented Programming}, 1121 year = 1987, 1122 pages = {151-170}, 1123 publisher = {Springer-Verlag} 1124 } 1125 1126 @book{CommonLisp, 1127 keywords = {common lisp}, 1128 contributer = {pabuhr@plg}, 1129 author = {G. Steele}, 1130 title = {COMMON LISP: The Language}, 1131 publisher = {Digital Press}, 1132 year = 1984 1133 } 1134 1135 @article{CommonLoops, 1136 author = {D. Bobrow and K. Kahn and G. Kiczales and L. Masinter and M. Stefik and F. Zdybel}, 1137 title = {CommonLoops: Merging Common Lisp and Object-Oriented Programming}, 1138 address = {Portland, Oregon, U.S.A.}, 1139 journal = {Proc. ACM Conf. on Object-Oriented Systems, Languages and Applications}, 1140 year = 1986, 1141 month = sep, 1142 pages = {17-29}, 1143 } 1144 1145 @article{co-overview, 1146 keywords = {CommonObjects, implementation, encapsulation}, 1147 contributer = {gjditchfield@plg}, 1148 author = {Alan Snyder}, 1149 title = {CommonObjects: An Overview}, 1150 journal = sigplan, 1151 year = 1986, 1152 month = oct, volume = 21, number = 10, pages = {19-28}, 1153 note = {Object Oriented Programming Workshop} 1154 } 1155 1156 @article{CSP, 1157 keywords = {CSP, concurrency}, 1158 contributer = {pabuhr@plg}, 1159 author = {C. A. R. Hoare}, 1160 title = {Communicating Sequential Processes}, 1161 journal = cacm, 1162 month = aug, 1163 year = 1978, 1164 volume = 21, 1165 number = 8, 1166 pages = {666-677} 1167 } 1168 1169 @book{Hoare85, 1170 author = {C. A. R. Hoare}, 1171 title = {Communicating Sequential Processes}, 1172 year = 1985, 1173 isbn = {0-13-153271-5}, 1174 publisher = {Prentice-Hall, Inc.}, 1175 address = {Upper Saddle River, NJ, USA}, 1176 note = {\href{http://www.usingcsp.com/cspbook.pdf}{http://\-www.usingcsp.com/\-cspbook.pdf}}, 1177 } 1178 1179 @article{Hansen72a, 1180 keywords = {monitors, automatic signal}, 1181 contributer = {pabuhr@plg}, 1182 author = {Per {Brinch Hansen}}, 1183 title = {A Comparison of Two Synchronizing Concepts}, 1184 journal = acta, 1185 volume = 1, 1186 year = 1972, 1187 pages = {190-199}, 1188 } 1189 1190 @book{Aho06, 1191 author = {Alfred V. Aho and Monica S. Lam and Ravi Sethi and Jeffrey D. Ullman}, 1192 title = {Compilers: Principles, Techniques, and Tools}, 1193 edition = {second}, 1194 year = {2006}, 1195 publisher = {Addison-Wesley Longman Publishing Co., Inc.}, 1196 address = {Boston, MA, USA}, 1197 } 1198 1199 @article{Bacon94, 1200 keywords = {parallelizing compiler}, 1201 contributer = {pabuhr@plg}, 1202 author = {David F. Bacon and Susan L. Graham and Oliver J. Sharp}, 1203 title = {Compiler Transformations for High-Performance Computing}, 1204 journal = acmcs, 1205 volume = 26, 1206 number = 4, 1207 month = dec, 1208 year = 1994, 1209 pages = {345-420}, 1210 } 1211 1212 @inproceedings{Berger01, 1213 author = {Emery D. Berger and Benjamin G. Zorn and Kathryn S. McKinley}, 1214 title = {Composing High-Performance Memory Allocators}, 1215 booktitle = {{SIGPLAN} Conference on Programming Language Design and Implementation}, 1216 pages = {114-124}, 1217 year = 2001, 1218 url = {http://citeseer.ist.psu.edu/berger01composing.html} 1219 } 1220 1221 @article{Andrews83, 1222 keywords = {general concurrency}, 1223 contributer = {pabuhr@plg}, 1224 author = {Gregory R. Andrews and Fred B. Schneider}, 1225 title = {Concepts and Notations for Concurrent Programming}, 1226 journal = acmcs, 1227 volume = 15, 1228 number = 1, 1229 month = mar, 1230 year = 1983, 1231 pages = {3-43}, 1232 } 1233 1234 @mastersthesis{Mok97, 1235 author = {Wing Yeung Russell Mok}, 1236 title = {Concurrent Abnormal Event Handling Mechanisms}, 1237 school = {University of Waterloo}, 1238 year = 1997, 1239 month = sep, 1240 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1241 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-MokThesis.ps.gz}}}, 1242 } 1243 1244 @article{Gehani86, 1245 keywords = {Concurrent programming, C, Distributed systems, rendezvous}, 1246 contributer = {dgharriss@plg}, 1247 author = {N. H. Gehani and W. D. Roome}, 1248 title = {{Concurrent C}}, 1249 journal = spe, 1250 volume = 16, 1251 number = 9, 1252 month = sep, 1253 year = 1986, 1254 pages = {821-844}, 1255 abstract = { 1256 Our objective is to enhance C so that it can be used to write 1257 concurrent programs that can run efficiently on both single computers 1258 and multicomputers. Our concurrent programming extensions to C are 1259 based on the {\it rendezvous\/} concept. These extensions include 1260 mechanisms for the declaration and creation of processes, for process 1261 synchronization and interaction, for process termination and abortion. 1262 We give a rationale for our decisions and compare Concurrent C 1263 extensions with the concurrent programming facilities in Ada. 1264 Concurrent C has been implemented on the UNIX system running on a 1265 single processor. A distributed version of Concurrent C is being 1266 implemented. 1267 }, 1268 comment = { 1269 Select with guarded and screened accepts. Typed processes. 1270 Process-valued expressions and process variables. Processes have 1271 execution priority: Create {\em process-type-name}(args) [with 1272 priority(p)], 1273 and the priority can be changed on the fly. Complicated guard/ 1274 screen structure on accept: accept {\em transaction}(param names) 1275 [suchthat (exp)] [by (exp)] [compoundstatement]. Accepts cannot 1276 appear in functions! Can specify timeouts on transaction calls. 1277 Code examples: buffer process, dining philosophers, lock manager. 1278 Section on diffs between Concurrent C and Ada. 1279 } 1280 } 1281 1282 @article{ConcurrentC++, 1283 keywords = {concurrency, C++}, 1284 contributer = {pabuhr@plg}, 1285 author = {N. H. Gehani and W. D. Roome}, 1286 title = {Concurrent {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}: Concurrent Programming with Class(es)}, 1287 journal = spe, 1288 month = dec, 1289 year = 1988, 1290 volume = 18, 1291 number = 12, 1292 pages = {1157-1177} 1293 } 1294 1295 @article{Courtois71, 1296 keywords = {reader and writer, p and v}, 1297 contributer = {pabuhr@plg}, 1298 author = {P. J. Courtois and F. Heymans and D. L. Parnas}, 1299 title = {Concurrent Control with Readers and Writers}, 1300 journal = cacm, 1301 volume = 14, 1302 number = 10, 1303 month = oct, 1304 year = 1971, 1305 pages = {667-668}, 1306 annote = { 1307 Many errors in the two solutions. 1308 } 1309 } 1310 1311 @incollection{Reppy93, 1312 keywords = {ML, concurrency, continuation passing}, 1313 contributer = {pabuhr@plg}, 1314 author = {John H. Reppy}, 1315 title = {Concurrent {ML}: Design, Application and Semantics}, 1316 booktitle = {Functional Programming, Concurrency, Simulation and Automated Reasoning}, 1317 editor = {P. E. Lauer}, 1318 pages = {165-198}, 1319 publisher = {Springer-Verlag}, 1320 address = {Berlin, DE}, 1321 year = 1993, 1322 ISBN = {3-540-56883-2}, 1323 abstract = { 1324 Concurrent ML (CML) is a high-level language for concurrent 1325 programming. It is an extension of Standard ML (SML) and is implemented 1326 on top of Standard ML of New Jersey (SML/NJ). CML is a practical 1327 language and is being used to build real systems. It demonstrates that 1328 one need not sacrifice high-level notation in order to have good 1329 performance. CML is also a well-defined language. In the tradition of 1330 SML, it has a formal semantics and its type-soundness has been 1331 proven.}, 1332 note = { 1333 Proceedings of International Lecture Series 1991-92, McMaster 1334 UniversityLecture Notes in Computer Science 693.}, 1335 } 1336 1337 @article{BLASE-2, 1338 keywords = {concurrency, BLASE-2}, 1339 contributer = {pabuhr@plg}, 1340 author = {Piyush Mehrotra and John Van Rosendale}, 1341 title = {Concurrent Object Access in BLASE~2}, 1342 journal = sigplan, 1343 volume = 24, 1344 number = 4, 1345 month = apr, 1346 year = 1989, 1347 pages = {40-42}, 1348 note = {Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, 1349 Sept. 26--27, 1988, San Diego, California, U.S.A}, 1350 } 1351 1352 @techreport{Kafura88, 1353 keywords = {objects, concurrency}, 1354 contributer = {pabuhr@plg}, 1355 author = {Dennis Kafura}, 1356 title = {Concurrent Object-Oriented Real-Time Systems Research}, 1357 institution = {Department of Computer Science, Virginia Polytechnic}, 1358 number = {TR 88-47}, 1359 year = 1988 1360 } 1361 1362 @article{Buhr92a, 1363 keywords = {C++, concurrency, light-weight process, shared memory}, 1364 contributer = {pabuhr@plg}, 1365 author = {P. A. Buhr and Glen Ditchfield and R. A. Stroobosscher and B. M. Younger and C. R. Zarnke}, 1366 title = {$\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}: Concurrency in the Object-Oriented Language {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 1367 journal = spe, 1368 volume = 22, 1369 number = 2, 1370 month = feb, 1371 year = 1992, 1372 pages = {137-172}, 1373 } 1374 1375 @techreport{uC++, 1376 keywords = {C++, concurrency, light-weight process, shared memory}, 1377 contributer = {pabuhr@plg}, 1378 author = {Peter A. Buhr}, 1379 title = {$\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Annotated Reference Manual, Version 6.1.0}, 1380 institution = {School of Computer Science, University of Waterloo}, 1381 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1382 month = jul, 1383 year = 2015, 1384 note = {\href{http://plg.uwaterloo.ca/~usystem/pub/uSystem/u++-6.1.0.sh}{\textsf{http://plg.uwaterloo.ca/\-$\sim$usystem/\-pub/\-uSystem/\-u++-6.1.0.sh}}}, 1385 } 1386 1387 @book{Burns93, 1388 keywords = {concurrency, Pascal}, 1389 contributer = {pabuhr@plg}, 1390 author = {Alan Burns and Geoff Davies}, 1391 title = {Concurrent Programming}, 1392 publisher = {Addison-Wesley}, 1393 year = 1993, 1394 } 1395 1396 @article{Hansen73a, 1397 keywords = {monitors}, 1398 contributer = {pabuhr@plg}, 1399 author = {Per {Brinch Hansen}}, 1400 title = {Concurrent Programming Concepts}, 1401 journal = spe, 1402 month = dec, 1403 year = 1973, 1404 volume = 5, 1405 number = 4, 1406 pages = {223-245}, 1407 } 1408 1409 @book{Lea97, 1410 keywords = {concurrency, Java}, 1411 contributer = {pabuhr@plg}, 1412 author = {Doug Lea}, 1413 title = {Concurrent Programming in {J}ava: Design Principles and Patterns}, 1414 publisher = {Addison-Wesley}, 1415 year = 1997, 1416 edition = {first}, 1417 } 1418 1419 @book{Hartley98, 1420 keywords = {concurrency, Java}, 1421 contributer = {pabuhr@plg}, 1422 author = {Stephen J. Hartley}, 1423 title = {Concurrent Programming: The {J}ava Programming Language}, 1424 publisher = {Oxford University Press}, 1425 year = 1998, 1426 edition = {first}, 1427 } 1428 1429 @book{Lea00, 1430 keywords = {concurrency, Java}, 1431 contributer = {pabuhr@plg}, 1432 author = {Doug Lea}, 1433 title = {Concurrent Programming in {J}ava: Design Principles and Patterns}, 1434 publisher = {Addison-Wesley}, 1435 year = 2000, 1436 edition = {second}, 1437 } 1438 1439 @book{ConcurrentC, 1440 keywords = {concurrency, C}, 1441 contributer = {pabuhr@plg}, 1442 author = {N. H. Gehani and W. D. Roome}, 1443 title = {The {Concurrent C} Programming Language}, 1444 publisher = {Silicon Press, NJ}, 1445 year = 1989, 1446 } 1447 1448 @book{Andrews91:book, 1449 keywords = {concurrency}, 1450 contributer = {pabuhr@plg}, 1451 author = {Gregory R. Andrews}, 1452 title = {Concurrent Programming: Principles and Practice}, 1453 publisher = {Benjamin/Cummings Publishing Company, Inc., Redwood City, California}, 1454 year = 1991, 1455 } 1456 1457 @article{Buhr05a, 1458 keywords = {concurrency, myths}, 1459 contributer = {pabuhr@plg}, 1460 author = {Peter A. Buhr and Ashif S. Harji}, 1461 title = {Concurrent Urban Legends}, 1462 journal = {Concurrency and Computation: Practice and Experience}, 1463 month = aug, 1464 year = 2005, 1465 volume = 17, 1466 number = 9, 1467 pages = {1133-1172}, 1468 } 1469 1470 @techreport{Buhr90, 1471 keywords = {objects, concurrency}, 1472 contributer = {gjditchfield@plg}, 1473 author = {P. A. Buhr and G. J. Ditchfield and B. M. Younger and C. R. Zarnke}, 1474 title = {Concurrency in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 1475 institution = {Department of Computer Science, University of Waterloo}, 1476 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1477 number = {CS-90-18}, 1478 month = may, 1479 year = 1990 1480 } 1481 1482 @book{Burns98, 1483 keywords = {concurrency, Ada}, 1484 author = {Alan Burns and Andy Wellings}, 1485 title = {Concurrency in {Ada}}, 1486 publisher = {Cambridge University Press}, 1487 year = 1998, 1488 edition = {second}, 1489 } 1490 1491 @book{Bernstein93, 1492 keywords = {concurrency}, 1493 author = {Arthur J. Bernstein and Philip M. Lewis}, 1494 title = {Concurrency in Programming and Database Systems}, 1495 publisher = {Jones and Bartlett}, 1496 year = 1993, 1497 } 1498 1499 @inproceedings{Pitman01, 1500 keywords = {LISP, exception handling}, 1501 contributer = {pabuhr@plg}, 1502 author = {Kent M. Pitman}, 1503 title = {Condition Handling in the Lisp Language Family}, 1504 booktitle = {Exception Handling}, 1505 publisher = {Springer-Verlag}, 1506 volume = 2022, 1507 series = {LNCS}, 1508 year = 2001, 1509 pages = {39-59} 1510 } 1511 1512 @inbook{enhancement, 1513 keywords = {bounded polymorphism, Comandos}, 1514 contributer = {gjditchfield@plg}, 1515 author = {Chris Horn}, 1516 title = {Conformace, Genericity, Inheritance and Enhancement}, 1517 pages = {223-233}, 1518 publisher = {Springer-Verlag}, 1519 year = 1987, 1520 volume = 276, 1521 series = "Lecture Notes in Computer Science", 1522 note = "ECOOP '87 European Conference on Object-Oriented Programming", 1523 summary = { 1524 Considers effect of conformance on Meyer's conclusions in 1525 \cite{polymorphism}. 1526 1527 Implementing a swap function as a member of a type {\cd Swappable} 1528 with {\cd in out Top} parameters doesn't work, because conformance 1529 requires arguments to be of type {\cd Top}. 1530 1531 An enhancive type has a type parameter, bounded by some type, and 1532 defines members. Types conforming to the bound can be passed as 1533 arguments to create types with the extra members. The signature of 1534 the enhanced type is based on the signature of the argument, not the 1535 bound, as if enhancive types were macros. Hence enhanced types do not 1536 necessarily conform to each other. Types conforming to the bound 1537 conform to enhanced types, which allows new functions to be applied 1538 to old types. 1539 1540 Enhancive types are not generic types. If the argument is omitted, 1541 the bound is used as a default. Assignment of enhanced types to 1542 default-enhanced types is allowed (enhanced types conform to the 1543 default-enhanced type). This is (probably) statically type-safe, 1544 because arguments must conform to the bound, and the new members 1545 only use operations defined for the bound. 1546 1547 With facilities for member renaming and deletion, enhancive types 1548 provide the equivalent of constrained generic types. 1549 } 1550 } 1551 1552 @phdthesis{Ditchfield92, 1553 keywords = {C, parametric polymorphism, overloading}, 1554 contributer = {pabuhr@plg}, 1555 author = {Glen Jeffrey Ditchfield}, 1556 title = {Contextual Polymorphism}, 1557 school = {Department of Computer Science, University of Waterloo}, 1558 year = 1992, 1559 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1560 note = {\href{http://plg.uwaterloo.ca/theses/DitchfieldThesis.pdf}{http://\-plg.uwaterloo.ca/\-theses/\-DitchfieldThesis.pdf}} 1561 } 1562 1563 @inproceedings{frameworks:HHG90, 1564 keywords = {formal}, 1565 contributer = {pabuhr@plg}, 1566 author = {Richard Helm and Ian M. Holland and Dipayan Gangopadhyay}, 1567 title = {Contracts: Specifying Behavioural Compositions in Cbject-Oriented Systems}, 1568 booktitle = {Proceedings of ACM Symposium on Object-Oriented Programming: Systems, Languages and Applications}, 1569 year = 1990, 1570 pages = {169-180}, 1571 } 1572 1573 @article{Wand80, 1574 keywords = {concurrency, continuation}, 1575 contributer = {pabuhr@plg}, 1576 author = {Mitchell Wand}, 1577 title = {Continuation-Based Multiprocessing}, 1578 publisher = {The Lisp Conference}, 1579 journal = {Conference Record of the 1980 Lisp Conference}, 1580 pages = {19-28}, 1581 year = 1980, 1582 } 1583 1584 @article{Hieb90, 1585 keywords = {continuations, concurrency}, 1586 contributer = {pabuhr@plg}, 1587 author = {Robert Hieb and R. Kent Dybvig}, 1588 title = {Continuations and Concurrency}, 1589 journal = sigplan, 1590 volume = 25, 1591 number = 3, 1592 month = mar, 1593 year = 1990, 1594 pages = {128-136}, 1595 note = {Proceedings of the Second ACM SIGPLAN Symposium on Principles \& Practise of Parallel Programming, 1596 March. 14--16, 1990, Seattle, Washington, U.S.A}, 1597 } 1598 1599 @inproceedings{Haynes84, 1600 keywords = {continuations, coroutines, Scheme}, 1601 contributer = {pabuhr@plg}, 1602 author = {Christopher T. Haynes and Daniel P. Friedman and Mitchell Wand}, 1603 title = {Continuations and Coroutines}, 1604 booktitle = {Conference Record of the 1984 {ACM} Symposium on Lisp and Functional Programming}, 1605 organization= {Association for Computing Machinery}, 1606 month = aug, 1607 year = 1984, 1608 pages = {293-298}, 1609 abstract = { 1610 The power of first class continuations is demonstrated by implementing 1611 a variety of coroutine mechanisms using only continuations and 1612 functional abstraction. The importance of general abstraction 1613 mechanisms such as continuations is discussed.}, 1614 } 1615 1616 @inproceedings{Zahn74, 1617 keywords = {goto, structured programming}, 1618 contributer = {pabuhr@plg}, 1619 author = {C. T. Zahn}, 1620 title = {Control Statement for Natural Top-down Structured Programming}, 1621 booktitle = {Symposium on Programming Languages}, 1622 address = {Paris, France}, 1623 year = 1974, 1624 } 1625 1626 @techreport{Dijkstra65, 1627 keywords = {concurrency, Dekker's algorithm, semaphores}, 1628 contributer = {pabuhr@plg}, 1629 author = {Edsger W. Dijkstra}, 1630 title = {Cooperating Sequential Processes}, 1631 institution = {Technological University}, 1632 address = {Eindhoven, Netherlands}, 1633 year = 1965, 1634 note = {Reprinted in \cite{Genuys68} pp. 43--112.} 1635 } 1636 1637 @book{Marlin80, 1638 keywords = {coroutines}, 1639 contributer = {pabuhr@plg}, 1640 author = {Christopher D. Marlin}, 1641 title = {Coroutines: A Programming Methodology, a Language Design and an Implementation}, 1642 publisher = {Springer-Verlag}, 1643 year = 1980, 1644 volume = 95, 1645 series = {Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis} 1646 } 1647 1648 @article{Wang71, 1649 keywords = {coroutines}, 1650 contributer = {pabuhr@plg}, 1651 author = {Arne Wang and Ole-Johan Dahl}, 1652 title = {Coroutine Sequencing in a Block Structured Environment}, 1653 journal = "BIT", 1654 volume = 11, 1655 month = nov, 1656 year = 1971, 1657 pages = {425-449}, 1658 } 1659 1660 @article{Castagna95, 1661 keywords = {type-systems, covariance, contravariance}, 1662 contributer = {pabuhr@plg}, 1663 author = {Giuseppe Castagna}, 1664 title = {Covariance and Contravariance : Conflict without a Cause}, 1665 journal = toplas, 1666 volume = 17, 1667 number = 3, 1668 month = may, 1669 year = 1995, 1670 pages = {341-447}, 1671 } 1672 1673 @book{Fischer88, 1674 keywords = {compiler construction}, 1675 author = {Charles N. Fischer and Richard J. {LeBlanc, Jr.}}, 1676 title = {Crafting a Compiler}, 1677 publisher = {Benjamin Cummings}, 1678 year = 1991, 1679 } 1680 1681 @inproceedings{Jim02, 1682 keywords = {C dialect, parametric polymorphic, safe memory allocation}, 1683 contributer = {pabuhr@plg}, 1684 author = {Trevor Jim and Greg Morrisett and Dan Grossman and Michael Hicks and James Cheney and and Yanling Wang}, 1685 title = {{C}yclone: A Safe Dialect of {C}}, 1686 booktitle = {USENIX Annual Technical Conference}, 1687 organization= {USENIX Association}, 1688 address = {Monterey, California, U.S.A.}, 1689 month = jun, 1690 year = 2002, 1691 pages = {275-288}, 1692 } 1693 1694 % D 1695 1696 @manual{D, 1697 keywords = {D programming language}, 1698 contributer = {pabuhr@plg}, 1699 title = {{D} Programming Language}, 1700 author = {Walter Bright and Andrei Alexandrescu}, 1701 organization= {Digital Mars}, 1702 year = 2016, 1703 note = {\href{http://dlang.org/spec/spec.html}{http://\-dlang.org/\-spec/\-spec.html}}, 1704 } 1705 1706 @techreport{Cui90, 1707 keywords = {exception handling}, 1708 contributer = {pabuhr@plg}, 1709 author = {Qian Cui}, 1710 title = {Data-Oriented Exception Handling}, 1711 institution = {Department of Computer Science, University of Maryland}, 1712 address = {College Park, Maryland, U.S.A., 20742}, 1713 number = {CS-TR-2384}, 1714 month = jan, 1715 year = 1990, 1716 } 1717 1718 @article{Cui92, 1719 contributer = {rkrische@plg}, 1720 author = {Qian Cui and John Gannon}, 1721 title = {Data-oriented Exception Handling}, 1722 journal = {IEEE Transactions on Software Engineering}, 1723 month = may, 1724 year = 1992, 1725 volume = 18, 1726 number = 5, 1727 pages = {393-401}, 1728 } 1729 1730 @manual{SIMULA87, 1731 keywords = {Simula standard}, 1732 contributer = {gjditchfield@plg}, 1733 title = {Databehandling -- Programspr{\aa}k -- {SIMULA}}, 1734 organization= {Standardiseringskommissionen i Sverige}, 1735 note = {Svensk Standard SS 63 61 14}, 1736 year = 1987, 1737 abstract = { 1738 Standard for the programming language SIMULA. Written in English. 1739 } 1740 } 1741 1742 @article{Liskov75, 1743 keywords = {abstract data types, encapsulation, verification}, 1744 contributer = {gjditchfield@plg}, 1745 author = {Barbara H. Liskov}, 1746 title = {Data Types and Program Correctness}, 1747 journal = sigplan, 1748 year = 1975, 1749 month = jul, 1750 volume = 10, 1751 number = 7, 1752 pages = {16-17}, 1753 summary = { 1754 Type definitions should contain the implementation of the type and 1755 its operations. The grouping makes programs simpler and more 1756 understandable. Encapsulating the definition aids verification and 1757 forces a precise specification of the interface. 1758 } 1759 } 1760 1761 @article{dtav, 1762 keywords = {Russell, types}, 1763 contributer = {gjditchfield@plg}, 1764 author = {James Donahue and Alan Demers}, 1765 title = {Data Types are Values}, 1766 journal = toplas, 1767 month = jul, 1768 year = 1985, 1769 volume = 7, 1770 number = 3, 1771 pages = {426-445}, 1772 comment = { 1773 Data types are sets of operations providing interpretations of 1774 values from a meaningless, typeless universal value space. Types 1775 and operations are also contained in this value space. 1776 1777 Functions returning types replace generic types. 1778 1779 Polymorphic functions have type parameters. Evaluation is not 1780 macro expansion: 1781 \begin{verbatim} 1782 R == func [n:val integer; T:type[]] val integer 1783 {if n > 0 => r[n-1, Array[1,10,T]] # n <= 0 => 17 fi} 1784 \end{verbatim} 1785 } 1786 } 1787 1788 @article{Holt72, 1789 keywords = {concurrency, deadlock}, 1790 contributer = {pabuhr@plg}, 1791 author = {Richard C. Holt}, 1792 title = {Some Deadlock Properties of Computer Systems}, 1793 journal = acmcs, 1794 volume = 4, 1795 number = 3, 1796 month = sep, 1797 year = 1972, 1798 pages = {179-196}, 1799 } 1800 1801 @misc{debug-malloc, 1802 keywords = {memory allocation debugger}, 1803 contributer = {gjditchfield@plg}, 1804 author = {Conor P. Cahill}, 1805 title = {debug\_malloc}, 1806 howpublished= {comp.sources.unix, volume 22, issue 112}, 1807 abstract = { 1808 This package is a collection of routines which are a drop-in 1809 replacement for the malloc(3), memory(3), string(3), and bstring(3) 1810 library functions. 1811 } 1812 } 1813 1814 @book{sml, 1815 keywords = {}, 1816 contributer = {pabuhr@plg}, 1817 author = {Robin Milner and Mads Tofte and Robert Harper}, 1818 title = {The Definition of Standard {ML}}, 1819 publisher = {MIT Press}, 1820 address = {Cambridge, Massachusetts, U.S.A.}, 1821 year = 1990 1822 } 1823 1824 @techreport{sml:old, 1825 keywords = {}, 1826 contributer = {gjditchfield@plg}, 1827 author = {Robert Harper and Robin Milner and Mads Tofte}, 1828 title = {The Definition of Standard {ML}, Version 2}, 1829 institution = {Department of Computer Science, University of Edinburgh}, 1830 year = 1988, 1831 address = {The King's Buildings, Edinburgh EH9 3JZ}, 1832 type = {LFCS Report Series}, month = aug, number = {ECS-LFCS-88-62} 1833 } 1834 1835 @inproceedings{Reynolds72, 1836 keywords = {continuation}, 1837 contributer = {pabuhr@plg}, 1838 author = {John Reynolds}, 1839 title = {Definitional Interpreters for Higher Order Programming Languages}, 1840 booktitle = {ACM Conference Proceedings}, 1841 organization= {ACM}, 1842 year = 1972, 1843 pages = {717-740} 1844 } 1845 1846 @article{Buhr16, 1847 keywords = {Dekker's algorithm, software solution, mutual exclusion, performance experiment}, 1848 author = {Peter A. Buhr and David Dice and Wim H. Hesselink}, 1849 title = {Dekker's Mutual Exclusion Algorithm Made RW-Safe}, 1850 journal = {Concurrency and Computation: Practice and Experience}, 1851 volume = 28, 1852 number = 1, 1853 pages = {144-165}, 1854 month = jan, 1855 year = 2016, 1856 } 1857 1858 @misc{steelman, 1859 keywords = {Ada}, 1860 contributer = {gjditchfied@plg}, 1861 author = {High Order Language Working Group}, 1862 title = {Department of Defense Requirements for High Order Computer Programming Languages}, 1863 month = jun, year = 1978, 1864 note = {Reprinted in \cite{pldesign}.} 1865 } 1866 1867 @incollection{Tsay98, 1868 keywords = {local spins, mutual exclusion, read/write atomicity, refinement, scalability}, 1869 author = {Yih-Kuen Tsay}, 1870 title = {Deriving a scalable algorithm for mutual exclusion}, 1871 booktitle = {Distributed Computing}, 1872 editor = {Shay Kutten}, 1873 volume = {1499}, 1874 series = {LNCS}, 1875 publisher = {Springer}, 1876 address = {Berlin Heidelberg}, 1877 year = {1998}, 1878 pages = {393-407}, 1879 } 1880 1881 @article{Conway63, 1882 keywords = {coroutine, original}, 1883 contributer = {pabuhr@plg}, 1884 author = {Melvin E. Conway}, 1885 title = {Design of a Separable Transition-Diagram Compiler}, 1886 journal = cacm, 1887 month = jul, 1888 year = 1963, 1889 volume = 6, 1890 number = 7, 1891 pages = {396-408}, 1892 } 1893 1894 @book{Stroustrup94, 1895 keywords = {C++}, 1896 contributor = {wyrmok@plg}, 1897 author = {Bjarne Stroustrup}, 1898 title = {The Design and Evolution of {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 1899 publisher = {Addison-Wesley}, 1900 year = 1994 1901 } 1902 1903 @inproceedings{st:concurrent, 1904 keywords = {concurrency, Smalltalk, futures}, 1905 contributer = {gjditchfield@plg}, 1906 author = {Yasuhiko Yokote and Mario Tokoro}, 1907 title = {The Design and Implementation of {ConcurrentSmalltalk}}, 1908 crossref = "OOPSLA86", 1909 pages = {331-340}, 1910 comment = { 1911 Objects are ordinary Smalltalk objects or ``atomic'' objects, which 1912 process messages one at a time in FIFO order. Asynchronous method 1913 calls are made by appending ``\&'' at the call site. The sender does 1914 not wait for a reply. If the method returns a value, it 1915 (immediately?) returns a CBox object, which is like a future. The 1916 sender can send the ``receive'' message to the CBox, which blocks 1917 until the CBox contains a value. 1918 1919 A method can execute the ``\verb|^|'' statement to return an object 1920 and terminate, or it can execute ``\verb|^^|'' to return an object 1921 and continue execution. If ``\verb|^^foo|'' is executed after 1922 ``\verb|^^bar|'', foo is discarded, since bar has already been 1923 returned. 1924 1925 The article does not say whether asynchronous messages can be sent 1926 to ordinary objects, or whether ordinary messages can be sent to 1927 atomic objects. 1928 } 1929 } 1930 1931 @inproceedings{Ichbiah83, 1932 keywords = {Ada, packages, generics}, 1933 contributer = {gjditchfield@plg}, 1934 author = {Jean D. Ichbiah}, 1935 title = {On the Design of {Ada}}, 1936 booktitle = {Information Processing 83}, 1937 year = 1983, 1938 month = sep, pages = {1-10}, 1939 editor = {R. E. A. Mason}, 1940 organization= {IFIP}, 1941 publisher = {North-Holland}, 1942 summary = { 1943 Packages group related declarations or subprograms, and encapsulate 1944 data types. Separate interfaces and bodies promotes information 1945 hiding by removing the need to scan the body, allows the body to be 1946 confidential, and provides a better specification of the contract 1947 between client and implementor. Generics are an efficient way to 1948 factor out parts of similar definitions. 1949 } 1950 } 1951 1952 @book{Motet96, 1953 keywords = {Ada, exception handling}, 1954 contributer = {wyrmok@plg}, 1955 author = {G. Motet and A. Mapinard and J. C. Geoffroy}, 1956 title = {Design of Dependable {A}da Software}, 1957 publisher = {Prentice Hall}, 1958 year = 1996, 1959 } 1960 1961 @article{Richardson93, 1962 keywords = {C++, persistence, database}, 1963 contributer = {pabuhr@plg}, 1964 author = {Joel E. Richardson and Michael J. Carey and Daniel T. Schuh}, 1965 title = {The Design of the {E} Programming Language}, 1966 journal = toplas, 1967 month = jul, 1968 year = 1993, 1969 volume = 15, 1970 number = 3, 1971 pages = {494-534}, 1972 } 1973 1974 @article{Hansen81b, 1975 keywords = {concurrency, monitor, critical region}, 1976 contributer = {pabuhr@plg}, 1977 author = {Per {Brinch Hansen}}, 1978 title = {The Design of {E}dison}, 1979 journal = spe, 1980 volume = 11, 1981 number = 4, 1982 month = apr, 1983 year = 1981, 1984 pages = {363-396}, 1985 } 1986 1987 @book{Gamma95, 1988 keywords = {design patterns}, 1989 author = {Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides}, 1990 title = {Design Patterns: Elements of Reusable Object-Oriented Software}, 1991 publisher = {Addison-Wesley}, 1992 year = 1995, 1993 series = {Professional Computing Series}, 1994 } 1995 1996 @inproceedings{Wirth74, 1997 keywords = {}, 1998 contributer = {gjditchfield@plg}, 1999 author = {Niklaus Wirth}, 2000 title = {On the Design of Programming Languages}, 2001 booktitle = {Information Processing 74}, 2002 year = 1974, 2003 pages = {386-393}, 2004 publisher = {North Holland Publishing Company}, 2005 note = {Reprinted in \cite{pldesign}.} 2006 } 2007 2008 @techreport{forceone, 2009 keywords = {Parametric polymorphism, ForceOne}, 2010 contributer = {gjditchfield@plg}, 2011 author = {Andrew K. Wright}, 2012 title = {Design of the Programming Language {ForceOne}}, 2013 institution = {University of Waterloo}, 2014 month = feb, year = 1987, 2015 number = {CS-87-10} 2016 } 2017 2018 @techreport{x-2, 2019 keywords = {object based}, 2020 contributer = {gjditchfield@plg}, 2021 author = {David W. Sandberg}, 2022 title = {The Design of the Programming Language {X-2}}, 2023 institution = {Oregon State University}, 2024 year = 1985, 2025 address = {Department of Computer Science, Corvallis, Oregon, 97331}, 2026 number = {85-60-1} 2027 } 2028 2029 @article{design, 2030 keywords = {Smalltalk, designing classes}, 2031 contributer = {gjditchfield@plg}, 2032 author = {Ralph E. Johnson and Brian Foote}, 2033 title = {Designing Reusable Classes}, 2034 journal = {Journal of Object-Oriented Programming}, 2035 year = 1988, 2036 volume = 1, number = 2, pages = {22-35}, 2037 comment = { 2038 Abstract classes represent standard protocols. ``It is better to 2039 inherit from an abstract class than from a concrete class''. 2040 Frameworks are collections of related abstract classes. Successful 2041 abstractions are discovered, not designed. 2042 2043 Protocols: ``If an operation X is implemented by performing a 2044 similar operation on the components of the receiver, then that 2045 operation should also be named X''. Eliminate case analysis by 2046 creating classes with the same operations. Create classes to 2047 represent bundles of parameters. Shrink methods larger than 30 2048 lines. 2049 2050 Hierarchies should be deep and narrow. Subclasses should be 2051 specializations. 2052 2053 Frameworks: split large classes. Factor implementation differences 2054 into subcomponents. Separate methods that do not share instance 2055 variables into components that reflect the different views of the 2056 object. Send messages to components, not self. Reduce implicit 2057 parameter passing through instance variables. 2058 } 2059 } 2060 2061 @article{dim:c++, 2062 keywords = {Dimensional Analysis, C++}, 2063 contributer = {gjditchfield@plg}, 2064 author = {Robert F. Cmelic and Narain Gehani}, 2065 title = {Dimensional Analysis with {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 2066 journal = {IEEE Software}, 2067 month = may, year = 1988, 2068 volume = 5, number = 3, pages = {21-29} 2069 } 2070 2071 @article{Wegner87, 2072 contributer = {pabuhr@plg}, 2073 author = {Peter Wegner}, 2074 title = {Dimensions of Object--Based Language Design}, 2075 journal = sigplan, 2076 volume = 22, 2077 number = 12, 2078 month = dec, 2079 year = 1987, 2080 pages = {168-182}, 2081 note = {Proceedings of the OOPSLA'87 Conference, Oct. 4--8, 1987, Orlando, Florida}, 2082 } 2083 2084 @book{Dijkstra76, 2085 keywords = {concurrent assignment}, 2086 author = {E. W. Dijkstra}, 2087 title = {A Discipline of Programming}, 2088 publisher = {Prentice-Hall}, 2089 year = 1976, 2090 } 2091 2092 @book{Lynch96, 2093 keywords = {distributed algorithms}, 2094 author = {Nancy A. Lynch}, 2095 title = {Distributed Algorithms}, 2096 publisher = {Morgan Kaufmann}, 2097 year = 1996, 2098 } 2099 2100 @book{Tanenbaum02, 2101 keywords = {distributed programming}, 2102 author = {Andrew S. Tanenbaum and Maarten van Steen}, 2103 title = {Distributed Systems: Principles and Paradigms}, 2104 publisher = {Prentice-Hall}, 2105 year = 2002, 2106 } 2107 2108 @inproceedings{Cargill90, 2109 keywords = {concurrency}, 2110 contributer = {pabuhr@plg}, 2111 author = {Tom A. Cargill}, 2112 title = {Does {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Really Need Multiple Inheritance?}, 2113 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference Proceedings}, 2114 organization= {USENIX Association}, 2115 address = {San Francisco, California, U.S.A.}, 2116 month = apr, 2117 year = 1990, 2118 pages = {315-323} 2119 } 2120 2121 @unpublished{Duff83, 2122 keywords = {C, switch statement, control flow}, 2123 contributer = {pabuhr@plg}, 2124 author = {Tom Duff}, 2125 title = {Duff's Device}, 2126 month = nov, 2127 year = 1983, 2128 note = {\href{http://www.lysator.liu.se/c/duffs-device.html}{http://\-www.lysator.liu.se/\-c/\-duffs-device.html}} 2129 } 2130 2131 @manual{dwarf2, 2132 keywords = {Debugging DWARF2 specification}, 2133 contributer = {rkrische@plg}, 2134 title = {DWARF Debugging Information Format}, 2135 organization= {Unix International Programming Languages SIG}, 2136 publisher = {Unix International}, 2137 address = {Waterview Corporate Center, 20 Waterview Boulevard, Parsippany, NJ 07054}, 2138 year = {1993} 2139 } 2140 2141 @article{classicada, 2142 keywords = {Classic Ada}, 2143 contributer = {gjditchfield@plg}, 2144 author = {Cameron M. Donaldson}, 2145 title = {Dynamic Binding and Inheritance in an Object-Oriented {Ada} Design}, 2146 journal = {Journal of Pascal, {Ada} \& Modula-2}, 2147 year = 1990, 2148 month = {jul/aug}, volume = 9, number = 4, pages = {12-19}, 2149 comment = { 2150 Classes are like packages: they can contain subprograms, types, 2151 variables, generic instantiations, and exceptions. They can also 2152 contain class methods, instance methods, and instance variables, 2153 and define creation and initialization subprograms or methods for 2154 instances. Single inheritance provides inheritance of 2155 implementations. Dynamic binding is done with a {\em send} 2156 statement that invokes a class or instance method. A preprocessor 2157 converts Classic Ada to normal Ada. 2158 } 2159 } 2160 2161 @article{Costanza03, 2162 keywords = {dynamic call}, 2163 contributer = {pabuhr@plg}, 2164 author = {Pascal Costanza}, 2165 title = {Dynamic Scoped Functions as the Essence of {AOP}}, 2166 journal = sigplan, 2167 volume = 38, 2168 number = 8, 2169 month = aug, 2170 year = 2003, 2171 pages = {29-35}, 2172 } 2173 2174 % E 2175 2176 @inproceedings{Wegbreit71, 2177 keywords = {polymorphism}, 2178 contributer = {pabuhr@plg}, 2179 author = {B. Wegbreit}, 2180 title = {The ECL Programming System}, 2181 booktitle = {Proceedings of AFIPS 1971 FJCC}, 2182 publisher = {AFIPS Press, vol. 39}, 2183 address = {Montvale, New Jersey, U.S.A}, 2184 year = 1971, 2185 pages = {253-262}, 2186 } 2187 2188 @manual{JavaScript, 2189 keywords = {JavaScript}, 2190 contributer = {pabuhr}, 2191 title = {ECMAScript 2015 Language Specification {JavaScript}}, 2192 organization= {ECAM International}, 2193 address = {Rue du Rhone 114, CH-1204 Geneva, Switzerland}, 2194 month = jun, 2195 year = 2015, 2196 note = {6th Edition} 2197 } 2198 2199 @inproceedings{Peterson77, 2200 keywords = {N-thread software-solution mutual exclusion}, 2201 contributer = {pabuhr@plg}, 2202 author = {Gary L. Peterson and Michael J. Fischer}, 2203 title = {Economical Solutions for the Critical Section Problem in a Distributed System (Extended Abstract)}, 2204 booktitle = {Proceedings of the Ninth Annual ACM Symposium on Theory of Computing}, 2205 series = {STOC '77}, 2206 year = 1977, 2207 location = {Boulder, Colorado, USA}, 2208 pages = {91--97}, 2209 numpages = {7}, 2210 publisher = {ACM}, 2211 address = {New York, NY, USA}, 2212 } 2213 2214 @article{Hansen81a, 2215 keywords = {concurrency, monitor, critical region}, 2216 contributer = {pabuhr@plg}, 2217 author = {Per {Brinch Hansen}}, 2218 title = {{E}dison---a Multiprocessor Language}, 2219 journal = spe, 2220 volume = 11, 2221 number = 4, 2222 month = apr, 2223 year = {1981}, 2224 pages = {325-361}, 2225 } 2226 2227 @book{Eiffel, 2228 keywords = {Eiffel}, 2229 contributer = {pabuhr@plg}, 2230 author = {Bertrand Meyer}, 2231 title = {Eiffel: The Language}, 2232 publisher = {Prentice-Hall}, 2233 year = 1992, 2234 series = {Prentice Hall Object-Oriented Series}, 2235 } 2236 2237 @article{WS:overload, 2238 keywords = {compilation}, 2239 contributer = {gjditchfield@plg}, 2240 author = {Peter J. L. Wallis and Bernhard W. Silverman}, 2241 title = {Efficient Implementation of the {Ada} Overloading Rules}, 2242 journal = ipl, 2243 year = 1980, 2244 month = apr, volume = 10, number = 3, pages = {120-123}, 2245 comment = { 2246 The ``two-pass'' algorithm. An upward pass over a parse tree 2247 calculates the set of possible result types of operators. The 2248 root must have exactly one type, produced in one way. A 2249 downward pass selects the version of the operator that produces the 2250 desired result type, thus setting the result types of subtrees. 2251 See \cite{D:overload}. 2252 } 2253 } 2254 2255 @techreport{Habermann80, 2256 keywords = {Ada, threads}, 2257 contributer = {pabuhr@plg}, 2258 author = {A. N. Habermann and I. R. Nassi}, 2259 title = {Efficient Implementation of {Ada} Tasks}, 2260 institution = {Carnegie-Mellon University}, 2261 number = {CMU-CS-80-103}, 2262 year = 1980 2263 } 2264 2265 @article{Emerald, 2266 keywords = {concurrency, polymorphism}, 2267 contributer = {pabuhr@plg}, 2268 author = {Rajendra K. Raj and Ewan Tempero and Henry M. Levy and Andrew P. Black and Norman C. Hutchinson and Eric Jul}, 2269 title = {Emerald: A General-Purpose Programming Language}, 2270 journal = spe, 2271 month = jan, 2272 year = 1991, 2273 volume = 21, 2274 number = 1, 2275 pages = {91-118} 2276 } 2277 2278 @InProceedings{chambers89a, 2279 keywords = {maps, delegation}, 2280 author = "Craig Chambers and David Ungar and Elgin Lee", 2281 title = "An Efficient Implementation of {SELF}, a Dynamically-Typed 2282 Object-Oriented Language Based on Prototypes", 2283 crossref = "OOPSLA89", 2284 pages = {49-70} 2285 } 2286 2287 @article{oop:encapsulation, 2288 keywords = {Encapsulation, Inheritance, Subclasses, Multiple Inheritance}, 2289 contributer = {gjditchfield@plg}, 2290 author = {Alan Snyder}, 2291 title = {Encapsulation and Inheritance in Object-Oriented Programming 2292 Languages}, 2293 journal = sigplan, 2294 volume = {21}, number = {11}, 2295 pages = {38-45}, 2296 month = nov, year = 1986, 2297 comment = { 2298 Client, child interfaces should be distinct. Child interface 2299 shouldn't grant total access to parent. 2300 2301 Rules for redefining parent variable name in a child affect 2302 re-implementation of the parent. 2303 2304 Inheritance can be a promise to obey the semantics of the parent, 2305 or code reuse; the two may be contradictory. Unification 2306 exposes use of inheritance: a child can not be re-implemented 2307 without breaking code that assumes that it is a subclass of the 2308 original parent. If a class uses the names of its parents' 2309 ancestors, then inheritance is part of the parent's child 2310 interface. 2311 2312 Linearizing a multiple inheritance tree means that a class's use of 2313 calls on super need to be understood before it is used as a parent. 2314 Merging repeated ancestors exposes inheritance if an ancestor is 2315 re-implemented. Forbidding inheritance of distinct methods with 2316 the same name exposes implementation of ancestors. Proposed 2317 solution treats the set of ancestors as a tree. 2318 } 2319 } 2320 2321 @article{st:encapsulator, 2322 keywords = {encapsulator, Smalltalk, monitor}, 2323 contributer = {gjditchfield@plg}, 2324 author = {Geoffrey A. Pascoe}, 2325 title = {Encapsulators: A New Software Paradigm in Smalltalk-80}, 2326 journal = sigplan, 2327 volume = {21}, number = {11}, 2328 pages = {341-346}, 2329 month = nov, year = 1986, 2330 comment = { 2331 Encapsulators are objects that surround other objects. 2332 Pre- and post-actions are performed when messages are sent to the 2333 encapsulated object. They are created here by sending the message 2334 object: to an encapsulator class. Examples given are monitors, 2335 atomic objects, and Model (for model-view-controller interfaces). 2336 2337 Encapsulator classes use a family of selectors that the 2338 encapsulated object will not respond to. Messages for the 2339 encapsulated object are passed on by trapping them with the 2340 doesNotUnderstand method. Various fiddles were needed when setting 2341 up the class and metaclass hierarchies. A few selectors (==, 2342 class) always directly invoke primitive methods; they can't be 2343 used. 2344 2345 Can an encapsulated object be an encapsulator? Probably, but the 2346 middle object's selectors are inaccessible. 2347 } 2348 } 2349 2350 @manual{EPT, 2351 keywords = {concurrency, light-weight threads}, 2352 contributer = {pabuhr@plg}, 2353 key = {Encore}, 2354 title = {Encore Parallel Thread Manual, 724-06210}, 2355 organization= {Encore Computer Corporation}, 2356 month = may, 2357 year = 1988, 2358 } 2359 2360 @manual{Erlang, 2361 keywords = {Erlang}, 2362 contributer = {pabuhr}, 2363 title = {Erlang Reference Manual User's Guide, Vertion 7.0}, 2364 organization= {Erlang/OTP System Documentation}, 2365 address = {1430 Broadway, New York, New York 10018}, 2366 month = jun, 2367 year = 2015, 2368 note = {\href{http://www.erlang.org/doc/pdf/otp-system-documentation.pdf}{\textsf{http://www.erlang.org/\-doc/\-pdf/\-otp-system-documentation.pdf}}}, 2369 } 2370 2371 @inproceedings{MH88, 2372 keywords = {modules, general sums, general products}, 2373 contributer = {gjditchfield@plg}, 2374 author = {John C. Mitchell and Robert Harper}, 2375 title = {The Essence of {ML}}, 2376 booktitle = popl, 2377 year = 1988, 2378 pages = {28-46} 2379 } 2380 2381 @book{LeVerrand, 2382 keywords = {}, 2383 author = {D. Le Verrand}, 2384 title = {Evaluating {Ada}}, 2385 publisher = {North Oxford Academic}, 2386 year = 1985 2387 } 2388 2389 @inproceedings{Bloom79, 2390 keywords = {concurrency}, 2391 contributer = {pabuhr@plg}, 2392 author = {Toby Bloom}, 2393 title = {Evaluating Synchronization Mechanisms}, 2394 booktitle = {Proceedings of the Seventh Symposium on Operating Systems Principles}, 2395 organization= {ACM SIGOPS}, 2396 address = {Pacific Grove, California, U.S.A}, 2397 month = dec, 2398 year = 1979, 2399 pages = {24-32} 2400 } 2401 2402 @article{Buhr06a, 2403 keywords = {concurrency, C++, uC++}, 2404 contributer = {pabuhr@plg}, 2405 author = {Peter A. Buhr and Richard C. Bilson}, 2406 title = {Examining $\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} : 2407 High-level Object-Oriented Concurrency in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 2408 journal = {Dr. Dobb's Journal : Software Tools for the Professional Programmer}, 2409 month = feb, 2410 year = 2006, 2411 volume = 31, 2412 number = 2, 2413 pages = {36-40}, 2414 } 2415 2416 @article{ExceptionalC, 2417 keywords = {exception handling, asynchronous events}, 2418 contributer = {wyrmok@plg}, 2419 author = {N. H. Gehani}, 2420 title = {Exceptional {C} or {C} with Exceptions}, 2421 journal = spe, 2422 year = 1992, 2423 month = oct, 2424 volume = 22, 2425 number = 10, 2426 pages = {827-848}, 2427 comment = { 2428 It is the most extensive exceptional handling mechanism thus 2429 far. Though it doesn't have Mesa resumption, it has 2430 asynchronous signal which is more general and abstract than 2431 the unix signal mechanism. It has an Eiffel like retry 2432 mechanism. Consequently, the scope of guarded region is not 2433 immediately terminated when an exception is raised. In fact, 2434 an exception handler creates a scope under its guarded 2435 region. 2436 } 2437 } 2438 2439 @incollection{Buhr02, 2440 keywords = {exception handling}, 2441 contributer = {pabuhr@plg}, 2442 author = {Peter A. Buhr and Ashif Harji and W. Y. Russell Mok}, 2443 title = {Exception Handling}, 2444 editor = {Marvin V. Zelkowitz}, 2445 booktitle = {Advances in COMPUTERS}, 2446 publisher = {Academic Press}, 2447 volume = 56, 2448 year = 2002, 2449 pages = {245-303}, 2450 } 2451 2452 @article{Cargill94, 2453 keywords = {exception handling}, 2454 contributer = {pabuhr@plg}, 2455 author = {Tom Cargill}, 2456 title = {Exception Handling: a False Sense of Security}, 2457 journal = {{C}{\kern-.2em\hbox{\large\texttt{+\kern-.2em+}}} Report}, 2458 year = 1994, 2459 month = nov, 2460 volume = 6, 2461 number = 9, 2462 note = {http://www.informit.com/\-content/\-images/\-020163371x/\-supplements/\-Exception\_\-Handling\_\-Article.\-html} 2463 } 2464 2465 @article{Knudsen84, 2466 keywords = {static exception handling, BETA, sequel}, 2467 contributer = {wyrmok@plg}, 2468 author = {J{\o}rgen Lindskov Knudsen}, 2469 title = {Exception Handling --- A Static Approach}, 2470 journal = spe, 2471 year = 1984, 2472 month = may, 2473 volume = 14, 2474 number = 5, 2475 pages = {429-449}, 2476 } 2477 2478 @article{Drew94, 2479 keywords = {exceptions, exception handling}, 2480 contributer = {wyrmok@plg}, 2481 author = {Steven J. Drew and K. John Gough}, 2482 title = {Exception Handling: Expecting the Unexpected}, 2483 journal = {Computer Languages}, 2484 year = 1994, 2485 month = may, 2486 volume = 20, 2487 number = 2, 2488 comment = { 2489 A recent and good survey on various exception handling mechanisms found 2490 in imperative programming languages. It classifies various mechanism in 2491 terms of flow control and scopes. Asynchronous exceptions and signals 2492 are also covered as Exceptional C is in the survey. 2493 } 2494 } 2495 2496 @article{Koenig90, 2497 keywords = {exception handling}, 2498 contributer = {pabuhr@plg}, 2499 author = {Andrew Koenig and Bjarne Stroustrup}, 2500 title = {Exception Handling for {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 2501 journal = joop, 2502 month = {July/August}, 2503 year = 1990, 2504 volume = 3, 2505 number = 2, 2506 pages = {16-33}, 2507 } 2508 2509 @article{Lee83, 2510 keywords = {exception handling, C}, 2511 contributer = {pabuhr@plg}, 2512 author = {P. A. Lee}, 2513 title = {Exception Handling in {C} Programs}, 2514 journal = spe, 2515 volume = 13, 2516 number = 5, 2517 month = may, 2518 year = 1983, 2519 pages = {389-405}, 2520 } 2521 2522 @article{Liskov79, 2523 keywords = {exception handling}, 2524 contributer = {pabuhr@plg}, 2525 author = {Barbara H. Liskov and Alan Snyder}, 2526 title = {Exception Handling in {CLU}}, 2527 journal = ieeese, 2528 month = nov, 2529 year = 1979, 2530 volume = {SE-5}, 2531 number = 6, 2532 pages = {546-558}, 2533 } 2534 2535 @article{Szalas85, 2536 keywords = {concurrency, C++}, 2537 contributer = {pabuhr@plg}, 2538 author = {Andrzej Szalas and Danuta Szczepanska}, 2539 title = {Exception Handling in Parallel Computations}, 2540 journal = sigplan, 2541 volume = 20, 2542 number = 10, 2543 month = oct, 2544 year = 1985, 2545 issn = {0362-1340}, 2546 pages = {95-104}, 2547 url = {http://doi.acm.org/10.1145/382286.382385}, 2548 doi = {http://doi.acm.org/10.1145/382286.382385}, 2549 acmid = {382385}, 2550 publisher = {ACM}, 2551 address = {New York, NY, USA}, 2552 } 2553 2554 @article{MacLaren77, 2555 keywords = {exception handling, PL/I}, 2556 contributer = {pabuhr@plg}, 2557 author = {M. Donald MacLaren}, 2558 title = {Exception Handling in {PL/I}}, 2559 journal = sigplan, 2560 volume = 12, 2561 number = 3, 2562 month = mar, 2563 year = 1977, 2564 pages = {101-104}, 2565 note = {Proceedings of an ACM Conference on Language Design for Reliable Software, 2566 March 28--30, 1977, Raleigh, North Carolina, U.S.A.}, 2567 } 2568 2569 @article{Goodenough75, 2570 keywords = {exception handling}, 2571 contributer = {pabuhr@plg}, 2572 author = {J. B. Goodenough}, 2573 title = {Exception Handling: Issues and a Proposed Notation}, 2574 journal = cacm, 2575 month = dec, 2576 year = 1975, 2577 volume = 18, 2578 number = 12, 2579 pages = {683-696}, 2580 } 2581 2582 @article{Lampson80, 2583 keywords = {monitors}, 2584 contributer = {pabuhr@plg}, 2585 author = {B. W. Lampson and D. D. Redell}, 2586 title = {Experience with Processes and Monitors in Mesa}, 2587 journal = cacm, 2588 volume = 23, 2589 number = 2, 2590 month = feb, 2591 year = 1980, 2592 pages = {105-117}, 2593 } 2594 2595 @inproceedings{Shopiro87, 2596 keywords = {concurrency}, 2597 contributer = {pabuhr@plg}, 2598 author = {Jonathan E. Shopiro}, 2599 title = {Extending the {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Task System for Real-Time Control}, 2600 booktitle = {Proceedings and Additional Papers {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Workshop}, 2601 organization= {USENIX Association}, 2602 address = {Santa Fe, New Mexico, U.S.A}, 2603 month = nov, 2604 year = 1987, 2605 pages = {77-94} 2606 } 2607 2608 @article{Modula-2+, 2609 keywords = {Modula-2, exceptions, garbage collection, concurrency}, 2610 contributer = {gjditchfield@plg}, 2611 author = {Paul Rovner}, 2612 title = {Extending Modula-2 to Build Large, Integrated Systems}, 2613 journal = {IEEE Software}, 2614 month = nov, year = 1986, 2615 volume = 3, number = 6, pages = {46-57}, 2616 comment = { 2617 Exceptions can have a parameter. Procedures can declare the 2618 exceptions they can propagate; others are converted to {\tt 2619 SYSTEM.Fail}. If they don't, all exceptions propagate. 2620 Block cleanup statements execute no matter how control leaves the 2621 block. 2622 2623 {\tt REF t} is a garbage-collected pointer. A {\tt REFANY} can be 2624 assigned any {\tt REF t}. Open array types can be used in 2625 parameter and {\tt REF} types. {\tt NEW} creates arrays of fixed, 2626 dynamically determined size. 2627 2628 The {\tt THREAD} module provides lightweight processes, semaphores, 2629 and conditions. A statement {\tt LOCK {\em semaphore} DO 2630 {\em statements} END} is built in. 2631 2632 {\tt SAFE} modules do run-time checks, and only import {\tt 2633 SAFE} modules. One implementation module can implement several 2634 definition modules. Opaque type implementations can be 2635 repeated in modules that import its definition, so implementation 2636 modules can collaborate. The linker checks that all 2637 implementations are the same. 2638 } 2639 } 2640 2641 @inproceedings{BNRPascal, 2642 keywords = {concurrency, rendezvous}, 2643 contributer = {pabuhr@plg}, 2644 author = {R. Kamel and N. Gammage}, 2645 title = {Experience with Rendezvous}, 2646 booktitle = {Proceedings of the 1988 International Conference on Computer Languages}, 2647 month = oct, 2648 year = 1988, 2649 pages = {143-149} 2650 } 2651 2652 % F 2653 2654 @inproceedings{Knudsen01, 2655 keywords = {Beta, exception handling}, 2656 contributer = {pabuhr@plg}, 2657 author = {J{\o}rgen Lindskov Knudsen}, 2658 title = {Fault Tolerance and Exception Handling in {BETA}}, 2659 booktitle = {Exception Handling}, 2660 publisher = {Springer-Verlag}, 2661 volume = 2022, 2662 series = {Lecture Notes in Computer Science}, 2663 year = 2001, 2664 pages = {1-17} 2665 } 2666 2667 @article{Lamport87, 2668 keywords = {software solutions, mutual exclusion, fast}, 2669 contributer = {pabuhr@plg}, 2670 author = {Leslie Lamport}, 2671 title = {A Fast Mutual Exclusion Algorithm}, 2672 journal = tocs, 2673 volume = 5, 2674 number = 1, 2675 month = jan, 2676 year = {1987}, 2677 pages = {1--11}, 2678 publisher = {ACM}, 2679 address = {New York, NY, USA}, 2680 } 2681 2682 @inproceedings{F-bound, 2683 keywords = {}, 2684 contributer = {gjditchfield@plg}, 2685 author = {Peter Canning and William Cook and Walter Hill and Walter Olthoff and John C. Mitchell}, 2686 title = {F-Bounded Polymorphism for Object-Oriented Programming}, 2687 booktitle = {Fourth International Conference on Functional Programming Languages and Computer Architecture}, 2688 year = 1989, 2689 month = sep, 2690 pages = {273-280} 2691 } 2692 2693 @mastersthesis{Wasik08, 2694 author = {Ayelet Wasik}, 2695 title = {Features of a Multi-Threaded Memory Allocator}, 2696 school = {University of Waterloo}, 2697 year = 2008, 2698 month = jan, 2699 address = {Waterloo, Ontario, Canada, N2L 3G1}, 2700 note = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-3501/\-1/\-Thesis.pdf}}, 2701 } 2702 2703 @article{Holzmann94, 2704 keywords = {semaphore, flags}, 2705 contributer = {pabuhr@plg}, 2706 author = {Gerard J. Holzmann and Bj\"{o}rn Pehrson}, 2707 title = {The First Data Networks}, 2708 journal = {Scientific American}, 2709 month = jan, 2710 year = 1994, 2711 volume = 12, 2712 number = 1, 2713 pages = {124-129}, 2714 } 2715 2716 @article{Bohm66, 2717 keywords = {goto, structured programming}, 2718 contributer = {pabuhr@plg}, 2719 author = {C. B\"{o}hm and G. Jacopini}, 2720 title = {Flow diagrams, Turing Machines and Languages with only two Formation Rules}, 2721 journal = cacm, 2722 month = may, 2723 year = 1966, 2724 volume = 9, 2725 number = 5, 2726 pages = {366-371}, 2727 } 2728 2729 @manual{Fortran95, 2730 keywords = {Fortran 95}, 2731 contributer = {pabuhr@plg}, 2732 key = {Fortran95}, 2733 title = {Fortran 95 Standard, ISO/IEC 1539}, 2734 organization = {Unicomp, Inc.}, 2735 address = {7660 E. Broadway, Tucson, Arizona, U.S.A, 85710}, 2736 month = jan, 2737 year = 1997, 2738 } 2739 2740 @manual{Fortran08, 2741 keywords = {ISO/IEC Fortran 08}, 2742 contributer = {pabuhr@plg}, 2743 key = {Fortran08}, 2744 title = {Programming Languages -- {Fortran} Part 1}, 2745 organization= {International Standard ISO/IEC 1989:2014}, 2746 publisher = {International Standard Organization}, 2747 address = {http://www.iso.org}, 2748 year = 2010, 2749 } 2750 2751 @book{Andrews00:book, 2752 keywords = {concurrency}, 2753 contributer = {pabuhr@plg}, 2754 author = {Gregory R. Andrews}, 2755 title = {Foundations of Multithreaded, Parallel and Distributed Programming}, 2756 publisher = {Addison--Wesley}, 2757 year = 2000, 2758 } 2759 2760 @article{Agha89, 2761 keywords = {actors, concurrency}, 2762 contributer = {pabuhr@plg}, 2763 author = {Gul A. Agha}, 2764 title = {Foundational Issues in Concurrent Computing}, 2765 journal = sigplan, 2766 month = apr, 2767 year = 1989, 2768 volume = 24, 2769 number = 4, 2770 pages = {60-65}, 2771 note = {Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, 2772 Sept. 26--27, 1988, San Diego, California, U.S.A}, 2773 } 2774 2775 @article{ool, 2776 keywords = {}, 2777 contributer = {gjditchfield@plg}, 2778 author = {Douglas T. Ross}, 2779 title = {Toward Foundations for the Understanding of Type}, 2780 journal = sigplan, 2781 year = 1976, 2782 volume = 11, pages = {63-65}, 2783 note = {Conference on Data: Abstraction, Definition and Structure}, 2784 summary = { 2785 Possibly the first use (without definition, alas) of the phrase 2786 "object oriented language". Metaphysical to the point of incoherence. 2787 } 2788 } 2789 2790 @article{frames, 2791 keywords = {frames}, 2792 contributer = {gjditchfield@plg}, 2793 author = {Paul G. Basset}, 2794 title = {Frame-Based Software Engineering}, 2795 journal = {IEEE Software}, 2796 month = jul, year = 1987, 2797 volume = 4, number = 4, pages = {9-16} 2798 } 2799 2800 @article{Sutter05, 2801 keywords = {concurrency, C++}, 2802 contributer = {pabuhr@plg}, 2803 author = {Herb Sutter}, 2804 title = {A Fundamental Turn Toward Concurrency in Software}, 2805 journal = {Dr. Dobb's Journal : Software Tools for the Professional Programmer}, 2806 month = mar, 2807 year = 2005, 2808 volume = 30, 2809 number = 3, 2810 pages = {16-22}, 2811 } 2812 2813 @inproceedings{Dony01, 2814 keywords = {Smalltalk, exception handling}, 2815 contributer = {pabuhr@plg}, 2816 author = {Chistophe Dony}, 2817 title = {A Fully Object-Oriented Exception Handling System: Rationale and Smalltalk Implementation}, 2818 booktitle = {Exception Handling}, 2819 publisher = {Springer-Verlag}, 2820 volume = 2022, 2821 series = {Lecture Notes in Computer Science}, 2822 year = 2001, 2823 pages = {18-38} 2824 } 2825 2826 @misc{FW, 2827 key = {FW}, 2828 contributer = {gjditchfield@plg}, 2829 title = {Funk \& Wagnalls Standard Desk Dictionary}, 2830 year = 1980 2831 } 2832 2833 @book{Knuth73V1, 2834 contributer = {pabuhr@plg}, 2835 author = {Donald E. Knuth}, 2836 title = {Fundamental Algorithms}, 2837 series = {The Art of Computer Programming}, 2838 publisher = {Addison-Wesley}, 2839 year = 1973, 2840 volume = 1, 2841 edition = {second}, 2842 } 2843 2844 @inproceedings{Strachey, 2845 keywords = {polymorphism}, 2846 contributer = {gjditchfield@plg}, 2847 author = {C. Strachey}, 2848 title = {Fundamental Concepts in Programming Languages}, 2849 booktitle = {Lecture Notes for the International Summer School in Computer Programming}, 2850 year = 1967, 2851 month = aug, 2852 address = {Copenhagen}, 2853 comment = { 2854 Defines ad-hoc and parametric polymorphism. 2855 } 2856 } 2857 2858 @article{Eisenberg72, 2859 keywords = {concurrency, N-Process solution, O(N)}, 2860 contributer = {pabuhr@plg}, 2861 author = {Murray A. Eisenberg and Michael R. McGuire}, 2862 title = {Further Comments on {D}ijkstra's Concurrent Programming Control Problem}, 2863 journal = cacm, 2864 month = nov, 2865 year = 1972, 2866 volume = 15, 2867 number = 11, 2868 pages = {999}, 2869 } 2870 2871 % G 2872 2873 @article{Boehm88, 2874 keywords = {conservative garbage collection, C}, 2875 contributer = {gjditchfield@plg}, 2876 author = {Hans-Juergen Boehm and Mark Weiser}, 2877 title = {Garbage Collection in an Uncooperative Environment}, 2878 journal = spe, 2879 month = sep, 2880 year = 1988, 2881 volume = 18, 2882 number = 9, 2883 pages = {807-820} 2884 } 2885 2886 @manual{gcc, 2887 keywords = {}, 2888 contributer = {gjditchfield@plg}, 2889 title = {GCC}, 2890 author = {Richard M. Stallman}, 2891 organization= {Free Software Foundation}, 2892 address = {Cambridge, MA} 2893 } 2894 2895 @article{doUpon, 2896 keywords = {formal verification, axiomatic semantics, control structures}, 2897 contributer = {gjditchfield@plg}, 2898 author = {Ed Anson}, 2899 title = {A Generalized Iterative Construct and Its Semantics}, 2900 journal = toplas, 2901 volume = {9}, number = {4}, 2902 pages = {567-581}, 2903 month = oct, year = 1987, 2904 comment = { 2905 \begin{verbatim} 2906 do 2907 P1 -> L1 2908 [] P2 -> L2 2909 ... 2910 [] Pm -> Lm 2911 upon 2912 Q1 -> M1 2913 [] Q2 -> M2 2914 ... 2915 [] qn -> mn 2916 od 2917 \end{verbatim} 2918 2919 If there is an i such that Qi is true, execute Mi and terminate. 2920 Otherwise, if there is an i such that Pi is true, execute Li and 2921 repeat the loop. Otherwise, fail. 2922 } 2923 } 2924 2925 @unpublished{Bilson, 2926 keywords = {generic programming, generics, polymorphism}, 2927 contributor = {a3moss@plg}, 2928 author = {Richard C. Bilson and Glen Ditchfield and Peter A. Buhr}, 2929 title = {Generic Programming with Inferred Models}, 2930 } 2931 2932 2933 @article{Haskell, 2934 keywords = {lazy evaluation, type class}, 2935 contributer = {pabuhr}, 2936 author = {Paul Hudak and Joseph H. Fasel}, 2937 title = {A Gentle Introduction to Haskell}, 2938 journal = sigplan, 2939 volume = 27, 2940 number = 5, 2941 month = may, 2942 year = 1992, 2943 pages = {T1-53}, 2944 } 2945 2946 @manual{Go, 2947 keywords = {Go programming language}, 2948 contributer = {pabuhr@plg}, 2949 title = {{Go} Programming Language}, 2950 author = {Robert Griesemer and Rob Pike and Ken Thompson}, 2951 organization= {Google}, 2952 year = 2009, 2953 note = {\href{http://golang.org/ref/spec}{http://golang.org/\-ref/\-spec}}, 2954 } 2955 2956 @article{Dijkstra68a, 2957 keywords = {goto}, 2958 contributer = {pabuhr@plg}, 2959 author = {Edsger W. Dijkstra}, 2960 title = {Go To Statement Considered Harmful}, 2961 journal = cacm, 2962 month = mar, 2963 year = 1968, 2964 volume = 11, 2965 number = 3, 2966 pages = {147-148}, 2967 note = {Reprinted in \cite{Yourdon79} pp. 29--36.}, 2968 } 2969 2970 @article{Choi91, 2971 keywords = {contra-variance, functions}, 2972 contributer = {pabuhr@plg}, 2973 author = {Injun Choi and Michael V. Mannino}, 2974 title = {Graph Interpretation of Methods: A Unifying Framework for Polymorphism in Object-Oriented Programming}, 2975 journal = {OOPS Messenger}, 2976 volume = 2, 2977 number = 1, 2978 month = jan, 2979 year = 1991, 2980 pages = {38-54}, 2981 } 2982 2983 @misc{GNU-C, 2984 keywords = {C, ANSI C}, 2985 contributer = {pabuhr@plg}, 2986 author = {Richard Stallman}, 2987 title = {The Free Software Foundation's Gnu {C} Compiler}, 2988 howpublished= {Free Software Foundation, 1000 Mass Ave., Cambridge, MA, U.S.A., 02138}, 2989 year = 1989, 2990 } 2991 2992 @article{Dijkstra:green, 2993 keywords = {ada}, 2994 contributer = {gjditchfield@plg}, 2995 author = {Edsger W. Dijkstra}, 2996 title = {On the GREEN Language submitted to the DoD}, 2997 journal = sigplan, 2998 year = 1978, 2999 month = oct, 3000 volume = 13, 3001 number = 10, 3002 pages = {16-21} 3003 } 3004 3005 @inproceedings{Miller02, 3006 keywords = {exception handling}, 3007 contributer = {pabuhr@plg}, 3008 author = {Robert Miller and Anand Tripathi}, 3009 title = {The Guardian Model for Exception Handling in Distributed Systems}, 3010 booktitle = {21st Symposium on Reliable Distributed Systems}, 3011 organization= {IEEE}, 3012 address = {Suita, Japan}, 3013 year = 2002, 3014 month = oct, 3015 pages = {304-313} 3016 } 3017 3018 @phdthesis{Chen09, 3019 author = {Jun Chen}, 3020 title = {Guided Testing of Concurrent Programs Using Value Schedules}, 3021 school = {University of Waterloo}, 3022 year = 2009, 3023 month = sep, 3024 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3025 note = {\textsf{http://uwspace.uwaterloo.ca/bitstream/\-10012/\-4735/\-1/\-Chen-Jun.pdf}}, 3026 } 3027 3028 @misc{GNU-C++, 3029 keywords = {C++, GNU C}, 3030 contributer = {pabuhr@plg}, 3031 author = {Michael D. Tiemann}, 3032 title = {User's Guide to GNU {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 3033 howpublished= {Free Software Foundation, 1000 Mass Ave., Cambridge, MA, U.S.A., 02138}, 3034 month = mar, 3035 year = 1990, 3036 } 3037 3038 % H 3039 3040 @article{Michael04a, 3041 keywords = {Lock-free, synchronization, concurrent programming, memory management, multiprogramming, dynamic data structures}, 3042 author = {Maged M. Michael}, 3043 title = {Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects}, 3044 journal = ieeepds, 3045 volume = 15, 3046 number = 6, 3047 month = jun, 3048 year = 2004, 3049 pages = {491-504}, 3050 publisher = {IEEE Press}, 3051 address = {Piscataway, NJ, USA}, 3052 } 3053 3054 @techreport{Hermes90, 3055 keywords = {processes, distributed computing}, 3056 contributer = {pabuhr@plg}, 3057 author = {Robert E. Strom and David F. Bacon and Arthur P. Goldberg and Andy Lowry and Daniel M. Yellin and Shaula Alexander Yemini}, 3058 title = {Hermes: A Language for Distributed Computing}, 3059 institution = {IBM T. J. Watson Research Center}, 3060 address = {Yorktown Heights, New York, U.S.A., 10598}, 3061 month = oct, 3062 year = 1990, 3063 } 3064 3065 @book{Hermes91, 3066 keywords = {processes, distributed computing}, 3067 contributer = {pabuhr@plg}, 3068 author = {Robert E. Strom and David F. Bacon and Arthur P. Goldberg and Andy Lowry and Daniel M. Yellin and Shaula Alexander Yemini}, 3069 title = {Hermes: A Language for Distributed Computing}, 3070 publisher = {Prentice Hall}, 3071 series = {Innovative Technology}, 3072 year = 1991, 3073 } 3074 3075 @article{katzenelson83b, 3076 contributer = {gjditchfield@plg}, 3077 author = "Jacob Katzenelsen", 3078 title = "Higher Level Programming and Data Abstraction---A Case Study using Enhanced C", 3079 journal = spe, 3080 year = 1983, 3081 volume = 13, 3082 number = 7, 3083 pages = {577-596}, 3084 month = jul 3085 } 3086 3087 @techreport{Hoare73, 3088 keywords = {}, 3089 contributer = {gjditchfield@plg}, 3090 author = {C. A. R. Hoare}, 3091 title = {Hints on Programming Language Design}, 3092 institution = {Stanford University Computer Science Department}, 3093 year = 1973, 3094 month = dec, 3095 number = {CS-73-403}, 3096 note = {Reprinted in \cite{pldesign}.} 3097 } 3098 3099 @article{Dijkstra71, 3100 keywords = {monitor, secretary}, 3101 contributer = {pabuhr@plg}, 3102 author = {E. W. Dijkstra}, 3103 title = {Hierarchical Ordering of Sequential Processes}, 3104 journal = acta, 3105 volume = 1, 3106 pages = {115-138}, 3107 year = 1971, 3108 } 3109 3110 @article{Buhr15a, 3111 keywords = {software solution, mutual exclusion, performance experiment}, 3112 author = {Peter A. Buhr and David Dice and Wim H. Hesselink}, 3113 title = {High-Performance {$N$}-Thread Software Solutions for Mutual Exclusion}, 3114 journal = {Concurrency and Computation: Practice and Experience}, 3115 volume = 27, 3116 number = 3, 3117 pages = {651-701}, 3118 month = mar, 3119 year = 2015, 3120 } 3121 3122 @article{Ackermann28, 3123 keywords = {recursion, Ackermann function}, 3124 contributer = {pabuhr@plg}, 3125 author = {Wilhelm Ackermann}, 3126 title = {Zum Hilbertschen Aufbau der reellen Zahlen}, 3127 publisher = {Springer}, 3128 journal = {Mathematische Annalen}, 3129 number = 1, 3130 volume = 99, 3131 pages = {118-133}, 3132 month = dec, 3133 year = 1928, 3134 } 3135 3136 @inproceedings{typeclass, 3137 keywords = {Hindley/Miller type systems, Haskell}, 3138 contributer = {gjditchfield@plg}, 3139 author = {Philip Wadler and Stephen Blott}, 3140 title = {How to make {\em Ad-Hoc} Polymorphism Less {\em Ad-Hoc}}, 3141 booktitle = popl, 3142 year = 1989, 3143 pages = {60-76}, 3144 organization= {Association for Computing Machinery} 3145 } 3146 3147 % I 3148 3149 @book{IBM370, 3150 keywords = {370, IBM}, 3151 contributer = {pabuhr@plg}, 3152 key = {IBM370}, 3153 title = {{IBM} System/370 Principles of Operation}, 3154 publisher = {IBM}, 3155 number = {GA22-7000-8}, 3156 month = oct, 3157 year = 1981, 3158 edition = {9th} 3159 } 3160 3161 @book{Icon, 3162 keywords = {Icon}, 3163 contributer = {pabuhr@plg}, 3164 author = {Ralph E. Griswold and Madge T. Griswold}, 3165 title = {The Icon Programming Language}, 3166 publisher = {Prentice-Hall}, 3167 year = 1983, 3168 } 3169 3170 @inproceedings{Valois94, 3171 keywords = {lock free, queue}, 3172 contributer = {pabuhr@plg}, 3173 author = {John D. Valois}, 3174 title = {Implementing Lock-Free Queues}, 3175 booktitle = {Seventh International Conference on Parallel and Distributed Computing Systems}, 3176 address = {Las Vegas, Nevada, U.S.A.}, 3177 year = {1994}, 3178 pages = {64-69}, 3179 } 3180 3181 @article{Hehner81, 3182 keywords = {concurrency, critical section, bakery algorithm}, 3183 contributer = {pabuhr@plg}, 3184 author = {Eric C. R. Hehner and R. K. Shyamasundar}, 3185 title = {An Implementation of {P} and {V}}, 3186 journal = ipl, 3187 year = 1981, 3188 month = aug, 3189 volume = 12, 3190 number = 4, 3191 pages = {196-198}, 3192 } 3193 3194 @incollection{Steenkiste91, 3195 keywords = {lisp}, 3196 contributer = {gjditchfield@plg}, 3197 author = {Peter A. Steenkiste}, 3198 title = {The Implementation of Tags and Run-Time Checking}, 3199 booktitle = {Topics in Advanced Language Implementation}, 3200 pages = {3-24}, 3201 year = 1991, 3202 editor = {Peter Lee}, 3203 chapter = {1}, 3204 publisher = {The MIT Press} 3205 } 3206 3207 @techreport{Roberts89, 3208 keywords = {}, 3209 contributer = {pabuhr@plg}, 3210 author = {Eric S. Roberts}, 3211 title = {Implementing Exceptions in {C}}, 3212 institution = {Digital Systems Research Center}, 3213 address = {130 Lytton Avenue, Palo Alto, California, 94301}, 3214 number = {40}, 3215 month = mar, 3216 year = 1989, 3217 } 3218 3219 @mastersthesis{Bilson03, 3220 keywords = {Cforall, parametric polymorphism, overloading}, 3221 contributer = {pabuhr@plg}, 3222 author = {Richard C. Bilson}, 3223 title = {Implementing Overloading and Polymorphism in Cforall}, 3224 school = {School of Computer Science, University of Waterloo}, 3225 year = 2003, 3226 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3227 note = {\href{http://plg.uwaterloo.ca/theses/BilsonThesis.pdf}{http://\-plg.uwaterloo.ca/\-theses/\-BilsonThesis.pdf}}, 3228 } 3229 3230 @article{Buhr05b, 3231 keywords = {monitor, automatic signal, implicit signal}, 3232 contributer = {pabuhr@plg}, 3233 author = {Peter A. Buhr and Ashif S. Harji}, 3234 title = {Implicit-signal monitors}, 3235 journal = toplas, 3236 volume = 27, 3237 number = 6, 3238 month = nov, 3239 year = 2005, 3240 issn = {0164-0925}, 3241 pages = {1270--1343}, 3242 doi = {http://doi.acm.org/10.1145/1108970.1108975}, 3243 publisher = {ACM Press}, 3244 address = {New York, NY, USA}, 3245 } 3246 3247 @article{Baker77, 3248 author = {Henry C. Baker, Jr. and Carl Hewitt}, 3249 title = {The Incremental Garbage Collection of Processes}, 3250 journal = {SIGART Bulletin}, 3251 publisher = {ACM}, 3252 address = {New York, NY, USA}, 3253 month = aug, 3254 year = 1977, 3255 pages = {55-59}, 3256 issn = {0163-5719}, 3257 doi = {http://doi.acm.org/10.1145/872736.806932}, 3258 } 3259 3260 @book{Algol68, 3261 keywords = {Algol68}, 3262 contributer = {pabuhr@plg}, 3263 author = {C. H. Lindsey and S. G. van der Meulen}, 3264 title = {Informal Introduction to ALGOL 68}, 3265 publisher = {North-Holland}, 3266 address = {London}, 3267 year = 1977, 3268 } 3269 3270 @inproceedings{Cook90, 3271 keywords = {f-bounded polymorhpism, lambda calculus}, 3272 contributer = {gjditchfield@plg}, 3273 author = {William R. Cook and Walter L. Hill and Peter S. Canning}, 3274 title = {Inheritance is Not Subtyping}, 3275 booktitle = popl, 3276 year = 1990, 3277 pages = {125-135}, 3278 organization= {Association for Computing Machinery}, 3279 abstract = { 3280 In typed object-oriented languages the subtype relation is 3281 typically based on the inheritance hierarchy. This approach, 3282 however, leads either to insecure type-systems or to restrictions 3283 on inheritance that make it less flexible than untyped Smalltalk 3284 inheritance. We present a new typed model of inheritance that 3285 allows more of the flexibility of Smalltalk inheritance within a 3286 statically-typed system. Significant features of our analysis are 3287 the introduction of polymorphism into the typing of inheritance and 3288 the uniform application of inheritance to objects, classes and 3289 types. The resulting notion of {\em type inheritance} allows us to 3290 show that the type of an inherited object is an inherited type but 3291 not always a subtype. 3292 } 3293 } 3294 3295 @inproceedings{MMR92, 3296 keywords = {}, 3297 contributer = {gjditchfield@plg}, 3298 author = {Robert E. Minnear and Patrick A. Muckelbauer and Vincent F. Russo}, 3299 title = {Integrating the {Sun Microsystems} {XDR/RPC} Protocols 3300 into the {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Stream Model}, 3301 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference Proceedings}, 3302 year = 1992, 3303 month = aug, 3304 pages = {295-312}, 3305 organization= {USENIX Association}, 3306 address = {2590 Ninth Street, Suite 215, Berkeley, CA 94710}, 3307 abstract = { 3308 This paper reports our experiences integrating the Sun Microsystems 3309 RPC and XDR protocol specifications into the C++ model of 3310 input/output streams. As part of the {\it Renaissance} operating 3311 system project, we wish to construct network servers and clients, 3312 written in C++, which interoperate with existing UNIX clients 3313 and servers. We discovered that, although it would be possible to 3314 re-implement the procedural based XDR/RPC implementation 3315 distributed by Sun Microsystems in C++, it is far cleaner to 3316 integrate the protocols with the C++ I/O stream model. We 3317 feel the resulting model provides a cleaner way of implementing RPC 3318 clients and servers without losing functionality or compatibility 3319 with existing clients and servers. 3320 } 3321 } 3322 3323 @inproceedings{Zuo08, 3324 keywords = {shared memory systems,intelligent multiport memory,multiprocessors systems,shared memory system}, 3325 author = {Wang Zuo and Wang Zuo and Li Jiaxing}, 3326 title = {An Intelligent Multi-Port Memory}, 3327 booktitle = {Symposium on Intelligent Information Technology Application Workshops, Shanghai, China}, 3328 month = dec, 3329 year = 2008, 3330 pages = {251-254}, 3331 publisher = {IEEE Computer Society}, 3332 address = {Los Alamitos, CA, USA}, 3333 } 3334 3335 @book{Francez96, 3336 keywords = {await, formal}, 3337 contributer = {pabuhr@plg}, 3338 author = {Nissim Francez and Ira R. Forman}, 3339 title = {Interacting Processes: A Multiparty Approach to Coordinated Distributed Programming}, 3340 publisher = {Addison-Wesley}, 3341 series = {ACM Press Books}, 3342 year = 1996, 3343 } 3344 3345 @article{Labreche90, 3346 keywords = {concurrency, C++}, 3347 contributer = {pabuhr@plg}, 3348 author = {Pierre Labr{\`{e}}che}, 3349 title = {Interactors: A Real-Time Executive with Multiparty Interactions in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 3350 journal = sigplan, 3351 volume = 25, 3352 number = 4, 3353 month = apr, 3354 year = 1990, 3355 pages = {20-32}, 3356 } 3357 3358 @inproceedings{interfaces, 3359 keywords = {parameterized interfaces, classes, recursion/inheritance}, 3360 contributer = {gjditchfield@plg}, 3361 author = {Peter S. Canning and William R. Cook and Walter L. Hill and 3362 Walter G. Olthoff}, 3363 title = {Interfaces for Strongly-Typed Object-Oriented Programming}, 3364 crossref = "OOPSLA89", 3365 pages = {457-467}, 3366 abstract = { 3367 This paper develops a system of explicit interfaces for 3368 object-oriented programming. The system provides the benefits of 3369 module interfaces found in languages like Ada and Modula-2 while 3370 preserving the expressiveness that gives untyped object-oriented 3371 languages like Smalltalk their flexibility. Interfaces are 3372 interpreted as polymorphic types to make the system sufficiently 3373 powerful. We use interfaces to analyze the properties of 3374 inheritance, and identify three distinct kinds of inheritance in 3375 object-oriented programming, corresponding to objects, classes, and 3376 interfaces, respectively. Object interfaces clarify the 3377 distinction between interface containment and inheritance and give 3378 insight into limitations caused by equating the notions of type and 3379 class in many typed object-oriented programming languages. 3380 Interfaces also have practical consequences for design, 3381 specification, and maintenance of object-oriented systems. 3382 } 3383 } 3384 3385 @phdthesis{Girard72, 3386 keywords = {universal quantification}, 3387 contributer = {gjditchfield@plg}, 3388 author = {J.-Y. Girard}, 3389 title = {Interpretation fonctionelle et elimination des coupures de 3390 l'arithmetique d'ordre superieur}, 3391 school = {Universite Paris}, 3392 year = {1972} 3393 } 3394 3395 @article{Karaorman93, 3396 keywords = {Eiffel, concurrency libraries}, 3397 contributer = {pabuhr@plg}, 3398 author = {Murat Karaorman and John Bruno}, 3399 title = {Introducing Concurrency to a Sequential Language}, 3400 journal = cacm, 3401 month = sep, 3402 year = 1993, 3403 volume = 36, 3404 number = 9, 3405 pages = {103-116} 3406 } 3407 3408 @book{Corman92, 3409 keywords = {PRAM, parallel algorithms}, 3410 contributer = {pabuhr@plg}, 3411 author = {Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest}, 3412 title = {Introduction to Algorithms}, 3413 publisher = {MIT Press/McGraw-Hill}, 3414 series = {Electrical Engineering and Computer Science Series}, 3415 year = 1992, 3416 } 3417 3418 @book{Hopcroft79, 3419 keywords = {finite-state machine, push-dowm automata}, 3420 contributer = {pabuhr@plg}, 3421 author = {John E. Hopcroft and Jeffrey D. Ullman}, 3422 title = {Introduction to Automata Theory, Languages and Computation}, 3423 publisher = {Addison-Wesley}, 3424 year = 1979, 3425 } 3426 3427 @techreport{walker87, 3428 keywords = {CCS}, 3429 contributer = {gjditchfield@plg}, 3430 author = {David Walker}, 3431 title = {Introduction to a Calculus of Communicating Systems}, 3432 institution = {Laboratory for Foundations of Computer Science}, 3433 year = 1987, 3434 address = {Department of Computer Science, University of Edinburgh, Edinburgh EH9 3JZ}, 3435 month = jun, 3436 number = {ECS-LFCS-87-22}, 3437 } 3438 3439 @article{katzenelson83a, 3440 author = {Jacob Katzenelson}, 3441 title = {Introduction to Enhanced C (EC)}, 3442 journal = spe, 3443 volume = 13, 3444 number = 7, 3445 year = 1983, 3446 month = jul, 3447 pages = {551-576}, 3448 } 3449 3450 @book{Deitel90, 3451 keywords = {concurrency, operating systems}, 3452 contributer = {pabuhr@plg}, 3453 author = {Harvey M. Deitel}, 3454 title = {An Introduction to Operating Systems}, 3455 publisher = {Addison-Wesley}, 3456 year = 1990, 3457 edition = {second}, 3458 } 3459 3460 @techreport{Birrell89, 3461 keywords = {threads, monitors}, 3462 contributer = {pabuhr@plg}, 3463 author = {Andrew D. Birrell}, 3464 title = {An Introduction to Programming with Threads}, 3465 institution = {Digital Systems Research Center}, 3466 address = {130 Lytton Avenue, Palo Alto, California, 94301}, 3467 number = {35}, 3468 month = jan, 3469 year = 1989, 3470 note = {{\textsf{http://www.hpl.hp.com/\-techreports/\-Compaq-DEC/\-SRC-RR-35.html}}}, 3471 3472 } 3473 3474 @article{t/o, 3475 keywords = {Trellis/Owl}, 3476 contributer = {gjditchfield@plg}, 3477 author = {Craig Schaffert and Topher Cooper and Bruce Bullis and Mike Kilian and Carrie Wilpot}, 3478 title = {An Introduction to Trellis/Owl}, 3479 journal = sigplan, 3480 volume = 21, 3481 number = 11, 3482 year = 1986, 3483 month = nov, 3484 pages = {9-16}, 3485 } 3486 3487 @inproceedings{Hibbard77, 3488 keywords = {algol-68, concurrency}, 3489 contributer = {pabuhr@plg}, 3490 author = {Peter G. Hibbard and P. Knueven and B. W. Leverett}, 3491 title = {Issues in the Efficient Implementation and Use of Multiprocessing in {Algol} 68}, 3492 booktitle = {Proceedings of the 5th Annual iii Conference}, 3493 address = {Guidel, France}, 3494 month = may, 3495 year = 1977, 3496 pages = {203-221} 3497 } 3498 3499 @inproceedings{Miller97, 3500 keywords = {exception handling, software-engineering}, 3501 contributer = {pabuhr@plg}, 3502 author = {Robert Miller and Anand Tripathi}, 3503 title = {Issues with Exception Hnadling in Object-Oriented Systems}, 3504 booktitle = {ECOOP'97}, 3505 publisher = {Springer-Verlag}, 3506 volume = 1241, 3507 series = {Lecture Notes in Computer Science}, 3508 year = 1997, 3509 pages = {85-103} 3510 } 3511 3512 @article{Murer96, 3513 keywords = {interators, generators, cursors}, 3514 contributer = {pabuhr@plg}, 3515 author = {Stephan Murer and Stephen Omohundro and David Stoutamire and Clemens Szyperski}, 3516 title = {Iteration Abstraction in Sather}, 3517 journal = toplas, 3518 month = jan, 3519 year = 1996, 3520 volume = 18, 3521 number = 1, 3522 pages = {1-15}, 3523 } 3524 3525 % J 3526 3527 @book{Java, 3528 keywords = {Java}, 3529 contributer = {pabuhr@plg}, 3530 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha}, 3531 title = {The {Java} Language Specification}, 3532 publisher = {Addison-Wesley}, 3533 year = 2000, 3534 edition = {second}, 3535 } 3536 3537 @manual{Java8, 3538 keywords = {Java SE 8}, 3539 contributer = {pabuhr@plg}, 3540 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha and Alex Buckley}, 3541 title = {The {Java} Language Specification}, 3542 publisher = {Oracle}, 3543 year = 2015, 3544 edition = {Java SE 8}, 3545 } 3546 3547 @manual{JUC, 3548 keywords = {Java concurrency library}, 3549 contributer = {pabuhr@plg}, 3550 title = {java.util.concurrency}, 3551 author = {Doug Lea}, 3552 organization= {Oracle}, 3553 year = 2014, 3554 note = {\href{http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html}{\textsf{http://docs.oracle.com/\-javase/7/\-docs/\-api/\-java/\-util/\-concurrent/\-package-summary.html}}}, 3555 } 3556 3557 % K 3558 3559 @article{Duggan96, 3560 keywords = {concurrency, critical section}, 3561 contributer = {pabuhr@plg}, 3562 author = {Dominic Duggan and Gordon V. Cormack and John Ophel}, 3563 title = {Kinded Type Inference for Parametric Overloading}, 3564 journal = acta, 3565 volume = 33, 3566 number = 1, 3567 year = 1996, 3568 pages = {21-68}, 3569 } 3570 3571 @article{Peter35, 3572 keywords = {recursion, Ackermann function}, 3573 contributer = {pabuhr@plg}, 3574 author = {R{\'{o}}zsa P{\'{e}}ter}, 3575 title = {Konstruktion nichtrekursiver Funktionen}, 3576 publisher = {Springer}, 3577 journal = {Mathematische Annalen}, 3578 number = 111, 3579 volume = 1, 3580 pages = {42-60}, 3581 month = dec, 3582 year = 1935, 3583 } 3584 3585 % L 3586 3587 @TechReport{WVWR88:L, 3588 contributer = {gjditchf@plg}, 3589 author = {Hanno Wupper and Jan Vytopil and Martin Wieczorek and Dick de Reus}, 3590 title = {{L}_{3333}: A Simple Language with Static Typing of Hard Real-Time Constraints}, 3591 institution = {Department of Informatics, Faculty of Science, Catholic University Nijmegen}, 3592 year = 1988, 3593 number = {88-3}, 3594 address = {Katholieke Universiteit Nijmegen, Fakulteit der Wiskunde 3595 en Natuurwetenschappen, Infomatica V, Toernooiveld, 6512 3596 ED Nijmegen, The Netherlands}, 3597 month = apr, 3598 annote = {A polymorphic typed lambda calculus with \begin{itemize} 3599 \item A trivial type, ``!'', with a single element. 3600 \item Labelled types, distinct from each other. 3601 ``!False'' and ``!True'' are distinct types, each 3602 containing a single value serving as boolean false and 3603 true. ``2'' is an abbreviation for ``!0 succ succ'', the 3604 type containing only 2. 3605 \item Disjunction types ``\{| !False, !True |\}''. Interval 3606 types are abbreviations for disjunctions. 3607 \item Conjunction types ``\{\& real Re, real Im \&\}'', where 3608 ``Re'' and ``Im'' are type labels that distinguish between the 3609 fields. 3610 \item Pair types ``\{^ a, b ^\}'', for use in recursive types 3611 and dyadic infix functions. 3612 \item Function types, universal types, existential types, 3613 and subtyping (viewed as coercion), as in Fun. 3614 \end{itemize} 3615 Disjunctions and conjunctions types are associative and 3616 commutative (i.e. flat). Each type has a matching 3617 constructor. Functions use pattern matching on type 3618 labels to strip labels and extract conjunction fields: 3619 \begin{verbatim} 3620 \lambda n {0...1000000 Guilders}. ... n ... 3621 -- both argument and n are amounts in Guilders. 3622 \lambda n {0...1000000} Guilders. ... n ... 3623 -- argument in Guilders, but n is in 0...1000000. 3624 \end{verbatim} 3625 ``Function bundles'' (conjunctions of functions), applied 3626 to arguments, replace Dijkstra's guarded if...fi, but the 3627 bundles are first-class and the guards are part of their 3628 type. 3629 3630 The same trick used to define the type ``2'' is used to 3631 move absolute times into the type system, to allow static 3632 checking. ``0`'' denotes a time before the system begins 3633 execution. ``\#`'' denotes ``eventually'', and ``?`'' 3634 denotes ``maybe never''. ``a\\t'' and ``a@t'' are types 3635 of a value of type a that will be available no later 3636 (earlier) than time t. Universals and existentials use 3637 subtyping to parameterize functions by start time: 3638 \begin{verbatim} 3639 let f {\forall t > \#`}. {a\t} \on {b\t+d} 3640 f{then} y -- argument y must be available at time ``then''. 3641 \end{verbatim} 3642 Functions can return before their arguments are available 3643 if they don't use them. However, function {\em bundles} 3644 can't return until their result type is known, so the 3645 lower and upper time bounds of the bundle are the 3646 second-last upper bound of the component functions: at 3647 that time, there is only one alternative left. 3648 3649 Explicit time parameterization allows slack in time 3650 specification. Tools could point out slack or determine 3651 degree of parallelism.} 3652 } 3653 3654 @mastersthesis{Clarke90, 3655 keywords = {concurrency, postponing requests}, 3656 contributer = {pabuhr@plg}, 3657 author = {Charles L. A. Clarke}, 3658 title = {Language and Compiler Support for Synchronous Message Passing Architectures}, 3659 school = {University of Waterloo}, 3660 year = 1990, 3661 address = {Waterloo, Ontario, Canada, N2L 3G1} 3662 } 3663 3664 @article{Tennent77, 3665 keywords = {abstraction, correspondence, Pascal}, 3666 contributer = {gjditchfield@plg}, 3667 author = {R. D. Tennent}, 3668 title = {Language Design Methods Based on Semantic Principles}, 3669 journal = acta, 3670 year = 1977, 3671 volume = 8, 3672 number = 2, 3673 pages = {97-112}, 3674 note = {reprinted in \cite{pldesign}}, 3675 abstract = { 3676 Two language design methods based on principles derived from the 3677 denotational approach to programming language semantics are 3678 described and illustrated by an application to the language Pascal. 3679 The principles are, firstly, the correspondence between parametric 3680 and declarative mechanisms and secondly, a principle of abstraction 3681 for programming languages adapted from set theory. Several useful 3682 extensions and generalizations of Pascal emerge by applying these 3683 principles, including a solution to the array parameter problem, 3684 and a modularization facility. 3685 }, 3686 } 3687 3688 @article{Liskov86, 3689 keywords = {synchronous communication, concurrency}, 3690 contributer = {pabuhr@plg}, 3691 author = {Barbara Liskov and Maurice Kerlihy and Lucy Gilbert}, 3692 title = {Limitations of Synchronous Communication with Static 3693 Process Structure in Languages for Distributed Computing}, 3694 journal = {}, 3695 volume = {}, 3696 number = {}, 3697 month = {}, 3698 year = {}, 3699 pages = {}, 3700 } 3701 3702 @article{Linda, 3703 keywords = {Linda, concurrency}, 3704 contributer = {pabuhr@plg}, 3705 author = {Nicholas Carriero and David Gelernter}, 3706 title = {Linda in Context}, 3707 journal = cacm, 3708 volume = 32, 3709 number = 4, 3710 month = apr, 3711 year = 1989, 3712 pages = {444-458} 3713 } 3714 3715 @book{Weissman67, 3716 keywords = {lisp}, 3717 author = {Clark Weissman}, 3718 title = {Lisp 1.5 Primer}, 3719 publisher = {Dickenson Publishing}, 3720 year = 1967, 3721 } 3722 3723 @article{Sundell08, 3724 keywords = {lock free, deque}, 3725 contributer = {pabuhr@plg}, 3726 author = {H{\r{a}}kan Sundell and Philippas Tsigas}, 3727 title = {Lock-free Deques and Doubly Linked Lists}, 3728 journal = {J. Parallel Distrib. Comput.}, 3729 volume = 68, 3730 number = 7, 3731 year = 2008, 3732 pages = {1008-1020}, 3733 } 3734 3735 @article{Cormack89, 3736 keywords = {parsing, LR, error recovery}, 3737 contributer = {pabuhr@plg}, 3738 author = {Gordon V. Cormack}, 3739 title = {An {LR} Substring Parser for Noncorrecting Syntax Error Recovery}, 3740 journal = sigplan, 3741 volume = 24, 3742 number = 7, 3743 month = jul, 3744 year = 1989, 3745 pages = {161-169}, 3746 note = {Proceedings of the {SIGPLAN}~'89 Conference on Programming Language Design and Implementation} 3747 } 3748 3749 % M 3750 3751 @book{M68K, 3752 keywords = {M680XX, Motorola}, 3753 contributer = {pabuhr@plg}, 3754 key = {Motorola}, 3755 title = {M68000 Family Programmer's Reference Manual}, 3756 publisher = {Motorola}, 3757 year = 1992, 3758 } 3759 3760 @article{c++libs, 3761 keywords = {directory structure}, 3762 contributer = {gjditchfield@plg}, 3763 author = {J. M. Coggins and G. Bollella}, 3764 title = {Managing {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Libraries}, 3765 journal = sigplan, 3766 year = 1989, 3767 month = jun, volume = 24, number = 6, pages = {37-48}, 3768 abstract = { 3769 This paper describes a scheme we have used to manage a large 3770 library written in the C++ language. The scheme imposes a 3771 directory structure, and represents dependency hierarchy in a 3772 globally accessible file we call the 'prelude' file. We also 3773 discuss the structure of the description files (makefiles) used 3774 with the UNIX options we have found to be useful in reducing the 3775 size of the library, and how to minimize recompilation time after 3776 trivial changes to the source code of the library. 3777 } 3778 } 3779 3780 @inproceedings{mprof, 3781 keywords = {malloc}, 3782 contributer = {gjditchfield@plg}, 3783 author = {Benjamin Zorn and Paul Hilfinger}, 3784 title = {A Memory Allocation Profiler for {C} and Lisp Programs}, 3785 booktitle = {Summer 1988 {USENIX} proceedings}, 3786 year = 1988 3787 } 3788 3789 @manual{MMTk, 3790 keywords = {Java memory management}, 3791 contributer = {pabuhr@plg}, 3792 title = {MMTk: The Memory Management Toolkit}, 3793 author = {Steve Blackburn and Robin Garner and Daniel Frampton}, 3794 month = sep, 3795 year = 2006, 3796 note = {\textsf{http://cs.anu.edu.au/\-\char`\~Robin.Garner/\-mmtk-guide.pdf}}, 3797 } 3798 3799 @article{Adve10, 3800 keywords = {Java memory management}, 3801 contributer = {pabuhr@plg}, 3802 author = {Sarita V. Adve and Hans-J. Boehm}, 3803 title = {Memory Models: A Case for Rethinking Parallel Languages and Hardware}, 3804 journal = cacm, 3805 volume = 53, 3806 number = 8, 3807 month = aug, 3808 year = 2010, 3809 pages = {90-101}, 3810 publisher = {ACM}, 3811 address = {New York, NY, USA}, 3812 } 3813 @techreport{Mesa, 3814 keywords = {monitors, packages}, 3815 contributer = {pabuhr@plg}, 3816 author = {James G. Mitchell and William Maybury and Richard Sweet}, 3817 title = {Mesa Language Manual}, 3818 institution = {Xerox Palo Alto Research Center}, 3819 number = {CSL--79--3}, 3820 month = apr, 3821 year = 1979 3822 } 3823 3824 @article{Andrews89, 3825 keywords = {semaphore, split-binary, baton}, 3826 contributer = {pabuhr@plg}, 3827 author = {Gregory R. Andrews}, 3828 title = {A Method for Solving Synronization Problems}, 3829 journal = scp, 3830 volume = 13, 3831 number = 4, 3832 month = dec, 3833 year = 1989, 3834 pages = {1-21}, 3835 } 3836 3837 @inproceedings{Mitchell78, 3838 keywords = {Mesa}, 3839 contributer = {pabuhr@plg}, 3840 author = {James G. Mitchell}, 3841 title = {Mesa: A Designer's User Perspective}, 3842 booktitle = {Spring CompCom 78}, 3843 organization= {Sixteenth IEEE Computer Society International Conference}, 3844 address = {San Francisco, California, U.S.A.}, 3845 month = feb, 3846 year = 1978, 3847 pages = {36-39}, 3848 note = {IEEE Catalog No. 78CH1328-4C}, 3849 } 3850 3851 @article{Gentleman81, 3852 keywords = {messages, concurrency}, 3853 contributer = {pabuhr@plg}, 3854 author = {W. Morven Gentleman}, 3855 title = {Message Passing between Sequential Processes: 3856 the Reply Primitive and the Administrator Concept}, 3857 journal = spe, 3858 month = may, 3859 year = 1981, 3860 volume = 11, 3861 number = 5, 3862 pages = {435-466} 3863 } 3864 3865 @article{Cormack88, 3866 keywords = {concurrency}, 3867 contributer = {pabuhr@plg}, 3868 author = {G. V. Cormack}, 3869 title = {A Micro Kernel for Concurrency in C}, 3870 journal = spe, 3871 month = may, 3872 year = 1988, 3873 volume = 18, 3874 number = 4, 3875 pages = {485-491} 3876 } 3877 3878 @article{Buhr90a, 3879 keywords = {concurrency, light-weight process, shared memory}, 3880 contributer = {pabuhr@plg}, 3881 author = {Peter A. Buhr and Richard A. Stroobosscher}, 3882 title = {The $\mu${S}ystem: Providing Light-Weight Concurrency on Shared-Memory Multiprocessor Computers Running {UNIX}}, 3883 journal = spe, 3884 volume = 20, 3885 number = 9, 3886 month = sep, 3887 year = 1990, 3888 pages = {929-963}, 3889 } 3890 3891 @techreport{uSystem, 3892 keywords = {C, concurrency, light-weight process, shared memory}, 3893 contributer = {pabuhr@plg}, 3894 author = {Peter A. Buhr and Hamish I. Macdonald and Richard A. Stroobosscher}, 3895 title = {$\mu${S}ystem Annotated Reference Manual, Version 4.4.3}, 3896 institution = {Department of Computer Science, University of Waterloo}, 3897 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3898 month = sep, 3899 year = 1994, 3900 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-uSystem/\-uSystem.ps.gz}}}, 3901 } 3902 3903 @book{Mips4000, 3904 key = {Mips4000}, 3905 title = {MIPS R4000 Microprocessor User's Manual}, 3906 publisher = {MIPS Computer Systems Inc}, 3907 year = 1991, 3908 } 3909 3910 @inproceedings{Mjolner, 3911 keywords = {Mjolner, hierarchical windows}, 3912 contributer = {pabuhr@plg}, 3913 author = {G\"{o}rel Hedin and Boris Magnusson}, 3914 title = {The Mj{\o}lner Environment: Direct Interaction with Abstractions}, 3915 booktitle = {Proceedings of the European Conference on Object Oriented Programming}, 3916 organization= {ECOOP'88}, 3917 publisher = {Springer-Verlag}, 3918 volume = 322, 3919 editor = {S. Gjessing and K. Nygaard}, 3920 address = {Oslo, Norway}, 3921 month = aug, 3922 year = 1988, 3923 pages = {41-54}, 3924 note = {Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis}, 3925 } 3926 3927 @article{Skillicorn98, 3928 keywords = {parallel models}, 3929 contributer = {pabuhr@plg}, 3930 author = {David B. Skillicorn and Domenico Talia}, 3931 title = {Models and Languages for Parallel Computation}, 3932 journal = acmcs, 3933 volume = 30, 3934 number = 2, 3935 month = jun, 3936 year = 1998, 3937 pages = {123-169}, 3938 } 3939 3940 @article{Werther96, 3941 keywords = {C++, language syntax}, 3942 contributer = {pabuhr@plg}, 3943 author = {Ben Werther and Damian Conway}, 3944 title = {A Modest Proposal: {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Resyntaxed}, 3945 journal = sigplan, 3946 volume = 31, 3947 number = 11, 3948 month = nov, 3949 year = 1996, 3950 pages = {74-82}, 3951 } 3952 3953 @book{Alexandrescu01, 3954 keywords = {c design-patterns programming}, 3955 contributer = {pabuhr@plg}, 3956 author = {Andrei Alexandrescu}, 3957 title = {Modern C++ Design: Generic Programming and Design Patterns Applied}, 3958 publisher = {Addison-Wesley Professional}, 3959 month = feb, 3960 year = 2001, 3961 isbn = {0201704315}, 3962 } 3963 3964 @book{Tanenbaum92, 3965 keywords = {concurrency, operating systems}, 3966 contributer = {pabuhr@plg}, 3967 author = {Andrew S. Tanenbaum}, 3968 title = {Modern Operating Systems}, 3969 publisher = {Prentice-Hall}, 3970 year = 1992, 3971 } 3972 3973 @article{Wirth77, 3974 keywords = {modules, coroutines}, 3975 contributer = {pabuhr}, 3976 author = {Niklaus Wirth}, 3977 title = {Modula: a Language for Modular Multiprogramming}, 3978 journal = spe, 3979 month = {January--February}, 3980 year = 1977, 3981 volume = 7, 3982 number = 1, 3983 pages = {3-35}, 3984 } 3985 3986 @book{Harbison92, 3987 contributer = {mhcoffin}, 3988 author = {Samuel P. Harbison}, 3989 title = {Modula-3}, 3990 publisher = {Prentise Hall, Inc.}, 3991 year = {1992}, 3992 comment = {This is a textbook for learning Modula-3.} 3993 } 3994 3995 @techreport{Modula-3:old, 3996 keywords = {Modula-3, inheritance, type extension}, 3997 contributer = {gjditchfield@plg}, 3998 author = {Luca Cardelli and James Donahue and Lucille Glassman and Mick 3999 Jordan and Bill Kalsow and Greg Nelson}, 4000 title = {Modula-3 Report}, 4001 institution = {Systems Research Center}, 4002 address = {130 Lytton Avenue, Palo Alto, California 94301}, 4003 month = aug, 4004 year = 1988, 4005 number = 31 4006 } 4007 4008 @article{Dueck90, 4009 keywords = {attribute grammars}, 4010 contributer = {pabuhr@plg}, 4011 author = {Gerald D. P. Dueck and Gordon V. Cormack}, 4012 title = {Modular Attribute Grammars}, 4013 journal = {The Computer Journal}, 4014 month = apr, 4015 year = 1990, 4016 volume = 33, 4017 number = 2, 4018 pages = {164-172}, 4019 } 4020 4021 @article{Yemini85, 4022 keywords = {exception handling}, 4023 contributer = {pabuhr@plg}, 4024 author = {Shaula Yemini and Daniel M. Berry}, 4025 title = {A Modular Verifiable Exception-Handling Mechanism}, 4026 journal = toplas, 4027 month = apr, 4028 year = 1985, 4029 volume = 7, 4030 number = 2, 4031 pages = {214-243}, 4032 } 4033 4034 @article{Buhr95b, 4035 keywords = {concurrency, monitors, classification}, 4036 contributer = {pabuhr@plg}, 4037 author = {Peter A. Buhr and Michel Fortier and Michael H. Coffin}, 4038 title = {Monitor Classification}, 4039 journal = acmcs, 4040 volume = 27, 4041 number = 1, 4042 month = mar, 4043 year = 1995, 4044 pages = {63-107}, 4045 } 4046 4047 @article{Hoare74, 4048 keywords = {monitor}, 4049 contributer = {pabuhr@plg}, 4050 author = {C. A. R. Hoare}, 4051 title = {Monitors: An Operating System Structuring Concept}, 4052 journal = cacm, 4053 volume = 17, 4054 number = 10, 4055 month = oct, 4056 year = 1974, 4057 pages = {549-557}, 4058 annote = { 4059 } 4060 } 4061 4062 @inbook{Buhr99a, 4063 keywords = {concurrency, monitors, classification}, 4064 contributer = {pabuhr@plg}, 4065 author = {Peter A. Buhr and Michel Fortier and Michael H. Coffin}, 4066 title = {Encyclopedia of Computer Science and Technology}, 4067 chapter = {Monitor Taxonomy}, 4068 publisher = {Marcel Dekker, Inc}, 4069 volume = {40, supplement 25}, 4070 year = 1999, 4071 pages = {191-212}, 4072 } 4073 % editor = {Allen Kent and James G. Williams}, 4074 4075 @manual{MPI, 4076 keywords = {MPI}, 4077 contributer = {pabuhr@plg}, 4078 title = {MPI: A Message-Passing Interface Standard, Version 3.1}, 4079 organization= {Message Passing Interface Forum}, 4080 address = {University of Tennessee, Knoxville, Tennessee}, 4081 month = jun, 4082 year = 2015, 4083 note = {\href{http://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf}{\textsf{http://www.mpi-forum.org/\-docs/\-mpi-3.1/\-mpi31-report.pdf}}}, 4084 } 4085 4086 @article{multilisp, 4087 keywords = {futures, scheme}, 4088 contributer = {gjditchfield@plg}, 4089 author = {Halstead, Jr.,Robert H.}, 4090 title = {Multilisp: A Language for Concurrent Symbolic Programming}, 4091 journal = toplas, 4092 volume = 7, 4093 number = 4, 4094 pages = {501-538}, 4095 month = oct, 4096 year = 1985, 4097 comment = { 4098 (future E) begins evaluating the expression E, and 4099 returns a ``future'' representing the value. When evaluation is 4100 finished, the value of E replaces the future. Operations that need 4101 the future's value suspend until it is available. Assignment and 4102 parameter passing do not suspend. Future introduces concurrency 4103 between the calculation of a value and its use; reference to 4104 futures is a synchronization mechanism. 4105 4106 (pcall F A B ... C) concurrently evaluates F, A, B, ... C, and then 4107 applies F to the arguments. pcall can be built from future and a 4108 ``touch'' operation. pcall is included because it may not be easy 4109 to determine that there are no critical sections between the future 4110 expression and the code between the future call and the value's 4111 first use. 4112 4113 (delay E) is like future, but E's process does not begin until its 4114 value is needed. It provides lazy evaluation. Replacing delay 4115 with future would launch an infinite number of processes. 4116 } 4117 } 4118 4119 @techreport{Bretthauer89, 4120 keywords = {multiple inheritance}, 4121 contributer = {pabuhr@plg}, 4122 author = {Harry Bretthauer and Thomas Christaller and J\"{u}rgen Kopp}, 4123 title = {Multiple vs. Single Inheritance in Object-oriented Programming Languages. What do we really want?}, 4124 institution = {Gesellschaft F\"{u}r Mathematik und Datenverarbeitung mbH}, 4125 address = {Schlo$\beta$ Birlinghoven, Postfach 12 40, D-5205 Sankt Augustin 1, Deutschland}, 4126 number = {Arbeitspapiere der GMD 415}, 4127 month = nov, 4128 year = 1989, 4129 } 4130 4131 @inproceedings{c++:multinh, 4132 keywords = {C++, multiple inheritance, implementation}, 4133 contributer = {gjditchfield@plg}, 4134 author = {Bjarne Stroustrup}, 4135 title = {Multiple Inheritance for {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4136 booktitle = {Proceedings of the Spring '87 EUUG Conference}, 4137 month = may, year = 1987 4138 } 4139 4140 @inproceedings{st:mult, 4141 keywords = {smalltalk, multiple inheritance, implementation}, 4142 contributer = {gjditchfield@plg}, 4143 author = {Daniel H. H. Ingalls and A. H. Borning}, 4144 title = {Multiple Inheritance in Smalltalk-80}, 4145 booktitle = {Proceedings of the National Conference on Artificial Intelligence}, 4146 month = aug, 4147 year = 1982, 4148 pages = {234-238}, 4149 organization= {American Association for Artificial Intelligence}, 4150 comment = { 4151 Methods are looked up in the current class, the superclasses, the 4152 supersuperclasses, etc. The same method can be inherited 4153 repeatedly, but having different methods for the same message is an 4154 error. Only one copy is made for multiply-inherited fields. 4155 4156 {\tt X.m} is the method m in superclass X. {\tt super.m} is 4157 allowed if there is no ambiguity; {\tt self super.m} replaces {\tt 4158 super m}. {\tt all.m} invokes all inherited versions of m. 4159 4160 Methods on the first-superclass chain are found as usual. Methods 4161 from other superclasses are copied into the class dictionary. An 4162 error method is created if inherited methods conflict. The parser 4163 is changed to allow compound selectors. {\tt Object 4164 messageNotUnderstood} is changed to look for compound selectors and 4165 dynamically add a method with the right name and body to the class. 4166 When methods are edited, they are copied into subclasses and 4167 compound selector versions are deleted, as appropriate. 4168 } 4169 } 4170 4171 @article{Lamport86I, 4172 keywords = {software solutions, N-thread, mutual exclusions}, 4173 contributer = {pabuhr@plg}, 4174 author = {Leslie Lamport}, 4175 title = {The Mutual Exclusion Problem: Part\,{I}--A Theory of Interprocess Communication}, 4176 journal = jacm, 4177 volume = 33, 4178 number = 2, 4179 month = apr, 4180 year = 1986, 4181 pages = {313--326}, 4182 numpages = {14}, 4183 publisher = {ACM}, 4184 address = {New York, NY, USA}, 4185 } 4186 4187 @article{Lamport86II, 4188 keywords = {software solutions, N-thread, mutual exclusions}, 4189 contributer = {pabuhr@plg}, 4190 author = {Leslie Lamport}, 4191 title = {The Mutual Exclusion Problem: Part\,{II}--Statement and Solutions}, 4192 journal = jacm, 4193 volume = 33, 4194 number = 2, 4195 month = apr, 4196 year = 1986, 4197 pages = {327--348}, 4198 numpages = {22}, 4199 publisher = {ACM}, 4200 address = {New York, NY, USA}, 4201 } 4202 4203 @article{Burns78, 4204 keywords = {hardware, N-process solution, O(N)}, 4205 contributer = {pabuhr@plg}, 4206 author = {James E. Burns}, 4207 title = {Mutual Exclusion with Linear Waiting Using Binary Shared Variables}, 4208 journal = {SIGACT News}, 4209 volume = 10, 4210 number = 2, 4211 month = {Summer}, 4212 year = 1978, 4213 pages = {42-47}, 4214 } 4215 4216 @inproceedings{Burns80, 4217 keywords = {N-process software solution}, 4218 contributer = {pabuhr@plg}, 4219 author = {James E. Burns and Nancy A. Lynch}, 4220 title = {Mutual Exclusion using Indivisible Reads and Writes}, 4221 booktitle = {Proceedings of the 18th Annual Allerton Conference on Communications, Control and Computing, Monticello, Illinois, USA}, 4222 year = 1980, 4223 pages = {833-842}, 4224 note = {\href{http://groups.csail.mit.edu/tds/papers/Lynch/allertonconf.pdf}{\textsf{http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf}} [Accessed on March 2014]}, 4225 optnote = {\textsf{http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf}}, 4226 } 4227 4228 @article{Peterson81, 4229 keywords = {concurrency, critical section}, 4230 contributer = {pabuhr@plg}, 4231 author = {G. L. Peterson}, 4232 title = {Myths About the Mutual Exclusion Problem}, 4233 journal = ipl, 4234 year = 1981, 4235 month = jun, 4236 volume = 12, 4237 number = 3, 4238 pages = {115-116}, 4239 } 4240 4241 % N 4242 4243 @article{Haddon77, 4244 keywords = {monitors, nested monitor calls}, 4245 contributer = {pabuhr@plg}, 4246 author = {Bruce K. Haddon}, 4247 title = {Nested Monitor Calls}, 4248 journal = osr, 4249 volume = 11, 4250 number = 4, 4251 month = oct, 4252 year = 1977, 4253 pages = {18-23}, 4254 } 4255 4256 @inproceedings{nesting, 4257 keywords = {}, 4258 contributer = {gjditchfield@plg}, 4259 author = {Lori A. Clarke and Jack C. Wilenden and Alexander L. Wolf}, 4260 title = {Nesting in {Ada} Programs is for the Birds}, 4261 booktitle = {Proceedings of the ACM-SIGPLAN Symposium on the {Ada} 4262 Programming Language}, 4263 year = 1980, 4264 month = dec, pages = {139-145}, 4265 note = {SIGPLAN Notices, v. 15, n. 11}, 4266 abstract = { 4267 Given a data abstraction construct like the Ada package and in the 4268 light of current thoughts on programming methodology, we feel that 4269 nesting is an anachronism. In this paper we propose a nest-free 4270 program style for Ada that eschews nested program units and 4271 declarations within blocks and instead heavily utilizes packages 4272 and context specifications as mechanisms for controlling 4273 visibility. We view this proposal as a first step toward the 4274 development of programming methods that exploit the novel language 4275 features available in Ada. Consideration of this proposal's 4276 ramifications for data flow, control flow, and overall program 4277 structure substantiates our contention that a tree structure is 4278 seldom a natural representation of a program and that nesting 4279 therefore generally interferes with program development and 4280 readability. 4281 } 4282 } 4283 4284 @inproceedings{Buhr88, 4285 keywords = {nested classes, persistence}, 4286 contributer = {pabuhr@plg}, 4287 author = {P. A. Buhr and C. R. Zarnke}, 4288 title = {Nesting in an Object Oriented Language is NOT for the Birds}, 4289 booktitle = {Proceedings of the European Conference on Object Oriented Programming}, 4290 publisher = {Springer-Verlag}, 4291 volume = 322, 4292 editor = {S. Gjessing and K. Nygaard}, 4293 address = {Oslo, Norway}, 4294 month = aug, 4295 year = 1988, 4296 pages = {128-145}, 4297 note = {Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis}, 4298 } 4299 4300 @inproceedings{Thompson90new, 4301 keywords = {Plan 9}, 4302 contributer = {pabuhr@plg}, 4303 title = {A New C Compiler}, 4304 author = {Ken Thompson}, 4305 booktitle = {Proceedings of the Summer 1990 UKUUG Conference}, 4306 year = 1990, 4307 pages = {41--51}, 4308 url = {http://doc.cat-v.org/bell_labs/new_c_compilers/new_c_compiler.pdf} 4309 } 4310 4311 @article{Trono94, 4312 author = {John A. Trono}, 4313 title = {A New Exercise in Concurrency}, 4314 journal = {SIGCSE Bulletin}, 4315 volume = {26}, 4316 number = {3}, 4317 month = sep, 4318 year = {1994}, 4319 pages = {8-10}, 4320 publisher = {ACM}, 4321 address = {New York, NY, USA}, 4322 } 4323 4324 @article{Lamport74, 4325 keywords = {concurrency, N-Process solution, O(N)}, 4326 contributer = {pabuhr@plg}, 4327 author = {Leslie Lamport}, 4328 title = {A New Solution of Dijkstra's Concurrent Programming Problem}, 4329 journal = cacm, 4330 month = aug, 4331 year = 1974, 4332 volume = 17, 4333 number = 8, 4334 pages = {453-455}, 4335 } 4336 4337 @article{landin, 4338 keywords = {}, 4339 contributer = {gjditchfield@plg}, 4340 author = {P. J. Landin}, 4341 title = {The Next 700 Programing Languages}, 4342 journal = cacm, 4343 year = 1966, 4344 volume = 9, 4345 pages = {157-164}, 4346 } 4347 4348 @article{Herlihy05, 4349 keywords = {Multiprocessors, concurrent data structures, dynamic data structures, memory management, nonblocking synchronization}, 4350 contributer = {pabuhr@plg}, 4351 author = {Maurice Herlihy and Victor Luchangco and Paul Martin and Mark Moir}, 4352 title = {Nonblocking Memory Management Support for Dynamic-sized Data Structures}, 4353 journal = tocs, 4354 volume = 23, 4355 number = 2, 4356 month = may, 4357 year = 2005, 4358 pages = {146-196}, 4359 numpages = {51}, 4360 publisher = {ACM}, 4361 address = {New York, NY, USA}, 4362 } 4363 4364 % O 4365 4366 @inproceedings{oop:abcl/1, 4367 keywords = {concurrency, OOPL, futures}, 4368 contributer = {gjditchfield@plg}, 4369 author = {Akinori Yonezawa and Jean-Pierre Briot and Etsuya Shibayama}, 4370 title = {Object-Oriented Concurrent Programming in {ABCL/1}}, 4371 crossref = "OOPSLA86", 4372 pages = {258-268}, 4373 comment = { 4374 Actions for messages sent to an object are executed concurrently 4375 iff the object has no members. A select construct specifies a set 4376 of message patterns. 4377 4378 Express messages have priority. If an express message arrives 4379 while an ordinary message is being processed, the action for the 4380 ordinary message is suspended or aborted and the action for the 4381 express message is executed. The sender decides which class a 4382 message belongs in. Non-interruptible sections can be defined. 4383 4384 Message sends can be non-blocking, or can block until a reply is 4385 received, at the sender's option. The receiver can continue to 4386 execute after sending the reply. 4387 4388 Replies can send back ``futures'', and put values in them later. 4389 Futures are queues of values, not single values. The caller can 4390 use a ``ready?'' predicate to test for empty queue, or can use 4391 operations to get the first or all queue elements; these operations 4392 block if the queue is empty. 4393 } 4394 } 4395 4396 @techreport{Schmidt95, 4397 keywords = {ACE, concurrency, library}, 4398 contributer = {pabuhr@plg}, 4399 author = {Douglas C. Schmidt}, 4400 title = {An OO Encapsulation of Lightweight OS Concurrency Mechanisms in the {ACE} Toolkit}, 4401 institution = {Washington University in St. Louis}, 4402 year = 1995, 4403 number = 31, 4404 note = {{\small\textsf{http://\-www.cs.wustl.edu/\-\char`\~schmidt/\-PDF/\-IPC\_SAP-92.pdf}}}, 4405 } 4406 4407 @inproceedings{OOEx, 4408 keywords = {Exceptions, object-oriented programming languages}, 4409 contributer = {gjditchfield@plg}, 4410 author = {Christophe Dony}, 4411 title = {An Object-oriented Exception Handling System for an Object-oriented Language}, 4412 booktitle = {ECOOP '88. European Conference on Object-Oriented Programming}, 4413 year = 1988, 4414 pages = {146-161}, 4415 editor = {S. Gjessing and K. Nygaard}, 4416 organization= {DND, The Norwegian Computer Society}, 4417 publisher = {Springer-Verlag}, 4418 comment = { 4419 Objectives: 4420 - Users can define new exceptions. 4421 - Default handlers can be attached to exceptions. 4422 - Handlers can be attached to classes. 4423 - Handlers can be attached to dynamic entities (expressions). 4424 - Exceptions propagate first along the invocation chain. 4425 - Exceptions should be hierarchically organized classes. 4426 - Handlers should take into account the exception hierarchy (i.e., 4427 should handle raising of sub-exceptions). 4428 The ``exceptional-event'' class has two subclasses. ``Warning'' 4429 has a ``resume'' method, and ``error'' has ``exit'' and 4430 ``retry'' methods. Signalling an exception creates an instance 4431 of the exception, whose members are used to pass information 4432 back to the handler. Handlers are instances of class 4433 ``protect-handler'' with a method ``protect {\em expression}'', 4434 or are methods defined for the class or the exception. 4435 } 4436 } 4437 4438 @article{CommonObjects, 4439 author = {A. Snyder}, 4440 title = {Object-Oriented Programming for Common Lisp}, 4441 address = {Palo Alto CA}, 4442 year = 1985, 4443 publisher = {Software Technology Laboratory, Hewlett-Packard Laboratories}, 4444 journal = {Report ATC-85-1}, 4445 } 4446 4447 @book{objective-c, 4448 keywords = {}, 4449 author = {Brad J. Cox}, 4450 title = {Object-oriented programming; an evolutionary approach}, 4451 publisher = {Addison-Wesley}, 4452 year = 1986 4453 } 4454 4455 @book{Beta, 4456 keywords = {Beta, object oriented, concurrency, exceptions}, 4457 contributer = {pabuhr@plg}, 4458 author = {Ole Lehrmann Madsen and Birger M{\o}ller-Pedersen and Kristen Nygaard}, 4459 title = {Object-oriented Programming in the {BETA} Programming Language}, 4460 publisher = {Addison-Wesley}, 4461 year = 1993, 4462 } 4463 4464 @article{Flavors, 4465 author = {D. A. Moon}, 4466 title = {Object-Oriented Programming with Flavors}, 4467 address = {Portland OR}, 4468 month = sep, 4469 year = 1986, 4470 journal = {Proc. ACM Conf. on Object-Oriented Systems, Languages and Applications}, 4471 } 4472 4473 @article{Buhr00b, 4474 keywords = {concurrency, C++, real-time}, 4475 contributer = {pabuhr@plg}, 4476 author = {Peter A. Buhr and Ashif S. Harji and Philipp E. Lim and Jiongxiong Chen}, 4477 title = {Object-Oriented Real-Time Concurrency}, 4478 journal = sigplan, 4479 volume = 35, 4480 number = 10, 4481 month = oct, 4482 year = 2000, 4483 pages = {29-46}, 4484 note = {OOPSLA'00, Oct. 15--19, 2000, Minneapolis, Minnesota, U.S.A.}, 4485 } 4486 4487 @book{Meyer88, 4488 keywords = {Eiffel}, 4489 contributer = {pabuhr@plg}, 4490 author = {Bertrand Meyer}, 4491 title = {Object-oriented Software Construction}, 4492 publisher = {Prentice Hall}, 4493 year = {1988}, 4494 series = {Prentice Hall International Series in Computer Science}, 4495 } 4496 4497 @article{objectPascal, 4498 keywords = {objects, modules}, 4499 contributer = {gjditchfield@plg}, 4500 author = {Larry Tesler}, 4501 title = {Object Pascal Report}, 4502 journal = {Structured Language World}, 4503 year = 1985, 4504 volume = 9, 4505 number = 3, 4506 } 4507 4508 @misc{obj-c:next, 4509 keywords = {categories, protocols, Objective C}, 4510 contributor = {gjditchfield@angus}, 4511 author = {NeXT Computer, Inc.}, 4512 title = {Objective C Extensions}, 4513 howpublished= {On-line documentation in ``NEXTSTEP 3.1 Developer''}, 4514 year = 1993 4515 } 4516 4517 @book{Galletly96, 4518 keywords = {occam}, 4519 author = {John Galletly}, 4520 title = {{OCCAM} 2: Including {OCCAM} 2.1}, 4521 publisher = {{UCL} (University College London) Press Ltd.}, 4522 edition = {second}, 4523 year = 1996, 4524 } 4525 4526 @techreport{Morrison88, 4527 keywords = {objects, concurrency, persistence}, 4528 contributer = {pabuhr@plg}, 4529 author = {R. Morrison and A. L. Brown and R. Carrick and R. Connor and A. Dearle}, 4530 title = {On the integration of Object-Oriented and Process-Oriented computation in persistent environments}, 4531 institution = {Department of Computational Science, University of St. Andrews, Scotland}, 4532 number = {PPRR 57}, 4533 month = jan, 4534 year = 1988, 4535 } 4536 4537 @article{Peterson73, 4538 keywords = {goto, structured programming}, 4539 contributer = {pabuhr@plg}, 4540 author = {W. W. Peterson and T. Kasami and N. Tokura}, 4541 title = {On the Capabilities of While, Repeat, and Exit Statements}, 4542 journal = cacm, 4543 month = aug, 4544 year = 1973, 4545 volume = 16, 4546 number = 8, 4547 pages = {503-512} 4548 } 4549 4550 @article{Baker82, 4551 keywords = {compilation}, 4552 contributer = {gjditchfield@plg}, 4553 author = {Theodore P. Baker}, 4554 title = {A One-Pass Algorithm for Overload Resolution in {Ada}}, 4555 journal = toplas, 4556 year = 1982, 4557 month = oct, 4558 volume = 4, 4559 number = 4, 4560 pages = {601-614}, 4561 abstract = { 4562 A simple method is presented for detecting ambiguities and finding 4563 the correct interpretations of expressions in the programming 4564 language Ada. Unlike previously reported solutions to this 4565 problem, which require multiple passes over a tree structure, the 4566 method described here operates in one bottom-up pass, during which 4567 a directed acyclic graph is produced. The correctness of this 4568 approach is demonstrated by a brief formal argument. 4569 }, 4570 comment = { 4571 See also \cite{D:overload}. 4572 } 4573 } 4574 4575 @techreport{OpenMP, 4576 keywords = {concurrency, openmp, spmd}, 4577 contributer = {pabuhr@plg}, 4578 author = {OpenMP Architecture Review Board}, 4579 title = {OpenMP Application Program Interface, Version 4.0}, 4580 month = jul, 4581 year = 2013, 4582 note = {\href{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}{\textsf{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}}}, 4583 } 4584 4585 @book{Deitel04, 4586 keywords = {concurrency, operating systems}, 4587 contributer = {pabuhr@plg}, 4588 author = {Harvey M. Deitel and Paul J. Deitel and David R. Choffnes}, 4589 title = {Operating Systems}, 4590 publisher = {Pearson Prentice-Hall}, 4591 year = 2004, 4592 edition = {third}, 4593 } 4594 4595 @book{Stalling98, 4596 keywords = {concurrency, operating systems}, 4597 contributer = {pabuhr@plg}, 4598 author = {William Stallings}, 4599 title = {Operating Systems: Internals and Design Principles}, 4600 publisher = {Prentice-Hall}, 4601 year = 1998, 4602 edition = {third}, 4603 } 4604 4605 @book{Stalling01, 4606 keywords = {concurrency, operating systems}, 4607 contributer = {pabuhr@plg}, 4608 author = {William Stallings}, 4609 title = {Operating Systems: Internals and Design Principles}, 4610 publisher = {Prentice-Hall}, 4611 year = 2001, 4612 edition = {fourth}, 4613 } 4614 4615 @book{Silberschatz91, 4616 keywords = {concurrency, operating systems}, 4617 contributer = {pabuhr@plg}, 4618 author = {Abraham Silberschatz and James L. Peterson and Peter Galvin}, 4619 title = {Operating System Concepts}, 4620 publisher = {Addision-Wesley}, 4621 year = 1991, 4622 edition = {third}, 4623 } 4624 4625 @book{Tanenbaum87, 4626 keywords = {concurrency, operating systems}, 4627 contributer = {pabuhr@plg}, 4628 author = {Andrew S. Tanenbaum}, 4629 title = {Operating Systems : Design and Implementation}, 4630 publisher = {Prentice-Hall}, 4631 series = {Software Series}, 4632 year = 1987, 4633 } 4634 4635 @book{Hansen73, 4636 keywords = {monitors}, 4637 contributer = {pabuhr@plg}, 4638 author = {Per {Brinch Hansen}}, 4639 title = {Operating System Principles}, 4640 publisher = {Prentice-Hall}, 4641 year = 1973, 4642 } 4643 4644 @book{Bic03, 4645 keywords = {concurrency, operating systems}, 4646 contributer = {pabuhr@plg}, 4647 author = {Lubomir F. Bic and Alan C. Shaw}, 4648 title = {Operating System Principles}, 4649 publisher = {Prentice-Hall}, 4650 year = 2003, 4651 } 4652 4653 @techreport{milner88, 4654 keywords = {}, 4655 contributer = {gjditchfield@plg}, 4656 author = {Robin Milner}, 4657 title = {Operational and Algebraic Semantics of Concurrent Processes}, 4658 institution = {Laboratory for Foundations of Computer Science}, 4659 year = 1988, 4660 address = {Department of Computer Science, University of Edinburgh, Edinburgh EH9 3JZ}, 4661 month = feb, 4662 number = {ECS-LFCS-88-46} 4663 } 4664 4665 @article{Ford82, 4666 keywords = {}, 4667 contributer = {pabuhr@plg}, 4668 author = {G. Ford and B. Hansche}, 4669 title = {Optional, Repeatable, and Varying Type Parameters}, 4670 journal = sigplan, 4671 volume = 17, 4672 number = 2, 4673 month = feb, 4674 year = 1982, 4675 pages = {41-48}, 4676 } 4677 4678 @manual{pli, 4679 keywords = {PL/I}, 4680 contributer = {gjditchfield@plg}, 4681 key = {IBM}, 4682 title = {{OS} and {DOS} {PL/I} Reference Manual}, 4683 organization= {International Business Machines}, 4684 edition = {first}, 4685 month = sep, 4686 year = 1981, 4687 note = {Manual GC26-3977-0}, 4688 } 4689 4690 @techreport{D:overload, 4691 keywords = {overload resolution, compilation}, 4692 contributer = {gjditchfield@plg}, 4693 author = {M. Dausmann et. al.}, 4694 title = {Overloading in {Ada}}, 4695 institution = {Universitat Karlsruhe}, 4696 year = 1979, 4697 number = {23/79}, 4698 comment = { 4699 Probably the earliest description of the two-pass (bottom-up, 4700 top-down) overload resolution algorithm. See also 4701 \cite{PW:overload,WS:overload,PDM:overload,Cor:overload,Bak:overload}. 4702 } 4703 } 4704 4705 @article{EB87, 4706 keywords = {packages, private types, assignment, equality}, 4707 contributer = {gjditchfield@plg}, 4708 author = {J. Dana Eckart and Richard J. LeBlanc}, 4709 title = {Overloading in the {Ada} Language: Is it too restrictive?}, 4710 journal = {Computer Languages}, 4711 year = 1987, 4712 volume = 12, number = {3/4}, pages = {163-172}, 4713 abstract = { 4714 Packages in the Ada language provide a mechanism for extending the 4715 language through the development of additional data types. Such 4716 types can be better integrated into the language using operator 4717 overloading; however, key limitations prevent new types from being 4718 transparently integrated into the language. Allowing function 4719 names to overload private type names would give a cleaner and 4720 clearer mechanism for building values of these types. Furthermore, 4721 by allowing redefinitions of ``:='' and by making it easier to 4722 overload ``='' for private types, Ada coud be transformed into a 4723 more expressive language. 4724 } 4725 } 4726 4727 @article{PW:overload, 4728 keywords = {compilation}, 4729 contributer = {gjditchfield@plg}, 4730 author = {Guido Persch and Georg Winterstein and Manfred Dausman and Sophia Drossopoulou}, 4731 title = {Overloading in Preliminary {Ada}}, 4732 journal = sigplan, 4733 year = 1980, 4734 month = nov, volume = 15, number = 11, pages = {47-56}, 4735 note = {Proceedings of the ACM-SIGPLAN Symposium on the {Ada} Programming 4736 Language}, 4737 comment = { 4738 The two-pass (bottom-up, then top-down) algorithm, with a proof 4739 that two passes suffice. See also \cite{D:overload}. 4740 } 4741 } 4742 4743 @article{SR, 4744 keywords = {concurrency, messages, rendezvous}, 4745 contributer = {pabuhr@plg}, 4746 author = {Gregory R. Andrews and Ronald A. Olsson and Michael Coffin and 4747 Irving Elshoff and Kelvin Nilsen and Titus Purdin and Gregg Townsend}, 4748 title = {An Overview of the {SR} Language and Implementation}, 4749 journal = toplas, 4750 month = jan, 4751 year = 1988, 4752 volume = 10, 4753 number = 1, 4754 pages = {51-86}, 4755 } 4756 4757 % P 4758 4759 @article{Andrews91, 4760 keywords = {general concurrency}, 4761 contributer = {pabuhr@plg}, 4762 author = {Gregory R. Andrews}, 4763 title = {Paradigms for Process Interaction in Distributed Programs}, 4764 journal = acmcs, 4765 volume = 23, 4766 number = 1, 4767 month = mar, 4768 year = 1991, 4769 pages = {49-90}, 4770 } 4771 4772 @book{PPC++, 4773 keywords = {concurrency, parallel, distributed, C++}, 4774 contributer = {pabuhr@plg}, 4775 editor = {Gregory V. Wilson and Paul Lu}, 4776 title = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4777 publisher = {MIT Press}, 4778 series = {Scientific and Engineering Computation Series}, 4779 year = 1996, 4780 pages = {1-42}, 4781 } 4782 4783 @incollection{Stroustrup96, 4784 keywords = {concurrency, C++}, 4785 contributer = {pabuhr@plg}, 4786 author = {Bjarne Stroustrup}, 4787 title = {A Perspective on Concurrency in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4788 editor = {Gregory V. Wilson and Paul Lu}, 4789 booktitle = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4790 publisher = {MIT Press}, 4791 series = {Scientific and Engineering Computation Series}, 4792 year = 1996, 4793 pages = {xxvi-xxvii}, 4794 } 4795 4796 @incollection{Yang96b, 4797 keywords = {concurrency, C++}, 4798 contributer = {pabuhr@plg}, 4799 author = {Shelby X. Yang and Dennis Gannon and Peter Beckman and Jacob Gotwals and Neelakantan Sundaresan}, 4800 editor = {Gregory V. Wilson and Paul Lu}, 4801 title = {p{C}++}, 4802 booktitle = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4803 publisher = {MIT Press}, 4804 address = {Cambridge, MA, USA}, 4805 series = {Scientific and Engineering Computation Series}, 4806 pages = {507-546}, 4807 year = 1996, 4808 } 4809 4810 @article{goguen84, 4811 keywords = {}, 4812 contributer = {gjditchfield@plg}, 4813 author = {Goseph A. Goguen}, 4814 title = {Parameterized Programming}, 4815 journal = ieeese, 4816 year = 1984, 4817 month = sep, volume = "SE-10", number = 5, pages = {528-543}, 4818 abstract = { 4819 Parameterized programming is a powerful technique for the reliable 4820 reuse of software. In this technique, modules are parameterized 4821 over very general interfaces that describe what properties of an 4822 environment are required for the module to work correctly. 4823 Reusability is enhanced by the flexibility of the parameterization 4824 mechanism proposed here. Reliability is further enhanced by 4825 permitting interface requirements to include more than purely 4826 syntactic information. This paper introduces three new ideas that 4827 seem especially useful in supporting parameterized programming: 1) 4828 {\em theories}, which declare global properties of program modules 4829 and interfaces; 2) {\em views}, which connect theories with program 4830 modules in an elegant way; and 3) {\em module expressions}, a kind 4831 of general structured program transformation which produces new 4832 modules by modifying and combining existing modules. Although 4833 these ideas are illustrated with some simple examples in the OBJ 4834 programming language, they should also be taken as proposals for an 4835 Ada library system, for adding modules to Prolog, and as 4836 considerations for future language design efforts. OBJ is an 4837 ultra-high level programming language, based upon rewrite rules, 4838 that incorporates these ideas, and many others from modern 4839 programming methodology. 4840 } 4841 } 4842 4843 @inproceedings{c++:templates, 4844 author = {Bjarne Stroustrup}, 4845 contributer = {gjditchfield@plg}, 4846 title = {Parameterized Types for {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4847 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference}, 4848 organization= {USENIX Association}, 4849 year = 1988, pages = {1-18} 4850 } 4851 4852 @inproceedings{Boehm85, 4853 keywords = {second-order unification}, 4854 contributer = {gjditchfield@plg}, 4855 author = {Hans-J. Boehm}, 4856 title = {Partial Polymorphic Type Inference is Undecidable}, 4857 booktitle = {26th Annual Symposium on Foundations of Computer Science}, 4858 year = 1985, 4859 pages = {339-345}, 4860 organization= {IEEE Computer Society}, 4861 publisher = {IEEE Computer Society Press}, 4862 address = {1730 Massachusetts Avenue, N.W, Washington, D.C. 20036-1903}, 4863 summary = { 4864 Given a base typed lambda calculus with function types, type 4865 abstractions, and a recursive expression \(\mbox{fix } x:t.e\), 4866 then type inference for the partially typed language 4867 \begin{eqnarray} 4868 \lambda x:\tau.e &\Rightarrow& \lambda x.e \\ 4869 \mbox{fix } x:\tau.e &\Rightarrow& \mbox{fix } x.e \\ 4870 e \tau &\Rightarrow& e ? 4871 \end{eqnarray} 4872 is undecidable. 4873 } 4874 } 4875 4876 @book{Pascal, 4877 keywords = {Pascal}, 4878 contributer = {pabuhr@plg}, 4879 author = {Kathleen Jensen and Niklaus Wirth}, 4880 title = {{P}ascal User Manual and Report}, 4881 publisher = {Springer--Verlag}, 4882 year = 1985, 4883 edition = {third}, 4884 note = {Revised by Andrew B. Mickel and James F. Miner, ISO Pascal Standard} 4885 } 4886 4887 @book{Pascal:old, 4888 keywords = {Pascal}, 4889 contributer = {pabuhr@plg}, 4890 author = {Kathleen Jensen and Niklaus Wirth}, 4891 title = {{P}ascal User Manual and Report}, 4892 publisher = {Springer--Verlag}, 4893 year = 1975, 4894 edition = {first}, 4895 } 4896 4897 @article{Turba85, 4898 keywords = {Pascal, exception handling, inheritance}, 4899 contributer = {pabuhr@plg}, 4900 author = {Thomas N. Turba}, 4901 title = {The {P}ascal Exception Handling Proposal}, 4902 journal = sigplan, 4903 volume = 20, 4904 number = 8, 4905 month = aug, 4906 year = 1985, 4907 pages = {93-98}, 4908 } 4909 4910 @manual{Pascal/VS, 4911 keywords = {PL/I}, 4912 contributer = {pabuhr@plg}, 4913 key = {IBM}, 4914 title = {{P}ascal/{VS} Language Reference Manual}, 4915 organization= {International Business Machines}, 4916 edition = {first}, 4917 year = 1981, 4918 note = {Manual SH20-6168-1}, 4919 } 4920 4921 @article{Anderson90, 4922 keywords = {spin locks, back off, performance}, 4923 contributer = {pabuhr@plg}, 4924 author = {Thomas E. Anderson}, 4925 title = {The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors}, 4926 journal = ieeepds, 4927 month = jan, 4928 year = 1990, 4929 volume = 1, 4930 number = 1, 4931 pages = {6-16}, 4932 } 4933 4934 @article{poly, 4935 keywords = {Poly, Standard ML, Russell, persistence}, 4936 contributer = {gjditchfield@plg}, 4937 author = {David C. J. Matthews}, 4938 title = {Poly Manual}, 4939 journal = sigplan, 4940 month = sep, year = 1985, 4941 volume = 20, number = 9, pages = {52-76} 4942 } 4943 4944 @techreport{Atkinson87b, 4945 keywords = {naming, persistence}, 4946 contributer = {pabuhr@plg}, 4947 author = {M. P. Atkinson and R. Morrison}, 4948 title = {Polymorphic Names and Iterations}, 4949 institution = {Universities of Glasgow and St. Andrews, Scotland}, 4950 number = {PPRR-53-87}, 4951 month = nov, 4952 year = 1987, 4953 } 4954 4955 @book{Harland, 4956 keywords = {}, 4957 author = {David M. Harland}, 4958 title = {Polymorphic Programming Languages: Design and Implementation}, 4959 publisher = {Ellis Horwood}, 4960 year = 1984, 4961 series = {Computers and their Applications}, 4962 address = {Market Cross House, Cooper Street, Chichester, West Sussex, 4963 PO19 1EB, England}, 4964 summary = { 4965 The principles of Procedural Abstraction, Data Type Completeness, 4966 Declaration Correspondence, and Orthogonality are ruthlessly applied 4967 to the design of a polymorphic language. 4968 } 4969 } 4970 4971 @unpublished{poa, 4972 keywords = {Force N, type inference, reusability, transcendance}, 4973 contributer = {gjditchfield@plg}, 4974 author = {G. V. Cormack and A. K. Wright}, 4975 title = {Polymorphism, Overloading, and Abstraction}, 4976 note = {personal communication} 4977 } 4978 4979 @inproceedings{forceone:impl, 4980 keywords = {Parametric polymorphism, ForceOne}, 4981 contributer = {gjditchfield@plg}, 4982 author = {G. V. Cormack and A. K. Wright}, 4983 title = {Polymorphism in the Compiled Language {ForceOne}}, 4984 booktitle = {Proceedings of the 20th Hawaii International Conference on Systems Sciences}, 4985 month = jan, 4986 year = 1987, 4987 pages = {284-292}, 4988 } 4989 4990 @incollection{POOL-T, 4991 keywords = {objects, concurrency}, 4992 contributer = {pabuhr@plg}, 4993 author = {Pierre America}, 4994 title = {POOL-T: A Parallel Object-Oriented Language}, 4995 booktitle = {Object-Oriented Concurrent Programming}, 4996 publisher = {The MIT Press}, 4997 year = 1987, 4998 pages = {199-220}, 4999 editor = {Akinori Yonezawa and Mario Tokoro} 5000 } 5001 5002 @article{Hardgrave76, 5003 keywords = {positional, keyword, parameters, arguments}, 5004 contributer = {pabuhr@plg}, 5005 author = {W. T. Hardgrave}, 5006 title = {Positional versus Keyword Parameter Communication in Programming Languages}, 5007 journal = sigplan, 5008 volume = 11, 5009 number = 5, 5010 month = may, 5011 year = 1976, 5012 pages = {52-58}, 5013 } 5014 5015 @book{PowerPC, 5016 key = {PowerPC processor}, 5017 title = {Programming Environments Manual for 32-Bit Implementations of the PowerPC ArchitectureARM Architecture}, 5018 publisher = {Freescale Semiconductor}, 5019 volume = {MPCFPE32B}, 5020 edition = {Rev. 3}, 5021 month = 9, 5022 year = 2005, 5023 } 5024 5025 @article{Ada:preliminary, 5026 keywords = {Ada}, 5027 contributer = {pabuhr@plg}, 5028 author = {Jean D. Ichbiah and Bernd Krieg-Brueckner and Brian A. Wichmann 5029 and Henry F. Ledgard and Jean-Claude Heliard and Jean-Raymond Abrial 5030 and John G. P. Barnes and Olivier Roubine}, 5031 title = {Preliminary {Ada} Reference Manual}, 5032 journal = sigplan, 5033 volume = 14, 5034 number = 6, 5035 month = jun, 5036 year = 1979, 5037 note = {Part A}, 5038 } 5039 5040 @techreport{Forsythe, 5041 author = {John C. Reynolds}, 5042 title = {Preliminary Design of the Programming Language {Forsythe}}, 5043 institution = {Carnegie Mellon University}, 5044 number = {CMU-CS-88-159}, 5045 month = jun, 5046 year = 1988, 5047 } 5048 5049 @article{PRESTO, 5050 keywords = {concurrency, threads}, 5051 contributer = {dgharriss@plg}, 5052 author = {B. N. Bershad and E. D. Lazowska and H. M. Levy}, 5053 title = {{PRESTO}: A System for Object-oriented Parallel Programming}, 5054 journal = spe, 5055 volume = 18, 5056 number = 8, 5057 month = aug, 5058 year = 1988, 5059 pages = {713-732} 5060 } 5061 5062 @book{Ben-Ari82, 5063 keywords = {concurrency, parallel, programming languages}, 5064 contributer = {pabuhr@plg}, 5065 author = {Mordechai Ben-Ari}, 5066 title = {Principles of Concurrent Programming}, 5067 publisher = {Prentice-Hall International}, 5068 year = 1982, 5069 } 5070 5071 @book{Tennent81, 5072 author = {R. D. Tennent}, 5073 title = {Principles of Programming Languages}, 5074 publisher = {Prentice-Hall International}, 5075 year = 1981, 5076 series = {Series in Computer Science} 5077 } 5078 5079 @article{Lister77, 5080 keywords = {monitors, nested monitor calls}, 5081 contributer = {pabuhr@plg}, 5082 author = {Andrew Lister}, 5083 title = {The Problem of Nested Monitor Calls}, 5084 journal = osr, 5085 volume = 11, 5086 number = 3, 5087 month = jul, 5088 year = 1977, 5089 pages = {5-7}, 5090 } 5091 5092 @article{psa:persistence, 5093 keywords = {persistence, first-class procedures, closure, PS-Algol, 5094 Abstract Data Types}, 5095 contributer = {gjditchfield@plg}, 5096 author = {Malcolm P. Atkinson and Ronald Morrison}, 5097 title = {Procedures as Persistent Data Objects}, 5098 journal = toplas, 5099 volume = {7}, number = {4}, 5100 pages = {539-559}, 5101 month = oct, year = 1985, 5102 comment = { 5103 PS-Algol has ``structures'', accessible only through ``pntrs''. 5104 Pntrs can refer to any type of structure. Field references involve 5105 a run-time check. This, plus first-class procedures, can simulate 5106 abstract data types. Procedure variables operating on pntrs 5107 simulate ADT operations. A block defines a structure to implement 5108 the ADT, and assigns procedures to the variables. Functions 5109 returning structures containing procedures simulate multiple 5110 implementations and parameterized ADTs. 5111 5112 An outer procedure that returns a procedure that contains 5113 (non-local) references to the outer procedure's parameters 5114 implements partial evaluation. 5115 5116 Modules can be simulated like ADT's. The module itself is a 5117 structure instance that is placed in persistent storage, and the 5118 module is imported by fetching it from the persistent store. 5119 Multiple instances of modules are easy. Installation of new 5120 versions can be done by replacing the version in the database. 5121 } 5122 } 5123 5124 @article{Procol89, 5125 keywords = {active objects, object-oriented languages, 5126 object-based languages, explicit per-object protocol}, 5127 contributer = {akgoel@plg}, 5128 author = {Jan van den Bos and Chris Laffra}, 5129 title = {PROCOL: A Parallel Object Language with Protocols}, 5130 journal = sigplan, 5131 volume = 24, 5132 number = 10, 5133 month = oct, 5134 year = 1989, 5135 pages = {95-102}, 5136 note = {Proceedings of the OOPSLA'89 Conference, Oct. 1--6, 1989, New Orleans, Lousiana}, 5137 abstract = {}, 5138 } 5139 5140 @book{Butenhof97, 5141 keywords = {PThreads, concurrency}, 5142 contributer = {pabuhr@plg}, 5143 author = {David R. Butenhof}, 5144 title = {Programming with {POSIX} Threads}, 5145 publisher = {Addison-Wesley}, 5146 series = {Professional Computing}, 5147 year = 1997, 5148 } 5149 5150 @book{SETL, 5151 keywords = {SETL}, 5152 contributer = {pabuhr@plg}, 5153 author = {J. T. Schwartz and R. B. K. Dewar and E. Dubinsky and E. Schonberg}, 5154 title = {Programming with Sets: An Introduction to {SETL}}, 5155 publisher = {Springer-Verlag}, 5156 year = 1986, 5157 } 5158 5159 @book{Genuys68, 5160 keywords = {contains Dijkstra's Cooperating Sequential Processes}, 5161 contributer = {pabuhr@plg}, 5162 editor = {F. Genuys}, 5163 title = {Programming Languages}, 5164 publisher = {Academic Press}, 5165 address = {London, New York}, 5166 year = 1968, 5167 note = {NATO Advanced Study Institute, Villard-de-Lans, 1966} 5168 } 5169 5170 @manual{ANSI99:C, 5171 keywords = {ANSI C 99}, 5172 contributer = {pabuhr@plg}, 5173 title = {Programming Languages -- {C}}, 5174 organization= {International Standard ISO/IEC 9899:1999 (E)}, 5175 publisher = {American National Standards Institute}, 5176 address = {www.ansi.org}, 5177 year = 1999, 5178 } 5179 5180 @manual{ANSI98:C++, 5181 keywords = {ANSI C++ 98}, 5182 contributer = {pabuhr@plg}, 5183 key = {C++98}, 5184 title = {Programming Languages -- {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 5185 organization= {International Standard ISO/IEC 14882:1998 (E)}, 5186 publisher = {American National Standards Institute}, 5187 address = {www.ansi.org}, 5188 year = 1998, 5189 } 5190 5191 @manual{ANSI14:C++, 5192 keywords = {ISO/IEC C++ 14}, 5193 contributer = {pabuhr@plg}, 5194 key = {C++14}, 5195 title = {Programming Languages -- {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 5196 edition = {fourth}, 5197 organization= {International Standard ISO/IEC 14882:2014 (E)}, 5198 publisher = {International Standard Organization}, 5199 address = {http://www.iso.org}, 5200 year = 2014, 5201 } 5202 5203 @manual{MS:VisualC++, 5204 keywords = {Microsoft Visual C++}, 5205 contributer = {pabuhr@plg}, 5206 title = {Microsoft Visual {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} .NET Language Reference}, 5207 organization= {Microsoft Corporation}, 5208 year = 2002, 5209 note = {Microsoft Press, Redmond, Washington, U.S.A.}, 5210 } 5211 5212 @article{HasselBring00, 5213 keywords = {concurrency, prototyping}, 5214 contributer = {pabuhr@plg}, 5215 author = {Wilhelm Hasselbring}, 5216 title = {Programming Languages and Systems for Prototyping Concurrent Applications}, 5217 journal = acmcs, 5218 volume = 32, 5219 number = 1, 5220 month = mar, 5221 year = 2000, 5222 pages = {43-79}, 5223 } 5224 5225 @article{LLgen, 5226 keywords = {ll(1), parser generator, separate compilation}, 5227 contributer = {gjditchfield@plg}, 5228 author = {Dick Grune and Ceriel J. J. Jacobs}, 5229 title = {A Programmer-friendly LL(1) Parser Generator}, 5230 journal = spe, 5231 month = jan, year = 1988, 5232 volume = 18, number = 1, pages = {29-33}, 5233 comment = { 5234 LLgen generates C-language recursive-descent parsers. The input 5235 contains procedure-like rules with alternation and repetition 5236 constructs on the right, and (typed) parameters on the left. 5237 C actions are specified between items in the right side. 5238 Alternation and repetition (reduce and shift) conflicts can be 5239 resolved statically or at run time. 5240 5241 A grammar can be specified in several files. All files must be 5242 submitted to LLgen at once, but if the C file generated is no 5243 different from the old version, then the old version is not 5244 replaced and hence need not be recompiled, which saves lots of 5245 time. 5246 5247 When an incorrect token is found, the automatic error recovery 5248 algorithm discards tokens until an ``acceptable'' token is found; 5249 if the acceptable token is not correct, a correct one is inserted. 5250 } 5251 } 5252 5253 @techreport{russell, 5254 keywords = {Russell}, 5255 contributer = {gjditchfield@plg}, 5256 author = {H. Boehm and A. Demers and J. Donahue}, 5257 title = {A Programmer's Introduction to Russell}, 5258 institution = {Rice University}, 5259 year = 1985, 5260 number = {85-16} 5261 } 5262 5263 @techreport{PDM89, 5264 keywords = {existential types, universal types}, 5265 contributer = {gjditchfield@plg}, 5266 author = {Benjamin Pierce and Scott Dietzen and Spiro Michaylov}, 5267 title = {Programming in Higher-Order Typed Lambda Calculi}, 5268 institution = {School of Computer Science, Carnegie Mellon University}, 5269 year = 1989, 5270 address = {Pittsburg, PA 15213-3890}, 5271 month = mar, number = {CMU-CS-89-111}, 5272 abstract = { 5273 This tutorial presents a hierarchy of increasingly powerful 5274 languages, beginning with Church's simply typed 5275 \(\lambda\)-calculus (\(F_1\)) and the second-order polymorphic 5276 \(\lambda\)-calculus of Girard and Reynolds, and culminating in a 5277 fragment of Girard's \(\omega\)-order polymorphic 5278 \(\lambda\)-calculus (\(F_\omega\)). Our focus throughout is on 5279 the unusual style of programming that arises in these languages, 5280 where all functions are total and the primary control construct is 5281 iteration rather than general recursion. 5282 } 5283 } 5284 5285 @book{Modula-2, 5286 keywords = {modules, coroutines}, 5287 contributer = {pabuhr}, 5288 author = {Niklaus Wirth}, 5289 title = {Programming in Modula-2}, 5290 publisher = {Springer-Verlag}, 5291 year = 1988, 5292 edition = {fourth}, 5293 series = {Texts and Monographs in Computer Science}, 5294 } 5295 5296 @manual{Ada, 5297 keywords = {Ada, packages, tasks, exceptions}, 5298 contributer = {pabuhr@plg}, 5299 title = {The Programming Language {Ada}: Reference Manual}, 5300 organization= {United States Department of Defense}, 5301 edition = {{ANSI/MIL-STD-1815A-1983}}, 5302 month = feb, 5303 year = 1983, 5304 note = {Published by Springer-Verlag} 5305 } 5306 5307 @manual{ada:old, 5308 keywords = {Ada, packages, tasks, exceptions}, 5309 contributer = {gjditchfield@plg}, 5310 title = {The Programming Language {Ada}: Reference Manual}, 5311 organization= {United States Department of Defense}, 5312 publisher = {Springer-Verlag}, 5313 year = 1981 5314 } 5315 5316 @book{Ghezzi, 5317 keywords = {}, 5318 author = {Carlo Ghezzi and Mehdi Jazayeri}, 5319 title = {Programming Language Concepts}, 5320 publisher = {Wiley}, 5321 year = 1982 5322 } 5323 5324 @article{ConcurrentPascal, 5325 keywords = {Concurrent Pascal}, 5326 contributer = {pabuhr@plg}, 5327 author = {Per {Brinch Hansen}}, 5328 title = {The Programming Language Concurrent Pascal}, 5329 journal = ieeese, 5330 volume = 2, 5331 month = jun, 5332 year = 1975, 5333 pages = {199-206} 5334 } 5335 5336 @phdthesis{Buhr85:thesis, 5337 keywords = {}, 5338 contributer = {pabuhr@plg}, 5339 author = {P. A. Buhr}, 5340 title = {A Programming System}, 5341 school = {University of Manitoba}, 5342 year = {1985} 5343 } 5344 5345 @techreport{pierce91, 5346 keywords = {typed lambda calculus}, 5347 contributer = {gjditchfield@plg}, 5348 author = {Benjamin C. Pierce}, 5349 title = {Programming with Intersection Types, Union Types, and Polymorphism}, 5350 institution = {Carnegie Mellon University}, 5351 year = 1991, 5352 month = feb, number = "CMU-CS-91-106", 5353 annote = { 5354 Discusses a typed lambda calculus with 5355 \begin{itemize} 5356 \item 5357 Intersection types \(\tau = \tau_1\wedge\tau_2\) with \(\tau \le 5358 \tau_i\) for all \(i\). 5359 \item 5360 Union types \(\tau = \tau_1\vee\tau_2\) with \(\tau_i \le \tau\), 5361 and with implicit coercions from \(tau_i\) to \(\tau\). Only 5362 operations valid for both element types can be applied to the 5363 union; there are no projections. Union types are to variant 5364 records as set union is to disjoint set union. 5365 \item 5366 Function types and universal quantification, with subtyping rules. 5367 When functions and arguments intersections, the result of 5368 application is the intersection of all valid combinations. 5369 \item 5370 Distribution rules for combinations of types. 5371 \item 5372 "Union elimination": "case \(x = e\) of \(e'\)", where \(e\) is a 5373 union, has type \(\tau\) if \(e'\) has that type with \(x\) having 5374 every element type of the union. 5375 \item 5376 "Finitary quantification": "for \(t\) in \(\tau_1,\ldots,\tau_n.e\)" 5377 typechecks \(e\) with \(t\) bound to each choice, and intersects 5378 the results. 5379 \end{itemize} 5380 5381 Examples include: type of "natural" numbers, treated as a union of 5382 "zero" and "positive" types; default parameters, faked by using an 5383 argument that is an intersection of a data type and a function 5384 taking an explicit argument. 5385 5386 Unions can be mostly faked, according to Mitchell: 5387 \[\tau_1\vee\tau_2 \equiv 5388 \forall\tau.(\tau_1\on\tau)\wedge(\tau_2\on\tau)\] 5389 } 5390 } 5391 5392 @article{promises, 5393 keywords = {futures, Argus, call streams, rpc}, 5394 contributer = {gjditchfield@plg}, 5395 author = {Barbara Liskov and Liuba Shrira}, 5396 title = {Promises: Linguistic Support for Efficient Asynchronous 5397 Procedure Calls in Distributed Systems}, 5398 journal = sigplan, 5399 year = 1988, 5400 month = jul, volume = 23, number = 7, pages = {260-267}, 5401 note = {Proceedings of the SIGPLAN '88 Conference on Programming Language 5402 Design and Implementation}, 5403 abstract = { 5404 This paper deals with the integration of an efficient asynchronous 5405 remote procedure call mechanism into a programming language. It 5406 describes a new data type called a {\em promise} that was designed 5407 to support asynchronous calls. Promises allow a caller to run in 5408 parallel with a call and to pick up the results of the call, 5409 including any exceptions it raises, in a convenient and type-safe 5410 manner. The paper also discusses efficient composition of 5411 sequences of asynchronous calls to different locations in a 5412 network. 5413 } 5414 } 5415 5416 @article{Cook89, 5417 keywords = {}, 5418 contributer = {gjditchfield@plg}, 5419 author = {W. R. Cook}, 5420 title = {A Proposal for Making {Eiffel} Type-safe}, 5421 journal = {The Computer Journal}, 5422 year = 1989, 5423 volume = 32, number = 4, pages = {305-311}, 5424 abstract = { 5425 5426 } 5427 } 5428 5429 @inproceedings{Foxall79, 5430 keywords = {}, 5431 contributer = {pabuhr@plg}, 5432 author = {D. G. Foxall and M. L. Joliat and R. F. Kamel and J. J. Miceli}, 5433 title = {{PROTEL}: A High Level Language for Telephony}, 5434 booktitle = {Proceedings 3rd International Computer Software and Applications Conference}, 5435 month = nov, 5436 year = 1979, 5437 pages = {193-197}, 5438 } 5439 5440 @techreport{PS-Algol, 5441 keywords = {algol, persistence}, 5442 contributer = {pabuhr@plg}, 5443 key = {PS-Algol}, 5444 title = {The {PS-Algol} Reference Manual, 4th Ed.}, 5445 author = {}, 5446 institution = {University of Glasgow and St. Andrews, Scotland}, 5447 number = {PPRR 12}, 5448 month = jun, 5449 year = 1987, 5450 } 5451 5452 @manual{Python, 5453 keywords = {Python}, 5454 contributer = {pabuhr}, 5455 title = {Python Reference Manual, Release 2.5}, 5456 author = {Guido van Rossum}, 5457 organization= {Python Software Foundation}, 5458 month = sep, 5459 year = 2006, 5460 note = {Fred L. Drake, Jr., editor}, 5461 } 5462 5463 % Q 5464 5465 @article{Grossman06, 5466 keywords = {Cyclone, existential types, polymorphism, type variables}, 5467 contributer = {a3moss@plg}, 5468 author = {Grossman, Dan}, 5469 title = {Quantified Types in an Imperative Language}, 5470 journal = toplas, 5471 issue_date = {May 2006}, 5472 volume = {28}, 5473 number = {3}, 5474 month = may, 5475 year = {2006}, 5476 issn = {0164-0925}, 5477 pages = {429--475}, 5478 numpages = {47}, 5479 url = {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/1133651.1133653}, 5480 doi = {10.1145/1133651.1133653}, 5481 acmid = {1133653}, 5482 publisher = {ACM}, 5483 address = {New York, NY, USA}, 5484 } 5485 5486 @article{Hoare61, 5487 keywords = {quick sort}, 5488 contributer = {pabuhr@plg}, 5489 author = {C. A. R. Hoare}, 5490 title = {Algorithms 63/64: Partition/Quicksort}, 5491 journal = cacm, 5492 volume = 4, 5493 number = 7, 5494 month = jul, 5495 year = 1961, 5496 pages = {321}, 5497 } 5498 5499 % R 5500 5501 @article{Ada:rationale:preliminary, 5502 keywords = {Ada}, 5503 contributer = {pabuhr@plg}, 5504 author = {J. D. Ichbiah and J. C. Heliard and O. Roubine and 5505 J. G. P. Barnes and B. Krieg-Brueckner and B. A. Wichmann}, 5506 title = {Rationale for the Design of the {ADA} Programming Language}, 5507 journal = sigplan, 5508 volume = 14, 5509 number = 6, 5510 month = jun, 5511 year = 1979, 5512 note = {Part B}, 5513 } 5514 5515 @book{Ada:rationale, 5516 keywords = {Ada}, 5517 contributer = {pabuhr@plg}, 5518 author = {Jean D. Ichbiah and John G. P. Barnes and Robert J. Firth and Mike Woodger}, 5519 title = {Rationale for the Design of the {ADA} Programming Language}, 5520 publisher = {Under Secretary of Defense, Research and Engineering}, 5521 year = 1986, 5522 address = {Ada Joint Program Office, OUSDRE(R\&AT), The Pentagon, Washington, D. C., 20301, U.S.A.}, 5523 } 5524 5525 @manual{Ada95, 5526 keywords = {Ada}, 5527 contributer = {pabuhr@plg}, 5528 title = {{A}da Reference Manual}, 5529 edition = {International Standard {ISO}/{IEC} {8652:1995(E)} with {COR.1:2000}}, 5530 organization = {Intermetrics, Inc.}, 5531 month = dec, 5532 year = 1995, 5533 note = {Language and Standards Libraries} 5534 } 5535 5536 @manual{Ada12, 5537 keywords = {Ada}, 5538 contributer = {pabuhr@plg}, 5539 title = {Programming languages -- {Ada}}, 5540 edition = {third}, 5541 organization= {International Standard ISO/IEC 1989:2014}, 5542 publisher = {International Standard Organization}, 5543 address = {http://www.iso.org}, 5544 year = 2012, 5545 } 5546 5547 @manual{Ada95:annotated, 5548 keywords = {Ada}, 5549 contributer = {pabuhr@plg}, 5550 title = {Annotated {A}da Reference Manual}, 5551 edition = {International Standard {ISO}/{IEC} {8652:1995(E)} with {COR.1:2000}}, 5552 organization = {Intermetrics, Inc.}, 5553 month = dec, 5554 year = 1995, 5555 note = {Language and Standards Libraries} 5556 } 5557 5558 @book{JavaRT00, 5559 keywords = {real time, draft}, 5560 contributer = {pabuhr@plg}, 5561 author = {Greg Bollella and Ben Brosgol and Peter Dibble and Steve Furr and James Gosling and David Hardin and Mark Turnbull}, 5562 title = {The Real-Time Specification for {J}ava}, 5563 series = {The Real-Time for Java Expert Group, {\small\textsf{http://\-www.rtj.org}}}, 5564 publisher = {Addison-Wesley}, 5565 year = 2000, 5566 } 5567 5568 @manual{JavaRT99, 5569 organization= {Real Time for Java Experts Group}, 5570 address = {{\small\textsf{http://\-www.rtj.org}}}, 5571 month = sep, 5572 year = 1999, 5573 } 5574 5575 @article{Robinson48, 5576 keywords = {recursion, Ackermann function}, 5577 contributer = {pabuhr@plg}, 5578 author = {Raphael Mitchel Robinson}, 5579 title = {Recursion and Double Recursion}, 5580 publisher = {American Mathematical Society}, 5581 journal = {Bulletin of the American Mathematical Society}, 5582 volume = 54, 5583 pages = {987-993}, 5584 year = 1948, 5585 } 5586 5587 @article{Dijkstra:red, 5588 keywords = {ada}, 5589 contributer = {gjditchfield@plg}, 5590 author = {Edsger W. Dijkstra}, 5591 title = {On the RED Language submitted to the DoD}, 5592 journal = sigplan, 5593 year = 1978, 5594 month = oct, 5595 volume = 13, 5596 number = 10, 5597 pages = {27-32}, 5598 } 5599 5600 @article{RemoteRendezvous, 5601 keywords = {rendezvous, concurrency}, 5602 contributer = {pabuhr@plg}, 5603 author = {N. D. Gammage and R. F. Kamel and L. M. Casey}, 5604 title = {Remote Rendezvous}, 5605 journal = spe, 5606 month = oct, 5607 year = 1987, 5608 volume = 17, 5609 number = 10, 5610 pages = {741-755} 5611 } 5612 5613 @article{Euclid, 5614 keywords = {Euclid}, 5615 contributer = {pabuhr@plg}, 5616 author = {B. W. Lampson and J. J. Horning and R. L. London and J. G. Mitchell and G. L. Popek}, 5617 title = {Report on the Programming Language Euclid}, 5618 journal = sigplan, 5619 volume = 12, 5620 number = 2, 5621 month = feb, 5622 year = 1977, 5623 pages = {1-79} 5624 } 5625 5626 @techreport{LOGLAN88, 5627 keywords = {LOGLAN}, 5628 contributer = {pabuhr@plg}, 5629 author = {Boleslaw Ciesielski and Antoni Kreczmar and Marek Lao and Andrzej Litwiniuk and Teresa Przytycka and Andrzej Salwicki and Jolanta Warpechowska and Marek Warpechowski and Andrzej Szalas and Danuta Szczepanska--Wasersztrum}, 5630 title = {Report on the Programming Language LOGLAN'88}, 5631 institution = {Institute of Informatics, University of Warsaw}, 5632 address = {Pkin 8th Floor, 00-901 Warsaw, Poland}, 5633 number = {}, 5634 month = dec, 5635 year = 1988, 5636 } 5637 5638 @article{FH91, 5639 keywords = {lcc}, 5640 contributer = {gjditchfield@plg}, 5641 author = {Christopher W. Fraser and David R. Hanson}, 5642 title = {A Retargetable Compiler for {ANSI} {C}}, 5643 journal = sigplan, 5644 year = 1991, 5645 month = oct, volume = 26, number = 10, pages = {29-43}, 5646 abstract = { 5647 {\tt lcc} is a new retargetable compiler for ANSI C. Versions for 5648 the VAX, Motorola 68020, SPARC, and MIPS are in production use at 5649 Princeton University and at AT\&T Bell Laboratories. With a few 5650 exceptions, little about {\tt lcc} is unusual---it integrates 5651 several well engineered, existing techniques---but it is smaller 5652 and faster than most other C compilers, and it generates code of 5653 comparable quality. {\tt lcc}'s target-independent front end 5654 performs a few simple, but effective, optimizations that contribute 5655 to good code; examples include simulating register declarations and 5656 partitioning switch statements into dense tables. It also 5657 implements target-independent function tracing and expression-level 5658 profiling. 5659 } 5660 } 5661 5662 @article{Algol68revised, 5663 keywords = {}, 5664 contributer = {gjditchfield@plg}, 5665 author = {A. van Wijngaarden and B. J. Mailloux and J. E. L. Peck and 5666 C. H. A. Koster and M. Sintzoff and C. H. Lindsey and L. G. L. T. 5667 Meertens and R. G. Fisher}, 5668 title = {Revised Report on the Algorithmic Language {ALGOL} 68}, 5669 journal = sigplan, 5670 year = 1977, 5671 month = may, 5672 volume = 12, 5673 number = 5, 5674 pages = {1-70} 5675 } 5676 5677 @article{scheme, 5678 keywords = {}, 5679 contributer = {gjditchfield@plg}, 5680 author = {Jonathan Rees and William Clinger}, 5681 title = {Revised$^3$ Report on the Algorithmic Language {S}cheme}, 5682 journal = sigplan, 5683 year = 1986, 5684 month = dec, 5685 volume = 21, 5686 number = 12, 5687 pages = {37-79}, 5688 } 5689 5690 @article{scheme5, 5691 keywords = {scheme}, 5692 contributer = {pabuhr@plg}, 5693 author = {H. Abelson and Adams, IV, N. I. and D. H. Bartley and G. Brooks and R. K. Dybvig and D. P. Friedman and 5694 R. Halstead and C. Hanson and C. T. Haynes and E. Kohlbecker and D. Oxley and K. M. Pitman and G. J. Rozas and 5695 G. L. Steele Jr. and G. J. Sussman and M. Wand and \emph{Ed. by} Richard Kelsey and William Clinger and Jonathan Rees}, 5696 title = {Revised$^5$ Report on the Algorithmic Language {S}cheme}, 5697 journal = sigplan, 5698 year = 1998, 5699 month = sep, 5700 volume = 33, 5701 number = 9, 5702 pages = {26-76}, 5703 } 5704 5705 @manual{Rust, 5706 keywords = {Rust programming language}, 5707 contributer = {pabuhr@plg}, 5708 title = {The {Rust} Programming Language}, 5709 organization= {The Rust Project Developers}, 5710 year = 2015, 5711 note = {\href{https://doc.rust-lang.org/reference.html}{https://\-doc.rust-lang.org/\-reference.html}}, 5712 } 5713 5714 % S 5715 5716 @inproceedings{Michael04, 5717 keywords = {lock free, dynamic memory allocation}, 5718 contributer = {pabuhr@plg}, 5719 author = {Maged M. Michael}, 5720 title = {Scalable Lock-free Dynamic Memory Allocation}, 5721 booktitle = {PLDI '04: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation}, 5722 location = {Washington DC, USA}, 5723 publisher = {ACM}, 5724 address = {New York, NY, USA}, 5725 volume = 39, 5726 year = 2004, 5727 month = jun, 5728 pages = {35-46}, 5729 } 5730 5731 @article{Anderson92, 5732 keywords = {light-weight tasks}, 5733 contributer = {pabuhr@plg}, 5734 author = {Thomas E. Anderson and Brian N. Bershad and Edward D. Lazowska and Henry M. Levy}, 5735 title = {Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism}, 5736 journal = tocs, 5737 volume = 10, 5738 number = 1, 5739 month = feb, 5740 year = 1992, 5741 pages = {53-79}, 5742 } 5743 5744 @manual{SELF, 5745 keywords = {programming language, obect-oriented, polymorphism}, 5746 contributer = {pabuhr@plg}, 5747 author = {Ole Agesen and Lars Bak and Craig Chambers and Bay-Wei Chang and Urs H{\o}lzle 5748 and John H. Maloney and Randall B. Smith and David Ungar and Mario Wolczko}, 5749 title = {The {SELF} 3.0 Programmer's Reference Manual}, 5750 organization= {Sun Microsystems, Inc., and Stanford University}, 5751 year = 1993, 5752 } 5753 5754 @inproceedings{Cardelli84, 5755 keywords = {subtypes, recursive types, records, variants, object oriented}, 5756 contributer = {gjditchfield@plg}, 5757 author = {Luca Cardelli}, 5758 title = {A Semantics of Multiple Inheritance}, 5759 booktitle = {Semantics of Data Types}, 5760 year = 1984, 5761 pages = {51-67}, 5762 editor = {G. Kahn and D. B. MacQueen and G. D. Plotkin}, 5763 publisher = {Springer-Verlag}, 5764 note = {Lecture Notes in Computer Science v. 173}, 5765 } 5766 5767 @techreport{Adve95, 5768 keywords = {shared memory, consistency models}, 5769 contributer = {pabuhr@plg}, 5770 author = {Sarita V. Adve and Kourosh Gharachorloo}, 5771 title = {Shared Memory Consistency Models: A Tutorial}, 5772 institution = {Western Research Laboratory}, 5773 address = {250 University Avenue, Palo Alto, California, 94301, U.S.A.}, 5774 number = {7}, 5775 month = sep, 5776 year = 1995, 5777 note = {\href{http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-7.pdf}{\textsf{http://www.hpl.hp.com/\-techreports/\-Compaq-DEC/\-WRL-95-7.pdf}}, Reprinted in \cite{Adve95reprint}.}, 5778 } 5779 5780 @article{Adve95reprint, 5781 keywords = {shared memory, consistency models}, 5782 contributer = {pabuhr@plg}, 5783 author = {Sarita V. Adve and Kourosh Gharachorloo}, 5784 journal = {Computer}, 5785 title = {Shared Memory Consistency Models: A Tutorial}, 5786 month = dec, 5787 year = 1996, 5788 volume = 29, 5789 number = 12, 5790 pages = {66-76}, 5791 } 5792 5793 @inproceedings{Howard76b, 5794 keywords = {monitors}, 5795 contributer = {pabuhr@plg}, 5796 author = {J. H. Howard}, 5797 title = {Signaling in Monitors}, 5798 booktitle = {Proceedings Second International Conference Software Engineering}, 5799 address = {San Francisco, U.S.A}, 5800 publisher = {IEEE Computer Society}, 5801 month = oct, 5802 year = 1976, 5803 pages = {47-52} 5804 } 5805 5806 @techreport{Schemenauer01, 5807 keywords = {Phthon, generator, coroutine}, 5808 contributer = {pabuhr@plg}, 5809 author = {Neil Schemenauer and Tim Peters and Magnus Lie Hetland}, 5810 title = {Simple Generators}, 5811 month = may, 5812 year = 2001, 5813 note = {{\small\textsf{http://www.python.org/peps/pep-0255.html}}}, 5814 } 5815 5816 @inproceedings{Michael96, 5817 keywords = {compare_and_swap, concurrent queue, lock-free, multiprogramming, non-blocking}, 5818 contributer = {pabuhr@plg}, 5819 author = {Maged M. Michael and Michael L. Scott}, 5820 title = {Simple, Fast, and Practical Non-blocking and Blocking Concurrent Queue Algorithms}, 5821 booktitle = {Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing}, 5822 series = {PODC'96}, 5823 year = 1996, 5824 location = {Philadelphia, Pennsylvania, USA}, 5825 pages = {267--275}, 5826 numpages = {9}, 5827 publisher = {ACM}, 5828 address = {New York, NY, USA}, 5829 } 5830 5831 @inproceedings{Dice10, 5832 keywords = {hardware, synchronization, transactional memory}, 5833 author = {Dave Dice and Yossi Lev and Virendra J. Marathe and Mark Moir and Dan Nussbaum and Marek Olszewski}, 5834 title = {Simplifying Concurrent Algorithms by Exploiting Hardware Transactional Memory}, 5835 booktitle = {Proceedings of the Twenty-second Annual ACM Symposium on Parallelism in Algorithms and Architectures}, 5836 series = {SPAA'10}, 5837 year = 2010, 5838 location = {Thira, Santorini, Greece}, 5839 pages = {325-334}, 5840 numpages = {10}, 5841 publisher = {ACM}, 5842 address = {New York, NY, USA}, 5843 } 5844 5845 @article{PDM:overload, 5846 keywords = {compilation}, 5847 contributer = {gjditchfield@plg}, 5848 author = {Tom Pennello and Frank DeRemer and Richard Meyers}, 5849 title = {A Simplified Operator Identification Scheme for {Ada}}, 5850 journal = sigplan, 5851 year = 1980, 5852 month = {July--August}, 5853 volume = 15, 5854 number = {7/8}, 5855 pages = {82-87}, 5856 comment = { 5857 The two-pass (bottom-up, top-down) overload resolution algorithm 5858 for Ada, with a proof that two passes suffice and a claim that two 5859 are necessary. See \cite{D:overload}. 5860 } 5861 } 5862 5863 @book{SimulaBegin, 5864 author = {Graham M. Birtwistle and Ole-Johan Dahl and Bj{\o}rn Myhrhaug and Kristen Nygaard}, 5865 title = {{SIMULA} begin}, 5866 publisher = {Studentlitteratur}, 5867 year = {1980}, 5868 address = {Lund, Sweden}, 5869 edition = {second}, 5870 } 5871 5872 @book{Simula67, 5873 author = "O-J Dahl and B. Myhrhaug and K. Nygaard", 5874 address = "Oslo Norway", 5875 month = oct, 5876 year = 1970, 5877 publisher = "Norwegian Computing Center", 5878 title = "Simula67 Common Base Language" 5879 } 5880 5881 @book{smalltalk, 5882 keywords = {Smalltalk, abstract class, protocol}, 5883 contributer = {gjditchfield@plg}, 5884 author = {A. Goldberg and D. Robson}, 5885 title = {Smalltalk-80: The Language and its Implementation}, 5886 publisher = {Addison-Wesley}, 5887 year = 1983 5888 } 5889 5890 @inproceedings{Edelson92, 5891 keywords = {persistence, pointers}, 5892 contributer = {pabuhr@plg}, 5893 author = {Daniel R. Edelson}, 5894 title = {Smart Pointers: They're Smart, but They're Not Pointers}, 5895 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Technical Conference Proceedings}, 5896 organization= {USENIX Association}, 5897 address = {Portland, Oregon, U.S.A.}, 5898 month = aug, 5899 year = 1992, 5900 pages = {1-19}, 5901 } 5902 5903 @book{SNOBOL, 5904 keywords = {SNOBOL4}, 5905 contributer = {pabuhr@plg}, 5906 author = {R. E. Griswold and J. F. Poage and I. P. Polonsky}, 5907 title = {The SNOBOL4 Programming Language}, 5908 edition = {second}, 5909 publisher = {Prentice-Hall}, 5910 year = 1971, 5911 } 5912 5913 @article{Sutter05b, 5914 keywords = {concurrency}, 5915 contributer = {pabuhr@plg}, 5916 author = {Herb Sutter and James Larus}, 5917 title = {Software and the Concurrency Revolution}, 5918 journal = Queue, 5919 year = 2005, 5920 month = sep, 5921 volume = 3, 5922 number = 7, 5923 pages = {54-62}, 5924 } 5925 5926 @inproceedings{raytheon, 5927 keywords = {cobol}, 5928 contributer = {gjditchfield@plg}, 5929 author = {Robert G. Lanergan and Charles A. Grasso}, 5930 title = {Software Engineering with Reusable Designs and Code}, 5931 booktitle = {Workshop on Reusability in Programming}, 5932 year = 1983, 5933 month = sep, 5934 pages = {224-234}, 5935 organization= {{ITT} Programming}, 5936 summary = { 5937 60\% of business application design and code are redundant. 5938 Three standard program plans are used. Reuse doubles productivity 5939 during development and greatly helps program comprehension during 5940 maintenance. 5941 } 5942 } 5943 5944 @article{Hecht86, 5945 keywords = {exception handling, robustness}, 5946 contributer = {pabuhr@plg}, 5947 author = {H. Hecht and M. Hecht}, 5948 title = {Software Reliability in the Systems Context}, 5949 journal = ieeese, 5950 year = 1986, 5951 volume = 12, 5952 number = 1, 5953 pages = {51-58}, 5954 } 5955 5956 @inproceedings{Herlihy03, 5957 author = {Maurice Herlihy and Victor Luchangco and Mark Moir and William N. {Scherer III}}, 5958 title = {Software Transactional Memory for Dynamic-sized Data Structures}, 5959 booktitle = {Proceedings of the Twenty-second Annual Symposium on Principles of Distributed Computing}, 5960 series = {PODC '03}, 5961 year = {2003}, 5962 location = {Boston, Massachusetts}, 5963 pages = {92-101}, 5964 numpages = {10}, 5965 publisher = {ACM}, 5966 address = {New York, NY, USA}, 5967 } 5968 5969 @article{Dijkstra65a, 5970 keywords = {N-thread software-solution mutual exclusion}, 5971 contributer = {pabuhr@plg}, 5972 author = {Edsger W. Dijkstra}, 5973 title = {Solution of a Problem in Concurrent Programming Control}, 5974 journal = cacm, 5975 volume = 8, 5976 number = 9, 5977 month = sep, 5978 year = 1965, 5979 pages = {569}, 5980 publisher = {ACM}, 5981 address = {New York, NY, USA}, 5982 } 5983 5984 @inproceedings{Chen05, 5985 keywords = {fixed-priority, preemption}, 5986 contributer = {pabuhr@plg}, 5987 author = {Jiongxiong Chen and Ashif Harji and Peter Buhr}, 5988 title = {Solution Space for Fixed-Priority with Preemption Threshold}, 5989 booktitle = {Proceedings of the 11th Real Time and Embedded Technology and Applications Symposium (RTAS'05)}, 5990 organization= {IEEE}, 5991 address = {San Francisco, CA, U.S.A}, 5992 month = mar, 5993 year = 2005, 5994 pages = {385-394} 5995 } 5996 5997 @inproceedings{Tiemann88, 5998 keywords = {wrappers}, 5999 contributer = {pabuhr@plg}, 6000 author = {Michael D. Tiemann}, 6001 title = {Solving the RPC problem in GNU {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 6002 booktitle = {Proceedings of the USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference}, 6003 organization= {USENIX Association}, 6004 address = {Denver, Colorado, U.S.A}, 6005 month = oct, 6006 year = 1988, 6007 pages = {343-361} 6008 } 6009 6010 @book{Campbell74, 6011 keywords = {path expressions}, 6012 contributer = {pabuhr@plg}, 6013 author = {R. H. Campbell and A. N. Habermann}, 6014 title = {The Specification of Process Synchronization by Path Expressions}, 6015 publisher = {Springer-Verlag}, 6016 year = 1974, 6017 volume = 16, 6018 pages = {89-102}, 6019 series = {Lecture Notes in Computer Science}, 6020 } 6021 6022 @article{Bentley85, 6023 keywords = {CSP, concurrency}, 6024 contributer = {pabuhr@plg}, 6025 author = {J. Bentley}, 6026 title = {A Spelling Checker}, 6027 journal = cacm, 6028 month = may, 6029 year = 1985, 6030 volume = 28, 6031 number = 5, 6032 pages = {456-462}, 6033 } 6034 6035 @manual{POSIX01, 6036 keywords = {POSIX, Standard}, 6037 contributer = {pabuhr@plg}, 6038 key = {POSIX}, 6039 title = {1003.1 Standard for Information Technology -- Portable Operating System Interface (POSIX), System Interface, Issue 6}, 6040 organization= {IEEE and The Open Group}, 6041 year = 2001, 6042 } 6043 6044 @manual{POSIX08, 6045 keywords = {POSIX, Standard}, 6046 contributer = {pabuhr@plg}, 6047 key = {POSIX}, 6048 title = {1003.1 Standard for Information Technology -- Portable Operating System Interface (POSIX), Base Specifications, Issue 7}, 6049 organization= {IEEE and The Open Group}, 6050 year = 2008, 6051 } 6052 6053 @inproceedings{ML:NJ, 6054 keywords = {continuations, ML}, 6055 contributer = {pabuhr@plg}, 6056 author = {A. Appel and D. MacQueen}, 6057 title = {A Standard {ML} Compiler}, 6058 booktitle = {Functional Programming Languages and Computer Architecture}, 6059 publisher = {Springer-Verlag}, 6060 series = {Lecture Notes in Computer Science}, 6061 volume = 274, 6062 year = 1987, 6063 pages = {301-324}, 6064 } 6065 6066 @techreport{MLreport, 6067 keywords = {ML, polymorphism}, 6068 contributer = {pabuhr@plg}, 6069 author = {R. Milner}, 6070 title = {The Standard {ML} Core Language}, 6071 institution = {}, 6072 number = {Polymorphism II.2}, 6073 month = oct, 6074 year = 1985 6075 } 6076 6077 @inproceedings{Ghelli, 6078 keywords = {}, 6079 contributer = {gjditchfield@plg}, 6080 author = {Giorgio Ghelli}, 6081 title = {A Static Type System for Message Passing}, 6082 crossref = "OOPSLA91", 6083 pages = {129-145}, 6084 summary = { 6085 A strong, statically checked type system for object oriented 6086 languages is defined by modelling methods as overloaded functions 6087 with a "self" parameter, with dynamic overload resolution. This 6088 allows covariant method redefinition. However, if equality is 6089 covariantly redefined for Point and ColoredPoint classes, and a 6090 ColoredPoint is compared to a Point, Point equality will be used, 6091 even if self is the colored point! 6092 } 6093 } 6094 6095 @article{Dijkstra68b, 6096 keywords = {semaphore, P/V}, 6097 contributer = {pabuhr@plg}, 6098 author = {E. W. Dijkstra}, 6099 title = {The Structure of the ``{THE}''--Multiprogramming System}, 6100 journal = cacm, 6101 month = may, 6102 year = 1968, 6103 volume = 11, 6104 number = 5, 6105 pages = {341-346} 6106 } 6107 6108 @book{Holt78, 6109 keywords = {operating systems, concurrency}, 6110 contributer = {pabuhr@plg}, 6111 author = {R. C. Holt and G. S. Graham and E. D. Lazowska and M. A. Scott}, 6112 title = {Structured Concurrent Programming with Operating System Applications}, 6113 publisher = {Addison-Wesley}, 6114 year = 1978, 6115 } 6116 6117 @article{Stevens74, 6118 keywords = {coupling, cohesion}, 6119 contributer = {pabuhr@plg}, 6120 author = {W. P. Stevens and and G. J. Myers and L. L. Constantine}, 6121 title = {Structured Design}, 6122 journal = ibmsj, 6123 year = 1974, 6124 volume = 13, 6125 number = 2, 6126 pages = {115-139}, 6127 } 6128 6129 @article{Hansen72b, 6130 keywords = {critical region}, 6131 contributer = {pabuhr@plg}, 6132 author = {Per {Brinch Hansen}}, 6133 title = {Structured Multiprogramming}, 6134 journal = cacm, 6135 volume = 15, 6136 number = 7, 6137 month = jul, 6138 year = 1972, 6139 pages = {574-578}, 6140 } 6141 6142 @article{Knuth74, 6143 keywords = {structured programming, goto statement}, 6144 contributer = {pabuhr@plg}, 6145 author = {Donald E. Knuth}, 6146 title = {Structured Programming with go to Statements}, 6147 journal = acmcs, 6148 volume = 6, 6149 number = 4, 6150 month = dec, 6151 year = 1974, 6152 pages = {261-301}, 6153 issn = {0360-0300}, 6154 doi = {http://doi.acm.org/10.1145/356635.356640}, 6155 publisher = {ACM}, 6156 address = {New York, NY, USA}, 6157 } 6158 6159 @article{Lang98, 6160 keywords = {real-time, exception handling}, 6161 contributer = {pabuhr@plg}, 6162 author = {Jun Lang and David B. Stewart}, 6163 title = {A Study of the Applicability of Existing Exception-Handling Techniques to Component-Based Real-Time Software Technology}, 6164 journal = toplas, 6165 month = mar, 6166 year = 1998, 6167 volume = 20, 6168 number = 2, 6169 pages = {274-301}, 6170 } 6171 6172 @mastersthesis{Fortier89, 6173 keywords = {monitors}, 6174 contributer = {pabuhr@plg}, 6175 author = {Michel Fortier}, 6176 title = {Study of Monitors}, 6177 school = {Department of Computer Science, University of Waterloo}, 6178 year = 1989, 6179 address = {Waterloo, Ontario, Canada, N2L 3G1}, 6180 } 6181 6182 @techreport{AmadioCardelli, 6183 keywords = {}, 6184 contributer = {gjditchfield@plg}, 6185 author = {Roberto M. Amadio and Luca Cardelli}, 6186 title = {Subtyping Recursive Types}, 6187 institution = {Digital Equipment Corporation Systems Research Center}, 6188 year = 1990, 6189 address = {130 Lytton Avenue, Palo Alto, California 94301}, 6190 month = aug, 6191 number = 62, 6192 summary = { 6193 \[ (s \leq t \Rightarrow \alpha \leq \beta) \Rightarrow 6194 \mu s.\alpha leq \mu t.\beta \] 6195 \[ \alpha = C[\alpha] \and \beta = C[\beta] \and C contractive 6196 \Rightarrow \alpha = \beta \] 6197 where a type \(\alpha\) is contractive in the type variable \(t\) 6198 if either \(t\) does not occur free in \(\alpha\), or \(\alpha\) 6199 can be rewritten via unfolding as a type of the shape 6200 \(\alpha_1 \rightarrow \alpha_2\), and unfolding rewrites 6201 \(\mu t.\alpha\) as \([t\leftarrow\mu t.\alpha]\alpha\). An 6202 algorithm for finding type contexts \(C\) is given. 6203 } 6204 } 6205 6206 @techreport{Dijkstra80, 6207 keywords = {split binary semaphores, general to binary}, 6208 contributer = {pabuhr@plg}, 6209 author = {Edsger W. Dijkstra}, 6210 title = {The Superfluity of the General Semaphore}, 6211 institution = {Nuenen}, 6212 address = {Netherlands}, 6213 number = {EWD734}, 6214 month = apr, 6215 year = 1980, 6216 } 6217 6218 @inproceedings{Burns81, 6219 keywords = {N-thread software-solution mutual exclusion}, 6220 contributer = {pabuhr@plg}, 6221 author = {James E. Burns}, 6222 title = {Symmetry in Systems of Asynchronous Processes}, 6223 booktitle = {22nd Annual Symposium on Foundations of Computer Science, Nashville, TN, USA}, 6224 year = 1981, 6225 month = oct, 6226 organization= {IEEE Computer Society}, 6227 address = {Los Angeles, CA, USA}, 6228 pages = {169-174}, 6229 } 6230 6231 @article{Coffman71, 6232 keywords = {deadlock}, 6233 contributer = {pabuhr@plg}, 6234 author = {E. G. {Coffman, Jr.} and M. J. Elphick and A. Shoshani}, 6235 title = {System Deadlocks}, 6236 journal = acmcs, 6237 volume = 3, 6238 number = 2, 6239 month = jun, 6240 year = 1971, 6241 pages = {67-78}, 6242 publisher = {ACM Press}, 6243 address = {New York, NY, USA}, 6244 doi = {http://doi.acm.org/10.1145/356586.356588}, 6245 } 6246 6247 @phdthesis{Holmes99, 6248 keywords = {synchronization, inheritance anomaly}, 6249 contributer = {pabuhr@plg}, 6250 author = {David Holmes}, 6251 title = {Synchronisation Rings: Composable Synchronisation for Object-Oriented Systems}, 6252 school = {Department of Computing, Macquarie University}, 6253 month = oct, 6254 year = 1999, 6255 address = {Sydney, Australia}, 6256 } 6257 6258 @book{Taubenfeld06, 6259 keywords = {concurrency, synchronization}, 6260 author = {Gadi Taubenfeld}, 6261 title = {Synchronization Algorithms and Concurrent Programming}, 6262 publisher = {Pearson/Prentice Hall}, 6263 year = 2006, 6264 } 6265 6266 @article{Buhr92b, 6267 keywords = {concurrency, exception handling, interventions}, 6268 contributer = {pabuhr@plg}, 6269 author = {Peter A. Buhr and Hamish I. Macdonald and C. Robert Zarnke}, 6270 title = {Synchronous and Asynchronous Handling of Abnormal Events in the $\mu${S}ystem}, 6271 journal = spe, 6272 volume = 22, 6273 number = 9, 6274 month = sep, 6275 year = 1992, 6276 pages = {735-776}, 6277 } 6278 6279 @inproceedings{Greenwald96, 6280 keywords = {compare and swap, hardware atomicity}, 6281 contributer = {pabuhr@plg}, 6282 author = {Michael Greenwald and David Cheriton}, 6283 title = {The Synergy between Non-blocking Synchronization and Operating System Structure}, 6284 booktitle = {Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation}, 6285 organization= {USENIX Association}, 6286 address = {Seattle, Washington, U.S.A.}, 6287 month = oct, 6288 year = 1996, 6289 pages = {123-136}, 6290 } 6291 6292 @inbook{SunLWP, 6293 keywords = {light-weight processes, threads}, 6294 contributer = {pabuhr@plg}, 6295 key = {Sun}, 6296 title = {System Services Overview, Lightweight Processes}, 6297 chapter = {6}, 6298 pages = {71-111}, 6299 publisher = {Sun Microsystems}, 6300 month = may, 6301 year = 1988, 6302 note = {available as Part Number: 800-1753-10}, 6303 } 6304 6305 @article{Randell75, 6306 contributer = {pabuhr@plg}, 6307 author = {Brian Randell}, 6308 title = {System Structure for Software Fault Tolerance}, 6309 journal = ieeese, 6310 volume = {SE-1}, 6311 number = 2, 6312 month = jun, 6313 year = 1975, 6314 pages = {220-232}, 6315 } 6316 6317 @book{Modula-3, 6318 keywords = {language reference manual}, 6319 contributer = {pabuhr@plg}, 6320 author = {Andrew Birrell and Mark R. Brown and Luca Cardelli and Jim Donahue and Lucille Glassman and John Gutag and Jim Harning and Bill Kalsow and Roy Levin and Greg Nelson}, 6321 title = {Systems Programming with Modula-3}, 6322 publisher = {Prentice-Hall, Inc.}, 6323 year = 1991, 6324 series = {Prentice Hall Series in Innovative Technology} 6325 } 6326 6327 % T 6328 6329 @article{Yeager91, 6330 keywords = {teaching, concurrency}, 6331 contributer = {pabuhr@plg}, 6332 author = {Dorian P. Yeager}, 6333 title = {Teaching Concurrency in the Programming Languages Course}, 6334 journal = {SIGCSE BULLETIN}, 6335 volume = 23, 6336 number = 1, 6337 month = mar, 6338 year = 1991, 6339 pages = {155-161}, 6340 note = {The Papers of the Twenty-Second SIGCSE Technical Symposium on Computer Science Education, 6341 March. 7--8, 1991, San Antonio, Texas, U.S.A.}, 6342 } 6343 6344 @article{ml, 6345 keywords = {ML, polymorphism}, 6346 contributer = {gjditchfield@plg}, 6347 author = {Robin Milner}, 6348 title = {A Theory of Type Polymorphism in Programming}, 6349 journal = jcss, 6350 year = 1978, 6351 volume = 17, pages = {348-375} 6352 } 6353 6354 @book{Thoth, 6355 keywords = {messages, concurrency}, 6356 contributer = {pabuhr@plg}, 6357 author = {D. R. Cheriton}, 6358 title = {The Thoth System: Multi-Process Structuring and Portability}, 6359 publisher = {American Elsevier}, 6360 year = 1982 6361 } 6362 6363 @article{Boehm05, 6364 keywords = {concurrency, C++}, 6365 contributer = {pabuhr@plg}, 6366 author = {Hans-J. Boehm}, 6367 title = {Threads Cannot be Implemented as a Library}, 6368 journal = sigplan, 6369 volume = 40, 6370 number = 6, 6371 month = jun, 6372 year = 2005, 6373 pages = {261-268}, 6374 } 6375 6376 @misc{Bumbulis90, 6377 keywords = {parameter inference, ForceN}, 6378 contributer = {gjditchfield@plg}, 6379 author = {Peter Bumbulis}, 6380 title = {Towards Making Signatures First-Class}, 6381 howpublished= {personal communication}, 6382 month = sep, year = 1990, 6383 note = {} 6384 } 6385 6386 @techreport{alphard:preempt, 6387 keywords = {}, 6388 contributer = {gjditchfield@plg}, 6389 author = {Mary Shaw and Wm. A. Wulf}, 6390 title = {Toward Relaxing Assumptions in Languages and Their Implementations}, 6391 institution = {Carnegie-Mellon University}, 6392 year = 1980, 6393 month = jan, 6394 note = {Reprinted in \cite{alphard}.} 6395 } 6396 6397 @inproceedings{Reynolds74, 6398 keywords = {universal quantification, typed lambda calculus}, 6399 contributer = {gjditchfield@plg}, 6400 author = {John C. Reynolds}, 6401 title = {Towards a Theory of Type Structure}, 6402 booktitle = {Colloque sur la Programmation}, 6403 year = 1974, 6404 pages = {408-423}, 6405 editor = {B. Robinet}, 6406 publisher = {Springer-Verlag}, 6407 note = {Lecture Notes in Computer Science, v. 19}, 6408 abstract = { 6409 6410 } 6411 } 6412 6413 @incollection{Hoare72, 6414 keywords = {critical region, concurrency}, 6415 contributer = {pabuhr@plg}, 6416 author = {C. A. R. Hoare}, 6417 title = {Towards a Theory of Parallel Programming}, 6418 booktitle = {Operating Systems Techniques}, 6419 editor = {C. A. R. Hoare and R. H. Perott}, 6420 publisher = {Academic Press, New York}, 6421 year = 1972, 6422 pages = {61-71}, 6423 } 6424 6425 @inproceedings{Mitchell90, 6426 keywords = {polymorphism, lambda calculus, bounded quantification}, 6427 contributer = {gjditchfield@plg}, 6428 author = {John C. Mitchell}, 6429 title = {Toward a Typed Foundation for Method Specialization and Inheritance}, 6430 booktitle = {Conference Record of the Seventeenth Annual ACM Symposium 6431 on Principles of Programming Languages}, 6432 year = 1990, 6433 month = jan, pages = {109-124}, 6434 organization= {Association for Computing Machinery}, 6435 abstract = { 6436 This paper disucsses the phenomenon of {\em method specialization} 6437 in object-oriented programming languages. A typed function 6438 calculus of objects and classes is presented, featuring method 6439 specialization when methods are added or redefined. The soundness 6440 of the typing rules (without subtyping) is suggested by a 6441 translation into a more traditional calculus with 6442 recursively-defined record types. However, semantic questions 6443 regarding the subtype relation on classes remain open. 6444 } 6445 } 6446 6447 @article{EL1, 6448 keywords = {polymorphism}, 6449 contributer = {pabuhr@plg}, 6450 author = {B. Wegbreit}, 6451 title = {The Treatment of Data Types in {EL1}}, 6452 journal = cacm, 6453 volume = 17, 6454 number = 5, 6455 month = may, 6456 year = 1974, 6457 pages = {251-264}, 6458 } 6459 6460 @mastersthesis{Till89, 6461 keywords = {C, multiple return values, tuples}, 6462 contributer = {pabuhr@plg}, 6463 author = {David W. Till}, 6464 title = {Tuples In Imperative Programming Languages}, 6465 school = {Department of Computer Science, University of Waterloo}, 6466 year = 1989, 6467 address = {Waterloo, Ontario, Canada, N2L 3G1}, 6468 } 6469 6470 @article{turing:old, 6471 keywords = {verification, context conditions, faithful execution}, 6472 contributer = {gjditchfield@plg}, 6473 author = {R. C. Holt and J. R. Cordy}, 6474 title = {The Turing Programming Language}, 6475 journal = cacm, 6476 year = 1988, 6477 month = dec, 6478 volume = 31, number = 12, pages = {1410-1423} 6479 } 6480 6481 @book{Turing, 6482 keywords = {verification, context conditions, faithful execution}, 6483 contributer = {pabuhr@plg}, 6484 author = {R. C. Holt}, 6485 title = {Turing Reference Manual}, 6486 publisher = {Holt Software Associates Inc.}, 6487 year = 1992, 6488 edition = {third}, 6489 } 6490 6491 @techreport{Dijkstra79, 6492 keywords = {split binary semaphores}, 6493 contributer = {pabuhr@plg}, 6494 author = {Edsger W. Dijkstra}, 6495 title = {A Tutorial on the Split Binary Semaphore}, 6496 institution = {Nuenen}, 6497 address = {Netherlands}, 6498 number = {EWD703}, 6499 month = mar, 6500 year = 1979, 6501 } 6502 6503 @book{pldesign, 6504 keywords = {}, 6505 editor = {Anthony I. Wasserman}, 6506 title = {Tutorial: Programming Language Design}, 6507 publisher = {Computer Society Press}, 6508 year = 1980 6509 } 6510 6511 @article{Leroy00, 6512 keywords = {type-systems, exceptions}, 6513 contributer = {pabuhr@plg}, 6514 author = {Xavier Leroy and Fran\c{c}ois Pessaux}, 6515 title = {Type-Based Analysis of Uncaught Exceptions}, 6516 journal = toplas, 6517 month = mar, 6518 year = 2000, 6519 volume = 22, 6520 number = 2, 6521 pages = {340-377}, 6522 comment = { 6523 Argues against declaring exceptions on routine definitions. 6524 }, 6525 } 6526 6527 @article{Cormack90, 6528 keywords = {polymorphism}, 6529 contributer = {pabuhr@plg}, 6530 author = {G. V. Cormack and A. K. Wright}, 6531 title = {Type-dependent Parameter Inference}, 6532 journal = sigplan, 6533 volume = 25, 6534 number = 6, 6535 month = jun, 6536 year = 1990, 6537 pages = {127-136}, 6538 note = {Proceedings of the ACM Sigplan'90 Conference on Programming Language Design and Implementation 6539 June 20-22, 1990, White Plains, New York, U.S.A.}, 6540 } 6541 6542 @article{concatenation, 6543 keywords = {record concatenation, isa}, 6544 contributer = {gjditchfield@plg}, 6545 author = {N. Wirth}, 6546 title = {Type Extensions}, 6547 journal = toplas, 6548 volume = {10}, 6549 number = {2}, 6550 pages = {204-214}, 6551 month = apr, year = 1988, 6552 comment = { 6553 Extended record types add fields to their base record. Assignment 6554 truncations. Pointers can point at extended type instances. For 6555 polymorphism, call by value is assignment, and call by reference is 6556 pointer passing. Overloading isn't discussed. Type information 6557 can be recovered through an ``is'' type test or through type guards 6558 (casts). A version of the WITH statement could avoid repeated 6559 checking. 6560 6561 Private/public access to record fields can be provided by exporting 6562 a base type, and using a private extension. Statically allocated 6563 instances need a compiler hint specifying the maximum size of the 6564 private type. 6565 6566 Type checking is cheap (if the creation of pointer values is 6567 controlled). Types have type descriptors. Extension descriptors 6568 point at their direct base. Heap objects point at their 6569 descriptor, and reference parameters are accompanied by type 6570 descriptor parameters. ``v is t0'' loops along the chain of 6571 descriptors. 6572 } 6573 } 6574 6575 % U 6576 6577 @unpublished{uC++book, 6578 keywords = {control structure, concurrency}, 6579 contributer = {pabuhr@plg}, 6580 author = {Peter A. Buhr}, 6581 title = {Understanding Control Flow with Concurrent Programming using $\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 6582 year = 1999, 6583 note = {Textbook in preparation} 6584 } 6585 6586 @article{Cardelli85, 6587 keywords = {polymorphism}, 6588 contributer = {pabuhr@plg}, 6589 author = {Luca Cardelli and Peter Wegner}, 6590 title = {On Understanding Types, Data Abstractions, and Polymorphism}, 6591 journal = acmcs, 6592 month = dec, 6593 year = 1985, 6594 volume = 17, 6595 number = 4, 6596 pages = {471-522}, 6597 } 6598 6599 @inproceedings{Wilson92, 6600 keywords = {garbage collection survey}, 6601 contributer = {pabuhr@plg}, 6602 author = {Paul R. Wilson}, 6603 title = {Uniprocessor Garbage Collection Techniques}, 6604 booktitle = {Proceedings of the International Workshop on Memory Management}, 6605 location = {St. Malo, France}, 6606 publisher = {Springer-Verlag}, 6607 series = {Lecture Notes in Computer Science}, 6608 volume = 637, 6609 month = sep, 6610 year = {1992}, 6611 pages = {1-42}, 6612 } 6613 6614 @inproceedings{Hewitt73, 6615 author = {Carl Hewitt and Peter Bishop and Richard Steiger}, 6616 title = {A Universal Modular {ACTOR} Formalism for Artificial Intelligence}, 6617 booktitle = {Proceedings of the 3rd International Joint Conference on Artificial Intelligence}, 6618 address = {Standford, California, U.S.A.}, 6619 pages = {235-245}, 6620 month = aug, 6621 year = 1973, 6622 } 6623 6624 @article{Bourne78, 6625 keywords = {Shell}, 6626 contributer = {pabuhr@plg}, 6627 author = {S. R. Bourne}, 6628 title = {The UNIX Shell}, 6629 journal = {The Bell System Technical Journal}, 6630 volume = {57, part 2}, 6631 month = {July--August}, 6632 year = 1978, 6633 pages = {1971-1990}, 6634 } 6635 6636 @inproceedings{Krischer12, 6637 keywords = {exception, usability, asynchronous, assertion, injection, logging}, 6638 contributer = {pabuhr@plg}, 6639 author = {Roy Krischer and Peter A. Buhr}, 6640 title = {Usability Challenges in Exception Handling}, 6641 booktitle = {5th International Workshop on Exception Handling (WEH)}, 6642 organization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)}, 6643 address = {Zurich, Switzerland}, 6644 month = jun, 6645 year = 2012, 6646 pages = {7-13}, 6647 } 6648 6649 @techreport{Harmony, 6650 keywords = {messages, concurrency}, 6651 contributer = {pabuhr@plg}, 6652 author = {W. Morven Gentleman}, 6653 title = {Using the Harmony Operating System}, 6654 institution = {National Research Council of Canada, Ottawa, Canada}, 6655 number = {24685}, 6656 month = may, 6657 year = 1985 6658 } 6659 6660 @article{delegation, 6661 keywords = {delegation, inheritance, actors}, 6662 contributer = {gjditchfield@plg}, 6663 author = {Henry Lieverman}, 6664 title = {Using Prototypical Objects to Implement Shared Behavior in 6665 Object Oriented Systems}, 6666 journal = sigplan, 6667 month = nov, year = 1986, 6668 volume = 21, number = 11, pages = {214-223} 6669 } 6670 6671 % V 6672 6673 @article{V-Kernel, 6674 keywords = {messages, concurrency}, 6675 contributer = {pabuhr@plg}, 6676 author = {David R. Cheriton}, 6677 title = {The {V} Distributed System}, 6678 journal = cacm, 6679 month = mar, 6680 year = 1988, 6681 volume = 31, 6682 number = 3, 6683 pages = {314-333} 6684 } 6685 6686 @inproceedings{Amdahl67, 6687 author = {Gene M. Amdahl}, 6688 title = {Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities}, 6689 booktitle = {Proceedings of the April 18-20, 1967, Spring Joint Computer Conference}, 6690 series = {AFIPS '67 (Spring)}, 6691 year = 1967, 6692 location = {Atlantic City, New Jersey}, 6693 pages = {483--485}, 6694 publisher = {ACM}, 6695 address = {New York, NY, USA}, 6696 } 6697 6698 @article{Mayer81, 6699 keywords = {}, 6700 contributer = {pabuhr@plg}, 6701 author = {A. J. W. Mayer}, 6702 title = {Value Receiving Procedures}, 6703 journal = sigplan, 6704 volume = 16, 6705 number = 11, 6706 month = nov, 6707 year = 1981, 6708 pages = {30-34}, 6709 } 6710 6711 @article{Doran80, 6712 keywords = {concurrency, Dekker's Algorithm}, 6713 contributer = {pabuhr@plg}, 6714 author = {R. W. Doran and L. K. Thomas}, 6715 title = {Variants of the Software Solution to Mutual Exclusion}, 6716 journal = ipl, 6717 month = jul, 6718 year = 1980, 6719 volume = 10, 6720 number = {4/5}, 6721 pages = {206-208}, 6722 } 6723 6724 @book{VAX, 6725 keywords = {VAX, DEC}, 6726 contributer = {pabuhr@plg}, 6727 key = {VAX}, 6728 title = {VAX-11 Architecture Reference Manual}, 6729 publisher = {Digital Press}, 6730 month = may, 6731 year = 1982, 6732 } 6733 6734 @book{Kenah88, 6735 author = {Lawrence J. Kenah and Ruth E. Goldenberg and Simon F. Bate}, 6736 title = {{VAX/VMS} Internals and Data Structures Version 4.4}, 6737 publisher = {Digital Press}, 6738 year = 1988, 6739 } 6740 6741 @article{Hesselink13, 6742 keywords = {software solutions, N-thread, mutual exclusions}, 6743 contributer = {pabuhr@plg}, 6744 author = {Wim H. Hesselink}, 6745 title = {Verifying a Simplification of Mutual Exclusion by {L}ycklama--{H}adzilacos}, 6746 journal = {Acta Informatica}, 6747 publisher = {Springer-Verlag}, 6748 year = {2013}, 6749 volume = {50}, 6750 number = {3}, 6751 pages = {199-228}, 6752 } 6753 6754 % W 6755 6756 @article{Herlihy91, 6757 keywords = {linearization, wait-free synchronization}, 6758 contributer = {pabuhr@plg}, 6759 author = {Maurice Herlihy}, 6760 title = {Wait-free Synchronization}, 6761 journal = toplas, 6762 volume = {13}, 6763 number = {1}, 6764 month = jan, 6765 year = 1991, 6766 pages = {124--149}, 6767 numpages = {26}, 6768 publisher = {ACM}, 6769 address = {New York, NY, USA}, 6770 } 6771 6772 @techreport{Moss90, 6773 keywords = {Swizzling, database}, 6774 contributer = {akgoel@plg}, 6775 author = {J. Moss}, 6776 title = {Working with Persistent Objects: To Swizzle or Not to Swizzle}, 6777 institution = {CS Department, University of Massachusetts}, 6778 address = {}, 6779 number = {CS 90-38}, 6780 month = may, 6781 year = 1990, 6782 } 6783 6784 @inproceedings{Str:oop, 6785 keywords = { }, 6786 contributer = {pabuhr@plg}, 6787 author = {Bjarne Stroustrup}, 6788 title = {What is ``Object-Oriented Programming''?}, 6789 booktitle = {Proceedings of the First European Conference on Object Oriented Programming}, 6790 month = jun, 6791 year = 1987 6792 } 6793 6794 @misc{Stroustrup:overloading, 6795 keywords = {operator overloading}, 6796 contributer = {pabuhr@plg}, 6797 author = {Bjarne Stroustrup}, 6798 title = {Why can't I overload dot, ::, sizeof, etc.?}, 6799 month = oct, 6800 year = 2007, 6801 howpublished= {{\small\textsf{http://\-www.research.att.com/\-bs/\-bs\_faq2.html\-\#overload-dot}}}, 6802 } 6803 6804 @techreport{Gray85, 6805 keywords = {fault-tolerant system}, 6806 contributer = {pabuhr@plg}, 6807 author = {Jim Gray}, 6808 title = {Why Do Computers Stop and What Can Be Done About It?}, 6809 institution = {Tandem Computers}, 6810 number = {85.7 PN87614}, 6811 month = jun, 6812 year = 1985, 6813 note = {\textsf{http://www.hpl.hp.com/\-techreports/\-tandem/\-TR-85.7.pdf}}, 6814 } 6815 6816 % X 6817 6818 % Y 6819 6820 % Z 6821 6822 % Cross-referenced entries: 6823 6824 % O 6825 6826 % The SIGPLAN Notices issue should be in a note field, but notes are 6827 % inherited by all refering entries, instead of being held in the 6828 % cross-referenced entry. Putting it in "publisher" is a kludge, but it 6829 % works. 6830 @proceedings{OOPSLA86, 6831 contributer = {gjditchfield@plg}, 6832 title = {{OOPSLA} '86 Conference Proceedings}, 6833 booktitle = {{OOPSLA} '86 Conference Proceedings}, 6834 year = 1986, 6835 editor = {Norman Meyrowitz}, 6836 publisher = sigplan # " 21(11)", 6837 organization= {Association for Computing Machinery}, 6838 address = {Portland, Oregon}, 6839 month = sep # { 29} 6840 } 6841 6842 @proceedings{OOPSLA87, 6843 contributer = {gjditchfield@plg}, 6844 title = {{OOPSLA} '87 Conference Proceedings}, 6845 booktitle = {{OOPSLA} '87 Conference Proceedings}, 6846 year = 1987, 6847 editor = {Norman Meyrowitz}, 6848 publisher = sigplan # " 22(12)", 6849 organization= {Association for Computing Machinery}, 6850 address = {Orlando, Florida}, 6851 month = oct # { 4--8} 6852 } 6853 6854 @proceedings{OOPSLA88, 6855 contributer = {gjditchfield@plg}, 6856 title = {{OOPSLA} '88 Conference Proceedings}, 6857 booktitle = {{OOPSLA} '88 Conference Proceedings}, 6858 year = 1988, 6859 editor = {Norman Meyrowitz}, 6860 publisher = sigplan # " 23(11)", 6861 organization= {Association for Computing Machinery}, 6862 address = {San Diego, California}, 6863 month = sep # { 25--30} 6864 } 6865 6866 @proceedings{OOPSLA89, 6867 contributer = {gjditchfield@plg}, 6868 title = {{OOPSLA} '89 Conference Proceedings}, 6869 booktitle = {{OOPSLA} '89 Conference Proceedings}, 6870 year = 1989, 6871 editor = {Norman Meyrowitz}, 6872 publisher = sigplan # " 24(10)", 6873 organization= {Association for Computing Machinery}, 6874 address = {New Orleans, Louisiana}, 6875 month = oct # { 1--6} 6876 } 6877 6878 @proceedings{OOPSLA90, 6879 contributer = {gjditchfield@plg}, 6880 title = {{OOPSLA/ECOOP} '90 Conference Proceedings}, 6881 booktitle = {{OOPSLA} '90 Conference Proceedings}, 6882 year = 1990, 6883 editor = {Norman Meyrowitz}, 6884 publisher = sigplan # " 25(10)", 6885 organization= {Association for Computing Machinery}, 6886 address = {Ottawa, Canada}, 6887 month = oct # { 21--25} 6888 } 6889 6890 @proceedings{OOPSLA91, 6891 contributer = {gjditchfield@plg}, 6892 title = {{OOPSLA} '91 Conference Proceedings}, 6893 booktitle = {{OOPSLA} '91 Conference Proceedings}, 6894 year = 1991, 6895 editor = {Andreas Paepcke}, 6896 publisher = sigplan # " 26(11)", 6897 organization= {Association for Computing Machinery}, 6898 address = {Phoenix, Arizona}, 6899 month = oct # { 6--11} 6900 } -
Property mode
changed from
-
doc/refrat/Makefile
r1b5c81ed rf80e0218 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../ bibliography/:../LaTeXmacros/:4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex 3 TeXLIB = .:../LaTeXmacros:../LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/: 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 6 6 -
doc/refrat/refrat.tex
r1b5c81ed rf80e0218 11 11 %% Created On : Wed Apr 6 14:52:25 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Sat Apr 9 10:19:12201614 %% Update Count : 813 %% Last Modified On : Sat Jun 18 19:21:30 2016 14 %% Update Count : 74 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 17 17 % requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended 18 19 % inline code ©...© (copyright symbol) emacs: C-q M-) 20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-. 21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_ 22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-" 23 % LaTex escape §...§ (section symbol) emacs: C-q M-' 24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^ 25 % math escape $...$ (dollar symbol) 18 26 19 27 \documentclass[openright,twoside]{report} … … 21 29 22 30 % Latex packages used in the document. 23 \usepackage{fullpage,times} 31 \usepackage[T1]{fontenc} % allow Latin1 (extended ASCII) characters 32 \usepackage{textcomp} 33 \usepackage[latin1]{inputenc} 34 \usepackage{fullpage,times,comment} 35 \usepackage{epic,eepic} 36 \usepackage{upquote} % switch curled `'" to straight 24 37 \usepackage{xspace} 25 \usepackage{varioref} 26 \usepackage{listings} 27 \usepackage {comment}28 \usepackage{latexsym} % \Box 38 \usepackage{varioref} % extended references 39 \usepackage{listings} % format program code 40 \usepackage[flushmargin]{footmisc} % support label/reference in footnote 41 \usepackage{latexsym} % \Box glyph 29 42 \usepackage{mathptmx} % better math font with "times" 43 \usepackage[usenames]{color} 30 44 \usepackage[pagewise]{lineno} 31 45 \renewcommand{\linenumberfont}{\scriptsize\sffamily} 46 \input{common} % bespoke macros used in the document 32 47 \usepackage[dvips,plainpages=false,pdfpagelabels,pdfpagemode=UseNone,colorlinks=true,pagebackref=true,linkcolor=blue,citecolor=blue,urlcolor=blue,pagebackref=true,breaklinks=true]{hyperref} 33 48 \usepackage{breakurl} … … 36 51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 37 52 38 % Bespoke macros used in the document. 39 \input{common} 53 % Names used in the document. 54 55 \newcommand{\Version}{1.0.0} 56 57 \newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}} 58 \newcommand{\Emph}[2][red]{{\color{#1}\textbf{\emph{#2}}}} 59 \newcommand{\R}[1]{\Textbf{#1}} 60 \newcommand{\B}[1]{{\Textbf[blue]{#1}}} 61 \newcommand{\G}[1]{{\Textbf[OliveGreen]{#1}}} 40 62 41 63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 59 81 }% author 60 82 \date{ 61 DRAFT\\\today 83 DRAFT \\ 84 \today 62 85 }% date 63 86 … … 123 146 \subsection{Scopes of identifiers}\index{scopes} 124 147 125 \CFA's scope rules differ from C's in one major respect: a declaration of an identifier may overload\index{overloading} outer declarations of lexically identical identifiers in the same 126 \Index{name space}, instead of hiding them. 127 The outer declaration is hidden if the two declarations have \Index{compatible type}, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type, or if one declaration is a \lstinline$type$\use{type} or 128 \lstinline$typedef$\use{typedef} declaration and the other is not. The outer declaration becomes 129 \Index{visible} when the scope of the inner declaration terminates. 130 \begin{rationale} 131 Hence, a \CFA program can declare an \lstinline$int v$ and a \lstinline$float v$ in the same scope; 148 \CFA's scope rules differ from C's in one major respect: a declaration of an identifier may overload\index{overloading} outer declarations of lexically identical identifiers in the same \Index{name space}, instead of hiding them. 149 The outer declaration is hidden if the two declarations have \Index{compatible type}, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type, or if one declaration is a ©type©\use{type} or ©typedef©\use{typedef} declaration and the other is not. 150 The outer declaration becomes \Index{visible} when the scope of the inner declaration terminates. 151 \begin{rationale} 152 Hence, a \CFA program can declare an ©int v© and a ©float v© in the same scope; 132 153 a {\CC} program can not. 133 154 \end{rationale} … … 138 159 139 160 \CFA's linkage rules differ from C's in only one respect: instances of a particular identifier with external or internal linkage do not necessarily denote the same object or function. 140 Instead, in the set of translation units and libraries that constitutes an entire program, any two instances of a particular identifier with \Index{external linkage} denote the same object or function if they have 141 \Index{compatible type}s, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type. 161 Instead, in the set of translation units and libraries that constitutes an entire program, any two instances of a particular identifier with \Index{external linkage} denote the same object or function if they have \Index{compatible type}s, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type. 142 162 Within one translation unit, each instance of an identifier with \Index{internal linkage} denotes the same object or function in the same circumstances. 143 163 Identifiers with \Index{no linkage} always denote unique entities. 144 164 \begin{rationale} 145 A \CFA program can declare an \lstinline$extern int v$ and an \lstinline$extern float v$;165 A \CFA program can declare an ©extern int v© and an ©extern float v©; 146 166 a C program cannot. 147 167 \end{rationale} … … 166 186 \end{lstlisting} 167 187 168 The type parameters in an instantiation of a generic type must satisfy any constraints in the forall specifier on the type generator declaration, e.g., \lstinline$sumable$.188 The type parameters in an instantiation of a generic type must satisfy any constraints in the forall specifier on the type generator declaration, e.g., ©sumable©. 169 189 The instantiation then has the semantics that would result if the type parameters were substituted into the type generator declaration by macro substitution. 170 190 … … 214 234 \CFA defines situations where values of one type are automatically converted to another type. 215 235 These conversions are called \define{implicit conversion}s. 216 The programmer can request 217 \define{explicit conversion}s using cast expressions. 236 The programmer can request \define{explicit conversion}s using cast expressions. 218 237 219 238 … … 227 246 In \CFA, these conversions play a role in overload resolution, and collectively are called the \define{safe arithmetic conversion}s. 228 247 229 Let \(int_r\) and \(unsigned_r\)be the signed and unsigned integer types with integer conversion rank\index{integer conversion rank}\index{rank|see{integer conversion rank}} $r$.230 Let \(unsigned_{mr}\)be the unsigned integer type with maximal rank.248 Let ©int$_r$© and ©unsigned$_r$© be the signed and unsigned integer types with integer conversion rank\index{integer conversion rank}\index{rank|see{integer conversion rank}} $r$. 249 Let ©unsigned$_{mr}$© be the unsigned integer type with maximal rank. 231 250 232 251 The following conversions are \emph{direct} safe arithmetic conversions. … … 235 254 The \Index{integer promotion}s. 236 255 \item 237 For every rank $r$ greater than or equal to the rank of \lstinline$int$, conversion from \(int_r\) to \(unsigned_r\).238 \item 239 For every rank $r$ greater than or equal to the rank of \lstinline$int$, where \(int_{r+1}\) exists and can represent all values of \(unsigned_r\), conversion from \(unsigned_r\) to \(int_{r+1}\).240 \item 241 Conversion from \(unsigned_{mr}\) to \lstinline$float$.256 For every rank $r$ greater than or equal to the rank of ©int©, conversion from ©int$_r$© to ©unsigned$_r$©. 257 \item 258 For every rank $r$ greater than or equal to the rank of ©int©, where ©int$_{r+1}$© exists and can represent all values of ©unsigned$_r$©, conversion from ©unsigned$_r$© to ©int$_{r+1}$©. 259 \item 260 Conversion from ©unsigned$_{mr}$© to ©float©. 242 261 \item 243 262 Conversion from an enumerated type to its compatible integer type. 244 263 \item 245 Conversion from \lstinline$float$ to \lstinline$double$, and from \lstinline$double$ to \lstinline$long double$.246 \item 247 Conversion from \lstinline$float _Complex$ to \lstinline$double _Complex$, and from \lstinline$double _Complex$ to \lstinline$long double _Complex$.264 Conversion from ©float© to ©double©, and from ©double© to ©long double©. 265 \item 266 Conversion from ©float _Complex© to ©double _Complex©, and from ©double _Complex© to ©long double _Complex©. 248 267 \begin{sloppypar} 249 268 \item 250 Conversion from \lstinline$float _Imaginary$ to \lstinline$double _Imaginary$, and from \lstinline$double _Imaginary$ to \lstinline$long double$ \lstinline$_Imaginary$, if the implementation supports imaginary types.269 Conversion from ©float _Imaginary© to ©double _Imaginary©, and from ©double _Imaginary© to ©long double _Imaginary©, if the implementation supports imaginary types. 251 270 \end{sloppypar} 252 271 \end{itemize} 253 272 254 If type \lstinline$T$ can be converted to type \lstinline$U$ by a safe direct arithmetic conversion and type \lstinline$U$ can be converted to type \lstinline$V$ by a safe arithmetic conversion, then the conversion from \lstinline$T$ to type \lstinline$V$is an \emph{indirect} safe arithmetic conversion.273 If type ©T© can be converted to type ©U© by a safe direct arithmetic conversion and type ©U© can be converted to type ©V© by a safe arithmetic conversion, then the conversion from ©T© to type ©V© is an \emph{indirect} safe arithmetic conversion. 255 274 256 275 \begin{rationale} … … 266 285 \label{anon-conv} 267 286 268 If an expression's type is a pointer to a structure or union type that has a member that is an 269 \Index{anonymous structure} or an \Index{anonymous union}, it can be implicitly converted\index{implicit conversion} to a pointer to the anonymous structure's or anonymous union's type. 287 If an expression's type is a pointer to a structure or union type that has a member that is an \Index{anonymous structure} or an \Index{anonymous union}, it can be implicitly converted\index{implicit conversion} to a pointer to the anonymous structure's or anonymous union's type. 270 288 The result of the conversion is a pointer to the member. 271 289 … … 275 293 int x, y; 276 294 }; 277 void move_by( struct point * p1, struct point * p2 ) { @\impl{move_by}@295 void move_by( struct point * p1, struct point * p2 ) {§\impl{move_by}§ 278 296 p1->x += p2.x; 279 297 p1->y += p2.y; … … 285 303 move_to( &cp1, &cp2 ); 286 304 \end{lstlisting} 287 Thanks to implicit conversion, the two arguments that \lstinline$move_by()$ receives are pointers to 288 \lstinline$cp1$'s second member and \lstinline$cp2$'s second member. 305 Thanks to implicit conversion, the two arguments that ©move_by()© receives are pointers to ©cp1©'s second member and ©cp2©'s second member. 289 306 290 307 … … 328 345 a direct safe arithmetic conversion; 329 346 \item 330 from any object type or incomplete type to \lstinline$void$;331 \item 332 from a pointer to any non- \lstinline$void$ type to a pointer to \lstinline$void$;347 from any object type or incomplete type to ©void©; 348 \item 349 from a pointer to any non-©void© type to a pointer to ©void©; 333 350 \item 334 351 from a pointer to any type to a pointer to a more qualified version of the type\index{qualified type}; … … 341 358 Conversions that are not safe conversions are \define{unsafe conversion}s. 342 359 \begin{rationale} 343 As in C, there is an implicit conversion from \lstinline$void *$to any pointer type.360 As in C, there is an implicit conversion from ©void *© to any pointer type. 344 361 This is clearly dangerous, and {\CC} does not have this implicit conversion. 345 362 \CFA\index{deficiencies!void * conversion} keeps it, in the interest of remaining as pure a superset of C as possible, but discourages it by making it unsafe. … … 367 384 \begin{itemize} 368 385 \item 369 The cost of an implicit conversion from \lstinline$int$ to \lstinline$long$ is 1. 370 The cost of an implicit conversion from \lstinline$long$ to \lstinline$double$ is 3, because it is defined in terms of conversions from \lstinline$long$ to \lstinline$unsigned long$, then to \lstinline$float$, and then to \lstinline$double$. 371 372 \item 373 If \lstinline$int$ can represent all the values of \lstinline$unsigned short$, then the cost of an implicit conversion from \lstinline$unsigned short$ to \lstinline$unsigned$ is 2: 374 \lstinline$unsigned short$ to \lstinline$int$ to \lstinline$unsigned$. 375 Otherwise, \lstinline$unsigned short$ is converted directly to \lstinline$unsigned$, and the cost is 1. 376 377 \item 378 If \lstinline$long$ can represent all the values of \lstinline$unsigned$, then the conversion cost of \lstinline$unsigned$ to \lstinline$long$ is 1. 386 The cost of an implicit conversion from ©int© to ©long© is 1. 387 The cost of an implicit conversion from ©long© to ©double© is 3, because it is defined in terms of conversions from ©long© to ©unsigned long©, then to ©float©, and then to ©double©. 388 389 \item 390 If ©int© can represent all the values of ©unsigned short©, then the cost of an implicit conversion from ©unsigned short© to ©unsigned© is 2: ©unsigned short© to ©int© to ©unsigned©. 391 Otherwise, ©unsigned short© is converted directly to ©unsigned©, and the cost is 1. 392 393 \item 394 If ©long© can represent all the values of ©unsigned©, then the conversion cost of ©unsigned© to ©long© is 1. 379 395 Otherwise, the conversion is an unsafe conversion, and its conversion cost is undefined. 380 396 \end{itemize} 381 397 398 382 399 \section{Lexical elements} 400 401 383 402 \subsection{Keywords} 403 384 404 \begin{syntax} 385 405 \oldlhs{keyword} 386 \rhs \lstinline$forall$ 387 \rhs \lstinline$lvalue$ 388 \rhs \lstinline$trait$ 389 \rhs \lstinline$dtype$ 390 \rhs \lstinline$ftype$ 391 \rhs \lstinline$type$ 406 \rhs ©forall© 407 \rhs ©lvalue© 408 \rhs ©trait© 409 \rhs ©dtype© 410 \rhs ©ftype© 411 \rhs ©otype© 392 412 \end{syntax} 393 413 … … 396 416 397 417 \CFA allows operator \Index{overloading} by associating operators with special function identifiers. 398 Furthermore, the constants `` \lstinline$0$'' and ``\lstinline$1$'' have special status for many of C's data types (and for many programmer-defined data types as well), so \CFA treats them as overloadable identifiers.418 Furthermore, the constants ``©0©'' and ``©1©'' have special status for many of C's data types (and for many programmer-defined data types as well), so \CFA treats them as overloadable identifiers. 399 419 Programmers can use these identifiers to declare functions and objects that implement operators and constants for their own types. 400 420 … … 405 425 \begin{syntax} 406 426 \oldlhs{identifier} 407 \rhs \lstinline$0$408 \rhs \lstinline$1$427 \rhs ©0© 428 \rhs ©1© 409 429 \end{syntax} 410 430 411 \index{constant identifiers}\index{identifiers!for constants} The tokens `` \lstinline$0$''\impl{0} and ``\lstinline$1$''\impl{1} are identifiers.431 \index{constant identifiers}\index{identifiers!for constants} The tokens ``©0©''\impl{0} and ``©1©''\impl{1} are identifiers. 412 432 No other tokens defined by the rules for integer constants are considered to be identifiers. 413 433 \begin{rationale} 414 Why `` \lstinline$0$'' and ``\lstinline$1$''? Those integers have special status in C.434 Why ``©0©'' and ``©1©''? Those integers have special status in C. 415 435 All scalar types can be incremented and decremented, which is defined in terms of adding or subtracting 1. 416 The operations `` \lstinline$&&$'', ``\lstinline$||$'', and ``\lstinline$!$'' can be applied to any scalar arguments, and are defined in terms of comparison against 0.436 The operations ``©&&©'', ``©||©'', and ``©!©'' can be applied to any scalar arguments, and are defined in terms of comparison against 0. 417 437 A \nonterm{constant-expression} that evaluates to 0 is effectively compatible with every pointer type. 418 438 419 439 In C, the integer constants 0 and 1 suffice because the integer promotion rules can convert them to any arithmetic type, and the rules for pointer expressions treat constant expressions evaluating to 0 as a special case. 420 440 However, user-defined arithmetic types often need the equivalent of a 1 or 0 for their functions or operators, polymorphic functions often need 0 and 1 constants of a type matching their polymorphic parameters, and user-defined pointer-like types may need a null value. 421 Defining special constants for a user-defined type is more efficient than defining a conversion to the type from \lstinline$_Bool$.422 423 Why \emph{just} `` \lstinline$0$'' and ``\lstinline$1$''? Why not other integers? No other integers have special status in C.424 A facility that let programmers declare specific constants---`` \lstinline$const Rational 12$'', for instance---would not be much of an improvement.441 Defining special constants for a user-defined type is more efficient than defining a conversion to the type from ©_Bool©. 442 443 Why \emph{just} ``©0©'' and ``©1©''? Why not other integers? No other integers have special status in C. 444 A facility that let programmers declare specific constants---``©const Rational 12©'', for instance---would not be much of an improvement. 425 445 Some facility for defining the creation of values of programmer-defined types from arbitrary integer tokens would be needed. 426 446 The complexity of such a feature doesn't seem worth the gain. … … 438 458 \begin{tabular}[t]{ll} 439 459 %identifier & operation \\ \hline 440 \lstinline$?[?]$& subscripting \impl{?[?]}\\441 \lstinline$?()$& function call \impl{?()}\\442 \lstinline$?++$& postfix increment \impl{?++}\\443 \lstinline$?--$& postfix decrement \impl{?--}\\444 \lstinline$++?$& prefix increment \impl{++?}\\445 \lstinline$--?$& prefix decrement \impl{--?}\\446 \lstinline$*?$& dereference \impl{*?}\\447 \lstinline$+?$& unary plus \impl{+?}\\448 \lstinline$-?$& arithmetic negation \impl{-?}\\449 \lstinline$~?$& bitwise negation \impl{~?}\\450 \lstinline$!?$& logical complement \impl{"!?}\\451 \lstinline$?*?$& multiplication \impl{?*?}\\452 \lstinline$?/?$& division \impl{?/?}\\460 ©?[?]© & subscripting \impl{?[?]}\\ 461 ©?()© & function call \impl{?()}\\ 462 ©?++© & postfix increment \impl{?++}\\ 463 ©?--© & postfix decrement \impl{?--}\\ 464 ©++?© & prefix increment \impl{++?}\\ 465 ©--?© & prefix decrement \impl{--?}\\ 466 ©*?© & dereference \impl{*?}\\ 467 ©+?© & unary plus \impl{+?}\\ 468 ©-?© & arithmetic negation \impl{-?}\\ 469 ©~?© & bitwise negation \impl{~?}\\ 470 ©!?© & logical complement \impl{"!?}\\ 471 ©?*?© & multiplication \impl{?*?}\\ 472 ©?/?© & division \impl{?/?}\\ 453 473 \end{tabular}\hfil 454 474 \begin{tabular}[t]{ll} 455 475 %identifier & operation \\ \hline 456 \lstinline$?%?$& remainder \impl{?%?}\\457 \lstinline$?+?$& addition \impl{?+?}\\458 \lstinline$?-?$& subtraction \impl{?-?}\\459 \lstinline$?<<?$& left shift \impl{?<<?}\\460 \lstinline$?>>?$& right shift \impl{?>>?}\\461 \lstinline$?<?$& less than \impl{?<?}\\462 \lstinline$?<=?$& less than or equal \impl{?<=?}\\463 \lstinline$?>=?$& greater than or equal \impl{?>=?}\\464 \lstinline$?>?$& greater than \impl{?>?}\\465 \lstinline$?==?$& equality \impl{?==?}\\466 \lstinline$?!=?$& inequality \impl{?"!=?}\\467 \lstinline$?&?$& bitwise AND \impl{?&?}\\476 ©?%?© & remainder \impl{?%?}\\ 477 ©?+?© & addition \impl{?+?}\\ 478 ©?-?© & subtraction \impl{?-?}\\ 479 ©?<<?© & left shift \impl{?<<?}\\ 480 ©?>>?© & right shift \impl{?>>?}\\ 481 ©?<?© & less than \impl{?<?}\\ 482 ©?<=?© & less than or equal \impl{?<=?}\\ 483 ©?>=?© & greater than or equal \impl{?>=?}\\ 484 ©?>?© & greater than \impl{?>?}\\ 485 ©?==?© & equality \impl{?==?}\\ 486 ©?!=?© & inequality \impl{?"!=?}\\ 487 ©?&?© & bitwise AND \impl{?&?}\\ 468 488 \end{tabular}\hfil 469 489 \begin{tabular}[t]{ll} 470 490 %identifier & operation \\ \hline 471 \lstinline$?^?$& exclusive OR \impl{?^?}\\472 \lstinline$?|?$& inclusive OR \impl{?"|?}\\473 \lstinline$?=?$& simple assignment \impl{?=?}\\474 \lstinline$?*=?$& multiplication assignment \impl{?*=?}\\475 \lstinline$?/=?$& division assignment \impl{?/=?}\\476 \lstinline$?%=?$& remainder assignment \impl{?%=?}\\477 \lstinline$?+=?$& addition assignment \impl{?+=?}\\478 \lstinline$?-=?$& subtraction assignment \impl{?-=?}\\479 \lstinline$?<<=?$& left-shift assignment \impl{?<<=?}\\480 \lstinline$?>>=?$& right-shift assignment \impl{?>>=?}\\481 \lstinline$?&=?$& bitwise AND assignment \impl{?&=?}\\482 \lstinline$?^=?$& exclusive OR assignment \impl{?^=?}\\483 \lstinline$?|=?$& inclusive OR assignment \impl{?"|=?}\\491 ©?^?© & exclusive OR \impl{?^?}\\ 492 ©?|?© & inclusive OR \impl{?"|?}\\ 493 ©?=?© & simple assignment \impl{?=?}\\ 494 ©?*=?© & multiplication assignment \impl{?*=?}\\ 495 ©?/=?© & division assignment \impl{?/=?}\\ 496 ©?%=?© & remainder assignment \impl{?%=?}\\ 497 ©?+=?© & addition assignment \impl{?+=?}\\ 498 ©?-=?© & subtraction assignment \impl{?-=?}\\ 499 ©?<<=?© & left-shift assignment \impl{?<<=?}\\ 500 ©?>>=?© & right-shift assignment \impl{?>>=?}\\ 501 ©?&=?© & bitwise AND assignment \impl{?&=?}\\ 502 ©?^=?© & exclusive OR assignment \impl{?^=?}\\ 503 ©?|=?© & inclusive OR assignment \impl{?"|=?}\\ 484 504 \end{tabular} 485 505 \hfil … … 496 516 497 517 \begin{rationale} 498 The use of `` \lstinline$?$'' in identifiers means that some C programs are not \CFA programs. For instance, the sequence of characters ``\lstinline$(i < 0)?--i:i$'' is legal in a C program, but a499 \CFA compiler detects a syntax error because it treats `` \lstinline$?--$'' as an identifier, not as the two tokens ``\lstinline$?$'' and ``\lstinline$--$''.518 The use of ``©?©'' in identifiers means that some C programs are not \CFA programs. For instance, the sequence of characters ``©(i < 0)?--i:i©'' is legal in a C program, but a 519 \CFA compiler detects a syntax error because it treats ``©?--©'' as an identifier, not as the two tokens ``©?©'' and ``©--©''. 500 520 \end{rationale} 501 521 … … 504 524 \begin{itemize} 505 525 \item 506 The logical operators ``\lstinline$&&$'' and ``\lstinline$||$'', and the conditional operator 507 ``\lstinline$?:$''. 526 The logical operators ``©&&©'' and ``©||©'', and the conditional operator ``©?:©''. 508 527 These operators do not always evaluate their operands, and hence can not be properly defined by functions unless some mechanism like call-by-name is added to the language. 509 Note that the definitions of `` \lstinline$&&$'' and ``\lstinline$||$'' say that they work by checking that their arguments are unequal to 0, so defining ``\lstinline$!=$'' and ``\lstinline$0$'' for user-defined types is enough to allow them to be used in logical expressions.528 Note that the definitions of ``©&&©'' and ``©||©'' say that they work by checking that their arguments are unequal to 0, so defining ``©!=©'' and ``©0©'' for user-defined types is enough to allow them to be used in logical expressions. 510 529 511 530 \item … … 516 535 \item 517 536 The ``address of'' operator. 518 It would seem useful to define a unary `` \lstinline$&$'' operator that returns values of some programmer-defined pointer-like type.537 It would seem useful to define a unary ``©&©'' operator that returns values of some programmer-defined pointer-like type. 519 538 The problem lies with the type of the operator. 520 Consider the expression ``\lstinline$p = &x$'', where \lstinline$x$ is of type 521 \lstinline$T$ and \lstinline$p$ has the programmer-defined type \lstinline$T_ptr$. 522 The expression might be treated as a call to the unary function ``\lstinline$&?$''. 523 Now what is the type of the function's parameter? It can not be \lstinline$T$, because then \lstinline$x$ would be passed by value, and there is no way to create a useful pointer-like result from a value. 524 Hence the parameter must have type \lstinline$T *$. 525 But then the expression must be rewritten as ``\lstinline$p = &?( &x )$'' 539 Consider the expression ``©p = &x©'', where ©x© is of type ©T© and ©p© has the programmer-defined type ©T_ptr©. 540 The expression might be treated as a call to the unary function ``©&?©''. 541 Now what is the type of the function's parameter? It can not be ©T©, because then ©x© would be passed by value, and there is no way to create a useful pointer-like result from a value. 542 Hence the parameter must have type ©T *©. 543 But then the expression must be rewritten as ``©p = &?( &x )©'' 526 544 ---which doesn't seem like progress! 527 545 528 546 The rule for address-of expressions would have to be something like ``keep applying address-of functions until you get one that takes a pointer argument, then use the built-in operator and stop''. 529 It seems simpler to define a conversion function from \lstinline$T *$ to \lstinline$T_ptr$.530 531 \item 532 The \lstinline$sizeof$operator.547 It seems simpler to define a conversion function from ©T *© to ©T_ptr©. 548 549 \item 550 The ©sizeof© operator. 533 551 It is already defined for every object type, and intimately tied into the language's storage allocation model. 534 552 Redefining it seems pointless. 535 553 536 554 \item 537 The ``member of'' operators `` \lstinline$.$'' and ``\lstinline$->$''.555 The ``member of'' operators ``©.©'' and ``©->©''. 538 556 These are not really infix operators, since their right ``operand'' is not a value or object. 539 557 … … 572 590 The ``fewest unsafe conversions'' rule ensures that the usual conversions are done, if possible. 573 591 The ``lowest total expression cost'' rule chooses the proper common type. 574 The odd-looking ``highest argument conversion cost'' rule ensures that, when unary expressions must be converted, conversions of function results are preferred to conversion of function arguments: \lstinline$(double)-i$ will be preferred to \lstinline$-(double)i$.592 The odd-looking ``highest argument conversion cost'' rule ensures that, when unary expressions must be converted, conversions of function results are preferred to conversion of function arguments: ©(double)-i© will be preferred to ©-(double)i©. 575 593 576 594 The ``least polymorphic'' rule reduces the number of polymorphic function calls, since such functions are presumably more expensive than monomorphic functions and since the more specific function is presumably more appropriate. 577 It also gives preference to monomorphic values (such as the 578 \lstinline$int$ \lstinline$0$) over polymorphic values (such as the \Index{null pointer} 579 \lstinline$0$\use{0}). 595 It also gives preference to monomorphic values (such as the ©int© ©0©) over polymorphic values (such as the \Index{null pointer} ©0©\use{0}). 580 596 However, interpretations that call polymorphic functions are preferred to interpretations that perform unsafe conversions, because those conversions potentially lose accuracy or violate strong typing. 581 597 … … 597 613 \begin{rationale} 598 614 Predefined functions and constants have internal linkage because that simplifies optimization in traditional compile-and-link environments. 599 For instance, `` \lstinline$an_int + an_int$'' is equivalent to ``\lstinline$?+?(an_int, an_int)$''.615 For instance, ``©an_int + an_int©'' is equivalent to ``©?+?(an_int, an_int)©''. 600 616 If integer addition has not been redefined in the current scope, a compiler can generate code to perform the addition directly. 601 617 If predefined functions had external linkage, this optimization would be difficult. … … 623 639 \rhs \nonterm{constant} 624 640 \rhs \nonterm{string-literal} 625 \rhs \lstinline$($ \nonterm{expression} \lstinline$)$641 \rhs ©(© \nonterm{expression} ©)© 626 642 \rhs \nonterm{generic-selection} 627 643 \end{syntax} … … 629 645 \predefined 630 646 \begin{lstlisting} 631 const int 1; @\use{1}@632 const int 0; @\use{0}@647 const int 1;§\use{1}§ 648 const int 0;§\use{0}§ 633 649 forall( dtype DT ) DT * const 0; 634 650 forall( ftype FT ) FT * const 0; … … 639 655 640 656 A \nonterm{constant} or \nonterm{string-literal} has one valid interpretation, which has the type and value defined by {\c11}. 641 The predefined integer identifiers `` \lstinline$1$'' and ``\lstinline$0$'' have the integer values 1 and 0, respectively.642 The other two predefined `` \lstinline$0$'' identifiers are bound to polymorphic pointer values that, when specialized\index{specialization} with a data type or function type respectively, produce a null pointer of that type.657 The predefined integer identifiers ``©1©'' and ``©0©'' have the integer values 1 and 0, respectively. 658 The other two predefined ``©0©'' identifiers are bound to polymorphic pointer values that, when specialized\index{specialization} with a data type or function type respectively, produce a null pointer of that type. 643 659 644 660 A parenthesised expression has the same interpretations as the contained \nonterm{expression}. 645 661 646 662 \examples 647 The expression \lstinline$(void *)0$\use{0} specializes the (polymorphic) null pointer to a null pointer to \lstinline$void$. \lstinline$(const void *)0$ does the same, and also uses a safe conversion from \lstinline$void *$ to \lstinline$const void *$. 648 In each case, the null pointer conversion is better\index{best valid interpretations} than the unsafe conversion of the integer 649 \lstinline$0$ to a pointer. 663 The expression ©(void *)0©\use{0} specializes the (polymorphic) null pointer to a null pointer to ©void©. ©(const void *)0© does the same, and also uses a safe conversion from ©void *© to ©const void *©. 664 In each case, the null pointer conversion is better\index{best valid interpretations} than the unsafe conversion of the integer ©0© to a pointer. 650 665 651 666 \begin{rationale} … … 653 668 654 669 \CFA does not have C's concept of ``null pointer constants'', which are not typed values but special strings of tokens. 655 The C token ``\lstinline$0$'' is an expression of type \lstinline$int$ with the value ``zero'', and it \emph{also} is a null pointer constant. 656 Similarly, 657 ``\lstinline$(void *)0$ is an expression of type \lstinline$(void *)$ whose value is a null pointer, and it also is a null pointer constant. 658 However, in C, ``\lstinline$(void *)(void *)0$'' is 670 The C token ``©0©'' is an expression of type ©int© with the value ``zero'', and it \emph{also} is a null pointer constant. 671 Similarly, ``©(void *)0© is an expression of type ©(void *)© whose value is a null pointer, and it also is a null pointer constant. 672 However, in C, ``©(void *)(void *)0©'' is 659 673 \emph{not} a null pointer constant, even though it is null-valued, a pointer, and constant! The semantics of C expressions contain many special cases to deal with subexpressions that are null pointer constants. 660 674 … … 663 677 \begin{lstlisting} 664 678 forall( dtype DT ) DT * const 0; 665 \end{lstlisting} means that \lstinline$0$is a polymorphic object, and contains a value that can have \emph{any} pointer-to-object type or pointer-to-incomplete type.679 \end{lstlisting} means that ©0© is a polymorphic object, and contains a value that can have \emph{any} pointer-to-object type or pointer-to-incomplete type. 666 680 The only such value is the null pointer. 667 681 Therefore the type \emph{alone} is enough to identify a null pointer. … … 673 687 674 688 \constraints The best interpretation of the controlling expression shall be unambiguous\index{ambiguous interpretation}, and shall have type compatible with at most one of the types named in its generic association list. 675 If a generic selection has no \lstinline$default$generic association, the best interpretation of its controlling expression shall have type compatible with exactly one of the types named in its generic association list.689 If a generic selection has no ©default© generic association, the best interpretation of its controlling expression shall have type compatible with exactly one of the types named in its generic association list. 676 690 677 691 \semantics … … 684 698 \lhs{postfix-expression} 685 699 \rhs \nonterm{primary-expression} 686 \rhs \nonterm{postfix-expression} \lstinline$[$ \nonterm{expression} \lstinline$]$687 \rhs \nonterm{postfix-expression} \lstinline$($688 \nonterm{argument-expression-list}\opt \lstinline$)$689 \rhs \nonterm{postfix-expression} \lstinline$.$\nonterm{identifier}690 \rhs \nonterm{postfix-expression} \lstinline$->$\nonterm{identifier}691 \rhs \nonterm{postfix-expression} \lstinline$++$692 \rhs \nonterm{postfix-expression} \lstinline$--$693 \rhs \lstinline$($ \nonterm{type-name} \lstinline$)$ \lstinline${$ \nonterm{initializer-list} \lstinline$}$694 \rhs \lstinline$($ \nonterm{type-name} \lstinline$)$ \lstinline${$ \nonterm{initializer-list} \lstinline$,$ \lstinline$}$700 \rhs \nonterm{postfix-expression} ©[© \nonterm{expression} ©]© 701 \rhs \nonterm{postfix-expression} ©(© 702 \nonterm{argument-expression-list}\opt ©)© 703 \rhs \nonterm{postfix-expression} ©.© \nonterm{identifier} 704 \rhs \nonterm{postfix-expression} ©->© \nonterm{identifier} 705 \rhs \nonterm{postfix-expression} ©++© 706 \rhs \nonterm{postfix-expression} ©--© 707 \rhs ©(© \nonterm{type-name} ©)© ©{© \nonterm{initializer-list} ©}© 708 \rhs ©(© \nonterm{type-name} ©)© ©{© \nonterm{initializer-list} ©,© ©}© 695 709 \lhs{argument-expression-list} 696 710 \rhs \nonterm{assignment-expression} 697 \rhs \nonterm{argument-expression-list} \lstinline$,$711 \rhs \nonterm{argument-expression-list} ©,© 698 712 \nonterm{assignment-expression} 699 713 \end{syntax} … … 701 715 \rewriterules 702 716 \begin{lstlisting} 703 a[b] @\rewrite@ ?[?]( b, a ) // if a has integer type@\use{?[?]}@704 a[b] @\rewrite@?[?]( a, b ) // otherwise705 a( @\emph{arguments}@ ) @\rewrite@ ?()( a, @\emph{arguments}@ )@\use{?()}@706 a++ @\rewrite@ ?++(&( a ))@\use{?++}@707 a-- @\rewrite@ ?--(&( a ))@\use{?--}@717 a[b] => ?[?]( b, a ) // if a has integer type§\use{?[?]}§ 718 a[b] => ?[?]( a, b ) // otherwise 719 a( §\emph{arguments}§ ) => ?()( a, §\emph{arguments}§ )§\use{?()}§ 720 a++ => ?++(&( a ))§\use{?++}§ 721 a-- => ?--(&( a ))§\use{?--}§ 708 722 \end{lstlisting} 709 723 … … 713 727 \predefined 714 728 \begin{lstlisting} 715 forall( otype T ) lvalue T ?[?]( T *, ptrdiff_t ); @\use{ptrdiff_t}@729 forall( otype T ) lvalue T ?[?]( T *, ptrdiff_t );§\use{ptrdiff_t}§ 716 730 forall( otype T ) lvalue _Atomic T ?[?]( _Atomic T *, ptrdiff_t ); 717 731 forall( otype T ) lvalue const T ?[?]( const T *, ptrdiff_t ); … … 733 747 The interpretations of subscript expressions are the interpretations of the corresponding function call expressions. 734 748 \begin{rationale} 735 C defines subscripting as pointer arithmetic in a way that makes \lstinline$a[i]$ and 736 \lstinline$i[a]$ equivalent. \CFA provides the equivalence through a rewrite rule to reduce the number of overloadings of \lstinline$?[?]$. 749 C defines subscripting as pointer arithmetic in a way that makes ©a[i]© and ©i[a]© equivalent. \CFA provides the equivalence through a rewrite rule to reduce the number of overloadings of ©?[?]©. 737 750 738 751 Subscript expressions are rewritten as function calls that pass the first parameter by value. 739 752 This is somewhat unfortunate, since array-like types tend to be large. 740 The alternative is to use the rewrite rule `` \lstinline$a[b]$ \rewrite \lstinline$?[?](&(a), b)$''.741 However, C semantics forbid this approach: the \lstinline$a$ in ``\lstinline$a[b]$'' can be an arbitrary pointer value, which does not have an address.753 The alternative is to use the rewrite rule ``©a[b] => ?[?](&(a), b)©''. 754 However, C semantics forbid this approach: the ©a© in ``©a[b]©'' can be an arbitrary pointer value, which does not have an address. 742 755 743 756 The repetitive form of the predefined identifiers shows up a deficiency\index{deficiencies!pointers … … 754 767 \nonterm{postfix-expression} in a function call may have some interpretations that are function designators and some that are not. 755 768 756 For those interpretations of the \nonterm{postfix-expression} that are not function designators, the expression is rewritten and becomes a call of a function named `` \lstinline$?()$''.769 For those interpretations of the \nonterm{postfix-expression} that are not function designators, the expression is rewritten and becomes a call of a function named ``©?()©''. 757 770 The valid interpretations of the rewritten expression are determined in the manner described below. 758 771 … … 761 774 \begin{itemize} 762 775 \item if the argument corresponds to a parameter in the function designator's prototype, the argument interpretation must have the same type as the corresponding parameter, or be implicitly convertible to the parameter's type 763 \item if the function designator's type does not include a prototype or if the argument corresponds to 764 ``\lstinline$...$'' in a prototype, a \Index{default argument promotion} is applied to it. 776 \item if the function designator's type does not include a prototype or if the argument corresponds to ``©...©'' in a prototype, a \Index{default argument promotion} is applied to it. 765 777 \end{itemize} 766 778 The type of the valid interpretation is the return type of the function designator. 767 779 768 For those combinations where the interpretation of the \nonterm{postfix-expression} is a 769 \Index{polymorphic function} designator and the function designator accepts the number of arguments given, there shall be at least one set of \define{implicit argument}s for the implicit parameters such that 780 For those combinations where the interpretation of the \nonterm{postfix-expression} is a \Index{polymorphic function} designator and the function designator accepts the number of arguments given, there shall be at least one set of \define{implicit argument}s for the implicit parameters such that 770 781 \begin{itemize} 771 782 \item 772 If the declaration of the implicit parameter uses \Index{type-class} \lstinline$type$\use{type}, the implicit argument must be an object type;773 if it uses \lstinline$dtype$, the implicit argument must be an object type or an incomplete type;774 and if it uses \lstinline$ftype$, the implicit argument must be a function type.783 If the declaration of the implicit parameter uses \Index{type-class} ©type©\use{type}, the implicit argument must be an object type; 784 if it uses ©dtype©, the implicit argument must be an object type or an incomplete type; 785 and if it uses ©ftype©, the implicit argument must be a function type. 775 786 776 787 \item if an explicit parameter's type uses any implicit parameters, then the corresponding explicit argument must have a type that is (or can be safely converted\index{safe conversion} to) the type produced by substituting the implicit arguments for the implicit parameters in the explicit parameter type. … … 791 802 \begin{rationale} 792 803 One desirable property of a polymorphic programming language is \define{generalizability}: the ability to replace an abstraction with a more general but equivalent abstraction without requiring changes in any of the uses of the original\cite{Cormack90}. 793 For instance, it should be possible to replace a function ``\lstinline$int f( int );$'' with ``\lstinline$forall( otype T ) T f( T );$'' without affecting any calls of \lstinline$f$. 794 795 \CFA\index{deficiencies!generalizability} does not fully possess this property, because 796 \Index{unsafe conversion} are not done when arguments are passed to polymorphic parameters. 804 For instance, it should be possible to replace a function ``©int f( int );©'' with ``©forall( otype T ) T f( T );©'' without affecting any calls of ©f©. 805 806 \CFA\index{deficiencies!generalizability} does not fully possess this property, because \Index{unsafe conversion} are not done when arguments are passed to polymorphic parameters. 797 807 Consider 798 808 \begin{lstlisting} … … 805 815 f = g( d, f ); // (3) (unsafe conversion to float) 806 816 \end{lstlisting} 807 If \lstinline$g$ was replaced by ``\lstinline$forall( otype T ) T g( T, T );$'', the first and second calls would be unaffected, but the third would change: \lstinline$f$ would be converted to 808 \lstinline$double$, and the result would be a \lstinline$double$. 809 810 Another example is the function ``\lstinline$void h( int *);$''. 811 This function can be passed a 812 \lstinline$void *$ argument, but the generalization ``\lstinline$forall( otype T ) void h( T *);$'' can not. 813 In this case, \lstinline$void$ is not a valid value for \lstinline$T$ because it is not an object type. 814 If unsafe conversions were allowed, \lstinline$T$ could be inferred to be \emph{any} object type, which is undesirable. 817 If ©g© was replaced by ``©forall( otype T ) T g( T, T );©'', the first and second calls would be unaffected, but the third would change: ©f© would be converted to ©double©, and the result would be a ©double©. 818 819 Another example is the function ``©void h( int *);©''. 820 This function can be passed a ©void *© argument, but the generalization ``©forall( otype T ) void h( T *);©'' can not. 821 In this case, ©void© is not a valid value for ©T© because it is not an object type. 822 If unsafe conversions were allowed, ©T© could be inferred to be \emph{any} object type, which is undesirable. 815 823 \end{rationale} 816 824 817 825 \examples 818 A function called `` \lstinline$?()$'' might be part of a numerical differentiation package.826 A function called ``©?()©'' might be part of a numerical differentiation package. 819 827 \begin{lstlisting} 820 828 extern otype Derivative; … … 827 835 d = sin_dx( 12.9 ); 828 836 \end{lstlisting} 829 Here, the only interpretation of \lstinline$sin_dx$ is as an object of type \lstinline$Derivative$.830 For that interpretation, the function call is treated as `` \lstinline$?()( sin_dx, 12.9 )$''.837 Here, the only interpretation of ©sin_dx© is as an object of type ©Derivative©. 838 For that interpretation, the function call is treated as ``©?()( sin_dx, 12.9 )©''. 831 839 \begin{lstlisting} 832 840 int f( long ); // (1) … … 835 843 int i = f( 5 ); // calls (1) 836 844 \end{lstlisting} 837 Function (1) provides a valid interpretation of `` \lstinline$f( 5 )$'', using an implicit \lstinline$int$ to \lstinline$long$conversion.838 The other functions do not, since the second requires two arguments, and since there is no implicit conversion from \lstinline$int$ to \lstinline$int *$that could be used with the third function.845 Function (1) provides a valid interpretation of ``©f( 5 )©'', using an implicit ©int© to ©long© conversion. 846 The other functions do not, since the second requires two arguments, and since there is no implicit conversion from ©int© to ©int *© that could be used with the third function. 839 847 840 848 \begin{lstlisting} … … 842 850 double d = h( 1.5 ); 843 851 \end{lstlisting} 844 ``\lstinline$1.5$'' is a \lstinline$double$ constant, so \lstinline$T$ is inferred to be 845 \lstinline$double$, and the result of the function call is a \lstinline$double$. 852 ``©1.5©'' is a ©double© constant, so ©T© is inferred to be ©double©, and the result of the function call is a ©double©. 846 853 847 854 \begin{lstlisting} 848 855 forall( otype T, otype U ) void g( T, U ); // (4) 849 856 forall( otype T ) void g( T, T ); // (5) 850 forall( otype T ) void g( T, long ); 857 forall( otype T ) void g( T, long ); // (6) 851 858 void g( long, long ); // (7) 852 859 double d; 853 860 int i; 854 861 int *p; 855 g( d, d ); // calls (5)856 g( d, i ); // calls (6)857 g( i, i ); // calls (7)858 g( i, p ); // calls (4)859 \end{lstlisting} 860 The first call has valid interpretations for all four versions of \lstinline$g$. (6) and (7) are discarded because they involve unsafe \lstinline$double$-to-\lstinline$long$conversions. (5) is chosen because it is less polymorphic than (4).862 g( d, d ); // calls (5) 863 g( d, i ); // calls (6) 864 g( i, i ); // calls (7) 865 g( i, p ); // calls (4) 866 \end{lstlisting} 867 The first call has valid interpretations for all four versions of ©g©. (6) and (7) are discarded because they involve unsafe ©double©-to-©long© conversions. (5) is chosen because it is less polymorphic than (4). 861 868 862 869 For the second call, (7) is again discarded. 863 Of the remaining interpretations for (4), (5), and (6) (with \lstinline$i$ converted to \lstinline$long$), (6) is chosen because it is the least polymorphic.870 Of the remaining interpretations for (4), (5), and (6) (with ©i© converted to ©long©), (6) is chosen because it is the least polymorphic. 864 871 865 872 The third call has valid interpretations for all of the functions; … … 870 877 forall( otype T ) T min( T, T ); 871 878 double max( double, double ); 872 trait min_max( T ) { @\impl{min_max}@879 trait min_max( T ) {§\impl{min_max}§ 873 880 T min( T, T ); 874 881 T max( T, T ); … … 877 884 shuffle( 9, 10 ); 878 885 \end{lstlisting} 879 The only possibility for \lstinline$U$ is \lstinline$double$, because that is the type used in the only visible \lstinline$max$ function. 9 and 10 must be converted to \lstinline$double$, and 880 \lstinline$min$ must be specialized with \lstinline$T$ bound to \lstinline$double$. 881 \begin{lstlisting} 882 extern void q( int ); // (8) 883 extern void q( void * ); // (9) 886 The only possibility for ©U© is ©double©, because that is the type used in the only visible ©max© function. 9 and 10 must be converted to ©double©, and ©min© must be specialized with ©T© bound to ©double©. 887 \begin{lstlisting} 888 extern void q( int ); // (8) 889 extern void q( void * ); // (9) 884 890 extern void r(); 885 891 q( 0 ); 886 892 r( 0 ); 887 893 \end{lstlisting} 888 The \lstinline$int 0$ could be passed to (8), or the \lstinline$(void *)$ \Index{specialization} of the null pointer\index{null pointer} \lstinline$0$\use{0} could be passed to (9).889 The former is chosen because the \lstinline$int$ \lstinline$0$is \Index{less polymorphic}.890 For the same reason, \lstinline$int$ \lstinline$0$ is passed to \lstinline$r()$, even though it has \emph{no} declared parameter types.894 The ©int 0© could be passed to (8), or the ©(void *)© \Index{specialization} of the null pointer\index{null pointer} ©0©\use{0} could be passed to (9). 895 The former is chosen because the ©int© ©0© is \Index{less polymorphic}. 896 For the same reason, ©int© ©0© is passed to ©r()©, even though it has \emph{no} declared parameter types. 891 897 892 898 893 899 \subsubsection{Structure and union members} 894 900 895 \semantics In the member selection expression ``\lstinline$s$.\lstinline$m$'', there shall be at least one interpretation of \lstinline$s$ whose type is a structure type or union type containing a member named \lstinline$m$. 896 If two or more interpretations of \lstinline$s$ have members named 897 \lstinline$m$ with mutually compatible types, then the expression has an \Index{ambiguous interpretation} whose type is the composite type of the types of the members. 898 If an interpretation of \lstinline$s$ has a member \lstinline$m$ whose type is not compatible with any other 899 \lstinline$s$'s \lstinline$m$, then the expression has an interpretation with the member's type. 901 \semantics In the member selection expression ``©s©.©m©'', there shall be at least one interpretation of ©s© whose type is a structure type or union type containing a member named ©m©. 902 If two or more interpretations of ©s© have members named ©m© with mutually compatible types, then the expression has an \Index{ambiguous interpretation} whose type is the composite type of the types of the members. 903 If an interpretation of ©s© has a member ©m© whose type is not compatible with any other ©s©'s ©m©, then the expression has an interpretation with the member's type. 900 904 The expression has no other interpretations. 901 905 902 The expression ``\lstinline$p->m$'' has the same interpretations as the expression 903 ``\lstinline$(*p).m$''. 906 The expression ``©p->m©'' has the same interpretations as the expression ``©(*p).m©''. 904 907 905 908 … … 996 999 * ?--( _Atomic const restrict volatile T * _Atomic restrict volatile * ); 997 1000 \end{lstlisting} 998 For every extended integer type \lstinline$X$there exist1001 For every extended integer type ©X© there exist 999 1002 % Don't use predefined: keep this out of prelude.cf. 1000 1003 \begin{lstlisting} … … 1002 1005 ?--( volatile X * ), ?--( _Atomic volatile X * ); 1003 1006 \end{lstlisting} 1004 For every complete enumerated type \lstinline$E$there exist1007 For every complete enumerated type ©E© there exist 1005 1008 % Don't use predefined: keep this out of prelude.cf. 1006 1009 \begin{lstlisting} … … 1010 1013 1011 1014 \begin{rationale} 1012 Note that `` \lstinline$++$'' and ``\lstinline$--$'' are rewritten as function calls that are given a pointer to that operand. (This is true of all operators that modify an operand.) As Hamish Macdonald has pointed out, this forces the modified operand of such expressions to be an lvalue.1015 Note that ``©++©'' and ``©--©'' are rewritten as function calls that are given a pointer to that operand. (This is true of all operators that modify an operand.) As Hamish Macdonald has pointed out, this forces the modified operand of such expressions to be an lvalue. 1013 1016 This partially enforces the C semantic rule that such operands must be \emph{modifiable} lvalues. 1014 1017 \end{rationale} … … 1016 1019 \begin{rationale} 1017 1020 In C, a semantic rule requires that pointer operands of increment and decrement be pointers to object types. 1018 Hence, \lstinline$void *$objects cannot be incremented.1019 In \CFA, the restriction follows from the use of a \lstinline$type$ parameter in the predefined function definitions, as opposed to \lstinline$dtype$, since only object types can be inferred arguments corresponding to the type parameter \lstinline$T$.1021 Hence, ©void *© objects cannot be incremented. 1022 In \CFA, the restriction follows from the use of a ©type© parameter in the predefined function definitions, as opposed to ©dtype©, since only object types can be inferred arguments corresponding to the type parameter ©T©. 1020 1023 \end{rationale} 1021 1024 1022 1025 \semantics 1023 1026 First, each interpretation of the operand of an increment or decrement expression is considered separately. 1024 For each interpretation that is a bit-field or is declared with the 1025 \lstinline$register$\index{register@{\lstinline$register$}} \index{Itorage-class specifier}, the expression has one valid interpretation, with the type of the operand, and the expression is ambiguous if the operand is. 1027 For each interpretation that is a bit-field or is declared with the \Indexc{register}\index{storage-class specifier}, the expression has one valid interpretation, with the type of the operand, and the expression is ambiguous if the operand is. 1026 1028 1027 1029 For the remaining interpretations, the expression is rewritten, and the interpretations of the expression are the interpretations of the corresponding function call. … … 1036 1038 \end{lstlisting} 1037 1039 \begin{sloppypar} 1038 Since \lstinline$&(vs)$ has type \lstinline$volatile short int *$, the best valid interpretation of 1039 \lstinline$vs++$ calls the \lstinline$?++$ function with the \lstinline$volatile short *$ parameter. 1040 \lstinline$s++$ does the same, applying the safe conversion from \lstinline$short int *$ to 1041 \lstinline$volatile short int *$. 1042 Note that there is no conversion that adds an \lstinline$_Atomic$ qualifier, so the \lstinline$_Atomic volatile short int$ overloading does not provide a valid interpretation. 1040 Since ©&(vs)© has type ©volatile short int *©, the best valid interpretation of ©vs++© calls the ©?++© function with the ©volatile short *© parameter. 1041 ©s++© does the same, applying the safe conversion from ©short int *© to ©volatile short int *©. 1042 Note that there is no conversion that adds an ©_Atomic© qualifier, so the ©_Atomic volatile short int© overloading does not provide a valid interpretation. 1043 1043 \end{sloppypar} 1044 1044 1045 There is no safe conversion from \lstinline$const short int *$ to \lstinline$volatile short int *$, and no \lstinline$?++$ function that accepts a \lstinline$const *$ parameter, so \lstinline$cs++$has no valid interpretations.1046 1047 The best valid interpretation of \lstinline$as++$ calls the \lstinline$short ?++$ function with the \lstinline$_Atomic volatile short int *$ parameter, applying a safe conversion to add the \lstinline$volatile$qualifier.1045 There is no safe conversion from ©const short int *© to ©volatile short int *©, and no ©?++© function that accepts a ©const *© parameter, so ©cs++© has no valid interpretations. 1046 1047 The best valid interpretation of ©as++© calls the ©short ?++© function with the ©_Atomic volatile short int *© parameter, applying a safe conversion to add the ©volatile© qualifier. 1048 1048 \begin{lstlisting} 1049 1049 char * const restrict volatile * restrict volatile pqpc; … … 1052 1052 ppc++; 1053 1053 \end{lstlisting} 1054 Since \lstinline$&(pqpc)$ has type \lstinline$char * const restrict volatile * restrict volatile *$, the best valid interpretation of \lstinline$pqpc++$ calls the polymorphic \lstinline$?++$ function with the \lstinline$const restrict volatile T * restrict volatile *$ parameter, inferring \lstinline$T$ to be \lstinline$char *$.1055 1056 \lstinline$ppc++$ calls the same function, again inferring \lstinline$T$ to be \lstinline$char *$, and using the safe conversions from \lstinline$T$ to \lstinline$T const$ \lstinline$restrict volatile$.1054 Since ©&(pqpc)© has type ©char * const restrict volatile * restrict volatile *©, the best valid interpretation of ©pqpc++© calls the polymorphic ©?++© function with the ©const restrict volatile T * restrict volatile *© parameter, inferring ©T© to be ©char *©. 1055 1056 ©ppc++© calls the same function, again inferring ©T© to be ©char *©, and using the safe conversions from ©T© to ©T const© ©restrict volatile©. 1057 1057 1058 1058 \begin{rationale} … … 1068 1068 \begin{enumerate} 1069 1069 \item 1070 `` \lstinline$char * p; p++;$''.1071 The argument to \lstinline$?++$ has type \lstinline$char * *$, and the result has type \lstinline$char *$.1072 The expression would be valid if \lstinline$?++$were declared by1070 ``©char * p; p++;©''. 1071 The argument to ©?++© has type ©char * *©, and the result has type ©char *©. 1072 The expression would be valid if ©?++© were declared by 1073 1073 \begin{lstlisting} 1074 1074 forall( otype T ) T * ?++( T * * ); 1075 \end{lstlisting} with \lstinline$T$ inferred to be \lstinline$char$.1076 1077 \item 1078 `` \lstinline$char *restrict volatile qp; qp++$''.1079 The result again has type \lstinline$char *$, but the argument now has type \lstinline$char *restrict volatile *$, so it cannot be passed to the hypothetical function declared in point 1.1075 \end{lstlisting} with ©T© inferred to be ©char©. 1076 1077 \item 1078 ``©char *restrict volatile qp; qp++©''. 1079 The result again has type ©char *©, but the argument now has type ©char *restrict volatile *©, so it cannot be passed to the hypothetical function declared in point 1. 1080 1080 Hence the actual predefined function is 1081 1081 \begin{lstlisting} 1082 1082 forall( otype T ) T * ?++( T * restrict volatile * ); 1083 \end{lstlisting} which also accepts a \lstinline$char * *$ argument, because of the safe conversions that add 1084 \lstinline$volatile$ and \lstinline$restrict$ qualifiers. (The parameter is not const-qualified, so constant pointers cannot be incremented.) 1085 1086 \item 1087 ``\lstinline$char *_Atomic ap; ap++$''. 1088 The result again has type \lstinline$char *$, but no safe conversion adds an \lstinline$_Atomic$ qualifier, so the function in point 2 is not applicable. 1089 A separate overloading of \lstinline$?++$ is required. 1090 1091 \item 1092 ``\lstinline$char const volatile * pq; pq++$''. 1093 Here the result has type 1094 \lstinline$char const volatile *$, so a new overloading is needed: 1083 \end{lstlisting} which also accepts a ©char * *© argument, because of the safe conversions that add ©volatile© and ©restrict© qualifiers. (The parameter is not const-qualified, so constant pointers cannot be incremented.) 1084 1085 \item 1086 ``©char *_Atomic ap; ap++©''. 1087 The result again has type ©char *©, but no safe conversion adds an ©_Atomic© qualifier, so the function in point 2 is not applicable. 1088 A separate overloading of ©?++© is required. 1089 1090 \item 1091 ``©char const volatile * pq; pq++©''. 1092 Here the result has type ©char const volatile *©, so a new overloading is needed: 1095 1093 \begin{lstlisting} 1096 1094 forall( otype T ) T const volatile * ?++( T const volatile *restrict volatile * ); … … 1099 1097 1100 1098 \item 1101 `` \lstinline$float *restrict * prp; prp++$''.1102 The \lstinline$restrict$ qualifier is handled just like \lstinline$const$ and \lstinline$volatile$in the previous case:1099 ``©float *restrict * prp; prp++©''. 1100 The ©restrict© qualifier is handled just like ©const© and ©volatile© in the previous case: 1103 1101 \begin{lstlisting} 1104 1102 forall( otype T ) T restrict * ?++( T restrict *restrict volatile * ); 1105 \end{lstlisting} with \lstinline$T$ inferred to be \lstinline$float *$.1106 This looks odd, because {\c11} contains a constraint that requires restrict-qualified types to be pointer-to-object types, and \lstinline$T$is not syntactically a pointer type. \CFA loosens the constraint.1103 \end{lstlisting} with ©T© inferred to be ©float *©. 1104 This looks odd, because {\c11} contains a constraint that requires restrict-qualified types to be pointer-to-object types, and ©T© is not syntactically a pointer type. \CFA loosens the constraint. 1107 1105 \end{enumerate} 1108 1106 \end{rationale} … … 1119 1117 \begin{syntax} 1120 1118 \lhs{unary-expression} 1121 \rhs \nonterm{postfix-expression} 1122 \rhs \lstinline$++$ \nonterm{unary-expression} 1123 \rhs \lstinline$--$ \nonterm{unary-expression} 1124 \rhs \nonterm{unary-operator} \nonterm{cast-expression} 1125 \rhs \lstinline$sizeof$ \nonterm{unary-expression} 1126 \rhs \lstinline$sizeof$ \lstinline$($ \nonterm{type-name} \lstinline$)$ 1127 \lhs{unary-operator} one of \rhs \lstinline$&$ \lstinline$*$ \lstinline$+$ \lstinline$-$ \lstinline$~$ \lstinline$!$ 1119 \rhs \nonterm{postfix-expression} 1120 \rhs ©++© \nonterm{unary-expression} 1121 \rhs ©--© \nonterm{unary-expression} 1122 \rhs \nonterm{unary-operator} \nonterm{cast-expression} 1123 \rhs ©sizeof© \nonterm{unary-expression} 1124 \rhs ©sizeof© ©(© \nonterm{type-name} ©)© 1125 \lhs{unary-operator} one of 1126 \rhs ©&© ©*© ©+© ©-© ©~© ©!© 1128 1127 \end{syntax} 1129 1128 1130 1129 \rewriterules 1131 1130 \begin{lstlisting} 1132 *a @\rewrite@ *?( a ) @\use{*?}@1133 +a @\rewrite@ +?( a ) @\use{+?}@1134 -a @\rewrite@ -?( a ) @\use{-?}@1135 ~a @\rewrite@ ~?( a ) @\use{~?}@1136 !a @\rewrite@ !?( a ) @\use{"!?}@1137 ++a @\rewrite@ ++?(&( a )) @\use{++?}@1138 --a @\rewrite@ --?(&( a )) @\use{--?}@1131 *a => *?( a )§\use{*?}§ 1132 +a => +?( a )§\use{+?}§ 1133 -a => -?( a )§\use{-?}§ 1134 ~a => ~?( a )§\use{~?}§ 1135 !a => !?( a )§\use{"!?}§ 1136 ++a => ++?(&( a ))§\use{++?}§ 1137 --a => --?(&( a ))§\use{--?}§ 1139 1138 \end{lstlisting} 1140 1139 … … 1232 1231 * --?( _Atomic const restrict volatile T * _Atomic restrict volatile * ); 1233 1232 \end{lstlisting} 1234 For every extended integer type \lstinline$X$there exist1233 For every extended integer type ©X© there exist 1235 1234 % Don't use predefined: keep this out of prelude.cf. 1236 1235 \begin{lstlisting} … … 1240 1239 --?( _Atomic volatile X * ); 1241 1240 \end{lstlisting} 1242 For every complete enumerated type \lstinline$E$there exist1241 For every complete enumerated type ©E© there exist 1243 1242 % Don't use predefined: keep this out of prelude.cf. 1244 1243 \begin{lstlisting} … … 1277 1276 1278 1277 \constraints 1279 The operand of the unary ``\lstinline$&$'' operator shall have exactly one 1280 \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. 1278 The operand of the unary ``©&©'' operator shall have exactly one \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. 1281 1279 1282 1280 \semantics 1283 The ``\lstinline$&$'' expression has one interpretation which is of type \lstinline$T *$, where 1284 \lstinline$T$ is the type of the operand. 1281 The ``©&©'' expression has one interpretation which is of type ©T *©, where ©T© is the type of the operand. 1285 1282 1286 1283 The interpretations of an indirection expression are the interpretations of the corresponding function call. … … 1311 1308 forall( ftype FT ) int !?( FT * ); 1312 1309 \end{lstlisting} 1313 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1310 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1314 1311 % Don't use predefined: keep this out of prelude.cf. 1315 1312 \begin{lstlisting} … … 1324 1321 \begin{lstlisting} 1325 1322 long int li; 1326 void eat_double( double ); @\use{eat_double}@1327 eat_double(-li ); // @\rewrite@eat_double( -?( li ) );1328 \end{lstlisting} 1329 The valid interpretations of `` \lstinline$-li$'' (assuming no extended integer types exist) are1323 void eat_double( double );§\use{eat_double}§ 1324 eat_double(-li ); // => eat_double( -?( li ) ); 1325 \end{lstlisting} 1326 The valid interpretations of ``©-li©'' (assuming no extended integer types exist) are 1330 1327 \begin{center} 1331 1328 \begin{tabular}{llc} interpretation & result type & expression conversion cost \\ 1332 1329 \hline 1333 \lstinline$-?( (int)li )$ & \lstinline$int$& (unsafe) \\1334 \lstinline$-?( (unsigned)li)$ & \lstinline$unsigned int$& (unsafe) \\1335 \lstinline$-?( (long)li)$ & \lstinline$long$& 0 \\1336 \lstinline$-?( (long unsigned int)li)$ & \lstinline$long unsigned int$& 1 \\1337 \lstinline$-?( (long long int)li)$ & \lstinline$long long int$& 2 \\1338 \lstinline$-?( (long long unsigned int)li)$ & \lstinline$long long unsigned int$& 3 \\1339 \lstinline$-?( (float)li)$ & \lstinline$float$& 4 \\1340 \lstinline$-?( (double)li)$ & \lstinline$double$& 5 \\1341 \lstinline$-?( (long double)li)$ & \lstinline$long double$& 6 \\1342 \lstinline$-?( (_Complex float)li)$ & \lstinline$float$& (unsafe) \\1343 \lstinline$-?( (_Complex double)li)$ & \lstinline$double$& (unsafe) \\1344 \lstinline$-?( (_Complex long double)li)$ & \lstinline$long double$& (unsafe) \\1330 ©-?( (int)li )© & ©int© & (unsafe) \\ 1331 ©-?( (unsigned)li)© & ©unsigned int© & (unsafe) \\ 1332 ©-?( (long)li)© & ©long© & 0 \\ 1333 ©-?( (long unsigned int)li)© & ©long unsigned int© & 1 \\ 1334 ©-?( (long long int)li)© & ©long long int© & 2 \\ 1335 ©-?( (long long unsigned int)li)© & ©long long unsigned int© & 3 \\ 1336 ©-?( (float)li)© & ©float© & 4 \\ 1337 ©-?( (double)li)© & ©double© & 5 \\ 1338 ©-?( (long double)li)© & ©long double© & 6 \\ 1339 ©-?( (_Complex float)li)© & ©float© & (unsafe) \\ 1340 ©-?( (_Complex double)li)© & ©double© & (unsafe) \\ 1341 ©-?( (_Complex long double)li)© & ©long double© & (unsafe) \\ 1345 1342 \end{tabular} 1346 1343 \end{center} 1347 The valid interpretations of the \lstinline$eat_double$call, with the cost of the argument conversion and the cost of the entire expression, are1344 The valid interpretations of the ©eat_double© call, with the cost of the argument conversion and the cost of the entire expression, are 1348 1345 \begin{center} 1349 1346 \begin{tabular}{lcc} interpretation & argument cost & expression cost \\ 1350 1347 \hline 1351 \lstinline$eat_double( (double)-?( (int)li) )$& 7 & (unsafe) \\1352 \lstinline$eat_double( (double)-?( (unsigned)li) )$& 6 & (unsafe) \\1353 \lstinline$eat_double( (double)-?(li) )$& 5 & \(0+5=5\) \\1354 \lstinline$eat_double( (double)-?( (long unsigned int)li) )$& 4 & \(1+4=5\) \\1355 \lstinline$eat_double( (double)-?( (long long int)li) )$& 3 & \(2+3=5\) \\1356 \lstinline$eat_double( (double)-?( (long long unsigned int)li) )$& 2& \(3+2=5\) \\1357 \lstinline$eat_double( (double)-?( (float)li) )$& 1 & \(4+1=5\) \\1358 \lstinline$eat_double( (double)-?( (double)li) )$& 0 & \(5+0=5\) \\1359 \lstinline$eat_double( (double)-?( (long double)li) )$& (unsafe) & (unsafe) \\1360 \lstinline$eat_double( (double)-?( (_Complex float)li) )$& (unsafe) & (unsafe) \\1361 \lstinline$eat_double( (double)-?( (_Complex double)li) )$& (unsafe) & (unsafe) \\1362 \lstinline$eat_double( (double)-?( (_Complex long double)li) )$& (unsafe) & (unsafe) \\1348 ©eat_double( (double)-?( (int)li) )© & 7 & (unsafe) \\ 1349 ©eat_double( (double)-?( (unsigned)li) )© & 6 & (unsafe) \\ 1350 ©eat_double( (double)-?(li) )© & 5 & \(0+5=5\) \\ 1351 ©eat_double( (double)-?( (long unsigned int)li) )© & 4 & \(1+4=5\) \\ 1352 ©eat_double( (double)-?( (long long int)li) )© & 3 & \(2+3=5\) \\ 1353 ©eat_double( (double)-?( (long long unsigned int)li) )© & 2 & \(3+2=5\) \\ 1354 ©eat_double( (double)-?( (float)li) )© & 1 & \(4+1=5\) \\ 1355 ©eat_double( (double)-?( (double)li) )© & 0 & \(5+0=5\) \\ 1356 ©eat_double( (double)-?( (long double)li) )© & (unsafe) & (unsafe) \\ 1357 ©eat_double( (double)-?( (_Complex float)li) )© & (unsafe) & (unsafe) \\ 1358 ©eat_double( (double)-?( (_Complex double)li) )© & (unsafe) & (unsafe) \\ 1359 ©eat_double( (double)-?( (_Complex long double)li) )© & (unsafe) & (unsafe) \\ 1363 1360 \end{tabular} 1364 1361 \end{center} 1365 Each has result type \lstinline$void$, so the best must be selected.1362 Each has result type ©void©, so the best must be selected. 1366 1363 The interpretations involving unsafe conversions are discarded. 1367 The remainder have equal expression conversion costs, so the 1368 ``highest argument conversion cost'' rule is invoked, and the chosen interpretation is 1369 \lstinline$eat_double( (double)-?(li) )$. 1370 1371 1372 \subsubsection{The \lstinline$sizeof$ and \lstinline$_Alignof$ operators} 1364 The remainder have equal expression conversion costs, so the ``highest argument conversion cost'' rule is invoked, and the chosen interpretation is ©eat_double( (double)-?(li) )©. 1365 1366 1367 \subsubsection[The sizeof and \_Alignof operators]{The \lstinline@sizeof@ and \lstinline@_Alignof@ operators} 1373 1368 1374 1369 \constraints 1375 The operand of \lstinline$sizeof$ or \lstinline$_Alignof$ shall not be \lstinline$type$, 1376 \lstinline$dtype$, or \lstinline$ftype$. 1377 1378 When the \lstinline$sizeof$\use{sizeof} operator is applied to an expression, the expression shall have exactly one \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. \semantics A \lstinline$sizeof$ or \lstinline$_Alignof$ expression has one interpretation, of type \lstinline$size_t$. 1379 1380 When \lstinline$sizeof$ is applied to an identifier declared by a \nonterm{type-declaration} or a 1370 The operand of ©sizeof© or ©_Alignof© shall not be ©type©, ©dtype©, or ©ftype©. 1371 1372 When the ©sizeof©\use{sizeof} operator is applied to an expression, the expression shall have exactly one \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. \semantics A ©sizeof© or ©_Alignof© expression has one interpretation, of type ©size_t©. 1373 1374 When ©sizeof© is applied to an identifier declared by a \nonterm{type-declaration} or a 1381 1375 \nonterm{type-parameter}, it yields the size in bytes of the type that implements the operand. 1382 1376 When the operand is an opaque type or an inferred type parameter\index{inferred parameter}, the expression is not a constant expression. 1383 1377 1384 When \lstinline$_Alignof$is applied to an identifier declared by a \nonterm{type-declaration} or a1378 When ©_Alignof© is applied to an identifier declared by a \nonterm{type-declaration} or a 1385 1379 \nonterm{type-parameter}, it yields the alignment requirement of the type that implements the operand. 1386 1380 When the operand is an opaque type or an inferred type parameter\index{inferred parameter}, the expression is not a constant expression. … … 1389 1383 otype Pair = struct { int first, second; }; 1390 1384 size_t p_size = sizeof(Pair); // constant expression 1391 extern otype Rational; @\use{Rational}@1385 extern otype Rational;§\use{Rational}§ 1392 1386 size_t c_size = sizeof(Rational); // non-constant expression 1393 1387 forall(type T) T f(T p1, T p2) { … … 1396 1390 } 1397 1391 \end{lstlisting} 1398 ``\lstinline$sizeof Rational$'', although not statically known, is fixed. 1399 Within \lstinline$f()$, 1400 ``\lstinline$sizeof(T)$'' is fixed for each call of \lstinline$f()$, but may vary from call to call. 1392 ``©sizeof Rational©'', although not statically known, is fixed. 1393 Within ©f()©, ``©sizeof(T)©'' is fixed for each call of ©f()©, but may vary from call to call. 1401 1394 \end{rationale} 1402 1395 … … 1407 1400 \lhs{cast-expression} 1408 1401 \rhs \nonterm{unary-expression} 1409 \rhs \lstinline$($ \nonterm{type-name} \lstinline$)$\nonterm{cast-expression}1402 \rhs ©(© \nonterm{type-name} ©)© \nonterm{cast-expression} 1410 1403 \end{syntax} 1411 1404 1412 1405 \constraints 1413 The \nonterm{type-name} in a \nonterm{cast-expression} shall not be \lstinline$type$, 1414 \lstinline$dtype$, or \lstinline$ftype$. 1406 The \nonterm{type-name} in a \nonterm{cast-expression} shall not be ©type©, ©dtype©, or ©ftype©. 1415 1407 1416 1408 \semantics 1417 1409 1418 In a \Index{cast expression} `` \lstinline$($\nonterm{type-name}\lstinline$)e$'', if1419 \nonterm{type-name} is the type of an interpretation of \lstinline$e$, then that interpretation is the only interpretation of the cast expression;1420 otherwise, \lstinline$e$shall have some interpretation that can be converted to \nonterm{type-name}, and the interpretation of the cast expression is the cast of the interpretation that can be converted at the lowest cost.1410 In a \Index{cast expression} ``©(©\nonterm{type-name}©)e©'', if 1411 \nonterm{type-name} is the type of an interpretation of ©e©, then that interpretation is the only interpretation of the cast expression; 1412 otherwise, ©e© shall have some interpretation that can be converted to \nonterm{type-name}, and the interpretation of the cast expression is the cast of the interpretation that can be converted at the lowest cost. 1421 1413 The cast expression's interpretation is ambiguous\index{ambiguous interpretation} if more than one interpretation can be converted at the lowest cost or if the selected interpretation is ambiguous. 1422 1414 … … 1431 1423 \lhs{multiplicative-expression} 1432 1424 \rhs \nonterm{cast-expression} 1433 \rhs \nonterm{multiplicative-expression} \lstinline$*$\nonterm{cast-expression}1434 \rhs \nonterm{multiplicative-expression} \lstinline$/$\nonterm{cast-expression}1435 \rhs \nonterm{multiplicative-expression} \lstinline$%$\nonterm{cast-expression}1425 \rhs \nonterm{multiplicative-expression} ©*© \nonterm{cast-expression} 1426 \rhs \nonterm{multiplicative-expression} ©/© \nonterm{cast-expression} 1427 \rhs \nonterm{multiplicative-expression} ©%© \nonterm{cast-expression} 1436 1428 \end{syntax} 1437 1429 1438 1430 \rewriterules 1439 1431 \begin{lstlisting} 1440 a * b @\rewrite@ ?*?( a, b )@\use{?*?}@1441 a / b @\rewrite@ ?/?( a, b )@\use{?/?}@1442 a % b @\rewrite@ ?%?( a, b )@\use{?%?}@1432 a * b => ?*?( a, b )§\use{?*?}§ 1433 a / b => ?/?( a, b )§\use{?/?}§ 1434 a % b => ?%?( a, b )§\use{?%?}§ 1443 1435 \end{lstlisting} 1444 1436 … … 1467 1459 ?*?( _Complex long double, _Complex long double ), ?/?( _Complex long double, _Complex long double ); 1468 1460 \end{lstlisting} 1469 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1461 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1470 1462 % Don't use predefined: keep this out of prelude.cf. 1471 1463 \begin{lstlisting} … … 1474 1466 1475 1467 \begin{rationale} 1476 {\c11} does not include conversions from the \Index{real type}s to \Index{complex type}s in the 1477 \Index{usual arithmetic conversion}s. Instead it specifies conversion of the result of binary operations on arguments from mixed type domains. \CFA's predefined operators match that pattern. 1468 {\c11} does not include conversions from the \Index{real type}s to \Index{complex type}s in the \Index{usual arithmetic conversion}s. Instead it specifies conversion of the result of binary operations on arguments from mixed type domains. \CFA's predefined operators match that pattern. 1478 1469 \end{rationale} 1479 1470 … … 1485 1476 int i; 1486 1477 long li; 1487 void eat_double( double ); @\use{eat_double}@1478 void eat_double( double );§\use{eat_double}§ 1488 1479 eat_double( li % i ); 1489 1480 \end{lstlisting} 1490 `` \lstinline$li % i$'' is rewritten as ``\lstinline$?%?(li, i )$''.1491 The valid interpretations of \lstinline$?%?(li, i )$, the cost\index{conversion cost} of converting their arguments, and the cost of converting the result to \lstinline$double$(assuming no extended integer types are present ) are1481 ``©li % i©'' is rewritten as ``©?%?(li, i )©''. 1482 The valid interpretations of ©?%?(li, i )©, the cost\index{conversion cost} of converting their arguments, and the cost of converting the result to ©double© (assuming no extended integer types are present ) are 1492 1483 \begin{center} 1493 1484 \begin{tabular}{lcc} interpretation & argument cost & result cost \\ 1494 \hline 1495 \lstinline$ ?%?( (int)li, i )$& (unsafe) & 6 \\1496 \lstinline$ ?%?( (unsigned)li,(unsigned)i )$& (unsafe) & 5 \\1497 \lstinline$ ?%?( li, (long)i )$& 1 & 4 \\1498 \lstinline$ ?%?( (long unsigned)li,(long unsigned)i )$& 3 & 3 \\1499 \lstinline$ ?%?( (long long)li,(long long)i )$& 5 & 2 \\1500 \lstinline$ ?%?( (long long unsigned)li, (long long unsigned)i )$& 7 & 1 \\1485 \hline 1486 © ?%?( (int)li, i )© & (unsafe) & 6 \\ 1487 © ?%?( (unsigned)li,(unsigned)i )© & (unsafe) & 5 \\ 1488 © ?%?( li, (long)i )© & 1 & 4 \\ 1489 © ?%?( (long unsigned)li,(long unsigned)i )© & 3 & 3 \\ 1490 © ?%?( (long long)li,(long long)i )© & 5 & 2 \\ 1491 © ?%?( (long long unsigned)li, (long long unsigned)i )© & 7 & 1 \\ 1501 1492 \end{tabular} 1502 1493 \end{center} 1503 The best interpretation of \lstinline$eat_double( li, i )$ is 1504 \lstinline$eat_double( (double)?%?(li, (long)i ))$, which has no unsafe conversions and the lowest total cost. 1505 1506 \begin{rationale} 1507 {\c11} defines most arithmetic operations to apply an \Index{integer promotion} to any argument that belongs to a type that has an \Index{integer conversion rank} less than that of \lstinline$int$.If 1508 \lstinline$s$ is a \lstinline$short int$, ``\lstinline$s *s$'' does not have type \lstinline$short int$; 1509 it is treated as ``\lstinline$( (int)s ) * ( (int)s )$'', and has type \lstinline$int$. \CFA matches that pattern; 1510 it does not predefine ``\lstinline$short ?*?( short, short )$''. 1494 The best interpretation of ©eat_double( li, i )© is ©eat_double( (double)?%?(li, (long)i ))©, which has no unsafe conversions and the lowest total cost. 1495 1496 \begin{rationale} 1497 {\c11} defines most arithmetic operations to apply an \Index{integer promotion} to any argument that belongs to a type that has an \Index{integer conversion rank} less than that of ©int©. 1498 If ©s© is a ©short int©, ``©s *s©'' does not have type ©short int©; 1499 it is treated as ``©( (int)s ) * ( (int)s )©'', and has type ©int©. \CFA matches that pattern; 1500 it does not predefine ``©short ?*?( short, short )©''. 1511 1501 1512 1502 These ``missing'' operators limit polymorphism. … … 1517 1507 square( s ); 1518 1508 \end{lstlisting} 1519 Since \CFA does not define a multiplication operator for \lstinline$short int$, 1520 \lstinline$square( s )$ is treated as \lstinline$square( (int)s )$, and the result has type 1521 \lstinline$int$. 1509 Since \CFA does not define a multiplication operator for ©short int©, ©square( s )© is treated as ©square( (int)s )©, and the result has type ©int©. 1522 1510 This is mildly surprising, but it follows the {\c11} operator pattern. 1523 1511 … … 1528 1516 product( sa, 5); 1529 1517 \end{lstlisting} 1530 This has no valid interpretations, because \CFA has no conversion from ``array of 1531 \lstinline$short int$'' to ``array of \lstinline$int$''. 1518 This has no valid interpretations, because \CFA has no conversion from ``array of ©short int©'' to ``array of ©int©''. 1532 1519 The alternatives in such situations include 1533 1520 \begin{itemize} 1534 1521 \item 1535 Defining monomorphic overloadings of \lstinline$product$ for \lstinline$short$ and the other 1536 ``small'' types. 1537 \item 1538 Defining ``\lstinline$short ?*?( short, short )$'' within the scope containing the call to 1539 \lstinline$product$. 1540 \item 1541 Defining \lstinline$product$ to take as an argument a conversion function from the ``small'' type to the operator's argument type. 1522 Defining monomorphic overloadings of ©product© for ©short© and the other ``small'' types. 1523 \item 1524 Defining ``©short ?*?( short, short )©'' within the scope containing the call to ©product©. 1525 \item 1526 Defining ©product© to take as an argument a conversion function from the ``small'' type to the operator's argument type. 1542 1527 \end{itemize} 1543 1528 \end{rationale} … … 1549 1534 \lhs{additive-expression} 1550 1535 \rhs \nonterm{multiplicative-expression} 1551 \rhs \nonterm{additive-expression} \lstinline$+$\nonterm{multiplicative-expression}1552 \rhs \nonterm{additive-expression} \lstinline$-$\nonterm{multiplicative-expression}1536 \rhs \nonterm{additive-expression} ©+© \nonterm{multiplicative-expression} 1537 \rhs \nonterm{additive-expression} ©-© \nonterm{multiplicative-expression} 1553 1538 \end{syntax} 1554 1539 1555 1540 \rewriterules 1556 1541 \begin{lstlisting} 1557 a + b @\rewrite@ ?+?( a, b )@\use{?+?}@1558 a - b @\rewrite@ ?-?( a, b )@\use{?-?}@1542 a + b => ?+?( a, b )§\use{?+?}§ 1543 a - b => ?-?( a, b )§\use{?-?}§ 1559 1544 \end{lstlisting} 1560 1545 … … 1609 1594 * ?-?( _Atomic const restrict volatile T *, _Atomic const restrict volatile T * ); 1610 1595 \end{lstlisting} 1611 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1596 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1612 1597 % Don't use predefined: keep this out of prelude.cf. 1613 1598 \begin{lstlisting} … … 1619 1604 1620 1605 \begin{rationale} 1621 \lstinline$ptrdiff_t$ is an implementation-defined identifier defined in \lstinline$<stddef.h>$that is synonymous with a signed integral type that is large enough to hold the difference between two pointers.1606 ©ptrdiff_t© is an implementation-defined identifier defined in ©<stddef.h>© that is synonymous with a signed integral type that is large enough to hold the difference between two pointers. 1622 1607 It seems reasonable to use it for pointer addition as well. (This is technically a difference between \CFA and C, which only specifies that pointer addition uses an \emph{integral} argument.) Hence it is also used for subscripting, which is defined in terms of pointer addition. 1623 The {\c11} standard uses \lstinline$size_t$ in several cases where a library function takes an argument that is used as a subscript, but \lstinline$size_t$is unsuitable here because it is an unsigned type.1608 The {\c11} standard uses ©size_t© in several cases where a library function takes an argument that is used as a subscript, but ©size_t© is unsuitable here because it is an unsigned type. 1624 1609 \end{rationale} 1625 1610 … … 1630 1615 \lhs{shift-expression} 1631 1616 \rhs \nonterm{additive-expression} 1632 \rhs \nonterm{shift-expression} \lstinline$<<$\nonterm{additive-expression}1633 \rhs \nonterm{shift-expression} \lstinline$>>$\nonterm{additive-expression}1617 \rhs \nonterm{shift-expression} ©<<© \nonterm{additive-expression} 1618 \rhs \nonterm{shift-expression} ©>>© \nonterm{additive-expression} 1634 1619 \end{syntax} 1635 1620 1636 \rewriterules \use{?>>?}%use{?<<?}1637 \begin{lstlisting} 1638 a << b @\rewrite@ ?<<?( a, b )1639 a >> b @\rewrite@ ?>>?( a, b )1621 \rewriterules 1622 \begin{lstlisting} 1623 a << b => ?<<?( a, b )§\use{?<<?}§ 1624 a >> b => ?>>?( a, b )§\use{?>>?}§ 1640 1625 \end{lstlisting} 1641 1626 … … 1649 1634 long long unsigned int ?<<?( long long unsigned int, int ), ?>>?( long long unsigned int, int); 1650 1635 \end{lstlisting} 1651 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1636 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1652 1637 % Don't use predefined: keep this out of prelude.cf. 1653 1638 \begin{lstlisting} … … 1669 1654 \lhs{relational-expression} 1670 1655 \rhs \nonterm{shift-expression} 1671 \rhs \nonterm{relational-expression} \lstinline$< $\nonterm{shift-expression}1672 \rhs \nonterm{relational-expression} \lstinline$> $\nonterm{shift-expression}1673 \rhs \nonterm{relational-expression} \lstinline$<=$\nonterm{shift-expression}1674 \rhs \nonterm{relational-expression} \lstinline$>=$\nonterm{shift-expression}1656 \rhs \nonterm{relational-expression} ©< © \nonterm{shift-expression} 1657 \rhs \nonterm{relational-expression} ©> © \nonterm{shift-expression} 1658 \rhs \nonterm{relational-expression} ©<=© \nonterm{shift-expression} 1659 \rhs \nonterm{relational-expression} ©>=© \nonterm{shift-expression} 1675 1660 \end{syntax} 1676 1661 1677 \rewriterules \use{?>?}\use{?>=?}%use{?<?}%use{?<=?}1678 \begin{lstlisting} 1679 a < b @\rewrite@ ?<?( a, b )1680 a > b @\rewrite@ ?>?( a, b )1681 a <= b @\rewrite@ ?<=?( a, b )1682 a >= b @\rewrite@ ?>=?( a, b )1662 \rewriterules 1663 \begin{lstlisting} 1664 a < b => ?<?( a, b )§\use{?<?}§ 1665 a > b => ?>?( a, b )§\use{?>?}§ 1666 a <= b => ?<=?( a, b )§\use{?<=?}§ 1667 a >= b => ?>=?( a, b )§\use{?>=?}§ 1683 1668 \end{lstlisting} 1684 1669 … … 1712 1697 ?>=?( _Atomic const restrict volatile DT *, _Atomic const restrict volatile DT * ); 1713 1698 \end{lstlisting} 1714 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1699 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1715 1700 % Don't use predefined: keep this out of prelude.cf. 1716 1701 \begin{lstlisting} … … 1730 1715 \lhs{equality-expression} 1731 1716 \rhs \nonterm{relational-expression} 1732 \rhs \nonterm{equality-expression} \lstinline$==$\nonterm{relational-expression}1733 \rhs \nonterm{equality-expression} \lstinline$!=$\nonterm{relational-expression}1717 \rhs \nonterm{equality-expression} ©==© \nonterm{relational-expression} 1718 \rhs \nonterm{equality-expression} ©!=© \nonterm{relational-expression} 1734 1719 \end{syntax} 1735 1720 1736 1721 \rewriterules 1737 1722 \begin{lstlisting} 1738 a == b @\rewrite@ ?==?( a, b )@\use{?==?}@1739 a != b @\rewrite@ ?!=?( a, b )@\use{?"!=?}@1723 a == b => ?==?( a, b )§\use{?==?}§ 1724 a != b => ?!=?( a, b )§\use{?"!=?}§ 1740 1725 \end{lstlisting} 1741 1726 … … 1790 1775 ?==?( forall( ftype FT2) FT2*, forall( ftype FT3) FT3 * ), ?!=?( forall( ftype FT2) FT2*, forall( ftype FT3) FT3 * ); 1791 1776 \end{lstlisting} 1792 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1777 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1793 1778 % Don't use predefined: keep this out of prelude.cf. 1794 1779 \begin{lstlisting} … … 1798 1783 1799 1784 \begin{rationale} 1800 The polymorphic equality operations come in three styles: comparisons between pointers of compatible types, between pointers to \lstinline$void$and pointers to object types or incomplete types, and between the \Index{null pointer} constant and pointers to any type.1785 The polymorphic equality operations come in three styles: comparisons between pointers of compatible types, between pointers to ©void© and pointers to object types or incomplete types, and between the \Index{null pointer} constant and pointers to any type. 1801 1786 In the last case, a special constraint rule for null pointer constant operands has been replaced by a consequence of the \CFA type system. 1802 1787 \end{rationale} … … 1819 1804 \lhs{AND-expression} 1820 1805 \rhs \nonterm{equality-expression} 1821 \rhs \nonterm{AND-expression} \lstinline$&$\nonterm{equality-expression}1806 \rhs \nonterm{AND-expression} ©&© \nonterm{equality-expression} 1822 1807 \end{syntax} 1823 1808 1824 1809 \rewriterules 1825 1810 \begin{lstlisting} 1826 a & b @\rewrite@ ?&?( a, b )@\use{?&?}@1811 a & b => ?&?( a, b )§\use{?&?}§ 1827 1812 \end{lstlisting} 1828 1813 … … 1836 1821 long long unsigned int ?&?( long long unsigned int, long long unsigned int ); 1837 1822 \end{lstlisting} 1838 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1823 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1839 1824 % Don't use predefined: keep this out of prelude.cf. 1840 1825 \begin{lstlisting} … … 1851 1836 \lhs{exclusive-OR-expression} 1852 1837 \rhs \nonterm{AND-expression} 1853 \rhs \nonterm{exclusive-OR-expression} \lstinline$^$\nonterm{AND-expression}1838 \rhs \nonterm{exclusive-OR-expression} ©^© \nonterm{AND-expression} 1854 1839 \end{syntax} 1855 1840 1856 1841 \rewriterules 1857 1842 \begin{lstlisting} 1858 a ^ b @\rewrite@ ?^?( a, b )@\use{?^?}@1843 a ^ b => ?^?( a, b )§\use{?^?}§ 1859 1844 \end{lstlisting} 1860 1845 … … 1868 1853 long long unsigned int ?^?( long long unsigned int, long long unsigned int ); 1869 1854 \end{lstlisting} 1870 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1855 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1871 1856 % Don't use predefined: keep this out of prelude.cf. 1872 1857 \begin{lstlisting} … … 1883 1868 \lhs{inclusive-OR-expression} 1884 1869 \rhs \nonterm{exclusive-OR-expression} 1885 \rhs \nonterm{inclusive-OR-expression} \lstinline$|$\nonterm{exclusive-OR-expression}1870 \rhs \nonterm{inclusive-OR-expression} ©|© \nonterm{exclusive-OR-expression} 1886 1871 \end{syntax} 1887 1872 1888 \rewriterules \use{?"|?}1889 \begin{lstlisting} 1890 a | b @\rewrite@ ?|?( a, b )1873 \rewriterules 1874 \begin{lstlisting} 1875 a | b => ?|?( a, b )§\use{?"|?}§ 1891 1876 \end{lstlisting} 1892 1877 … … 1900 1885 long long unsigned int ?|?( long long unsigned int, long long unsigned int ); 1901 1886 \end{lstlisting} 1902 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$there exist1887 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int© there exist 1903 1888 % Don't use predefined: keep this out of prelude.cf. 1904 1889 \begin{lstlisting} … … 1915 1900 \lhs{logical-AND-expression} 1916 1901 \rhs \nonterm{inclusive-OR-expression} 1917 \rhs \nonterm{logical-AND-expression} \lstinline$&&$\nonterm{inclusive-OR-expression}1902 \rhs \nonterm{logical-AND-expression} ©&&© \nonterm{inclusive-OR-expression} 1918 1903 \end{syntax} 1919 1904 1920 \semantics The operands of the expression ``\lstinline$a && b$'' are treated as 1921 ``\lstinline$(int)((a)!=0)$'' and ``\lstinline$(int)((b)!=0)$'', which shall both be unambiguous. 1922 The expression has only one interpretation, which is of type \lstinline$int$. 1923 \begin{rationale} 1924 When the operands of a logical expression are values of built-in types, and ``\lstinline$!=$'' has not been redefined for those types, the compiler can optimize away the function calls. 1925 1926 A common C idiom omits comparisons to \lstinline$0$ in the controlling expressions of loops and 1927 \lstinline$if$ statements. 1928 For instance, the loop below iterates as long as \lstinline$rp$ points at a \lstinline$Rational$ value that is non-zero. 1929 1930 \begin{lstlisting} 1931 extern otype Rational;@\use{Rational}@ 1932 extern const Rational 0;@\use{0}@ 1905 \semantics The operands of the expression ``©a && b©'' are treated as ``©(int)((a)!=0)©'' and ``©(int)((b)!=0)©'', which shall both be unambiguous. 1906 The expression has only one interpretation, which is of type ©int©. 1907 \begin{rationale} 1908 When the operands of a logical expression are values of built-in types, and ``©!=©'' has not been redefined for those types, the compiler can optimize away the function calls. 1909 1910 A common C idiom omits comparisons to ©0© in the controlling expressions of loops and ©if© statements. 1911 For instance, the loop below iterates as long as ©rp© points at a ©Rational© value that is non-zero. 1912 1913 \begin{lstlisting} 1914 extern otype Rational;§\use{Rational}§ 1915 extern const Rational 0;§\use{0}§ 1933 1916 extern int ?!=?( Rational, Rational ); 1934 1917 Rational *rp; 1935 1918 while ( rp && *rp ) { ... } 1936 1919 \end{lstlisting} 1937 The logical expression calls the \lstinline$Rational$ inequality operator, passing it \lstinline$*rp$ and the \lstinline$Rational 0$, and getting a 1 or 0 as a result.1938 In contrast, {\CC} would apply a programmer-defined \lstinline$Rational$-to-\lstinline$int$ conversion to \lstinline$*rp$in the equivalent situation.1939 The conversion to \lstinline$int$would produce a general integer value, which is unfortunate, and possibly dangerous if the conversion was not written with this situation in mind.1920 The logical expression calls the ©Rational© inequality operator, passing it ©*rp© and the ©Rational 0©, and getting a 1 or 0 as a result. 1921 In contrast, {\CC} would apply a programmer-defined ©Rational©-to-©int© conversion to ©*rp© in the equivalent situation. 1922 The conversion to ©int© would produce a general integer value, which is unfortunate, and possibly dangerous if the conversion was not written with this situation in mind. 1940 1923 \end{rationale} 1941 1924 … … 1946 1929 \lhs{logical-OR-expression} 1947 1930 \rhs \nonterm{logical-AND-expression} 1948 \rhs \nonterm{logical-OR-expression} \lstinline$||$\nonterm{logical-AND-expression}1931 \rhs \nonterm{logical-OR-expression} ©||© \nonterm{logical-AND-expression} 1949 1932 \end{syntax} 1950 1933 1951 1934 \semantics 1952 1935 1953 The operands of the expression `` \lstinline$a || b$'' are treated as ``\lstinline$(int)((a)!=0)$'' and ``\lstinline$(int)((b))!=0)$'', which shall both be unambiguous.1954 The expression has only one interpretation, which is of type \lstinline$int$.1936 The operands of the expression ``©a || b©'' are treated as ``©(int)((a)!=0)©'' and ``©(int)((b))!=0)©'', which shall both be unambiguous. 1937 The expression has only one interpretation, which is of type ©int©. 1955 1938 1956 1939 … … 1960 1943 \lhs{conditional-expression} 1961 1944 \rhs \nonterm{logical-OR-expression} 1962 \rhs \nonterm{logical-OR-expression} \lstinline$?$\nonterm{expression}1963 \lstinline$:$\nonterm{conditional-expression}1945 \rhs \nonterm{logical-OR-expression} ©?© \nonterm{expression} 1946 ©:© \nonterm{conditional-expression} 1964 1947 \end{syntax} 1965 1948 1966 1949 \semantics 1967 In the conditional expression\use{?:} `` \lstinline$a?b:c$'', if the second and third operands both have an interpretation with \lstinline$void$ type, then the expression has an interpretation with type \lstinline$void$, equivalent to1950 In the conditional expression\use{?:} ``©a?b:c©'', if the second and third operands both have an interpretation with ©void© type, then the expression has an interpretation with type ©void©, equivalent to 1968 1951 \begin{lstlisting} 1969 1952 ( int)(( a)!=0) ? ( void)( b) : ( void)( c) 1970 1953 \end{lstlisting} 1971 1954 1972 If the second and third operands both have interpretations with non- \lstinline$void$ types, the expression is treated as if it were the call ``\lstinline$cond((a)!=0, b, c)$'', with \lstinline$cond$declared as1955 If the second and third operands both have interpretations with non-©void© types, the expression is treated as if it were the call ``©cond((a)!=0, b, c)©'', with ©cond© declared as 1973 1956 \begin{lstlisting} 1974 1957 forall( otype T ) T cond( int, T, T ); … … 2022 2005 rand() ? i : l; 2023 2006 \end{lstlisting} 2024 The best interpretation infers the expression's type to be \lstinline$long$ and applies the safe 2025 \lstinline$int$-to-\lstinline$long$ conversion to \lstinline$i$. 2007 The best interpretation infers the expression's type to be ©long© and applies the safe ©int©-to-©long© conversion to ©i©. 2026 2008 2027 2009 \begin{lstlisting} … … 2030 2012 rand() ? cip : vip; 2031 2013 \end{lstlisting} 2032 The expression has type \lstinline$const volatile int *$, with safe conversions applied to the second and third operands to add \lstinline$volatile$ and \lstinline$const$qualifiers, respectively.2014 The expression has type ©const volatile int *©, with safe conversions applied to the second and third operands to add ©volatile© and ©const© qualifiers, respectively. 2033 2015 2034 2016 \begin{lstlisting} 2035 2017 rand() ? cip : 0; 2036 2018 \end{lstlisting} 2037 The expression has type \lstinline$const int *$, with a specialization conversion applied to 2038 \lstinline$0$. 2019 The expression has type ©const int *©, with a specialization conversion applied to ©0©. 2039 2020 2040 2021 … … 2047 2028 \nonterm{assignment-expression} 2048 2029 \lhs{assignment-operator} one of 2049 \rhs \lstinline$=$\ \ \lstinline$*=$\ \ \lstinline$/=$\ \ \lstinline$%=$\ \ \lstinline$+=$\ \ \lstinline$-=$\ \ 2050 \lstinline$<<=$\ \ \lstinline$>>=$\ \ \lstinline$&=$\ \ \lstinline$^=$\ \ \lstinline$|=$ 2030 \rhs ©=©\ \ ©*=©\ \ ©/=©\ \ ©%=©\ \ ©+=©\ \ ©-=©\ \ ©<<=©\ \ ©>>=©\ \ ©&=©\ \ ©^=©\ \ ©|=© 2051 2031 \end{syntax} 2052 2032 2053 2033 \rewriterules 2054 Let `` \(\leftarrow\)'' be any of the assignment operators.2034 Let ``©<-©'' be any of the assignment operators. 2055 2035 Then 2056 \use{?=?}\use{?*=?}\use{?/=?}\use{?%=?}\use{?+=?}\use{?-=?} 2057 \use{?>>=?}\use{?&=?}\use{?^=?}\use{?"|=?}%use{?<<=?} 2058 \begin{lstlisting} 2059 a @$\leftarrow$@ b @\rewrite@ ?@$\leftarrow$@?( &( a ), b ) 2036 \use{?=?}\use{?*=?}\use{?/=?}\use{?%=?}\use{?+=?}\use{?-=?}\use{?>>=?}\use{?&=?}\use{?^=?}\use{?"|=?}%use{?<<=?} 2037 \begin{lstlisting} 2038 a <- b => ?<-?( &( a ), b ) 2060 2039 \end{lstlisting} 2061 2040 2062 2041 \semantics 2063 2042 Each interpretation of the left operand of an assignment expression is considered separately. 2064 For each interpretation that is a bit-field or is declared with the \lstinline$register$storage class specifier, the expression has one valid interpretation, with the type of the left operand.2043 For each interpretation that is a bit-field or is declared with the ©register© storage class specifier, the expression has one valid interpretation, with the type of the left operand. 2065 2044 The right operand is cast to that type, and the assignment expression is ambiguous if either operand is. 2066 2045 For the remaining interpretations, the expression is rewritten, and the interpretations of the assignment expression are the interpretations of the corresponding function call. … … 2295 2274 \end{lstlisting} 2296 2275 \begin{rationale} 2297 The pattern of overloadings for simple assignment resembles that of pointer increment and decrement, except that the polymorphic pointer assignment functions declare a \lstinline$dtype$ parameter, instead of a \lstinline$type$parameter, because the left operand may be a pointer to an incomplete type.2298 \end{rationale} 2299 2300 For every complete structure or union type \lstinline$S$there exist2276 The pattern of overloadings for simple assignment resembles that of pointer increment and decrement, except that the polymorphic pointer assignment functions declare a ©dtype© parameter, instead of a ©type© parameter, because the left operand may be a pointer to an incomplete type. 2277 \end{rationale} 2278 2279 For every complete structure or union type ©S© there exist 2301 2280 % Don't use predefined: keep this out of prelude.cf. 2302 2281 \begin{lstlisting} … … 2304 2283 \end{lstlisting} 2305 2284 2306 For every extended integer type \lstinline$X$there exist2285 For every extended integer type ©X© there exist 2307 2286 % Don't use predefined: keep this out of prelude.cf. 2308 2287 \begin{lstlisting} … … 2310 2289 \end{lstlisting} 2311 2290 2312 For every complete enumerated type \lstinline$E$there exist2291 For every complete enumerated type ©E© there exist 2313 2292 % Don't use predefined: keep this out of prelude.cf. 2314 2293 \begin{lstlisting} … … 2316 2295 \end{lstlisting} 2317 2296 \begin{rationale} 2318 The right-hand argument is \lstinline$int$ because enumeration constants have type \lstinline$int$.2297 The right-hand argument is ©int© because enumeration constants have type ©int©. 2319 2298 \end{rationale} 2320 2299 … … 2577 2556 \end{lstlisting} 2578 2557 2579 For every extended integer type \lstinline$X$there exist2558 For every extended integer type ©X© there exist 2580 2559 % Don't use predefined: keep this out of prelude.cf. 2581 2560 \begin{lstlisting} … … 2592 2571 \end{lstlisting} 2593 2572 2594 For every complete enumerated type \lstinline$E$there exist2573 For every complete enumerated type ©E© there exist 2595 2574 % Don't use predefined: keep this out of prelude.cf. 2596 2575 \begin{lstlisting} … … 2613 2592 \lhs{expression} 2614 2593 \rhs \nonterm{assignment-expression} 2615 \rhs \nonterm{expression} \lstinline$,$\nonterm{assignment-expression}2594 \rhs \nonterm{expression} ©,© \nonterm{assignment-expression} 2616 2595 \end{syntax} 2617 2596 2618 2597 \semantics 2619 In the comma expression ``\lstinline$a, b$'', the first operand is interpreted as 2620 ``\lstinline$( void )(a)$'', which shall be unambiguous\index{ambiguous interpretation}. 2598 In the comma expression ``©a, b©'', the first operand is interpreted as ``©( void )(a)©'', which shall be unambiguous\index{ambiguous interpretation}. 2621 2599 The interpretations of the expression are the interpretations of the second operand. 2622 2600 … … 2653 2631 { ... } 2654 2632 \end{lstlisting} 2655 Without the rule, \lstinline$Complex$would be a type in the first case, and a parameter name in the second.2633 Without the rule, ©Complex© would be a type in the first case, and a parameter name in the second. 2656 2634 \end{rationale} 2657 2635 … … 2679 2657 \examples 2680 2658 \begin{lstlisting} 2681 struct point { @\impl{point}@2659 struct point {§\impl{point}§ 2682 2660 int x, y; 2683 2661 }; 2684 struct color_point { @\impl{color_point}@2662 struct color_point {§\impl{color_point}§ 2685 2663 enum { RED, BLUE, GREEN } color; 2686 2664 struct point; … … 2689 2667 cp.x = 0; 2690 2668 cp.color = RED; 2691 struct literal { @\impl{literal}@2669 struct literal {§\impl{literal}§ 2692 2670 enum { NUMBER, STRING } tag; 2693 2671 union { … … 2710 2688 \begin{syntax} 2711 2689 \lhs{forall-specifier} 2712 \rhs \lstinline$forall$ \lstinline$($ \nonterm{type-parameter-list} \lstinline$)$2690 \rhs ©forall© ©(© \nonterm{type-parameter-list} ©)© 2713 2691 \end{syntax} 2714 2692 … … 2722 2700 } mkPair( T, T ); // illegal 2723 2701 \end{lstlisting} 2724 If an instance of \lstinline$struct Pair$was declared later in the current scope, what would the members' type be?2702 If an instance of ©struct Pair© was declared later in the current scope, what would the members' type be? 2725 2703 \end{rationale} 2726 2704 \end{comment} … … 2729 2707 The \nonterm{type-parameter-list}s and assertions of the \nonterm{forall-specifier}s declare type identifiers, function and object identifiers with \Index{no linkage}. 2730 2708 2731 If, in the declaration ``\lstinline$T D$'', \lstinline$T$ contains \nonterm{forall-specifier}s and 2732 \lstinline$D$ has the form 2733 \begin{lstlisting} 2734 D( @\normalsize\nonterm{parameter-type-list}@ ) 2735 \end{lstlisting} then a type identifier declared by one of the \nonterm{forall-specifier}s is an \define{inferred parameter} of the function declarator if and only if it is not an inferred parameter of a function declarator in \lstinline$D$, and it is used in the type of a parameter in the following 2736 \nonterm{type-parameter-list} or it and an inferred parameter are used as arguments of a 2737 \Index{specification} in one of the \nonterm{forall-specifier}s. 2709 If, in the declaration ``©T D©'', ©T© contains \nonterm{forall-specifier}s and ©D© has the form 2710 \begin{lstlisting} 2711 D( §\normalsize\nonterm{parameter-type-list}§ ) 2712 \end{lstlisting} then a type identifier declared by one of the \nonterm{forall-specifier}s is an \define{inferred parameter} of the function declarator if and only if it is not an inferred parameter of a function declarator in ©D©, and it is used in the type of a parameter in the following 2713 \nonterm{type-parameter-list} or it and an inferred parameter are used as arguments of a \Index{specification} in one of the \nonterm{forall-specifier}s. 2738 2714 The identifiers declared by assertions that use an inferred parameter of a function declarator are \Index{assertion parameter}s of that function declarator. 2739 2715 … … 2744 2720 If this restriction were lifted, it would be possible to write 2745 2721 \begin{lstlisting} 2746 forall( otype T ) T * alloc( void );@\use{alloc}@ int *p = alloc(); 2747 \end{lstlisting} 2748 Here \lstinline$alloc()$ would receive \lstinline$int$ as an inferred argument, and return an 2749 \lstinline$int *$. 2750 In general, if a call to \lstinline$alloc()$ is a subexpression of an expression involving polymorphic functions and overloaded identifiers, there could be considerable distance between the call and the subexpression that causes \lstinline$T$ to be bound. 2751 2752 With the current restriction, \lstinline$alloc()$ must be given an argument that determines 2753 \lstinline$T$: 2754 \begin{lstlisting} 2755 forall( otype T ) T * alloc( T initial_value );@\use{alloc}@ 2722 forall( otype T ) T * alloc( void );§\use{alloc}§ int *p = alloc(); 2723 \end{lstlisting} 2724 Here ©alloc()© would receive ©int© as an inferred argument, and return an ©int *©. 2725 In general, if a call to ©alloc()© is a subexpression of an expression involving polymorphic functions and overloaded identifiers, there could be considerable distance between the call and the subexpression that causes ©T© to be bound. 2726 2727 With the current restriction, ©alloc()© must be given an argument that determines ©T©: 2728 \begin{lstlisting} 2729 forall( otype T ) T * alloc( T initial_value );§\use{alloc}§ 2756 2730 \end{lstlisting} 2757 2731 \end{rationale} … … 2759 2733 2760 2734 If a function declarator is part of a function definition, its inferred parameters and assertion parameters have \Index{block scope}; 2761 otherwise, identifiers declared by assertions have a 2762 \define{declaration scope}, which terminates at the end of the \nonterm{declaration}. 2735 otherwise, identifiers declared by assertions have a \define{declaration scope}, which terminates at the end of the \nonterm{declaration}. 2763 2736 2764 2737 A function type that has at least one inferred parameter is a \define{polymorphic function} type. … … 2769 2742 Let $f$ and $g$ be two polymorphic function types with the same number of inferred parameters, and let $f_i$ and $g_i$ be the inferred parameters of $f$ and $g$ in their order of occurance in the function types' \nonterm{parameter-type-list}s. 2770 2743 Let $f'$ be $f$ with every occurrence of $f_i$ replaced by $g_i$, for all $i$. 2771 Then $f$ and $g$ are 2772 \Index{compatible type}s if $f'$'s and $g$'s return types and parameter lists are compatible, and if for every assertion parameter of $f'$ there is an assertion parameter in $g$ with the same identifier and compatible type, and vice versa. 2744 Then $f$ and $g$ are \Index{compatible type}s if $f'$'s and $g$'s return types and parameter lists are compatible, and if for every assertion parameter of $f'$ there is an assertion parameter in $g$ with the same identifier and compatible type, and vice versa. 2773 2745 2774 2746 \examples … … 2778 2750 forall( otype T ) T fT( T ); 2779 2751 \end{lstlisting} 2780 \lstinline$fi()$ takes an \lstinline$int$ and returns an \lstinline$int$. \lstinline$fT()$ takes a 2781 \lstinline$T$ and returns a \lstinline$T$, for any type \lstinline$T$. 2752 ©fi()© takes an ©int© and returns an ©int©. ©fT()© takes a ©T© and returns a ©T©, for any type ©T©. 2782 2753 \begin{lstlisting} 2783 2754 int (*pfi )( int ) = fi; 2784 2755 forall( otype T ) T (*pfT )( T ) = fT; 2785 2756 \end{lstlisting} 2786 \lstinline$pfi$ and \lstinline$pfT$ are pointers to functions. \lstinline$pfT$is not polymorphic, but the function it points at is.2757 ©pfi© and ©pfT© are pointers to functions. ©pfT© is not polymorphic, but the function it points at is. 2787 2758 \begin{lstlisting} 2788 2759 int (*fvpfi( void ))( int ) { … … 2793 2764 } 2794 2765 \end{lstlisting} 2795 \lstinline$fvpfi()$ and \lstinline$fvpfT()$ are functions taking no arguments and returning pointers to functions. \lstinline$fvpfT()$is monomorphic, but the function that its return value points at is polymorphic.2766 ©fvpfi()© and ©fvpfT()© are functions taking no arguments and returning pointers to functions. ©fvpfT()© is monomorphic, but the function that its return value points at is polymorphic. 2796 2767 \begin{lstlisting} 2797 2768 forall( otype T ) int ( *fTpfi( T ) )( int ); … … 2799 2770 forall( otype T, otype U ) U ( *fTpfU( T ) )( U ); 2800 2771 \end{lstlisting} 2801 \lstinline$fTpfi()$ is a polymorphic function that returns a pointer to a monomorphic function taking an integer and returning an integer. 2802 It could return \lstinline$pfi$. \lstinline$fTpfT()$ is subtle: it is a polymorphic function returning a \emph{monomorphic} function taking and returning 2803 \lstinline$T$, where \lstinline$T$ is an inferred parameter of \lstinline$fTpfT()$. 2804 For instance, in the expression ``\lstinline$fTpfT(17)$'', \lstinline$T$ is inferred to be \lstinline$int$, and the returned value would have type \lstinline$int ( * )( int )$. ``\lstinline$fTpfT(17)(13)$'' and 2805 ``\lstinline$fTpfT("yes")("no")$'' are legal, but ``\lstinline$fTpfT(17)("no")$'' is illegal. 2806 \lstinline$fTpfU()$ is polymorphic ( in type \lstinline$T$), and returns a pointer to a function that is polymorphic ( in type \lstinline$U$). ``\lstinline$f5(17)("no")$'' is a legal expression of type 2807 \lstinline$char *$. 2772 ©fTpfi()© is a polymorphic function that returns a pointer to a monomorphic function taking an integer and returning an integer. 2773 It could return ©pfi©. ©fTpfT()© is subtle: it is a polymorphic function returning a \emph{monomorphic} function taking and returning 2774 ©T©, where ©T© is an inferred parameter of ©fTpfT()©. 2775 For instance, in the expression ``©fTpfT(17)©'', ©T© is inferred to be ©int©, and the returned value would have type ©int ( * )( int )©. ``©fTpfT(17)(13)©'' and ``©fTpfT("yes")("no")©'' are legal, but ``©fTpfT(17)("no")©'' is illegal. 2776 ©fTpfU()© is polymorphic ( in type ©T©), and returns a pointer to a function that is polymorphic ( in type ©U©). ``©f5(17)("no")©'' is a legal expression of type ©char *©. 2808 2777 \begin{lstlisting} 2809 2778 forall( otype T, otype U, otype V ) U * f( T *, U, V * const ); 2810 2779 forall( otype U, otype V, otype W ) U * g( V *, U, W * const ); 2811 2780 \end{lstlisting} 2812 The functions \lstinline$f()$ and \lstinline$g()$have compatible types.2781 The functions ©f()© and ©g()© have compatible types. 2813 2782 Let \(f\) and \(g\) be their types; 2814 then \(f_1\) = \lstinline$T$, \(f_2\) = \lstinline$U$, \(f_3\) = \lstinline$V$, \(g_1\)2815 = \lstinline$V$, \(g_2\) = \lstinline$U$, and \(g_3\) = \lstinline$W$.2783 then \(f_1\) = ©T©, \(f_2\) = ©U©, \(f_3\) = ©V©, \(g_1\) 2784 = ©V©, \(g_2\) = ©U©, and \(g_3\) = ©W©. 2816 2785 Replacing every \(f_i\) by \(g_i\) in \(f\) gives 2817 2786 \begin{lstlisting} … … 2819 2788 \end{lstlisting} which has a return type and parameter list that is compatible with \(g\). 2820 2789 \begin{rationale} 2821 The word `` \lstinline$type$'' in a forall specifier is redundant at the moment, but I want to leave room for inferred parameters of ordinary types in case parameterized types get added one day.2790 The word ``©type©'' in a forall specifier is redundant at the moment, but I want to leave room for inferred parameters of ordinary types in case parameterized types get added one day. 2822 2791 2823 2792 Even without parameterized types, I might try to allow … … 2845 2814 \subsection{Type qualifiers} 2846 2815 2847 \CFA defines a new type qualifier \lstinline$lvalue$\impl{lvalue}\index{lvalue}.2816 \CFA defines a new type qualifier ©lvalue©\impl{lvalue}\index{lvalue}. 2848 2817 \begin{syntax} 2849 2818 \oldlhs{type-qualifier} 2850 \rhs \lstinline$lvalue$2819 \rhs ©lvalue© 2851 2820 \end{syntax} 2852 2821 2853 2822 \constraints 2854 \ lstinline$restrict$\index{register@{\lstinline$restrict$}} Types other than type parameters and pointer types whose referenced type is an object type shall not be restrict-qualified.2823 \Indexc{restrict} Types other than type parameters and pointer types whose referenced type is an object type shall not be restrict-qualified. 2855 2824 2856 2825 \semantics 2857 An object's type may be a restrict-qualified type parameter. \lstinline$restrict$ does not establish any special semantics in that case. 2826 An object's type may be a restrict-qualified type parameter. 2827 ©restrict© does not establish any special semantics in that case. 2858 2828 2859 2829 \begin{rationale} … … 2861 2831 \end{rationale} 2862 2832 2863 \lstinline$lvalue$ may be used to qualify the return type of a function type. 2864 Let \lstinline$T$ be an unqualified version of a type; 2865 then the result of calling a function with return type 2866 \lstinline$lvalue T$ is a \Index{modifiable lvalue} of type \lstinline$T$. 2867 \lstinline$const$\use{const} and \lstinline$volatile$\use{volatile} qualifiers may also be added to indicate that the function result is a constant or volatile lvalue. 2868 \begin{rationale} 2869 The \lstinline$const$ and \lstinline$volatile$ qualifiers can only be sensibly used to qualify the return type of a function if the \lstinline$lvalue$ qualifier is also used. 2833 ©lvalue© may be used to qualify the return type of a function type. 2834 Let ©T© be an unqualified version of a type; 2835 then the result of calling a function with return type ©lvalue T© is a \Index{modifiable lvalue} of type ©T©. 2836 ©const©\use{const} and ©volatile©\use{volatile} qualifiers may also be added to indicate that the function result is a constant or volatile lvalue. 2837 \begin{rationale} 2838 The ©const© and ©volatile© qualifiers can only be sensibly used to qualify the return type of a function if the ©lvalue© qualifier is also used. 2870 2839 \end{rationale} 2871 2840 … … 2874 2843 2875 2844 \begin{rationale} 2876 \lstinline$lvalue$ provides some of the functionality of {\CC}'s ``\lstinline$T&$'' ( reference to object of type \lstinline$T$) type.2845 ©lvalue© provides some of the functionality of {\CC}'s ``©T&©'' ( reference to object of type ©T©) type. 2877 2846 Reference types have four uses in {\CC}. 2878 2847 \begin{itemize} 2879 2848 \item 2880 They are necessary for user-defined operators that return lvalues, such as ``subscript'' and 2881 ``dereference''. 2882 2883 \item 2884 A reference can be used to define an alias for a complicated lvalue expression, as a way of getting some of the functionality of the Pascal \lstinline$with$ statement. 2849 They are necessary for user-defined operators that return lvalues, such as ``subscript'' and ``dereference''. 2850 2851 \item 2852 A reference can be used to define an alias for a complicated lvalue expression, as a way of getting some of the functionality of the Pascal ©with© statement. 2885 2853 The following {\CC} code gives an example. 2886 2854 \begin{lstlisting} … … 2895 2863 A reference parameter can be used to allow a function to modify an argument without forcing the caller to pass the address of the argument. 2896 2864 This is most useful for user-defined assignment operators. 2897 In {\CC}, plain assignment is done by a function called `` \lstinline$operator=$'', and the two expressions2865 In {\CC}, plain assignment is done by a function called ``©operator=©'', and the two expressions 2898 2866 \begin{lstlisting} 2899 2867 a = b; 2900 2868 operator=( a, b ); 2901 2869 \end{lstlisting} are equivalent. 2902 If \lstinline$a$ and \lstinline$b$ are of type \lstinline$T$, then the first parameter of \lstinline$operator=$ must have type ``\lstinline$T&$''. 2903 It cannot have type 2904 \lstinline$T$, because then assignment couldn't alter the variable, and it can't have type 2905 ``\lstinline$T *$'', because the assignment would have to be written ``\lstinline$&a = b;$''. 2906 2907 In the case of user-defined operators, this could just as well be handled by using pointer types and by changing the rewrite rules so that ``\lstinline$a = b;$'' is equivalent to 2908 ``\lstinline$operator=(&( a), b )$''. 2909 Reference parameters of ``normal'' functions are Bad Things, because they remove a useful property of C function calls: an argument can only be modified by a function if it is preceded by ``\lstinline$&$''. 2870 If ©a© and ©b© are of type ©T©, then the first parameter of ©operator=© must have type ``©T&©''. 2871 It cannot have type ©T©, because then assignment couldn't alter the variable, and it can't have type ``©T *©'', because the assignment would have to be written ``©&a = b;©''. 2872 2873 In the case of user-defined operators, this could just as well be handled by using pointer types and by changing the rewrite rules so that ``©a = b;©'' is equivalent to ``©operator=(&( a), b )©''. 2874 Reference parameters of ``normal'' functions are Bad Things, because they remove a useful property of C function calls: an argument can only be modified by a function if it is preceded by ``©&©''. 2910 2875 2911 2876 \item 2912 2877 References to \Index{const-qualified} types can be used instead of value parameters. Given the 2913 {\CC} function call `` \lstinline$fiddle( a_thing )$'', where the type of \lstinline$a_thing$is2914 \lstinline$Thing$, the type of \lstinline$fiddle$could be either of2878 {\CC} function call ``©fiddle( a_thing )©'', where the type of ©a_thing© is 2879 ©Thing©, the type of ©fiddle© could be either of 2915 2880 \begin{lstlisting} 2916 2881 void fiddle( Thing ); 2917 2882 void fiddle( const Thing & ); 2918 2883 \end{lstlisting} 2919 If the second form is used, then constructors and destructors are not invoked to create a temporary variable at the call site ( and it is bad style for the caller to make any assumptions about such things), and within \lstinline$fiddle$the parameter is subject to the usual problems caused by aliases.2920 The reference form might be chosen for efficiency's sake if \lstinline$Thing$s are too large or their constructors or destructors are too expensive.2884 If the second form is used, then constructors and destructors are not invoked to create a temporary variable at the call site ( and it is bad style for the caller to make any assumptions about such things), and within ©fiddle© the parameter is subject to the usual problems caused by aliases. 2885 The reference form might be chosen for efficiency's sake if ©Thing©s are too large or their constructors or destructors are too expensive. 2921 2886 An implementation may switch between them without causing trouble for well-behaved clients. 2922 2887 This leaves the implementor to define ``too large'' and ``too expensive''. … … 2926 2891 void fiddle( const volatile Thing ); 2927 2892 \end{lstlisting} with call-by-reference. 2928 Since it knows all about the size of \lstinline$Thing$s and the parameter passing mechanism, it should be able to come up with a better definition of ``too large'', and may be able to make a good guess at ``too expensive''.2893 Since it knows all about the size of ©Thing©s and the parameter passing mechanism, it should be able to come up with a better definition of ``too large'', and may be able to make a good guess at ``too expensive''. 2929 2894 \end{itemize} 2930 2895 … … 2946 2911 \begin{syntax} 2947 2912 \lhs{spec-definition} 2948 \rhs \lstinline$spec$\nonterm{identifier}2949 \lstinline$($ \nonterm{type-parameter-list} \lstinline$)$2950 \lstinline${$ \nonterm{spec-declaration-list}\opt \lstinline$}$2913 \rhs ©spec© \nonterm{identifier} 2914 ©(© \nonterm{type-parameter-list} ©)© 2915 ©{© \nonterm{spec-declaration-list}\opt ©}© 2951 2916 \lhs{spec-declaration-list} 2952 \rhs \nonterm{spec-declaration} \lstinline$;$2953 \rhs \nonterm{spec-declaration-list} \nonterm{spec-declaration} \lstinline$;$2917 \rhs \nonterm{spec-declaration} ©;© 2918 \rhs \nonterm{spec-declaration-list} \nonterm{spec-declaration} ©;© 2954 2919 \lhs{spec-declaration} 2955 2920 \rhs \nonterm{specifier-qualifier-list} \nonterm{declarator-list} 2956 2921 \lhs{declarator-list} 2957 2922 \rhs \nonterm{declarator} 2958 \rhs \nonterm{declarator-list} \lstinline$,$\nonterm{declarator}2923 \rhs \nonterm{declarator-list} ©,© \nonterm{declarator} 2959 2924 \end{syntax} 2960 2925 \begin{rationale} … … 2978 2943 \rhs \nonterm{assertion-list} \nonterm{assertion} 2979 2944 \lhs{assertion} 2980 \rhs \lstinline$|$ \nonterm{identifier} \lstinline$($ \nonterm{type-name-list} \lstinline$)$2981 \rhs \lstinline$|$\nonterm{spec-declaration}2945 \rhs ©|© \nonterm{identifier} ©(© \nonterm{type-name-list} ©)© 2946 \rhs ©|© \nonterm{spec-declaration} 2982 2947 \lhs{type-name-list} 2983 2948 \rhs \nonterm{type-name} 2984 \rhs \nonterm{type-name-list} \lstinline$,$\nonterm{type-name}2949 \rhs \nonterm{type-name-list} ©,© \nonterm{type-name} 2985 2950 \end{syntax} 2986 2951 … … 2989 2954 The \nonterm{type-name-list} shall contain one \nonterm{type-name} argument for each \nonterm{type-parameter} in that specification's \nonterm{spec-parameter-list}. 2990 2955 If the 2991 \nonterm{type-parameter} uses type-class \lstinline$type$\use{type}, the argument shall be the type name of an \Index{object type};2992 if it uses \lstinline$dtype$, the argument shall be the type name of an object type or an \Index{incomplete type};2993 and if it uses \lstinline$ftype$, the argument shall be the type name of a \Index{function type}.2956 \nonterm{type-parameter} uses type-class ©type©\use{type}, the argument shall be the type name of an \Index{object type}; 2957 if it uses ©dtype©, the argument shall be the type name of an object type or an \Index{incomplete type}; 2958 and if it uses ©ftype©, the argument shall be the type name of a \Index{function type}. 2994 2959 2995 2960 \semantics 2996 An \define{assertion} is a declaration of a collection of objects and functions, called 2997 \define{assertion parameters}. 2961 An \define{assertion} is a declaration of a collection of objects and functions, called \define{assertion parameters}. 2998 2962 2999 2963 The assertion parameters produced by an assertion that applies the name of a specification to type arguments are found by taking the declarations specified in the specification and treating each of the specification's parameters as a synonym for the corresponding \nonterm{type-name} argument. … … 3004 2968 \examples 3005 2969 \begin{lstlisting} 3006 forall( otype T | T ?*?( T, T )) @\use{?*?}@3007 T square( T val ) { @\impl{square}@2970 forall( otype T | T ?*?( T, T ))§\use{?*?}§ 2971 T square( T val ) {§\impl{square}§ 3008 2972 return val + val; 3009 2973 } 3010 trait summable( otype T ) { @\impl{summable}@3011 T ?+=?( T *, T ); @\use{?+=?}@3012 const T 0; @\use{0}@2974 trait summable( otype T ) {§\impl{summable}§ 2975 T ?+=?( T *, T );§\use{?+=?}§ 2976 const T 0;§\use{0}§ 3013 2977 }; 3014 trait list_of( otype List, otype Element ) { @\impl{list_of}@2978 trait list_of( otype List, otype Element ) {§\impl{list_of}§ 3015 2979 Element car( List ); 3016 2980 List cdr( List ); … … 3021 2985 trait sum_list( otype List, otype Element | summable( Element ) | list_of( List, Element ) ) {}; 3022 2986 \end{lstlisting} 3023 \lstinline$sum_list$contains seven declarations, which describe a list whose elements can be added up.3024 The assertion `` \lstinline$|sum_list( i_list, int )$''\use{sum_list} produces the assertion parameters2987 ©sum_list© contains seven declarations, which describe a list whose elements can be added up. 2988 The assertion ``©|sum_list( i_list, int )©''\use{sum_list} produces the assertion parameters 3025 2989 \begin{lstlisting} 3026 2990 int ?+=?( int *, int ); … … 3039 3003 \lhs{type-parameter-list} 3040 3004 \rhs \nonterm{type-parameter} 3041 \rhs \nonterm{type-parameter-list} \lstinline$,$\nonterm{type-parameter}3005 \rhs \nonterm{type-parameter-list} ©,© \nonterm{type-parameter} 3042 3006 \lhs{type-parameter} 3043 3007 \rhs \nonterm{type-class} \nonterm{identifier} \nonterm{assertion-list}\opt 3044 3008 \lhs{type-class} 3045 \rhs \lstinline$type$3046 \rhs \lstinline$dtype$3047 \rhs \lstinline$ftype$3009 \rhs ©type© 3010 \rhs ©dtype© 3011 \rhs ©ftype© 3048 3012 \lhs{type-declaration} 3049 \rhs \nonterm{storage-class-specifier}\opt \lstinline$type$\nonterm{type-declarator-list} \verb|;|3013 \rhs \nonterm{storage-class-specifier}\opt ©type© \nonterm{type-declarator-list} \verb|;| 3050 3014 \lhs{type-declarator-list} 3051 3015 \rhs \nonterm{type-declarator} 3052 \rhs \nonterm{type-declarator-list} \lstinline$,$\nonterm{type-declarator}3016 \rhs \nonterm{type-declarator-list} ©,© \nonterm{type-declarator} 3053 3017 \lhs{type-declarator} 3054 \rhs \nonterm{identifier} \nonterm{assertion-list}\opt \lstinline$=$\nonterm{type-name}3018 \rhs \nonterm{identifier} \nonterm{assertion-list}\opt ©=© \nonterm{type-name} 3055 3019 \rhs \nonterm{identifier} \nonterm{assertion-list}\opt 3056 3020 \end{syntax} … … 3063 3027 3064 3028 An identifier declared by a \nonterm{type-parameter} has \Index{no linkage}. 3065 Identifiers declared with type-class \lstinline$type$\use{type} are \Index{object type}s; 3066 those declared with type-class 3067 \lstinline$dtype$\use{dtype} are \Index{incomplete type}s; 3068 and those declared with type-class 3069 \lstinline$ftype$\use{ftype} are \Index{function type}s. 3029 Identifiers declared with type-class ©type©\use{type} are \Index{object type}s; 3030 those declared with type-class ©dtype©\use{dtype} are \Index{incomplete type}s; 3031 and those declared with type-class ©ftype©\use{ftype} are \Index{function type}s. 3070 3032 The identifier has \Index{block scope} that terminates at the end of the \nonterm{spec-declaration-list} or polymorphic function that contains the \nonterm{type-parameter}. 3071 3033 … … 3075 3037 Within the scope of the declaration, \Index{implicit conversion}s can be performed between the defined type and the implementation type, and between pointers to the defined type and pointers to the implementation type. 3076 3038 3077 A type declaration without an \Index{initializer} and without a \Index{storage-class specifier} or with storage-class specifier \lstinline$static$\use{static} defines an \Index{incomplete type}. 3078 If a 3079 \Index{translation unit} or \Index{block} contains one or more such declarations for an identifier, it must contain exactly one definition of the identifier ( but not in an enclosed block, which would define a new type known only within that block). 3039 A type declaration without an \Index{initializer} and without a \Index{storage-class specifier} or with storage-class specifier ©static©\use{static} defines an \Index{incomplete type}. 3040 If a \Index{translation unit} or \Index{block} contains one or more such declarations for an identifier, it must contain exactly one definition of the identifier ( but not in an enclosed block, which would define a new type known only within that block). 3080 3041 \begin{rationale} 3081 3042 Incomplete type declarations allow compact mutually-recursive types. … … 3094 3055 \end{rationale} 3095 3056 3096 A type declaration without an initializer and with \Index{storage-class specifier} 3097 \lstinline$extern$\use{extern} is an \define{opaque type declaration}. 3098 Opaque types are 3099 \Index{object type}s. 3057 A type declaration without an initializer and with \Index{storage-class specifier} ©extern©\use{extern} is an \define{opaque type declaration}. 3058 Opaque types are \Index{object type}s. 3100 3059 An opaque type is not a \nonterm{constant-expression}; 3101 neither is a structure or union that has a member whose type is not a \nonterm{constant-expression}. Every other3102 \Index{object type} is a \nonterm{constant-expression}.3060 neither is a structure or union that has a member whose type is not a \nonterm{constant-expression}. 3061 Every other \Index{object type} is a \nonterm{constant-expression}. 3103 3062 Objects with static storage duration shall be declared with a type that is a \nonterm{constant-expression}. 3104 3063 \begin{rationale} … … 3110 3069 \end{rationale} 3111 3070 3112 An \Index{incomplete type} which is not a qualified version\index{qualified type} of a type is a value of \Index{type-class} \lstinline$dtype$. 3113 An object type\index{object types} which is not a qualified version of a type is a value of type-classes \lstinline$type$ and \lstinline$dtype$. 3114 A 3115 \Index{function type} is a value of type-class \lstinline$ftype$. 3071 An \Index{incomplete type} which is not a qualified version\index{qualified type} of a type is a value of \Index{type-class} ©dtype©. 3072 An object type\index{object types} which is not a qualified version of a type is a value of type-classes ©type© and ©dtype©. 3073 A \Index{function type} is a value of type-class ©ftype©. 3116 3074 \begin{rationale} 3117 3075 Syntactically, a type value is a \nonterm{type-name}, which is a declaration for an object which omits the identifier being declared. … … 3122 3080 3123 3081 Type qualifiers are a weak point of C's type system. 3124 Consider the standard library function 3125 \lstinline$strchr()$ which, given a string and a character, returns a pointer to the first occurrence of the character in the string. 3126 \begin{lstlisting} 3127 char *strchr( const char *s, int c ) {@\impl{strchr}@ 3082 Consider the standard library function ©strchr()© which, given a string and a character, returns a pointer to the first occurrence of the character in the string. 3083 \begin{lstlisting} 3084 char *strchr( const char *s, int c ) {§\impl{strchr}§ 3128 3085 char real_c = c; // done because c was declared as int. 3129 3086 for ( ; *s != real_c; s++ ) … … 3132 3089 } 3133 3090 \end{lstlisting} 3134 The parameter \lstinline$s$ must be \lstinline$const char *$, because \lstinline$strchr()$ might be used to search a constant string, but the return type must be \lstinline$char *$, because the result might be used to modify a non-constant string. 3135 Hence the body must perform a cast, and ( even worse) 3136 \lstinline$strchr()$ provides a type-safe way to attempt to modify constant strings. 3137 What is needed is some way to say that \lstinline$s$'s type might contain qualifiers, and the result type has exactly the same qualifiers. 3091 The parameter ©s© must be ©const char *©, because ©strchr()© might be used to search a constant string, but the return type must be ©char *©, because the result might be used to modify a non-constant string. 3092 Hence the body must perform a cast, and ( even worse) ©strchr()© provides a type-safe way to attempt to modify constant strings. 3093 What is needed is some way to say that ©s©'s type might contain qualifiers, and the result type has exactly the same qualifiers. 3138 3094 Polymorphic functions do not provide a fix for this deficiency\index{deficiencies!pointers to qualified types}, because type qualifiers are not part of type values. 3139 Instead, overloading can be used to define \lstinline$strchr()$for each combination of qualifiers.3095 Instead, overloading can be used to define ©strchr()© for each combination of qualifiers. 3140 3096 \end{rationale} 3141 3097 … … 3161 3117 }; 3162 3118 \end{lstlisting} 3163 Without this restriction, \CFA might require ``module initialization'' code ( since 3164 \lstinline$Rational$ has external linkage, it must be created before any other translation unit instantiates it), and would force an ordering on the initialization of the translation unit that defines \lstinline$Huge$ and the translation that declares \lstinline$Rational$. 3119 Without this restriction, \CFA might require ``module initialization'' code ( since ©Rational© has external linkage, it must be created before any other translation unit instantiates it), and would force an ordering on the initialization of the translation unit that defines ©Huge© and the translation that declares ©Rational©. 3165 3120 3166 3121 A benefit of the restriction is that it prevents the declaration in separate translation units of types that contain each other, which would be hard to prevent otherwise. … … 3168 3123 // File a.c: 3169 3124 extern type t1; 3170 type t2 = struct { t1 f1; ... } 3125 type t2 = struct { t1 f1; ... } // illegal 3171 3126 // File b.c: 3172 3127 extern type t2; 3173 type t1 = struct { t2 f2; ... } 3128 type t1 = struct { t2 f2; ... } // illegal 3174 3129 \end{lstlisting} 3175 3130 \end{rationale} … … 3179 3134 \nonterm{struct-declaration}, type declarations can not be structure members. 3180 3135 The form of 3181 \nonterm{type-declaration} forbids arrays of, pointers to, and functions returning \lstinline$type$.3136 \nonterm{type-declaration} forbids arrays of, pointers to, and functions returning ©type©. 3182 3137 Hence the syntax of \nonterm{type-specifier} does not have to be extended to allow type-valued expressions. 3183 3138 It also side-steps the problem of type-valued expressions producing different values in different declarations. … … 3194 3149 #include <stdlib.h> 3195 3150 T * new( otype T ) { return ( T * )malloc( sizeof( T) ); }; 3196 @\ldots@int * ip = new( int );3197 \end{lstlisting} 3198 This looks sensible, but \CFA's declaration-before-use rules mean that `` \lstinline$T$'' in the function body refers to the parameter, but the ``\lstinline$T$'' in the return type refers to the meaning of \lstinline$T$ in the scope that contains \lstinline$new$;3151 ... int * ip = new( int ); 3152 \end{lstlisting} 3153 This looks sensible, but \CFA's declaration-before-use rules mean that ``©T©'' in the function body refers to the parameter, but the ``©T©'' in the return type refers to the meaning of ©T© in the scope that contains ©new©; 3199 3154 it could be undefined, or a type name, or a function or variable name. 3200 3155 Nothing good can result from such a situation. … … 3213 3168 f2( v2 ); 3214 3169 \end{lstlisting} 3215 \lstinline$V1$ is passed by value, so \lstinline$f1()$'s assignment to \lstinline$a[0]$ does not modify v1. \lstinline$V2$ is converted to a pointer, so \lstinline$f2()$ modifies \lstinline$v2[0]$.3170 ©V1© is passed by value, so ©f1()©'s assignment to ©a[0]© does not modify v1. ©V2© is converted to a pointer, so ©f2()© modifies ©v2[0]©. 3216 3171 3217 3172 A translation unit containing the declarations 3218 3173 \begin{lstlisting} 3219 extern type Complex; @\use{Complex}@// opaque type declaration3220 extern float abs( Complex ); @\use{abs}@3221 \end{lstlisting} can contain declarations of complex numbers, which can be passed to \lstinline$abs$.3222 Some other translation unit must implement \lstinline$Complex$ and \lstinline$abs$.3174 extern type Complex;§\use{Complex}§ // opaque type declaration 3175 extern float abs( Complex );§\use{abs}§ 3176 \end{lstlisting} can contain declarations of complex numbers, which can be passed to ©abs©. 3177 Some other translation unit must implement ©Complex© and ©abs©. 3223 3178 That unit might contain the declarations 3224 3179 \begin{lstlisting} 3225 otype Complex = struct { float re, im; }; @\impl{Complex}@3226 Complex cplx_i = { 0.0, 1.0 }; @\impl{cplx_i}@3227 float abs( Complex c ) { @\impl{abs( Complex )}@3180 otype Complex = struct { float re, im; };§\impl{Complex}§ 3181 Complex cplx_i = { 0.0, 1.0 };§\impl{cplx_i}§ 3182 float abs( Complex c ) {§\impl{abs( Complex )}§ 3228 3183 return sqrt( c.re * c.re + c.im * c.im ); 3229 3184 } 3230 3185 \end{lstlisting} 3231 Note that \lstinline$c$ is implicitly converted to a \lstinline$struct$so that its components can be retrieved.3232 3233 \begin{lstlisting} 3234 otype Time_of_day = int; @\impl{Time_of_day}@// seconds since midnight.3235 Time_of_day ?+?( Time_of_day t1, int seconds ) { @\impl{?+?}@3186 Note that ©c© is implicitly converted to a ©struct© so that its components can be retrieved. 3187 3188 \begin{lstlisting} 3189 otype Time_of_day = int;§\impl{Time_of_day}§ // seconds since midnight. 3190 Time_of_day ?+?( Time_of_day t1, int seconds ) {§\impl{?+?}§ 3236 3191 return (( int)t1 + seconds ) % 86400; 3237 3192 } 3238 3193 \end{lstlisting} 3239 \lstinline$t1$must be cast to its implementation type to prevent infinite recursion.3194 ©t1© must be cast to its implementation type to prevent infinite recursion. 3240 3195 3241 3196 \begin{rationale} 3242 3197 Within the scope of a type definition, an instance of the type can be viewed as having that type or as having the implementation type. 3243 In the \lstinline$Time_of_day$example, the difference is important.3198 In the ©Time_of_day© example, the difference is important. 3244 3199 Different languages have treated the distinction between the abstraction and the implementation in different ways. 3245 3200 \begin{itemize} 3246 3201 \item 3247 3202 Inside a Clu cluster \cite{CLU}, the declaration of an instance states which view applies. 3248 Two primitives called \lstinline$up$ and \lstinline$down$can be used to convert between the views.3203 Two primitives called ©up© and ©down© can be used to convert between the views. 3249 3204 \item 3250 3205 The Simula class \cite{SIMULA87} is essentially a record type. 3251 3206 Since the only operations on a record are member selection and assignment, which can not be overloaded, there is never any ambiguity as to whether the abstraction or the implementation view is being used. 3252 3207 In {\CC} 3253 \cite{C++}, operations on class instances include assignment and `` \lstinline$&$'', which can be overloaded.3208 \cite{C++}, operations on class instances include assignment and ``©&©'', which can be overloaded. 3254 3209 A ``scope resolution'' operator can be used inside the class to specify whether the abstract or implementation version of the operation should be used. 3255 3210 \item … … 3264 3219 In this case, explicit conversions between the derived type and the old type can be used. 3265 3220 \end{itemize} 3266 \CFA's rules are like Clu's, except that implicit conversions and conversion costs allow it to do away with most uses of \lstinline$up$ and \lstinline$down$.3221 \CFA's rules are like Clu's, except that implicit conversions and conversion costs allow it to do away with most uses of ©up© and ©down©. 3267 3222 \end{rationale} 3268 3223 … … 3270 3225 \subsubsection{Default functions and objects} 3271 3226 3272 A declaration\index{type declaration} of a type identifier \lstinline$T$ with type-class 3273 \lstinline$type$ implicitly declares a \define{default assignment} function 3274 \lstinline$T ?=?( T *, T )$\use{?=?}, with the same \Index{scope} and \Index{linkage} as the identifier \lstinline$T$. 3227 A declaration\index{type declaration} of a type identifier ©T© with type-class ©type© implicitly declares a \define{default assignment} function ©T ?=?( T *, T )©\use{?=?}, with the same \Index{scope} and \Index{linkage} as the identifier ©T©. 3275 3228 \begin{rationale} 3276 3229 Assignment is central to C's imperative programming style, and every existing C object type has assignment defined for it ( except for array types, which are treated as pointer types for purposes of assignment). 3277 3230 Without this rule, nearly every inferred type parameter would need an accompanying assignment assertion parameter. 3278 If a type parameter should not have an assignment operation, 3279 \lstinline$dtype$ should be used. 3231 If a type parameter should not have an assignment operation, ©dtype© should be used. 3280 3232 If a type should not have assignment defined, the user can define an assignment function that causes a run-time error, or provide an external declaration but no definition and thus cause a link-time error. 3281 3233 \end{rationale} 3282 3234 3283 A definition\index{type definition} of a type identifier \lstinline$T$ with \Index{implementation type} \lstinline$I$ and type-class \lstinline$type$ implicitly defines a default assignment function. 3284 A definition\index{type definition} of a type identifier \lstinline$T$ with implementation type \lstinline$I$ and an assertion list implicitly defines \define{default function}s and 3285 \define{default object}s as declared by the assertion declarations. 3286 The default objects and functions have the same \Index{scope} and \Index{linkage} as the identifier \lstinline$T$. 3235 A definition\index{type definition} of a type identifier ©T© with \Index{implementation type} ©I© and type-class ©type© implicitly defines a default assignment function. 3236 A definition\index{type definition} of a type identifier ©T© with implementation type ©I© and an assertion list implicitly defines \define{default function}s and \define{default object}s as declared by the assertion declarations. 3237 The default objects and functions have the same \Index{scope} and \Index{linkage} as the identifier ©T©. 3287 3238 Their values are determined as follows: 3288 3239 \begin{itemize} 3289 3240 \item 3290 If at the definition of \lstinline$T$ there is visible a declaration of an object with the same name as the default object, and if the type of that object with all occurrence of \lstinline$I$ replaced by \lstinline$T$is compatible with the type of the default object, then the default object is initialized with that object.3291 Otherwise the scope of the declaration of \lstinline$T$must contain a definition of the default object.3241 If at the definition of ©T© there is visible a declaration of an object with the same name as the default object, and if the type of that object with all occurrence of ©I© replaced by ©T© is compatible with the type of the default object, then the default object is initialized with that object. 3242 Otherwise the scope of the declaration of ©T© must contain a definition of the default object. 3292 3243 3293 3244 \item 3294 If at the definition of \lstinline$T$ there is visible a declaration of a function with the same name as the default function, and if the type of that function with all occurrence of \lstinline$I$ replaced by \lstinline$T$is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the converted result.3295 3296 Otherwise, if \lstinline$I$ contains exactly one anonymous member\index{anonymous member} such that at the definition of \lstinline$T$ there is visible a declaration of a function with the same name as the default function, and the type of that function with all occurrences of the anonymous member's type in its parameter list replaced by \lstinline$T$is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the result.3297 3298 Otherwise the scope of the declaration of \lstinline$T$must contain a definition of the default function.3245 If at the definition of ©T© there is visible a declaration of a function with the same name as the default function, and if the type of that function with all occurrence of ©I© replaced by ©T© is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the converted result. 3246 3247 Otherwise, if ©I© contains exactly one anonymous member\index{anonymous member} such that at the definition of ©T© there is visible a declaration of a function with the same name as the default function, and the type of that function with all occurrences of the anonymous member's type in its parameter list replaced by ©T© is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the result. 3248 3249 Otherwise the scope of the declaration of ©T© must contain a definition of the default function. 3299 3250 \end{itemize} 3300 3251 \begin{rationale} … … 3302 3253 \end{rationale} 3303 3254 3304 A function or object with the same type and name as a default function or object that is declared within the scope of the definition of \lstinline$T$replaces the default function or object.3255 A function or object with the same type and name as a default function or object that is declared within the scope of the definition of ©T© replaces the default function or object. 3305 3256 3306 3257 \examples … … 3312 3263 Pair b = { 1, 1 }; 3313 3264 \end{lstlisting} 3314 The definition of \lstinline$Pair$ implicitly defines two objects \lstinline$a$ and \lstinline$b$. 3315 \lstinline$Pair a$ inherits its value from the \lstinline$struct impl a$. 3316 The definition of 3317 \lstinline$Pair b$ is compulsory because there is no \lstinline$struct impl b$ to construct a value from. 3265 The definition of ©Pair© implicitly defines two objects ©a© and ©b©. 3266 ©Pair a© inherits its value from the ©struct impl a©. 3267 The definition of ©Pair b© is compulsory because there is no ©struct impl b© to construct a value from. 3318 3268 \begin{lstlisting} 3319 3269 trait ss( otype T ) { … … 3321 3271 void munge( T * ); 3322 3272 } 3323 otype Whatsit | ss( Whatsit ); @\use{Whatsit}@3324 otype Doodad | ss( Doodad ) = struct doodad { @\use{Doodad}@3273 otype Whatsit | ss( Whatsit );§\use{Whatsit}§ 3274 otype Doodad | ss( Doodad ) = struct doodad {§\use{Doodad}§ 3325 3275 Whatsit; // anonymous member 3326 3276 int extra; … … 3328 3278 Doodad clone( Doodad ) { ... } 3329 3279 \end{lstlisting} 3330 The definition of \lstinline$Doodad$implicitly defines three functions:3280 The definition of ©Doodad© implicitly defines three functions: 3331 3281 \begin{lstlisting} 3332 3282 Doodad ?=?( Doodad *, Doodad ); … … 3334 3284 void munge( Doodad * ); 3335 3285 \end{lstlisting} 3336 The assignment function inherits \lstinline$struct doodad$'s assignment function because the types match when \lstinline$struct doodad$ is replaced by \lstinline$Doodad$ throughout. 3337 \lstinline$munge()$ inherits \lstinline$Whatsit$'s \lstinline$munge()$ because the types match when 3338 \lstinline$Whatsit$ is replaced by \lstinline$Doodad$ in the parameter list. \lstinline$clone()$ does \emph{not} inherit \lstinline$Whatsit$'s \lstinline$clone()$: replacement in the parameter list yields ``\lstinline$Whatsit clone( Doodad )$'', which is not compatible with 3339 \lstinline$Doodad$'s \lstinline$clone()$'s type. 3340 Hence the definition of 3341 ``\lstinline$Doodad clone( Doodad )$'' is necessary. 3286 The assignment function inherits ©struct doodad©'s assignment function because the types match when ©struct doodad© is replaced by ©Doodad© throughout. 3287 ©munge()© inherits ©Whatsit©'s ©munge()© because the types match when ©Whatsit© is replaced by ©Doodad© in the parameter list. ©clone()© does \emph{not} inherit ©Whatsit©'s ©clone()©: replacement in the parameter list yields ``©Whatsit clone( Doodad )©'', which is not compatible with ©Doodad©'s ©clone()©'s type. 3288 Hence the definition of ``©Doodad clone( Doodad )©'' is necessary. 3342 3289 3343 3290 Default functions and objects are subject to the normal scope rules. 3344 3291 \begin{lstlisting} 3345 otype T = @\ldots@;3346 T a_T = @\ldots@; // Default assignment used.3292 otype T = ...; 3293 T a_T = ...; // Default assignment used. 3347 3294 T ?=?( T *, T ); 3348 T a_T = @\ldots@; // Programmer-defined assignment called.3295 T a_T = ...; // Programmer-defined assignment called. 3349 3296 \end{lstlisting} 3350 3297 \begin{rationale} … … 3379 3326 \begin{syntax} 3380 3327 \oldlhs{labeled-statement} 3381 \rhs \lstinline$case$\nonterm{case-value-list} : \nonterm{statement}3328 \rhs ©case© \nonterm{case-value-list} : \nonterm{statement} 3382 3329 \lhs{case-value-list} 3383 3330 \rhs \nonterm{case-value} 3384 \rhs \nonterm{case-value-list} \lstinline$,$\nonterm{case-value}3331 \rhs \nonterm{case-value-list} ©,© \nonterm{case-value} 3385 3332 \lhs{case-value} 3386 3333 \rhs \nonterm{constant-expression} 3387 3334 \rhs \nonterm{subrange} 3388 3335 \lhs{subrange} 3389 \rhs \nonterm{constant-expression} \lstinline$~$\nonterm{constant-expression}3336 \rhs \nonterm{constant-expression} ©~© \nonterm{constant-expression} 3390 3337 \end{syntax} 3391 3338 … … 3400 3347 case 1~4, 9~14, 27~32: 3401 3348 \end{lstlisting} 3402 The \lstinline$case$ and \lstinline$default$ clauses are restricted within the \lstinline$switch$ and \lstinline$choose$statements, precluding Duff's device.3349 The ©case© and ©default© clauses are restricted within the ©switch© and ©choose© statements, precluding Duff's device. 3403 3350 3404 3351 3405 3352 \subsection{Expression and null statements} 3406 3353 3407 The expression in an expression statement is treated as being cast to \lstinline$void$.3354 The expression in an expression statement is treated as being cast to ©void©. 3408 3355 3409 3356 … … 3412 3359 \begin{syntax} 3413 3360 \oldlhs{selection-statement} 3414 \rhs \lstinline$choose$ \lstinline$($ \nonterm{expression} \lstinline$)$\nonterm{statement}3361 \rhs ©choose© ©(© \nonterm{expression} ©)© \nonterm{statement} 3415 3362 \end{syntax} 3416 3363 3417 The controlling expression \lstinline$E$ in the \lstinline$switch$ and \lstinline$choose$statement:3364 The controlling expression ©E© in the ©switch© and ©choose© statement: 3418 3365 \begin{lstlisting} 3419 3366 switch ( E ) ... … … 3421 3368 \end{lstlisting} may have more than one interpretation, but it shall have only one interpretation with an integral type. 3422 3369 An \Index{integer promotion} is performed on the expression if necessary. 3423 The constant expressions in \lstinline$case$statements with the switch are converted to the promoted type.3370 The constant expressions in ©case© statements with the switch are converted to the promoted type. 3424 3371 3425 3372 3426 3373 \setcounter{subsubsection}{3} 3427 \subsubsection {The \lstinline$choose$statement}3428 3429 The \lstinline$choose$ statement is the same as the \lstinline$switch$ statement except control transfers to the end of the \lstinline$choose$ statement at a \lstinline$case$ or \lstinline$default$labeled statement.3430 The \lstinline$fallthru$ statement is used to fall through to the next \lstinline$case$ or \lstinline$default$labeled statement.3374 \subsubsection[The choose statement]{The \lstinline@choose@ statement} 3375 3376 The ©choose© statement is the same as the ©switch© statement except control transfers to the end of the ©choose© statement at a ©case© or ©default© labeled statement. 3377 The ©fallthru© statement is used to fall through to the next ©case© or ©default© labeled statement. 3431 3378 The following have identical meaning: 3432 3379 \begin{flushleft} … … 3453 3400 \end{tabular} 3454 3401 \end{flushleft} 3455 The \lstinline$choose$ statement addresses the problem of accidental fall-through associated with the \lstinline$switch$statement.3402 The ©choose© statement addresses the problem of accidental fall-through associated with the ©switch© statement. 3456 3403 3457 3404 3458 3405 \subsection{Iteration statements} 3459 3406 3460 The controlling expression \lstinline$E$in the loops3407 The controlling expression ©E© in the loops 3461 3408 \begin{lstlisting} 3462 3409 if ( E ) ... 3463 3410 while ( E ) ... 3464 3411 do ... while ( E ); 3465 \end{lstlisting} is treated as ``\lstinline$( int )((E)!=0)$''. 3412 \end{lstlisting} 3413 is treated as ``©( int )((E)!=0)©''. 3466 3414 3467 3415 The statement 3468 3416 \begin{lstlisting} 3469 for ( a; b; c ) @\ldots@3417 for ( a; b; c ) ... 3470 3418 \end{lstlisting} is treated as 3471 3419 \begin{lstlisting} … … 3478 3426 \begin{syntax} 3479 3427 \oldlhs{jump-statement} 3480 \rhs \lstinline$continue$\nonterm{identifier}\opt3481 \rhs \lstinline$break$\nonterm{identifier}\opt3428 \rhs ©continue© \nonterm{identifier}\opt 3429 \rhs ©break© \nonterm{identifier}\opt 3482 3430 \rhs \ldots 3483 \rhs \lstinline$throw$\nonterm{assignment-expression}\opt3484 \rhs \lstinline$throwResume$\nonterm{assignment-expression}\opt \nonterm{at-expression}\opt3485 \lhs{at-expression} \lstinline$_At$\nonterm{assignment-expression}3431 \rhs ©throw© \nonterm{assignment-expression}\opt 3432 \rhs ©throwResume© \nonterm{assignment-expression}\opt \nonterm{at-expression}\opt 3433 \lhs{at-expression} ©_At© \nonterm{assignment-expression} 3486 3434 \end{syntax} 3487 3435 3488 Labeled \lstinline$continue$ and \lstinline$break$ allow useful but restricted control-flow that reduces the need for the \lstinline$goto$statement for exiting multiple nested control-structures.3436 Labeled ©continue© and ©break© allow useful but restricted control-flow that reduces the need for the ©goto© statement for exiting multiple nested control-structures. 3489 3437 \begin{lstlisting} 3490 3438 L1: { // compound … … 3513 3461 3514 3462 \setcounter{subsubsection}{1} 3515 \subsubsection {The \lstinline$continue$statement}3516 3517 The identifier in a \lstinline$continue$statement shall name a label located on an enclosing iteration statement.3518 3519 3520 \subsubsection {The \lstinline$break$statement}3521 3522 The identifier in a \lstinline$break$statement shall name a label located on an enclosing compound, selection or iteration statement.3523 3524 3525 \subsubsection {The \lstinline$return$statement}3526 3527 An expression in a \lstinline$return$statement is treated as being cast to the result type of the function.3528 3529 3530 \subsubsection {The \lstinline$throw$statement}3463 \subsubsection[The continue statement]{The \lstinline@continue@ statement} 3464 3465 The identifier in a ©continue© statement shall name a label located on an enclosing iteration statement. 3466 3467 3468 \subsubsection[The break statement]{The \lstinline@break@ statement} 3469 3470 The identifier in a ©break© statement shall name a label located on an enclosing compound, selection or iteration statement. 3471 3472 3473 \subsubsection[The return statement]{The \lstinline@return@ statement} 3474 3475 An expression in a ©return© statement is treated as being cast to the result type of the function. 3476 3477 3478 \subsubsection[The throw statement]{The \lstinline@throw@ statement} 3531 3479 3532 3480 When an exception is raised, \Index{propagation} directs control from a raise in the source execution to a handler in the faulting execution. 3533 3481 3534 3482 3535 \subsubsection {The \lstinline$throwResume$statement}3483 \subsubsection[The throwResume statement]{The \lstinline@throwResume@ statement} 3536 3484 3537 3485 … … 3540 3488 \begin{syntax} 3541 3489 \lhs{exception-statement} 3542 \rhs \lstinline$try$\nonterm{compound-statement} \nonterm{handler-list}3543 \rhs \lstinline$try$\nonterm{compound-statement} \nonterm{finally-clause}3544 \rhs \lstinline$try$\nonterm{compound-statement} \nonterm{handler-list} \nonterm{finally-clause}3490 \rhs ©try© \nonterm{compound-statement} \nonterm{handler-list} 3491 \rhs ©try© \nonterm{compound-statement} \nonterm{finally-clause} 3492 \rhs ©try© \nonterm{compound-statement} \nonterm{handler-list} \nonterm{finally-clause} 3545 3493 \lhs{handler-list} 3546 3494 \rhs \nonterm{handler-clause} 3547 \rhs \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$\nonterm{compound-statement}3548 \rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$\nonterm{compound-statement}3549 \rhs \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$\nonterm{compound-statement}3550 \rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$\nonterm{compound-statement}3495 \rhs ©catch© ©(© \ldots ©)© \nonterm{compound-statement} 3496 \rhs \nonterm{handler-clause} ©catch© ©(© \ldots ©)© \nonterm{compound-statement} 3497 \rhs ©catchResume© ©(© \ldots ©)© \nonterm{compound-statement} 3498 \rhs \nonterm{handler-clause} ©catchResume© ©(© \ldots ©)© \nonterm{compound-statement} 3551 3499 \lhs{handler-clause} 3552 \rhs \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$\nonterm{compound-statement}3553 \rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$\nonterm{compound-statement}3554 \rhs \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$\nonterm{compound-statement}3555 \rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$\nonterm{compound-statement}3500 \rhs ©catch© ©(© \nonterm{exception-declaration} ©)© \nonterm{compound-statement} 3501 \rhs \nonterm{handler-clause} ©catch© ©(© \nonterm{exception-declaration} ©)© \nonterm{compound-statement} 3502 \rhs ©catchResume© ©(© \nonterm{exception-declaration} ©)© \nonterm{compound-statement} 3503 \rhs \nonterm{handler-clause} ©catchResume© ©(© \nonterm{exception-declaration} ©)© \nonterm{compound-statement} 3556 3504 \lhs{finally-clause} 3557 \rhs \lstinline$finally$\nonterm{compound-statement}3505 \rhs ©finally© \nonterm{compound-statement} 3558 3506 \lhs{exception-declaration} 3559 3507 \rhs \nonterm{type-specifier} … … 3563 3511 \rhs \nonterm{new-abstract-declarator-tuple} 3564 3512 \lhs{asynchronous-statement} 3565 \rhs \lstinline$enable$\nonterm{identifier-list} \nonterm{compound-statement}3566 \rhs \lstinline$disable$\nonterm{identifier-list} \nonterm{compound-statement}3513 \rhs ©enable© \nonterm{identifier-list} \nonterm{compound-statement} 3514 \rhs ©disable© \nonterm{identifier-list} \nonterm{compound-statement} 3567 3515 \end{syntax} 3568 3516 … … 3570 3518 3571 3519 3572 \subsubsection {The \lstinline$try$statement}3573 3574 The \lstinline$try$statement is a block with associated handlers, called a \Index{guarded block};3520 \subsubsection[The try statement]{The \lstinline@try@ statement} 3521 3522 The ©try© statement is a block with associated handlers, called a \Index{guarded block}; 3575 3523 all other blocks are \Index{unguarded block}s. 3576 A \lstinline$goto$, \lstinline$break$, \lstinline$return$, or \lstinline$continue$statement can be used to transfer control out of a try block or handler, but not into one.3577 3578 3579 \subsubsection {The \lstinline$enable$/\lstinline$disable$statements}3580 3581 The \lstinline$enable$/\lstinline$disable$statements toggle delivery of \Index{asynchronous exception}s.3524 A ©goto©, ©break©, ©return©, or ©continue© statement can be used to transfer control out of a try block or handler, but not into one. 3525 3526 3527 \subsubsection[The enable/disable statements]{The \lstinline@enable@/\lstinline@disable@ statements} 3528 3529 The ©enable©/©disable© statements toggle delivery of \Index{asynchronous exception}s. 3582 3530 3583 3531 … … 3589 3537 \subsection{Predefined macro names} 3590 3538 3591 The implementation shall define the macro names \lstinline$__LINE__$, \lstinline$__FILE__$, 3592 \lstinline$__DATE__$, and \lstinline$__TIME__$, as in the {\c11} standard. 3593 It shall not define the macro name \lstinline$__STDC__$. 3594 3595 In addition, the implementation shall define the macro name \lstinline$__CFORALL__$ to be the decimal constant 1. 3539 The implementation shall define the macro names ©__LINE__©, ©__FILE__©, ©__DATE__©, and ©__TIME__©, as in the {\c11} standard. 3540 It shall not define the macro name ©__STDC__©. 3541 3542 In addition, the implementation shall define the macro name ©__CFORALL__© to be the decimal constant 1. 3596 3543 3597 3544 … … 3610 3557 The pointer, integral, and floating-point types are all \define{scalar types}. 3611 3558 All of these types can be logically negated and compared. 3612 The assertion `` \lstinline$scalar( Complex )$'' should be read as ``type \lstinline$Complex$is scalar''.3613 \begin{lstlisting} 3614 trait scalar( otype T ) { @\impl{scalar}@3559 The assertion ``©scalar( Complex )©'' should be read as ``type ©Complex© is scalar''. 3560 \begin{lstlisting} 3561 trait scalar( otype T ) {§\impl{scalar}§ 3615 3562 int !?( T ); 3616 3563 int ?<?( T, T ), ?<=?( T, T ), ?==?( T, T ), ?>=?( T, T ), ?>?( T, T ), ?!=?( T, T ); … … 3622 3569 This is equivalent to inheritance of specifications. 3623 3570 \begin{lstlisting} 3624 trait arithmetic( otype T | scalar( T ) ) { @\impl{arithmetic}@@\use{scalar}@3571 trait arithmetic( otype T | scalar( T ) ) {§\impl{arithmetic}§§\use{scalar}§ 3625 3572 T +?( T ), -?( T ); 3626 3573 T ?*?( T, T ), ?/?( T, T ), ?+?( T, T ), ?-?( T, T ); … … 3628 3575 \end{lstlisting} 3629 3576 3630 The various flavors of \lstinline$char$ and \lstinline$int$ and the enumerated types make up the 3631 \define{integral types}. 3632 \begin{lstlisting} 3633 trait integral( otype T | arithmetic( T ) ) {@\impl{integral}@@\use{arithmetic}@ 3577 The various flavors of ©char© and ©int© and the enumerated types make up the \define{integral types}. 3578 \begin{lstlisting} 3579 trait integral( otype T | arithmetic( T ) ) {§\impl{integral}§§\use{arithmetic}§ 3634 3580 T ~?( T ); 3635 3581 T ?&?( T, T ), ?|?( T, T ), ?^?( T, T ); … … 3645 3591 The only operation that can be applied to all modifiable lvalues is simple assignment. 3646 3592 \begin{lstlisting} 3647 trait m_lvalue( otype T ) { @\impl{m_lvalue}@3593 trait m_lvalue( otype T ) {§\impl{m_lvalue}§ 3648 3594 T ?=?( T *, T ); 3649 3595 }; … … 3655 3601 Scalars can also be incremented and decremented. 3656 3602 \begin{lstlisting} 3657 trait m_l_scalar( otype T | scalar( T ) | m_lvalue( T ) ) { @\impl{m_l_scalar}@3658 T ?++( T * ), ?--( T * ); @\use{scalar}@@\use{m_lvalue}@3603 trait m_l_scalar( otype T | scalar( T ) | m_lvalue( T ) ) {§\impl{m_l_scalar}§ 3604 T ?++( T * ), ?--( T * );§\use{scalar}§§\use{m_lvalue}§ 3659 3605 T ++?( T * ), --?( T * ); 3660 3606 }; … … 3662 3608 3663 3609 Modifiable arithmetic lvalues are both modifiable scalar lvalues and arithmetic. 3664 Note that this results in the ``inheritance'' of \lstinline$scalar$along both paths.3665 \begin{lstlisting} 3666 trait m_l_arithmetic( otype T | m_l_scalar( T ) | arithmetic( T ) ) { @\impl{m_l_arithmetic}@3667 T ?/=?( T *, T ), ?*=?( T *, T ); @\use{m_l_scalar}@@\use{arithmetic}@3610 Note that this results in the ``inheritance'' of ©scalar© along both paths. 3611 \begin{lstlisting} 3612 trait m_l_arithmetic( otype T | m_l_scalar( T ) | arithmetic( T ) ) {§\impl{m_l_arithmetic}§ 3613 T ?/=?( T *, T ), ?*=?( T *, T );§\use{m_l_scalar}§§\use{arithmetic}§ 3668 3614 T ?+=?( T *, T ), ?-=?( T *, T ); 3669 3615 }; 3670 trait m_l_integral( otype T | m_l_arithmetic( T ) | integral( T ) ) { @\impl{m_l_integral}@3671 T ?&=?( T *, T ), ?|=?( T *, T ), ?^=?( T *, T ); @\use{m_l_arithmetic}@3672 T ?%=?( T *, T ), ?<<=?( T *, T ), ?>>=?( T *, T ); @\use{integral}@3616 trait m_l_integral( otype T | m_l_arithmetic( T ) | integral( T ) ) {§\impl{m_l_integral}§ 3617 T ?&=?( T *, T ), ?|=?( T *, T ), ?^=?( T *, T );§\use{m_l_arithmetic}§ 3618 T ?%=?( T *, T ), ?<<=?( T *, T ), ?>>=?( T *, T );§\use{integral}§ 3673 3619 }; 3674 3620 \end{lstlisting} … … 3677 3623 \subsection{Pointer and array types} 3678 3624 3679 Array types can barely be said to exist in {\c11}, since in most cases an array name is treated as a constant pointer to the first element of the array, and the subscript expression 3680 ``\lstinline$a[i]$'' is equivalent to the dereferencing expression ``\lstinline$(*( a+( i )))$''. 3681 Technically, pointer arithmetic and pointer comparisons other than ``\lstinline$==$'' and 3682 ``\lstinline$!=$'' are only defined for pointers to array elements, but the type system does not enforce those restrictions. 3625 Array types can barely be said to exist in {\c11}, since in most cases an array name is treated as a constant pointer to the first element of the array, and the subscript expression ``©a[i]©'' is equivalent to the dereferencing expression ``©(*( a+( i )))©''. 3626 Technically, pointer arithmetic and pointer comparisons other than ``©==©'' and ``©!=©'' are only defined for pointers to array elements, but the type system does not enforce those restrictions. 3683 3627 Consequently, there is no need for a separate ``array type'' specification. 3684 3628 3685 3629 Pointer types are scalar types. 3686 Like other scalar types, they have ``\lstinline$+$'' and 3687 ``\lstinline$-$'' operators, but the types do not match the types of the operations in 3688 \lstinline$arithmetic$, so these operators cannot be consolidated in \lstinline$scalar$. 3689 \begin{lstlisting} 3690 trait pointer( type P | scalar( P ) ) {@\impl{pointer}@@\use{scalar}@ 3630 Like other scalar types, they have ``©+©'' and ``©-©'' operators, but the types do not match the types of the operations in ©arithmetic©, so these operators cannot be consolidated in ©scalar©. 3631 \begin{lstlisting} 3632 trait pointer( type P | scalar( P ) ) {§\impl{pointer}§§\use{scalar}§ 3691 3633 P ?+?( P, long int ), ?+?( long int, P ), ?-?( P, long int ); 3692 3634 ptrdiff_t ?-?( P, P ); 3693 3635 }; 3694 trait m_l_pointer( type P | pointer( P ) | m_l_scalar( P ) ) { @\impl{m_l_pointer}@3636 trait m_l_pointer( type P | pointer( P ) | m_l_scalar( P ) ) {§\impl{m_l_pointer}§ 3695 3637 P ?+=?( P *, long int ), ?-=?( P *, long int ); 3696 3638 P ?=?( P *, void * ); … … 3701 3643 Specifications that define the dereference operator ( or subscript operator ) require two parameters, one for the pointer type and one for the pointed-at ( or element ) type. 3702 3644 Different specifications are needed for each set of \Index{type qualifier}s, because qualifiers are not included in types. 3703 The assertion ``\lstinline$|ptr_to( Safe_pointer, int )$'' should be read as 3704 ``\lstinline$Safe_pointer$ acts like a pointer to \lstinline$int$''. 3705 \begin{lstlisting} 3706 trait ptr_to( otype P | pointer( P ), otype T ) {@\impl{ptr_to}@@\use{pointer}@ 3645 The assertion ``©|ptr_to( Safe_pointer, int )©'' should be read as ``©Safe_pointer© acts like a pointer to ©int©''. 3646 \begin{lstlisting} 3647 trait ptr_to( otype P | pointer( P ), otype T ) {§\impl{ptr_to}§§\use{pointer}§ 3707 3648 lvalue T *?( P ); 3708 3649 lvalue T ?[?]( P, long int ); 3709 3650 }; 3710 trait ptr_to_const( otype P | pointer( P ), otype T ) { @\impl{ptr_to_const}@3651 trait ptr_to_const( otype P | pointer( P ), otype T ) {§\impl{ptr_to_const}§ 3711 3652 const lvalue T *?( P ); 3712 const lvalue T ?[?]( P, long int ); @\use{pointer}@3653 const lvalue T ?[?]( P, long int );§\use{pointer}§ 3713 3654 }; 3714 trait ptr_to_volatile( otype P | pointer( P ), otype T ) } @\impl{ptr_to_volatile}@3655 trait ptr_to_volatile( otype P | pointer( P ), otype T ) }§\impl{ptr_to_volatile}§ 3715 3656 volatile lvalue T *?( P ); 3716 volatile lvalue T ?[?]( P, long int ); @\use{pointer}@3657 volatile lvalue T ?[?]( P, long int );§\use{pointer}§ 3717 3658 }; 3718 trait ptr_to_const_volatile( otype P | pointer( P ), otype T ) } @\impl{ptr_to_const_volatile}@3719 const volatile lvalue T *?( P ); @\use{pointer}@3659 trait ptr_to_const_volatile( otype P | pointer( P ), otype T ) }§\impl{ptr_to_const_volatile}§ 3660 const volatile lvalue T *?( P );§\use{pointer}§ 3720 3661 const volatile lvalue T ?[?]( P, long int ); 3721 3662 }; 3722 3663 \end{lstlisting} 3723 3664 3724 Assignment to pointers is more complicated than is the case with other types, because the target's type can have extra type qualifiers in the pointed-at type: a ``\lstinline$T *$'' can be assigned to a ``\lstinline$const T *$'', a ``\lstinline$volatile T *$'', and a ``\lstinline$const volatile T *$''. 3725 Again, the pointed-at type is passed in, so that assertions can connect these specifications to the 3726 ``\lstinline$ptr_to$'' specifications. 3727 \begin{lstlisting} 3728 trait m_l_ptr_to( otype P | m_l_pointer( P ),@\use{m_l_pointer}@@\impl{m_l_ptr_to}@ otype T | ptr_to( P, T )@\use{ptr_to}@ { 3665 Assignment to pointers is more complicated than is the case with other types, because the target's type can have extra type qualifiers in the pointed-at type: a ``©T *©'' can be assigned to a ``©const T *©'', a ``©volatile T *©'', and a ``©const volatile T *©''. 3666 Again, the pointed-at type is passed in, so that assertions can connect these specifications to the ``©ptr_to©'' specifications. 3667 \begin{lstlisting} 3668 trait m_l_ptr_to( otype P | m_l_pointer( P ),§\use{m_l_pointer}§§\impl{m_l_ptr_to}§ otype T | ptr_to( P, T )§\use{ptr_to}§ { 3729 3669 P ?=?( P *, T * ); 3730 3670 T * ?=?( T **, P ); 3731 3671 }; 3732 trait m_l_ptr_to_const( otype P | m_l_pointer( P ), @\use{m_l_pointer}@@\impl{m_l_ptr_to_const}@ otype T | ptr_to_const( P, T )@\use{ptr_to_const}@) {3672 trait m_l_ptr_to_const( otype P | m_l_pointer( P ),§\use{m_l_pointer}§§\impl{m_l_ptr_to_const}§ otype T | ptr_to_const( P, T )§\use{ptr_to_const}§) { 3733 3673 P ?=?( P *, const T * ); 3734 3674 const T * ?=?( const T **, P ); 3735 3675 }; 3736 trait m_l_ptr_to_volatile( otype P | m_l_pointer( P ), @\use{m_l_pointer}@@\impl{m_l_ptr_to_volatile}@ otype T | ptr_to_volatile( P, T )) {@\use{ptr_to_volatile}@3676 trait m_l_ptr_to_volatile( otype P | m_l_pointer( P ),§\use{m_l_pointer}§§\impl{m_l_ptr_to_volatile}§ otype T | ptr_to_volatile( P, T )) {§\use{ptr_to_volatile}§ 3737 3677 P ?=?( P *, volatile T * ); 3738 3678 volatile T * ?=?( volatile T **, P ); 3739 3679 }; 3740 trait m_l_ptr_to_const_volatile( otype P | ptr_to_const_volatile( P ), @\use{ptr_to_const_volatile}@@\impl{m_l_ptr_to_const_volatile}@3741 otype T | m_l_ptr_to_volatile( P, T ) | m_l_ptr_to_const( P )) { @\use{m_l_ptr_to_const}@@\use{m_l_ptr_to_volatile}@3680 trait m_l_ptr_to_const_volatile( otype P | ptr_to_const_volatile( P ),§\use{ptr_to_const_volatile}§§\impl{m_l_ptr_to_const_volatile}§ 3681 otype T | m_l_ptr_to_volatile( P, T ) | m_l_ptr_to_const( P )) {§\use{m_l_ptr_to_const}§§\use{m_l_ptr_to_volatile}§ 3742 3682 P ?=?( P *, const volatile T * ); 3743 3683 const volatile T * ?=?( const volatile T **, P ); … … 3748 3688 An alternative specification can make use of the fact that qualification of the pointed-at type is part of a pointer type to capture that regularity. 3749 3689 \begin{lstlisting} 3750 trait m_l_ptr_like( type MyP | m_l_pointer( MyP ), @\use{m_l_pointer}@@\impl{m_l_ptr_like}@type CP | m_l_pointer( CP ) ) {3690 trait m_l_ptr_like( type MyP | m_l_pointer( MyP ),§\use{m_l_pointer}§§\impl{m_l_ptr_like}§ type CP | m_l_pointer( CP ) ) { 3751 3691 MyP ?=?( MyP *, CP ); 3752 3692 CP ?=?( CP *, MyP ); 3753 3693 }; 3754 3694 \end{lstlisting} 3755 The assertion ``\lstinline$| m_l_ptr_like( Safe_ptr, const int * )$'' should be read as 3756 ``\lstinline$Safe_ptr$ is a pointer type like \lstinline$const int *$''. 3757 This specification has two defects, compared to the original four: there is no automatic assertion that dereferencing a 3758 \lstinline$MyP$ produces an lvalue of the type that \lstinline$CP$ points at, and the 3759 ``\lstinline$|m_l_pointer( CP )$'' assertion provides only a weak assurance that the argument passed to \lstinline$CP$ really is a pointer type. 3695 The assertion ``©| m_l_ptr_like( Safe_ptr, const int * )©'' should be read as ``©Safe_ptr© is a pointer type like ©const int *©''. 3696 This specification has two defects, compared to the original four: there is no automatic assertion that dereferencing a ©MyP© produces an lvalue of the type that ©CP© points at, and the ``©|m_l_pointer( CP )©'' assertion provides only a weak assurance that the argument passed to ©CP© really is a pointer type. 3760 3697 3761 3698 … … 3763 3700 3764 3701 Different operators often have related meanings; 3765 for instance, in C, ``\lstinline$+$'', 3766 ``\lstinline$+=$'', and the two versions of ``\lstinline$++$'' perform variations of addition. 3702 for instance, in C, ``©+©'', ``©+=©'', and the two versions of ``©++©'' perform variations of addition. 3767 3703 Languages like {\CC} and Ada allow programmers to define operators for new types, but do not require that these relationships be preserved, or even that all of the operators be implemented. 3768 3704 Completeness and consistency is left to the good taste and discretion of the programmer. … … 3777 3713 The different comparison operators have obvious relationships, but there is no obvious subset of the operations to use in the implementation of the others. 3778 3714 However, it is usually convenient to implement a single comparison function that returns a negative integer, 0, or a positive integer if its first argument is respectively less than, equal to, or greater than its second argument; 3779 the library function \lstinline$strcmp$is an example.3780 3781 C and \CFA have an extra, non-obvious comparison operator: `` \lstinline$!$'', logical negation, returns 1 if its operand compares equal to 0, and 0 otherwise.3715 the library function ©strcmp© is an example. 3716 3717 C and \CFA have an extra, non-obvious comparison operator: ``©!©'', logical negation, returns 1 if its operand compares equal to 0, and 0 otherwise. 3782 3718 \begin{lstlisting} 3783 3719 trait comparable( otype T ) { … … 3827 3763 \end{lstlisting} 3828 3764 3829 Note that, although an arithmetic type would certainly provide comparison functions, and an integral type would provide arithmetic operations, there does not have to be any relationship among 3830 \lstinline$int_base$, \lstinline$arith_base$ and \lstinline$comparable$. 3765 Note that, although an arithmetic type would certainly provide comparison functions, and an integral type would provide arithmetic operations, there does not have to be any relationship among ©int_base©, ©arith_base© and ©comparable©. 3831 3766 Note also that these declarations provide guidance and assistance, but they do not define an absolutely minimal set of requirements. 3832 A truly minimal implementation of an arithmetic type might only provide 3833 \lstinline$0$, \lstinline$1$, and \lstinline$?-=?$, which would be used by polymorphic 3834 \lstinline$?+=?$, \lstinline$?*=?$, and \lstinline$?/=?$ functions. 3835 3836 Note also that \lstinline$short$ is an integer type in C11 terms, but has no operations! 3767 A truly minimal implementation of an arithmetic type might only provide ©0©, ©1©, and ©?-=?©, which would be used by polymorphic ©?+=?©, ©?*=?©, and ©?/=?© functions. 3768 3769 Note also that ©short© is an integer type in C11 terms, but has no operations! 3837 3770 3838 3771 … … 3841 3774 3842 3775 Restrict allowed to qualify anything, or type/dtype parameters, but only affects pointers. 3843 This gets into \lstinline$noalias$territory.3844 Qualifying anything (`` \lstinline$short restrict rs$'') means pointer parameters of \lstinline$?++$, etc, would need restrict qualifiers.3776 This gets into ©noalias© territory. 3777 Qualifying anything (``©short restrict rs©'') means pointer parameters of ©?++©, etc, would need restrict qualifiers. 3845 3778 3846 3779 Enumerated types. … … 3852 3785 Color, enum Color ) really make sense? ?++ does, but it adds (int)1. 3853 3786 3854 Operators on {,signed,unsigned} char and other small types. ?<?harmless;3787 Operators on {,signed,unsigned} char and other small types. ©?<?© harmless; 3855 3788 ?*? questionable for chars. 3856 3789 Generic selections make these choices visible. 3857 Safe conversion operators? Predefined 3858 ``promotion'' function? 3859 3860 \lstinline$register$ assignment might be handled as assignment to a temporary with copying back and forth, but copying must not be done by assignment. 3861 3862 Don't use ptrdiff\_t by name in the predefineds. 3790 Safe conversion operators? Predefined ``promotion'' function? 3791 3792 ©register© assignment might be handled as assignment to a temporary with copying back and forth, but copying must not be done by assignment. 3793 3794 Don't use ©ptrdiff_t© by name in the predefineds. 3863 3795 3864 3796 Polymorphic objects. -
doc/user/Makefile
r1b5c81ed rf80e0218 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../ bibliography/:../LaTeXmacros/:4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex 3 TeXLIB = .:../LaTeXmacros:../LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/: 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 6 6 … … 12 12 13 13 FIGURES = ${addsuffix .tex, \ 14 Cdecl \ 14 15 } 15 16 -
doc/user/user.tex
r1b5c81ed rf80e0218 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Sun Apr 10 22:50:15201614 %% Update Count : 7213 %% Last Modified On : Mon Jun 20 10:47:22 2016 14 %% Update Count : 575 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 17 17 % requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended 18 18 19 \documentclass[openright,twoside]{article} 19 % inline code ©...© (copyright symbol) emacs: C-q M-) 20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-. 21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_ 22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-" 23 % LaTex escape §...§ (section symbol) emacs: C-q M-' 24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^ 25 % math escape $...$ (dollar symbol) 26 27 \documentclass[twoside,11pt]{article} 28 20 29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 21 30 … … 24 33 \usepackage{textcomp} 25 34 \usepackage[latin1]{inputenc} 26 \usepackage{upquote} 27 \usepackage{fullpage,times} 35 \usepackage{fullpage,times,comment} 36 \usepackage{epic,eepic} 37 \usepackage{upquote} % switch curled `'" to straight 28 38 \usepackage{xspace} 29 \usepackage{varioref} 30 \usepackage{listings} 31 \usepackage{footmisc} 32 \usepackage{comment} 33 \usepackage{latexsym} % \Box 39 \usepackage{varioref} % extended references 40 \usepackage{listings} % format program code 41 \usepackage[flushmargin]{footmisc} % support label/reference in footnote 42 \usepackage{latexsym} % \Box glyph 34 43 \usepackage{mathptmx} % better math font with "times" 44 \usepackage[usenames]{color} 35 45 \usepackage[pagewise]{lineno} 36 46 \renewcommand{\linenumberfont}{\scriptsize\sffamily} 47 \input{common} % bespoke macros used in the document 37 48 \usepackage[dvips,plainpages=false,pdfpagelabels,pdfpagemode=UseNone,colorlinks=true,pagebackref=true,linkcolor=blue,citecolor=blue,urlcolor=blue,pagebackref=true,breaklinks=true]{hyperref} 38 49 \usepackage{breakurl} 39 50 \renewcommand{\UrlFont}{\small\sf} 40 51 52 \makeatletter 53 \renewcommand{\pagestyle}[1]{ 54 \@ifundefined{ps@#1}% 55 \undefinedpagestyle 56 {\def\@tempa{#1}\def\@tempb{headings}\def\@tempc{myheadings}% 57 \ifx\@tempa\@tempb\setlength{\topmargin}{-0.25in}\setlength{\headsep}{0.25in}% 58 \else\ifx\@tempa\@tempc\setlength{\topmargin}{-0.25in}\setlength{\headsep}{0.25in}\fi\fi% 59 \@nameuse{ps@#1}}}% pagestyle 60 \makeatother 61 62 41 63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42 64 43 % Bespoke macros used in the document.44 \input{common}45 46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%47 48 65 % Names used in the document. 49 66 67 \newcommand{\Version}{1.0.0} 50 68 \newcommand{\CS}{C\raisebox{-0.9ex}{\large$^\sharp$}\xspace} 69 70 \newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}} 71 \newcommand{\Emph}[2][red]{{\color{#1}\textbf{\emph{#2}}}} 72 \newcommand{\R}[1]{\Textbf{#1}} 73 \newcommand{\B}[1]{{\Textbf[blue]{#1}}} 74 \newcommand{\G}[1]{{\Textbf[OliveGreen]{#1}}} 75 76 \newsavebox{\LstBox} 51 77 52 78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 57 83 58 84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59 60 \begin{document}61 \pagestyle{headings}62 \linenumbers % comment out to turn off line numbering63 85 64 86 \title{\Huge … … 67 89 Version 1.0 \\ 68 90 \vspace*{0.25in} 69 \huge``describe not prescribe'' \\91 \huge``describe not prescribe'' 70 92 \vspace*{1in} 71 93 }% title 94 72 95 \author{\huge 73 Peter A. Buhr and ... \\96 Peter A. Buhr and ... 74 97 }% author 98 75 99 \date{ 76 DRAFT \\ 77 \today 100 DRAFT \\ \today 78 101 }% date 79 102 103 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 105 \begin{document} 106 \pagestyle{headings} 80 107 \pagenumbering{roman} 81 \ pagestyle{plain}108 \linenumbers % comment out to turn off line numbering 82 109 83 110 \maketitle … … 97 124 98 125 \clearpage 126 \markright{\CFA User Manual} 99 127 \pagenumbering{arabic} 100 128 … … 103 131 104 132 \CFA\footnote{Pronounced ``C-for-all'', and written \CFA, CFA, or \CFL.} is a modern general-purpose programming-language, designed an as evolutionary step forward from the C programming language. 105 The syntax of the \CFA language builds from C, and should look immediately familiar to C programmers.133 The syntax of the \CFA language builds from C, and should look immediately familiar to C/\CC programmers. 106 134 % Any language feature that is not described here can be assumed to be using the standard C11 syntax. 107 \CFA adds many modern programming-language features , which directly leads to increased safety and productivity, while maintaining interoperability with existing C programs and maintaining C-likeperformance.135 \CFA adds many modern programming-language features that directly lead to increased \emph{safety} and \emph{productivity}, while maintaining interoperability with existing C programs and achieving C performance. 108 136 Like C, \CFA is a statically typed, procedural language with a low-overhead runtime, meaning there is no global garbage-collection. 109 137 The primary new features include parametric-polymorphism routines and types, exceptions, concurrency, and modules. … … 116 144 New programs can be written in \CFA using a combination of C and \CFA features. 117 145 \CC had a similar goal 30 years ago, but has struggled over the intervening time to incorporate modern programming-language features because of early design choices. 118 \CFA has 30 years of hindsight and clean starting point.146 \CFA has 30 years of hindsight and a clean starting point. 119 147 120 148 Like \CC, there may be both an old and new ways to achieve the same effect. 121 149 For example, the following programs compare the \CFA and C I/O mechanisms. 122 150 \begin{quote2} 123 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{}}124 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\151 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 152 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 125 153 \begin{lstlisting} 126 154 #include <fstream> 127 155 int main( void ) { 128 156 int x = 0, y = 1, z = 2; 129 sout | x | y | z | endl;157 ®sout | x | y | z | endl;® 130 158 } 131 159 \end{lstlisting} … … 135 163 int main( void ) { 136 164 int x = 0, y = 1, z = 2; 137 printf( "%d %d %d\n", x, y, z );165 ®printf( "%d %d %d\n", x, y, z );® 138 166 } 139 167 \end{lstlisting} … … 141 169 \end{quote2} 142 170 Both programs output the same result. 143 While the \CFA I/O looks similar to the \CC output style, there are severalimportant differences, such as automatic spacing between variables as in Python (see also~\VRef{s:IOLibrary}).144 145 This document is a referencemanual for the \CFA programming language, targeted at \CFA programmers.171 While the \CFA I/O looks similar to the \CC output style, there are important differences, such as automatic spacing between variables as in Python (see also~\VRef{s:IOLibrary}). 172 173 This document is a user manual for the \CFA programming language, targeted at \CFA programmers. 146 174 Implementers may refer to the \CFA Programming Language Specification for details about the language syntax and semantics. 147 175 In its current state, this document covers the intended core features of the language. … … 152 180 \section{History} 153 181 154 The \CFA project started with K-W C~\cite{ Till89,Buhr94a}, which extended C with new declaration syntax, multiple return values from routines, and extended assignment capabilities using the notion of tuples.182 The \CFA project started with K-W C~\cite{Buhr94a,Till89}, which extended C with new declaration syntax, multiple return values from routines, and extended assignment capabilities using the notion of tuples. 155 183 (See~\cite{Werther96} for some similar work, but for \CC.) 156 184 The original \CFA project~\cite{Ditchfield92} extended the C type system with parametric polymorphism and overloading, as opposed to the \CC approach of object-oriented extensions to the C type-system. 157 185 A first implementation of the core Cforall language was created~\cite{Bilson03,Esteves04}, but at the time there was little interesting in extending C, so work did not continue. 158 As the saying goes, ``What goes around, comes around '', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted.186 As the saying goes, ``What goes around, comes around.'', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted. 159 187 160 188 … … 162 190 163 191 Even with all its problems, C is a very popular programming language because it allows writing software at virtually any level in a computer system without restriction. 164 For system sprogramming, where direct access to hardware and dealing with real-time issues is a requirement, C is usually the language of choice.192 For system programming, where direct access to hardware and dealing with real-time issues is a requirement, C is usually the language of choice. 165 193 As well, there are millions of lines of C legacy code, forming the base for many software development projects (especially on UNIX systems). 166 194 The TIOBE index (\url{http://www.tiobe.com/tiobe_index}) for March 2016 shows programming-language popularity, with Java 20.5\%, C 14.5\%, \CC 6.7\%, \CS 4.3\%, Python 4.3\%, and all other programming languages below 3\%. 195 As well, for 30 years, C has been the number 1 and 2 most popular programming language: 196 \begin{center} 197 \setlength{\tabcolsep}{1.5ex} 198 \begin{tabular}{@{}r|c|c|c|c|c|c|c@{}} 199 Ranking & 2016 & 2011 & 2006 & 2001 & 1996 & 1991 & 1986 \\ 200 \hline 201 Java & 1 & 1 & 1 & 3 & 29 & - & - \\ 202 \hline 203 \R{C} & \R{2} & \R{2} & \R{2} & \R{1} & \R{1} & \R{1} & \R{1} \\ 204 \hline 205 \CC & 3 & 3 & 3 & 2 & 2 & 2 & 7 \\ 206 \end{tabular} 207 \end{center} 167 208 Hence, C is still an extremely important programming language, with double the usage of \CC, where \CC itself is largely C code. 168 209 Finally, love it or hate it, C has been an important and influential part of computer science for 40 years and it appears it will continue to be for many more years. … … 171 212 The goal of this project is to engineer modern language features into C in an evolutionary rather than revolutionary way. 172 213 \CC~\cite{c++,ANSI14:C++} is an example of a similar project; 173 however, it largely extended the language, and did not address existing problems.\footnote{%174 Two important existing problems addressed were changing the type of character literals from \lstinline@int@ to \lstinline@char@ and enumerator from \lstinline@int@to the type of its enumerators.}175 Fortran~\cite{Fortran08}, Ada~\cite{Ada12}, and Cobol~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language features are added and problems fixed within the framework of the existing language.214 however, it largely extended the language, and did not address many existing problems.\footnote{% 215 Two important existing problems addressed were changing the type of character literals from ©int© to ©char© and enumerator from ©int© to the type of its enumerators.} 216 Fortran~\cite{Fortran08}, Ada~\cite{Ada12}, and Cobol~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language features (e.g., objects, concurrency) are added and problems fixed within the framework of the existing language. 176 217 Java~\cite{Java8}, Go~\cite{Go}, Rust~\cite{Rust} and D~\cite{D} are examples of the revolutionary approach for modernizing C/\CC, resulting in a new language rather than an extension of the descendent. 177 218 These languages have different syntax and semantics from C, and do not interoperate directly with C, largely because of garbage collection. 178 219 As a result, there is a significant learning curve to move to these languages, and C legacy-code must be rewritten. 179 These costs can be prohibitive for many companies with a large software base in C/\CC, and many programmers that requireretraining to a new programming language.180 181 The result of this project is a language that is largely backwards compatible with C11~\cite{C11}, but containing many modern language features and fixing some of the well known C problems.182 Without significant extension to the C programming language, C will beunable to cope with the needs of modern programming problems and programmers;220 These costs can be prohibitive for many companies with a large software base in C/\CC, and a significant number of programmers requiring retraining to a new programming language. 221 222 The result of this project is a language that is largely backwards compatible with C11~\cite{C11}, but fixing some of the well known C problems and containing many modern language features. 223 Without significant extension to the C programming language, it is becoming unable to cope with the needs of modern programming problems and programmers; 183 224 as a result, it will fade into disuse. 184 225 Considering the large body of existing C code and programmers, there is significant impetus to ensure C is transformed into a modern programming language. … … 193 234 This feature allows users of \CFA to take advantage of the existing panoply of C libraries from inside their \CFA code. 194 235 In fact, one of the biggest issues for any new programming language is establishing a minimum level of library code to support a large body of activities. 195 Programming-language developers often state that adequate library support takes more work than designing and implementing the language itself.236 Language developers often state that adequate library support takes more work than designing and implementing the language itself. 196 237 Like \CC, \CFA starts with immediate access to all exiting C libraries, and in many cases, can easily wrap library routines with simpler and safer interfaces, at very low cost. 238 Hence, \CFA begins by leveraging the large repository of C libraries with little cost. 197 239 198 240 However, it is necessary to differentiate between C and \CFA code because of name overloading, as for \CC. 199 For example, the C math-library provides the following routines for computing the absolute value of the basic type : \lstinline@abs@, \lstinline@labs@, \lstinline@llabs@, \lstinline@fabs@, \lstinline@fabsf@, \lstinline@fabsl@, \lstinline@cabsf@, \lstinline@cabs@, and \lstinline@cabsl@.200 Whereas, \CFA wraps each of these routines into one with the common name \lstinline@abs@.241 For example, the C math-library provides the following routines for computing the absolute value of the basic types: ©abs©, ©labs©, ©llabs©, ©fabs©, ©fabsf©, ©fabsl©, ©cabsf©, ©cabs©, and ©cabsl©. 242 Whereas, \CFA wraps each of these routines into ones with the common name ©abs©: 201 243 \begin{lstlisting} 202 244 char abs( char ); 203 245 extern "C" { 204 int abs( int ); // use default C routine for int246 int abs( int ); // use default C routine for int 205 247 } // extern "C" 206 248 long int abs( long int ); … … 213 255 long double _Complex abs( long double _Complex ); 214 256 \end{lstlisting} 215 The problem is the name clash between the library routine \lstinline@abs@ and the \CFA names \lstinline@abs@.216 Hence, names appearing in an \lstinline@extern "C"@block have \newterm{C linkage}.257 The problem is the name clash between the library routine ©abs© and the \CFA names ©abs©. 258 Hence, names appearing in an ©extern "C"© block have \newterm{C linkage}. 217 259 Then overloading polymorphism uses a mechanism called \newterm{name mangling} to create unique names that are different from C names, which are not mangled. 218 260 Hence, there is the same need as in \CC, to know if a name is a C or \CFA name, so it can be correctly formed. 219 261 There is no way around this problem, other than C's approach of creating unique names for each pairing of operation and type. 220 262 This example strongly illustrates a core idea in \CFA: \emph{the power of a name}. 221 The name `` \lstinline@abs@'' evokes the notion of absolute value, and many mathematical types provide the notion of absolute value.222 Hence, knowing the name \lstinline@abs@should be sufficient to apply it to any type where it is applicable.263 The name ``©abs©'' evokes the notion of absolute value, and many mathematical types provide the notion of absolute value. 264 Hence, knowing the name ©abs© should be sufficient to apply it to any type where it is applicable. 223 265 The time savings and safety of using one name uniformly versus $N$ unique names should not be underestimated. 224 266 225 267 226 \section{Compiling \CFA} 227 228 The command \lstinline@cfa@ is used to compile \CFA program(s). 229 This command works like the GNU \lstinline@gcc@\index{gcc} command, e.g.: 230 \begin{lstlisting} 231 cfa [ gcc-options ] C/@{\CFA}@-files [ assembler/loader-files ] 232 \end{lstlisting} 233 By default, \CFA programs having the following \lstinline@gcc@ flags turned on: 268 \section[Compiling CFA Program]{Compiling \CFA Program} 269 270 The command ©cfa© is used to compile \CFA program(s), and is based on the GNU ©gcc©\index{gcc} command, e.g.: 271 \begin{lstlisting} 272 cfa§\indexc{cfa}\index{compilation!cfa@©cfa©}§ [ gcc-options ] C/§\CFA§-files [ assembler/loader-files ] 273 \end{lstlisting} 274 By default, \CFA programs having the following ©gcc© flags turned on: 234 275 \begin{description} 235 \item 236 \hspace*{-4pt}\lstinline@-std=gnu99@ 276 \item\hspace*{-0.6ex}\Indexc{-std=gnu99}\index{compilation option!-std=gnu99@{©-std=gnu99©}} 237 277 The 1999 C standard plus GNU extensions. 278 \item\hspace*{-0.6ex}\Indexc{-fgnu89-¶inline¶}\index{compilation option!-fgnu89-inline@{©-fgnu89-¶inline¶©}} 279 Use the traditional GNU semantics for inline routines in C99 mode, which allows inline routines in header files. 238 280 \end{description} 239 281 The following new \CFA option is available: 240 282 \begin{description} 241 \item 242 \hspace*{-4pt}\lstinline@-CFA@ 283 \item\hspace*{-0.6ex}\Indexc{-CFA}\index{compilation option!-CFA@{©-CFA©}} 243 284 Only the C preprocessor and the \CFA translator steps are performed and the transformed program is written to standard output, which makes it possible to examine the code generated by the \CFA translator. 244 285 \end{description} 245 286 287 The following preprocessor variables are available: 288 \begin{description} 289 \item\hspace*{-0.6ex}\Indexc{__CFA__}\index{preprocessor variables!__CFA__@{©__CFA__©}} 290 is always available during preprocessing and its value is the current major \Index{version number} of \CFA.\footnote{ 291 The C preprocessor allows only integer values in a preprocessor variable so a value like ``\Version'' is not allowed. 292 Hence, the need to have three variables for the major, minor and patch version number.} 293 294 \item\hspace*{-0.6ex}\Indexc{__CFA_MINOR__}\index{preprocessor variables!__CFA_MINOR__@{©__CFA_MINOR__©}} 295 is always available during preprocessing and its value is the current minor \Index{version number} of \CFA. 296 297 \item\hspace*{-0.6ex}\Indexc{__CFA_PATCH__}\index{preprocessor variables!__CFA_PATCH__@©__CFA_PATCH__©} 298 is always available during preprocessing and its value is the current patch \Index{version number} of \CFA. 299 300 \item\hspace*{-0.6ex}\Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©} and \Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©} 301 are always available during preprocessing and have no value. 302 \end{description} 303 304 These preprocessor variables allow conditional compilation of programs that must work differently in these situations. 305 For example, to toggle between C and \CFA extensions, using the following: 306 \begin{lstlisting} 307 #ifndef __CFORALL__ 308 #include <stdio.h> // C header file 309 #else 310 #include <fstream> // §\CFA{}§ header file 311 #endif 312 \end{lstlisting} 313 which conditionally includes the correct header file, if the program is compiled using ©gcc© or ©cfa©. 314 246 315 247 316 \section{Underscores in Constants} … … 249 318 Numeric constants are extended to allow \Index{underscore}s within constants\index{constant!underscore}, e.g.: 250 319 \begin{lstlisting} 251 2 `_`147`_`483`_`648;// decimal constant252 56_ul; // decimal unsigned long constant253 0_377; // octal constant254 0x_ff_ff; // hexadecimal constant255 0x_ef3d_aa5c; // hexadecimal constant256 3.141_592_654; // floating point constant257 10_e_+1_00; // floating point constant258 0x_ff_ff_p_3; // hexadecimal floating point259 0x_1.ffff_ffff_p_128_l; // hexadecimal floating point long constant260 L_"\x_ff_ee"; // wide character constant320 2®_®147®_®483®_®648; // decimal constant 321 56_ul; // decimal unsigned long constant 322 0_377; // octal constant 323 0x_ff_ff; // hexadecimal constant 324 0x_ef3d_aa5c; // hexadecimal constant 325 3.141_592_654; // floating point constant 326 10_e_+1_00; // floating point constant 327 0x_ff_ff_p_3; // hexadecimal floating point 328 0x_1.ffff_ffff_p_128_l; // hexadecimal floating point long constant 329 L_"\x_ff_ee"; // wide character constant 261 330 \end{lstlisting} 262 331 The rules for placement of underscores is as follows: 263 332 \begin{enumerate} 264 333 \item 265 A sequence of underscores is disallowed, e.g., \lstinline@12__34@is invalid.334 A sequence of underscores is disallowed, e.g., ©12__34© is invalid. 266 335 \item 267 336 Underscores may only appear within a sequence of digits (regardless of the digit radix). 268 In other words, an underscore cannot start or end a sequence of digits, e.g., \lstinline@_1@, \lstinline@1_@ and \lstinline@_1_@are invalid (actually, the 1st and 3rd examples are identifier names).337 In other words, an underscore cannot start or end a sequence of digits, e.g., ©_1©, ©1_© and ©_1_© are invalid (actually, the 1st and 3rd examples are identifier names). 269 338 \item 270 339 A numeric prefix may end with an underscore; 271 340 a numeric infix may begin and/or end with an underscore; 272 341 a numeric suffix may begin with an underscore. 273 For example, the octal \lstinline@0@ or hexadecimal \lstinline@0x@ prefix may end with an underscore \lstinline@0_377@ or \lstinline@0x_ff@;274 the exponent infix \lstinline@E@ may start or end with an underscore \lstinline@1.0_E10@, \lstinline@1.0E_10@ or \lstinline@1.0_E_10@;275 the type suffixes \lstinline@U@, \lstinline@L@, etc. may start with an underscore \lstinline@1_U@, \lstinline@1_ll@ or \lstinline@1.0E10_f@.342 For example, the octal ©0© or hexadecimal ©0x© prefix may end with an underscore ©0_377© or ©0x_ff©; 343 the exponent infix ©E© may start or end with an underscore ©1.0_E10©, ©1.0E_10© or ©1.0_E_10©; 344 the type suffixes ©U©, ©L©, etc. may start with an underscore ©1_U©, ©1_ll© or ©1.0E10_f©. 276 345 \end{enumerate} 277 346 It is significantly easier to read and enter long constants when they are broken up into smaller groupings (most cultures use comma or period among digits for the same purpose). 278 This extension is backwards compatible, matches with the use of underscore in variable names, and appears in Ada and Java .347 This extension is backwards compatible, matches with the use of underscore in variable names, and appears in Ada and Java 8. 279 348 280 349 … … 284 353 C declaration syntax is notoriously confusing and error prone. 285 354 For example, many C programmers are confused by a declaration as simple as: 286 \begin{lstlisting} 287 int *x[ 10 ] 288 \end{lstlisting} 289 Is this a pointer to an array of 10 integers or an array of 10 pointers to integers? 355 \begin{quote2} 356 \begin{tabular}{@{}ll@{}} 357 \begin{lstlisting} 358 int *x[5] 359 \end{lstlisting} 360 & 361 \raisebox{-0.75\totalheight}{\input{Cdecl}} 362 \end{tabular} 363 \end{quote2} 364 Is this an array of 5 pointers to integers or a pointer to an array of 5 integers? 290 365 Another example of confusion results from the fact that a routine name and its parameters are embedded within the return type, mimicking the way the return value is used at the routine's call site. 291 366 For example, a routine returning a pointer to an array of integers is defined and used in the following way: 292 367 \begin{lstlisting} 293 int (*f())[ 10 ] {...};294 ... (*f())[ 3 ] += 1; // definition mimics usage368 int (*f())[5] {...}; // definition mimics usage 369 ... (*f())[3] += 1; 295 370 \end{lstlisting} 296 371 Essentially, the return type is wrapped around the routine name in successive layers (like an onion). 297 372 While attempting to make the two contexts consistent was a laudable goal, it has not worked out in practice. 298 373 299 \CFA provides its own type, variable and routine declarations, using a slightly different syntax. 300 The new declarations place modifiers to the left of the base type, while C declarations place modifiers to the right of the base type. 374 \CFA provides its own type, variable and routine declarations, using a different syntax. 375 The new declarations place qualifiers to the left of the base type, while C declarations place qualifiers to the right of the base type. 376 In the following example, \R{red} is for the base type and \B{blue} is for the qualifiers. 377 The \CFA declarations move the qualifiers to the left of the base type, i.e., blue to the left of the red, while the qualifiers have the same meaning but are ordered left to left to right to specify the variable's type. 378 \begin{quote2} 379 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 380 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 381 \begin{lstlisting} 382 ß[5] *ß ®int® x1; 383 ß* [5]ß ®int® x2; 384 ß[* [5] int]ß f®( int p )®; 385 \end{lstlisting} 386 & 387 \begin{lstlisting} 388 ®int® ß*ß x1 ß[5]ß; 389 ®int® ß(*ßx2ß)[5]ß; 390 ßint (*ßf®( int p )®ß)[5]ß; 391 \end{lstlisting} 392 \end{tabular} 393 \end{quote2} 301 394 The only exception is bit field specification, which always appear to the right of the base type. 302 C and the new \CFA declarations may appear together in the same program block, but cannot be mixed within a specific declaration. 303 304 In \CFA declarations, the same tokens are used as in C: the character \lstinline@*@ is used to indicate a pointer, square brackets \lstinline@[@\,\lstinline@]@ are used to represent an array, and parentheses \lstinline@()@ are used to indicate a routine parameter. 305 However, unlike C, \CFA type declaration tokens are specified from left to right and the entire type specification is distributed across all variables in the declaration list. 306 For instance, variables \lstinline@x@ and \lstinline@y@ of type pointer to integer are defined in \CFA as follows: 395 % Specifically, the character ©*© is used to indicate a pointer, square brackets ©[©\,©]© are used to represent an array or function return value, and parentheses ©()© are used to indicate a routine parameter. 396 However, unlike C, \CFA type declaration tokens are distributed across all variables in the declaration list. 397 For instance, variables ©x© and ©y© of type pointer to integer are defined in \CFA as follows: 307 398 \begin{quote2} 308 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{}}309 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\310 \begin{lstlisting} 311 `* int x, y;` 399 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 400 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 401 \begin{lstlisting} 402 ®*® int x, y; 312 403 \end{lstlisting} 313 404 & 314 405 \begin{lstlisting} 315 int *x, *y;406 int ®*®x, ®*®y; 316 407 \end{lstlisting} 317 408 \end{tabular} … … 319 410 Other examples are: 320 411 \begin{quote2} 321 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{\hspace{20pt}}l@{}}322 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\323 \begin{lstlisting} 324 [ 10] int z;325 [ 10] * char w;326 * [ 10] double v;412 \begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{2em}}l@{}} 413 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{C}} \\ 414 \begin{lstlisting} 415 [ 5 ] int z; 416 [ 5 ] * char w; 417 * [ 5 ] double v; 327 418 struct s { 328 419 int f0:3; 329 420 * int f1; 330 [ 10] * int f2;421 [ 5 ] * int f2; 331 422 }; 332 423 \end{lstlisting} 333 424 & 334 425 \begin{lstlisting} 335 int z[ 10];336 char *w[ 10];337 double (*v)[ 10];426 int z[ 5 ]; 427 char *w[ 5 ]; 428 double (*v)[ 5 ]; 338 429 struct s { 339 430 int f0:3; 340 431 int *f1; 341 int *f2[ 10]432 int *f2[ 5 ] 342 433 }; 343 434 \end{lstlisting} 344 435 & 345 436 \begin{lstlisting} 346 // array of 10integers347 // array of 10pointers to char348 // pointer to array of 10doubles437 // array of 5 integers 438 // array of 5 pointers to char 439 // pointer to array of 5 doubles 349 440 350 441 // common bit field syntax … … 356 447 \end{quote2} 357 448 358 All type qualifiers, i.e., \lstinline@const@ and \lstinline@volatile@, are used in the normal way with the new declarations butappear left to right, e.g.:449 All type qualifiers, e.g., ©const©, ©volatile©, etc., are used in the normal way with the new declarations and also appear left to right, e.g.: 359 450 \begin{quote2} 360 \begin{tabular}{@{}l@{\hspace{ 30pt}}l@{\hspace{20pt}}l@{}}361 \multicolumn{1}{c@{\hspace{ 30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\451 \begin{tabular}{@{}l@{\hspace{1em}}l@{\hspace{1em}}l@{}} 452 \multicolumn{1}{c@{\hspace{1em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{1em}}}{\textbf{C}} \\ 362 453 \begin{lstlisting} 363 454 const * const int x; 364 const * [ 10] const int y;455 const * [ 5 ] const int y; 365 456 \end{lstlisting} 366 457 & 367 458 \begin{lstlisting} 368 459 int const * const x; 369 const int (* const y)[ 10]460 const int (* const y)[ 5 ] 370 461 \end{lstlisting} 371 462 & 372 463 \begin{lstlisting} 373 464 // const pointer to const integer 374 // const pointer to array of 10const integers465 // const pointer to array of 5 const integers 375 466 \end{lstlisting} 376 467 \end{tabular} 377 468 \end{quote2} 378 All declaration qualifiers, i.e., \lstinline@extern@, \lstinline@static@, etc., are used in the normal way with the new declarations but can only appear at the start of a \CFA routine declaration,\footnote{\label{StorageClassSpecifier}469 All declaration qualifiers, e.g., ©extern©, ©static©, etc., are used in the normal way with the new declarations but can only appear at the start of a \CFA routine declaration,\footnote{\label{StorageClassSpecifier} 379 470 The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature.~\cite[\S~6.11.5(1)]{C11}} e.g.: 380 471 \begin{quote2} 381 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{\hspace{20pt}}l@{}}382 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\383 \begin{lstlisting} 384 extern [ 10] int x;472 \begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{2em}}l@{}} 473 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{C}} \\ 474 \begin{lstlisting} 475 extern [ 5 ] int x; 385 476 static * const int y; 386 477 \end{lstlisting} 387 478 & 388 479 \begin{lstlisting} 389 int extern x[ 10];480 int extern x[ 5 ]; 390 481 const int static *y; 391 482 \end{lstlisting} 392 483 & 393 484 \begin{lstlisting} 394 // externally visible array of 10integers485 // externally visible array of 5 integers 395 486 // internally visible pointer to constant int 396 487 \end{lstlisting} … … 398 489 \end{quote2} 399 490 400 Unsupported are K\&R C declarations where the base type defaults to \lstinline@int@, if no type is specified\footnote{401 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}} ,491 Unsupported are K\&R C declarations where the base type defaults to ©int©, if no type is specified,\footnote{ 492 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}} 402 493 e.g.: 403 494 \begin{lstlisting} 404 x; // int x405 *y; // int *y406 f( p1, p2 ); // int f( int p1, int p2 );407 f( p1, p2 ) {} // int f( int p1, int p2 ) {}408 \end{lstlisting} 409 410 As stated above, the two styles of declaration may appear together in the same block.495 x; // int x 496 *y; // int *y 497 f( p1, p2 ); // int f( int p1, int p2 ); 498 f( p1, p2 ) {} // int f( int p1, int p2 ) {} 499 \end{lstlisting} 500 501 Finally, new \CFA declarations may appear together with C declarations in the same program block, but cannot be mixed within a specific declaration. 411 502 Therefore, a programmer has the option of either continuing to use traditional C declarations or take advantage of the new style. 412 503 Clearly, both styles need to be supported for some time due to existing C-style header-files, particularly for UNIX systems. 413 504 414 505 415 \section{ Type Operators}416 417 The new declaration syntax can be used in other contexts where types are required, e.g., casts and the pseudo-routine \lstinline@sizeof@:506 \section{Reference Pointers} 507 508 Program variables are implicit pointers to memory locations generated by the compiler and automatically dereferenced, as in: 418 509 \begin{quote2} 419 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 420 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 421 \begin{lstlisting} 422 y = (* int)x; 423 i = sizeof([ 10 ] * int); 510 \begin{tabular}{@{}l|l@{}} 511 \multicolumn{1}{c|}{Variables} & \multicolumn{1}{c}{Compiler generated addresses (100, 104) and dereferencing} \\ 512 \hline 513 \begin{lstlisting} 514 int x, y; 515 x = 3; 516 y = x; 424 517 \end{lstlisting} 425 518 & 426 519 \begin{lstlisting} 427 y = (int *)x; 428 i = sizeof(int *[ 10 ]); 520 int * const x = (int *)100, * const y = (int *)104; 521 *x = 3; // implicit dereference 522 *y = *x; 429 523 \end{lstlisting} 430 524 \end{tabular} 431 525 \end{quote2} 526 A variable name only points to one location during its lifetime, i.e., it is a \Index{non-mutable} pointer. 527 For example, the variables ©x© and ©y© are constant pointers. 528 Variable addresses are usually not stored in memory and loaded before dereferencing; 529 instead, variable addresses are stored in instructions, so an instruction fetch implicitly gets the variable's address. 530 \begin{quote2} 531 \begin{tabular}{@{}l|l@{}} 532 \begin{lstlisting} 533 x = x + 1 534 &x = *(&x) + 1 535 (100) = *(100) + 1 536 \end{lstlisting} 537 & 538 \begin{lstlisting} 539 ld r1,(100) // address of x 540 add r1,1 541 st r1,(100) // address of x 542 \end{lstlisting} 543 \end{tabular} 544 \end{quote2} 545 Finally, the non-mutable nature of variables and the fact that there is no storage for a variable address means pointer assignment is impossible. 546 Therefore, the expression ©x = y© only has one meaning, ©*x = *y©, i.e., copy the variable values, so explicitly writing the dereferences is unnecessary even though it occurs implicitly as part of instruction decoding. 547 548 A variable name is generalized by a \newterm{pointer}, which is a mutable pointer variable that can point to more than one memory location during its life-time (like an integer variable versus a literal). 549 Hence, a pointer occupies memory to store its current address, and the pointer's value is loaded by dereferencing, e.g.: 550 \begin{lstlisting} 551 int x, y, z, ®*® p1, ®*® p2; 552 p1 = ®&®x; // p1 points to x 553 p2 = p1; // p2 also points to x 554 p1 = ®&®y; // p1 points to y 555 p2 = p1 + 1; // p2 points to z, pointer arithmetic 556 \end{lstlisting} 557 In many cases, a pointer name is anonymous (dynamically computed), so it cannot be stored directly in an instruction like a variable name. 558 559 Pointers have a duality: an address in memory or the value at that address. 560 In many cases, the compiler can infer which of these operations are needed: 561 \begin{lstlisting} 562 p2 = p1 + x; // compiler infers *p2 = *p1 + x; 563 \end{lstlisting} 564 because adding the integer value of ©x© to the address of ©p1© and storing the resulting address into ©p2© is an unlikely operation. 565 Algol68~\cite{Algol68} inferences pointer dereferencing to select the best meaning for each pointer usage. 566 However, there are ambiguous cases, especially when pointer arithmetic is possible, as in C: 567 \begin{lstlisting} 568 p1 = p2; // p1 = p2 or *p1 = *p2 569 p1 = p1 + 1; // p1 = p1 + 1 or *p1 = *p1 + 1 570 \end{lstlisting} 571 572 Most programming languages pick a default operation and supply an explicit operation to resolve the pointer-duality ambiguity. 573 In C, the default operation for pointers is manipulate the pointer value and the pointed-to value is explicitly accessed by dereferencing ©*©. 574 \begin{lstlisting} 575 p1 = p2; // pointer value assignment 576 *p1 = *p1 + 1; // pointed-to value assignment/operation 577 \end{lstlisting} 578 which works well for low-level memory management, such as ©malloc©/©free©, where manipulation of addresses in the primary operation, and data is only occasionally accessed. 579 580 However, in the majority of pointer usages, the pointed-to value is required rather than the pointer address. 581 \begin{lstlisting} 582 *p2 = ((*p1 + *p2) * (*p2 - *p1)) / (*p1 - *p2); 583 \end{lstlisting} 584 And, it is tedious and error prone to explicitly write the dereferencing, especially when pointer arithmetic with integer values is allowed. 585 It is better to have the compiler generate the dereferencing: 586 \begin{lstlisting} 587 p2 = ((p1 + p2) * (p2 - p1)) / (p1 - p2); 588 \end{lstlisting} 589 590 To provide this capability, it is necessary to switch the default operation to resolve the pointer-duality ambiguity, which requires a new kind of pointer called a \newterm{reference} pointer. 591 \begin{lstlisting} 592 int x, y, z, ®&® r1, ®&® r2; // & denotes reference pointer 593 r1 ®:=® &x; // r1 points to x 594 r2 ®:=® &r1; // r2 also points to x 595 r1 ®:=® &y; // r1 points to y 596 r2 ®:=® &r1 + 1; // r2 points to z 597 r2 = ((r1 + r2) * (r2 - r1)) / (r1 - r2); // implicit dereferencing 598 \end{lstlisting} 599 Hence, a reference pointer behaves like a variable name for the current variable it is pointing-to, so dereferencing a reference pointer returns the address of its pointed-to value, i.e., the address in the reference pointer. 600 Notice, the explicit operator ©:=© to denote pointer assignment to a reference pointer to support both aspects of pointer duality. 601 Note, \CC deals with the pointer duality by making a reference pointer a constant (©const©), like a plain variable, so there is no reference assignment. 602 603 Like pointers, it is possible to use ©const© qualifiers with a reference: 604 \begin{lstlisting} 605 const int cx = 5; // cannot change cx; 606 const int & r3 = &cx; // cannot change what r3 is pointing to 607 r3 ®:=® &cx; // can change r3 608 r3 = 7; // error, cannot change cx 609 int & const r4 = &x; // must be initialized, §\CC§ reference 610 r4 ®:=® &x; // error, cannot change r4 611 const int & const r5 = &cx; // must be initialized, §\CC§ reference 612 r5 = 7; // error, cannot change cx 613 r5 ®:=® &cx; // error, cannot change r5 614 \end{lstlisting} 615 Note, for type ©& const©, there is no pointer assignment, so ©r4 := &x© is disallowed, and the pointer value cannot be ©0©. 616 Since there is only one meaning for ©r4 = x©, which is to change the value of the variable pointed to by ©r4©, therefore: 617 \begin{itemize} 618 \item 619 it in impossible to take the address of ©r4© as it always means the address of what ©r4© is pointing to. 620 \item 621 the dereference at initialization is optional because there can only be one 622 \begin{lrbox}{\LstBox}% 623 \footnotesize% 624 \begin{lstlisting}% 625 void f( int p ) {...} 626 void (*fp)( int ) = &f; // equivalent initialization 627 void (*fp)( int ) = f; // missing dereference allowed 628 \end{lstlisting}% 629 \end{lrbox}% 630 meaning.\footnote{ 631 This case is similar to initializing a routine pointer, where the routine constant should be dereferenced. 632 \newline 633 \usebox{\LstBox} 634 }% footnote 635 \begin{lstlisting} 636 int & const r4 = &x; // equivalent initialization 637 int & const r4 = x; // missing dereference allowed 638 \end{lstlisting} 639 \end{itemize} 640 Similarly, when a ©const© reference is used for a parameters type, the call-site argument does not require a reference. 641 \begin{lstlisting} 642 void f( int & ri, int & const cri ); 643 f( &x, x ); // reference not required for second argument 644 \end{lstlisting} 645 Within routine ©f©, it is possible to change an argument by changing the corresponding parameter, and parameter ©ri© can be locally reassigned within ©f©. 646 647 Finally, when a reference parameter has a ©const© value, it is possible to pass literals and expressions. 648 \begin{lstlisting} 649 void g( const int & ri, const int & const cri ); 650 f( &3, 3 ); 651 f( &(x + y), x + y ); 652 \end{lstlisting} 653 At the call site, the compiler implicitly creates the necessary temporary that is subsequently pointed to by the reference parameter. 654 Hence, changing the parameter only changes the temporary at the call site. 655 For the non-©const© parameter, requiring the reference on the literal or expression makes it clear that nothing is changing at the call site and allows the call to proceed, where other languages require the programmer to explicitly create the temporary for the argument. 656 657 \section{Type Operators} 658 659 The new declaration syntax can be used in other contexts where types are required, e.g., casts and the pseudo-routine ©sizeof©: 660 \begin{quote2} 661 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 662 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 663 \begin{lstlisting} 664 y = (®* int®)x; 665 i = sizeof(®[ 5 ] * int®); 666 \end{lstlisting} 667 & 668 \begin{lstlisting} 669 y = (®int *®)x; 670 i = sizeof(®int *[ 5 ]®); 671 \end{lstlisting} 672 \end{tabular} 673 \end{quote2} 432 674 433 675 … … 435 677 436 678 \CFA also supports a new syntax for routine definition, as well as ISO C and K\&R routine syntax. 437 The point of the new syntax is to allow returning multiple values from a routine~\cite{ CLU,Galletly96}, e.g.:438 \begin{lstlisting} 439 `[ int o1, int o2, char o3 ]`f( int i1, char i2, char i3 ) {440 @\emph{routine body}@441 } 442 \end{lstlisting} 443 where routine \lstinline@f@has three output (return values) and three input parameters.679 The point of the new syntax is to allow returning multiple values from a routine~\cite{Galletly96,CLU}, e.g.: 680 \begin{lstlisting} 681 ®[ int o1, int o2, char o3 ]® f( int i1, char i2, char i3 ) { 682 §\emph{routine body}§ 683 } 684 \end{lstlisting} 685 where routine ©f© has three output (return values) and three input parameters. 444 686 Existing C syntax cannot be extended with multiple return types because it is impossible to embed a single routine name within multiple return type specifications. 445 687 446 In detail, the brackets, \lstinline@[]@, enclose the result type, where each return value is named and that name is a local variable of the particular return type.\footnote{688 In detail, the brackets, ©[]©, enclose the result type, where each return value is named and that name is a local variable of the particular return type.\footnote{ 447 689 Michael Tiemann, with help from Doug Lea, provided named return values in g++, circa 1989.} 448 690 The value of each local return variable is automatically returned at routine termination. 449 691 Declaration qualifiers can only appear at the start of a routine definition, e.g.: 450 692 \begin{lstlisting} 451 extern [ int x ] g( int y ) {@\,@}693 ®extern® [ int x ] g( int y ) {§\,§} 452 694 \end{lstlisting} 453 695 Lastly, if there are no output parameters or input parameters, the brackets and/or parentheses must still be specified; 454 696 in both cases the type is assumed to be void as opposed to old style C defaults of int return type and unknown parameter types, respectively, as in: 455 697 \begin{lstlisting} 456 [ @\,@] g(@\,@);// no input or output parameters457 [ void ] g( void ); // no input or output parameters698 [§\,§] g(); // no input or output parameters 699 [ void ] g( void ); // no input or output parameters 458 700 \end{lstlisting} 459 701 … … 462 704 [ i, j, ch ] = f( 3, 'a', ch ); 463 705 \end{lstlisting} 464 The list of return values from f and the grouping on the left-hand side of the assignment is called a tupleand discussed in Section 12.706 The list of return values from f and the grouping on the left-hand side of the assignment is called a \newterm{return list} and discussed in Section 12. 465 707 466 708 \CFA style declarations cannot be used to declare parameters for K\&R style routine definitions because of the following ambiguity: 467 709 \begin{lstlisting} 468 int (*f(x))[ 10] int x; {}469 \end{lstlisting} 470 The string `` \lstinline@int (*f(x))[ 10 ]@'' declares a K\&R style routine of type returning a pointer to an array of 10 integers, while the string ``\lstinline@[ 10 ] int x@'' declares a \CFA style parameter x of type array of 10integers.471 Since the strings overlap starting with the open bracket, \lstinline@[@, there is an ambiguous interpretation for the string.710 int (*f(x))[ 5 ] int x; {} 711 \end{lstlisting} 712 The string ``©int (*f(x))[ 5 ]©'' declares a K\&R style routine of type returning a pointer to an array of 5 integers, while the string ``©[ 5 ] int x©'' declares a \CFA style parameter x of type array of 5 integers. 713 Since the strings overlap starting with the open bracket, ©[©, there is an ambiguous interpretation for the string. 472 714 As well, \CFA-style declarations cannot be used to declare parameters for C-style routine-definitions because of the following ambiguity: 473 715 \begin{lstlisting} 474 716 typedef int foo; 475 int f( int (* foo) ); // foo is redefined as a parameter name476 \end{lstlisting} 477 The string `` \lstinline@int (* foo)@'' declares a C-style named-parameter of type pointer to an integer (the parenthesis are superfluous), while the same string declares a \CFA style unnamed parameter of type routine returning integer with unnamed parameter of type pointer to foo.478 The redefinition of a type name in a parameter list is the only context in C where the character \lstinline@*@ can appear to the left of a type name, and \CFA relies on all type modifier characters appearing to the right of the type name.717 int f( int (* foo) ); // foo is redefined as a parameter name 718 \end{lstlisting} 719 The string ``©int (* foo)©'' declares a C-style named-parameter of type pointer to an integer (the parenthesis are superfluous), while the same string declares a \CFA style unnamed parameter of type routine returning integer with unnamed parameter of type pointer to foo. 720 The redefinition of a type name in a parameter list is the only context in C where the character ©*© can appear to the left of a type name, and \CFA relies on all type qualifier characters appearing to the right of the type name. 479 721 The inability to use \CFA declarations in these two contexts is probably a blessing because it precludes programmers from arbitrarily switching between declarations forms within a declaration contexts. 480 722 481 723 C-style declarations can be used to declare parameters for \CFA style routine definitions, e.g.: 482 724 \begin{lstlisting} 483 [ int ] f( * int, int * ); // returns an integer, accepts 2 pointers to integers484 [ * int, int * ] f( int ); // returns 2 pointers to integers, accepts an integer725 [ int ] f( * int, int * ); // returns an integer, accepts 2 pointers to integers 726 [ * int, int * ] f( int ); // returns 2 pointers to integers, accepts an integer 485 727 \end{lstlisting} 486 728 The reason for allowing both declaration styles in the new context is for backwards compatibility with existing preprocessor macros that generate C-style declaration-syntax, as in: 487 729 \begin{lstlisting} 488 730 #define ptoa( n, d ) int (*n)[ d ] 489 int f( ptoa( p,10) ) ... // expands to int f( int (*p)[ 10] )490 [ int ] f( ptoa( p,10) ) ... // expands to [ int ] f( int (*p)[ 10] )731 int f( ptoa( p, 5 ) ) ... // expands to int f( int (*p)[ 5 ] ) 732 [ int ] f( ptoa( p, 5 ) ) ... // expands to [ int ] f( int (*p)[ 5 ] ) 491 733 \end{lstlisting} 492 734 Again, programmers are highly encouraged to use one declaration form or the other, rather than mixing the forms. 493 735 494 736 495 \subsection{ ReturningValues}496 497 Named return values handle the case where it is necessary to define a local variable whose value is then returned in a \lstinline@return@statement, as in:737 \subsection{Named Return Values} 738 739 \Index{Named return values} handle the case where it is necessary to define a local variable whose value is then returned in a ©return© statement, as in: 498 740 \begin{lstlisting} 499 741 int f() { … … 503 745 } 504 746 \end{lstlisting} 505 Because the value in the return variable is automatically returned when a \CFA routine terminates, the \lstinline@return@ statement \emph{does not} contain an expression, as in: 506 \begin{lstlisting} 507 `[ int x ]` f() { 508 ... x = 0; ... x = y; ... 509 `return;` // implicitly return x 510 } 511 \end{lstlisting} 512 When the return is encountered, the current value of \lstinline@x@ is returned to the calling routine. 513 As well, ``falling off the end'' of a routine without a \lstinline@return@ statement is permitted, as in: 514 \begin{lstlisting} 515 [ int x ] f() { 516 ... x = 0; ... x = y; ... 517 } // implicitly return x 518 \end{lstlisting} 519 In this case, the current value of \lstinline@x@ is returned to the calling routine just as if a \lstinline@return@ had been encountered. 747 Because the value in the return variable is automatically returned when a \CFA routine terminates, the ©return© statement \emph{does not} contain an expression, as in: 748 \newline 749 \begin{minipage}{\linewidth} 750 \begin{lstlisting} 751 ®[ int x, int y ]® f() { 752 int z; 753 ... x = 0; ... y = z; ... 754 ®return;® // implicitly return x, y 755 } 756 \end{lstlisting} 757 \end{minipage} 758 \newline 759 When the return is encountered, the current values of ©x© and ©y© are returned to the calling routine. 760 As well, ``falling off the end'' of a routine without a ©return© statement is permitted, as in: 761 \begin{lstlisting} 762 [ int x, int y ] f() { 763 ... 764 } // implicitly return x, y 765 \end{lstlisting} 766 In this case, the current values of ©x© and ©y© are returned to the calling routine just as if a ©return© had been encountered. 520 767 521 768 … … 525 772 as well, parameter names are optional, e.g.: 526 773 \begin{lstlisting} 527 [ int x ] f (); // returning int with no parameters528 [ * int ] g (int y); // returning pointer to int with int parameter529 [ ] h (int,char); // returning no result with int and char parameters530 [ * int,int ] j (int); // returning pointer to int and int, with int parameter774 [ int x ] f (); // returning int with no parameters 775 [ * int ] g (int y); // returning pointer to int with int parameter 776 [ ] h (int,char); // returning no result with int and char parameters 777 [ * int,int ] j (int); // returning pointer to int and int, with int parameter 531 778 \end{lstlisting} 532 779 This syntax allows a prototype declaration to be created by cutting and pasting source text from the routine definition header (or vice versa). 533 780 It is possible to declare multiple routine-prototypes in a single declaration, but the entire type specification is distributed across \emph{all} routine names in the declaration list (see~\VRef{s:Declarations}), e.g.: 534 781 \begin{quote2} 535 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{}}536 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\782 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 783 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 537 784 \begin{lstlisting} 538 785 [ int ] f(int), g; … … 563 810 for example, the following is incorrect: 564 811 \begin{lstlisting} 565 * [ int x ] f () fp; // routine name "f" is not allowed812 * [ int x ] f () fp; // routine name "f" is not allowed 566 813 \end{lstlisting} 567 814 … … 696 943 While in theory default arguments can be simulated with overloading, as in: 697 944 \begin{quote2} 698 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{}}699 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{default arguments}} & \multicolumn{1}{c}{\textbf{overloading}} \\945 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 946 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{default arguments}} & \multicolumn{1}{c}{\textbf{overloading}} \\ 700 947 \begin{lstlisting} 701 948 void p( int x, int y = 2, int z = 3 ) {...} … … 730 977 \subsection{Type Nesting} 731 978 732 \CFA allows \Index{type nesting}, and type qualification of the nested types , where as C hoists\index{type!hoisting} (refactors) nested types into the enclosing scope and has no type qualification.733 \begin{ quote2}734 \begin{tabular}{@{}l@{\hspace{3 0pt}}l|l@{}}735 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{C Type Nesting}} & \multicolumn{1}{c}{\textbf{C Implicit Hoisting}} & \multicolumn{1}{|c}{\textbf{\CFA}} \\979 \CFA allows \Index{type nesting}, and type qualification of the nested types (see \VRef[Figure]{f:TypeNestingQualification}), where as C hoists\index{type hoisting} (refactors) nested types into the enclosing scope and has no type qualification. 980 \begin{figure} 981 \begin{tabular}{@{}l@{\hspace{3em}}l|l@{}} 982 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{C Type Nesting}} & \multicolumn{1}{c}{\textbf{C Implicit Hoisting}} & \multicolumn{1}{|c}{\textbf{\CFA}} \\ 736 983 \hline 737 984 \begin{lstlisting} … … 785 1032 786 1033 int fred() { 787 s.t.c = `S.`R; // type qualification788 struct `S.`T t = { `S.`R, 1, 2 };789 enum `S.`C c;790 union `S.T.`U u;1034 s.t.c = ®S.®R; // type qualification 1035 struct ®S.®T t = { ®S.®R, 1, 2 }; 1036 enum ®S.®C c; 1037 union ®S.T.®U u; 791 1038 } 792 1039 \end{lstlisting} 793 1040 \end{tabular} 794 \end{quote2} 795 In the left example in C, types \lstinline@C@, \lstinline@U@ and \lstinline@T@ are implicitly hoisted outside of type \lstinline@S@ into the containing block scope. 796 In the right example in \CFA, the types are not hoisted and accessed using the field-selection operator ``\lstinline@.@'' for type qualification, as does Java, rather than the \CC type-selection operator ``\lstinline@::@''. 1041 \caption{Type Nesting / Qualification} 1042 \label{f:TypeNestingQualification} 1043 \end{figure} 1044 In the left example in C, types ©C©, ©U© and ©T© are implicitly hoisted outside of type ©S© into the containing block scope. 1045 In the right example in \CFA, the types are not hoisted and accessed using the field-selection operator ``©.©'' for type qualification, as does Java, rather than the \CC type-selection operator ``©::©''. 797 1046 798 1047 … … 807 1056 which can be used to sort in ascending and descending order by locally redefining the less-than operator into greater-than. 808 1057 \begin{lstlisting} 809 const unsigned int size = 10;1058 const unsigned int size = 5; 810 1059 int ia[size]; 811 1060 ... // assign values to array ia 812 1061 qsort( ia, size ); // sort ascending order using builtin ?<? 813 1062 { 814 `int ?<?( int x, int y ) { return x > y; }`// nested routine1063 ®int ?<?( int x, int y ) { return x > y; }® // nested routine 815 1064 qsort( ia, size ); // sort descending order by local redefinition 816 1065 } … … 819 1068 Nested routines are not first-class, meaning a nested routine cannot be returned if it has references to variables in its enclosing blocks; 820 1069 the only exception is references to the external block of the translation unit, as these variables persist for the duration of the program. 821 The following program in undefined in \CFA (and \lstinline@gcc@\index{gcc})1070 The following program in undefined in \CFA (and ©gcc©\index{gcc}) 822 1071 \begin{lstlisting} 823 1072 [* [int]( int )] foo() { // int (*foo())( int ) 824 int `i`= 7;1073 int ®i® = 7; 825 1074 int bar( int p ) { 826 `i`+= 1; // dependent on local variable827 sout | `i`| endl;1075 ®i® += 1; // dependent on local variable 1076 sout | ®i® | endl; 828 1077 } 829 1078 return bar; // undefined because of local dependence … … 839 1088 840 1089 841 \section{ Tuples}1090 \section{Lexical List} 842 1091 843 1092 In C and \CFA, lists of elements appear in several contexts, such as the parameter list for a routine call. 844 1093 (More contexts are added shortly.) 845 A list of such elements is called a tuple.846 The general syntax of a tupleis:847 \begin{lstlisting} 848 [ $\emph{exprlist}$]849 \end{lstlisting} 850 where \lstinline@$\emph{exprlist}$@is a list of one or more expressions separated by commas.851 The brackets, \lstinline$[]$, allow differentiating between tuples and expressions containing the C comma operator.852 The following are examples of tuples:1094 A list of such elements is called a \newterm{lexical list}. 1095 The general syntax of a lexical list is: 1096 \begin{lstlisting} 1097 [ §\emph{exprlist}§ ] 1098 \end{lstlisting} 1099 where ©$\emph{exprlist}$© is a list of one or more expressions separated by commas. 1100 The brackets, ©[]©, allow differentiating between lexical lists and expressions containing the C comma operator. 1101 The following are examples of lexical lists: 853 1102 \begin{lstlisting} 854 1103 [ x, y, z ] … … 856 1105 [ v+w, x*y, 3.14159, f() ] 857 1106 \end{lstlisting} 858 Tuples are permitted to contain sub-tuples (i.e., nesting), such as \lstinline@[ [ 14, 21 ], 9 ]@, which is a 2-element tuple whose first element is itself a tuple.1107 Tuples are permitted to contain sub-tuples (i.e., nesting), such as ©[ [ 14, 21 ], 9 ]©, which is a 2-element tuple whose first element is itself a tuple. 859 1108 Note, a tuple is not a record (structure); 860 1109 a record denotes a single value with substructure, whereas a tuple is multiple values with no substructure (see flattening coercion in Section 12.1). … … 866 1115 The general syntax of a tuple type is: 867 1116 \begin{lstlisting} 868 [ @\emph{typelist}@]869 \end{lstlisting} 870 where \lstinline@$\emph{typelist}$@is a list of one or more legal \CFA or C type specifications separated by commas, which may include other tuple type specifications.1117 [ §\emph{typelist}§ ] 1118 \end{lstlisting} 1119 where ©$\emph{typelist}$© is a list of one or more legal \CFA or C type specifications separated by commas, which may include other tuple type specifications. 871 1120 Examples of tuple types include: 872 1121 \begin{lstlisting} … … 874 1123 [ double, double, double ] 875 1124 [ * int, int * ] // mix of CFA and ANSI 876 [ * [ 10] int, * * char, * [ [ int, int ] ] (int, int) ]877 \end{lstlisting} 878 Like tuples, tuple types may be nested, such as \lstinline@[ [ int, int ], int ]@, which is a 2-element tuple type whose first element is itself a tuple type.1125 [ * [ 5 ] int, * * char, * [ [ int, int ] ] (int, int) ] 1126 \end{lstlisting} 1127 Like tuples, tuple types may be nested, such as ©[ [ int, int ], int ]©, which is a 2-element tuple type whose first element is itself a tuple type. 879 1128 880 1129 Examples of declarations using tuple types are: … … 912 1161 tuple does not have structure like a record; a tuple is simply converted into a list of components. 913 1162 \begin{rationale} 914 The present implementation of \CFA does not support nested routine calls when the inner routine returns multiple values; i.e., a statement such as \lstinline@g( f() )@is not supported.1163 The present implementation of \CFA does not support nested routine calls when the inner routine returns multiple values; i.e., a statement such as ©g( f() )© is not supported. 915 1164 Using a temporary variable to store the results of the inner routine and then passing this variable to the outer routine works, however. 916 1165 \end{rationale} … … 941 1190 \begin{rationale} 942 1191 Unfortunately, C's syntax for subscripts precluded treating them as tuples. 943 The C subscript list has the form \lstinline@[i][j]...@ and not \lstinline@i, j, ...]@.944 Therefore, there is no syntactic way for a routine returning multiple values to specify the different subscript values, e.g., \lstinline@f[g()]@always means a single subscript value because there is only one set of brackets.945 Fixing this requires a major change to C because the syntactic form \lstinline@M[i, j, k]@ already has a particular meaning: \lstinline@i, j, k@is a comma expression.1192 The C subscript list has the form ©[i][j]...© and not ©[i, j, ...]©. 1193 Therefore, there is no syntactic way for a routine returning multiple values to specify the different subscript values, e.g., ©f[g()]© always means a single subscript value because there is only one set of brackets. 1194 Fixing this requires a major change to C because the syntactic form ©M[i, j, k]© already has a particular meaning: ©i, j, k© is a comma expression. 946 1195 \end{rationale} 947 1196 … … 962 1211 [ a, b, c, d ] = w 963 1212 \end{lstlisting} 964 \lstinline@w@is implicitly opened to yield a tuple of four values, which are then assigned individually.1213 ©w© is implicitly opened to yield a tuple of four values, which are then assigned individually. 965 1214 966 1215 A \newterm{flattening coercion} coerces a nested tuple, i.e., a tuple with one or more components, which are themselves tuples, into a flattened tuple, which is a tuple whose components are not tuples, as in: … … 970 1219 First the right-hand tuple is flattened and then the values are assigned individually. 971 1220 Flattening is also performed on tuple types. 972 For example, the type \lstinline@[ int, [ int, int ], int ]@ can be coerced, using flattening, into the type \lstinline@[ int, int, int, int ]@.1221 For example, the type ©[ int, [ int, int ], int ]© can be coerced, using flattening, into the type ©[ int, int, int, int ]©. 973 1222 974 1223 A \newterm{structuring coercion} is the opposite of flattening; 975 1224 a tuple is structured into a more complex nested tuple. 976 For example, structuring the tuple \lstinline@[ 1, 2, 3, 4 ]@ into the tuple \lstinline@[ 1, [ 2, 3 ], 4 ]@ or the tuple type \lstinline@[ int, int, int, int ]@ into the tuple type \lstinline@[ int, [ int, int ], int ]@.1225 For example, structuring the tuple ©[ 1, 2, 3, 4 ]© into the tuple ©[ 1, [ 2, 3 ], 4 ]© or the tuple type ©[ int, int, int, int ]© into the tuple type ©[ int, [ int, int ], int ]©. 977 1226 In the following example, the last assignment illustrates all the tuple coercions: 978 1227 \begin{lstlisting} … … 982 1231 \end{lstlisting} 983 1232 Starting on the right-hand tuple in the last assignment statement, w is opened, producing a tuple of four values; 984 therefore, the right-hand tuple is now the tuple \lstinline@[ [ 1, 2, 3, 4 ], 5 ]@.985 This tuple is then flattened, yielding \lstinline@[ 1, 2, 3, 4, 5 ]@, which is structured into \lstinline@[ 1, [ 2, 3, 4, 5 ] ]@to match the tuple type of the left-hand side.986 The tuple \lstinline@[ 2, 3, 4, 5 ]@is then closed to create a tuple value.987 Finally, \lstinline@x@ is assigned \lstinline@1@ and \lstinline@w@is assigned the tuple value using multiple assignment (see Section 14).1233 therefore, the right-hand tuple is now the tuple ©[ [ 1, 2, 3, 4 ], 5 ]©. 1234 This tuple is then flattened, yielding ©[ 1, 2, 3, 4, 5 ]©, which is structured into ©[ 1, [ 2, 3, 4, 5 ] ]© to match the tuple type of the left-hand side. 1235 The tuple ©[ 2, 3, 4, 5 ]© is then closed to create a tuple value. 1236 Finally, ©x© is assigned ©1© and ©w© is assigned the tuple value using multiple assignment (see Section 14). 988 1237 \begin{rationale} 989 1238 A possible additional language extension is to use the structuring coercion for tuples to initialize a complex record with a tuple. … … 996 1245 Mass assignment has the following form: 997 1246 \begin{lstlisting} 998 [ @\emph{lvalue}@, ..., @\emph{lvalue}@ ] = @\emph{expr}@;999 \end{lstlisting} 1000 The left-hand side is a tuple of \ lstinline@$\emph{lvalues}$@, which is a list of expressions each yielding an address, i.e., any data object that can appear on the left-hand side of a conventional assignment statement.1001 \lstinline@$\emph{expr}$@is any standard arithmetic expression.1247 [ §\emph{lvalue}§, ..., §\emph{lvalue}§ ] = §\emph{expr}§; 1248 \end{lstlisting} 1249 The left-hand side is a tuple of \emph{lvalues}, which is a list of expressions each yielding an address, i.e., any data object that can appear on the left-hand side of a conventional assignment statement. 1250 ©$\emph{expr}$© is any standard arithmetic expression. 1002 1251 Clearly, the types of the entities being assigned must be type compatible with the value of the expression. 1003 1252 … … 1025 1274 *a1 = t; *a2 = t; *a3 = t; 1026 1275 \end{lstlisting} 1027 The temporary \lstinline@t@is necessary to store the value of the expression to eliminate conversion issues.1276 The temporary ©t© is necessary to store the value of the expression to eliminate conversion issues. 1028 1277 The temporaries for the addresses are needed so that locations on the left-hand side do not change as the values are assigned. 1029 In this case, \lstinline@y[i]@ uses the previous value of \lstinline@i@and not the new value set at the beginning of the mass assignment.1278 In this case, ©y[i]© uses the previous value of ©i© and not the new value set at the beginning of the mass assignment. 1030 1279 1031 1280 … … 1035 1284 Multiple assignment has the following form: 1036 1285 \begin{lstlisting} 1037 [ @\emph{lvalue}@, . . ., @\emph{lvalue}@ ] = [ @\emph{expr}@, . . ., @\emph{expr}@];1038 \end{lstlisting} 1039 The left-hand side is a tuple of \ lstinline@$\emph{lvalues}$@, and the right-hand side is a tuple of \lstinline@$\emph{expr}$@s.1040 Each \ lstinline@$\emph{expr}$@ appearing on the righthand side of a multiple assignment statement is assigned to the corresponding \lstinline@$\emph{lvalues}$@on the left-hand side of the statement using parallel semantics for each assignment.1286 [ §\emph{lvalue}§, . . ., §\emph{lvalue}§ ] = [ §\emph{expr}§, . . ., §\emph{expr}§ ]; 1287 \end{lstlisting} 1288 The left-hand side is a tuple of \emph{lvalues}, and the right-hand side is a tuple of \emph{expr}s. 1289 Each \emph{expr} appearing on the righthand side of a multiple assignment statement is assigned to the corresponding \emph{lvalues} on the left-hand side of the statement using parallel semantics for each assignment. 1041 1290 An example of multiple assignment is: 1042 1291 \begin{lstlisting} 1043 1292 [ x, y, z ] = [ 1, 2, 3 ]; 1044 1293 \end{lstlisting} 1045 Here, the values \lstinline@1@, \lstinline@2@ and \lstinline@3@ are assigned, respectively, to the variables \lstinline@x@, \lstinline@y@ and \lstinline@z@.1294 Here, the values ©1©, ©2© and ©3© are assigned, respectively, to the variables ©x©, ©y© and ©z©. 1046 1295 A more complex example is: 1047 1296 \begin{lstlisting} 1048 1297 [ i, y[ i ], z ] = [ 1, i, a + b ]; 1049 1298 \end{lstlisting} 1050 Here, the values \lstinline@1@, \lstinline@i@ and \lstinline@a + b@ are assigned to the variables \lstinline@i@, \lstinline@y[i]@ and \lstinline@z@, respectively.1299 Here, the values ©1©, ©i© and ©a + b© are assigned to the variables ©i©, ©y[i]© and ©z©, respectively. 1051 1300 Note, the parallel semantics of 1052 1301 multiple assignment ensures: … … 1054 1303 [ x, y ] = [ y, x ]; 1055 1304 \end{lstlisting} 1056 correctly interchanges (swaps) the values stored in \lstinline@x@ and \lstinline@y@.1305 correctly interchanges (swaps) the values stored in ©x© and ©y©. 1057 1306 The following cases are errors: 1058 1307 \begin{lstlisting} … … 1075 1324 Cascade assignment has the following form: 1076 1325 \begin{lstlisting} 1077 @\emph{tuple}@ = @\emph{tuple}@ = ... = @\emph{tuple}@;1326 §\emph{tuple}§ = §\emph{tuple}§ = ... = §\emph{tuple}§; 1078 1327 \end{lstlisting} 1079 1328 and it has the same parallel semantics as for mass and multiple assignment. … … 1093 1342 Its general form is: 1094 1343 \begin{lstlisting} 1095 @\emph{expr}@ . [ @\emph{fieldlist}@]1096 @\emph{expr}@ -> [ @\emph{fieldlist}@]1097 \end{lstlisting} 1098 \ lstinline@$\emph{expr}$@ is any expression yielding a value of type record, e.g., \lstinline@struct@, \lstinline@union@.1099 Each element of \ lstinline@$\emph{ fieldlist}$@ is an element of the record specified by \lstinline@$\emph{expr}$@.1344 §\emph{expr}§ . [ §\emph{fieldlist}§ ] 1345 §\emph{expr}§ -> [ §\emph{fieldlist}§ ] 1346 \end{lstlisting} 1347 \emph{expr} is any expression yielding a value of type record, e.g., ©struct©, ©union©. 1348 Each element of \emph{ fieldlist} is an element of the record specified by \emph{expr}. 1100 1349 A record-field tuple may be used anywhere a tuple can be used. An example of the use of a record-field tuple is 1101 1350 the following: … … 1112 1361 also, it is unnecessary to specify all the fields of a struct in a multiple record-field tuple. 1113 1362 1114 If a field of a \lstinline@struct@ is itself another \lstinline@struct@, multiple fields of this subrecord can be specified using a nested record-field tuple, as in the following example:1363 If a field of a ©struct© is itself another ©struct©, multiple fields of this subrecord can be specified using a nested record-field tuple, as in the following example: 1115 1364 \begin{lstlisting} 1116 1365 struct inner { … … 1129 1378 \section{Labelled Break/Continue} 1130 1379 1131 While C provides \lstinline@break@ and \lstinline@continue@ statements for altering control flow, both are restricted to one level of nesting for a particular control structure. 1132 Unfortunately, this restriction forces programmers to use \lstinline@goto@ to achieve the equivalent for more than one level of nesting. 1133 To prevent having to make this switch, the \lstinline@break@ and \lstinline@continue@ are extended with a target label to support static multi-level exit~\cite{Buhr85,Java}. 1134 For the labelled \lstinline@break@, it is possible to specify which control structure is the target for exit, as in: 1135 \begin{quote2} 1136 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 1137 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1138 \begin{lstlisting} 1139 `L1:` for ( ... ) { 1140 `L2:` for ( ... ) { 1141 `L3:` for ( ... ) { 1142 ... break `L1`; ... 1143 ... break `L2`; ... 1144 ... break `L3`; // or break 1380 While C provides ©break© and ©continue© statements for altering control flow, both are restricted to one level of nesting for a particular control structure. 1381 Unfortunately, this restriction forces programmers to use ©goto© to achieve the equivalent for more than one level of nesting. 1382 To prevent having to make this switch, the ©break© and ©continue© are extended with a target label to support static multi-level exit~\cite{Buhr85,Java}. 1383 \VRef[Figure]{f:LabelledBreak} shows the labelled ©break©, and the target control structure of the exit. 1384 The inner most loop has three exit points, which cause termination of one or more of the three nested loops, respectively. 1385 \VRef[Figure]{f:LabelledContinue} shows the labelled ©continue©, and which control structure is the target of the next loop iteration. 1386 The inner most loop has three restart points, which cause the next loop iteration to begin, respectively. 1387 1388 \begin{figure} 1389 \centering 1390 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 1391 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1392 \begin{lstlisting} 1393 ®L1:® for ( ... ) { 1394 ®L2:® for ( ... ) { 1395 ®L3:® for ( ... ) { 1396 ... break ®L1®; ... 1397 ... break ®L2®; ... 1398 ... break ®L3®; // or break 1145 1399 } 1146 1400 } … … 1154 1408 ... goto L1; ... 1155 1409 ... goto L2; ... 1156 ... goto L3; // or break 1410 ... goto L3; // or break 1157 1411 } L3: ; 1158 1412 } L2: ; … … 1160 1414 \end{lstlisting} 1161 1415 \end{tabular} 1162 \end{quote2} 1163 The inner most loop has three exit points, which cause termination of one or more of the three nested loops, respectively. 1164 For the labelled \lstinline@continue@, it is possible to specify which control structure is the target for the next loop iteration, as in: 1165 \begin{quote2} 1166 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 1167 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1168 \begin{lstlisting} 1169 `L1`: for ( ... ) { 1170 `L2`: for ( ... ) { 1171 `L3`: for ( ... ) { 1172 ... continue `L1`; ... 1173 ... continue `L2`; ... 1174 ... continue `L3`; ... 1416 \caption{Labelled Break} 1417 \label{f:LabelledBreak} 1418 1419 \vspace*{0.25in} 1420 1421 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 1422 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1423 \begin{lstlisting} 1424 ®L1®: for ( ... ) { 1425 ®L2®: for ( ... ) { 1426 ®L3®: for ( ... ) { 1427 ... continue ®L1®; ... 1428 ... continue ®L2®; ... 1429 ... continue ®L3®; // or continue 1175 1430 1176 1431 } … … 1187 1442 ... goto L1; ... 1188 1443 ... goto L2; ... 1189 ... goto L3; ...1444 ... goto L3; // or continue 1190 1445 L3: ; 1191 1446 } … … 1196 1451 \end{lstlisting} 1197 1452 \end{tabular} 1198 \end{quote2} 1199 The inner most loop has three restart points, which cause the next loop iteration to begin, respectively. 1200 For both \lstinline@break@ and \lstinline@continue@, the target label must be directly associated with a \lstinline@for@, \lstinline@while@ or \lstinline@do@ statement; 1201 for \lstinline@break@, the target label can also be associated with a \lstinline@switch@ statement. 1202 Both \lstinline@break@ and \lstinline@continue@ with target labels are simply a \lstinline@goto@ restricted in the following ways: 1453 \caption{Labelled Continue} 1454 \label{f:LabelledContinue} 1455 \end{figure} 1456 1457 For both ©break© and ©continue©, the target label must be directly associated with a ©for©, ©while© or ©do© statement; 1458 for ©break©, the target label can also be associated with a ©switch© statement. 1459 Both ©break© and ©continue© with target labels are simply a ©goto© restricted in the following ways: 1203 1460 \begin{itemize} 1204 1461 \item … … 1209 1466 Since they always transfers out of containing control structures, they cannot be used to branch into a control structure. 1210 1467 \end{itemize} 1211 The advantage of the labelled \lstinline@break@/\lstinline@continue@ is that it allows static multi-level exits without having to use the \lstinline@goto@statement and ties control flow to the target control structure rather than an arbitrary point in a program.1468 The advantage of the labelled ©break©/©continue© is that it allows static multi-level exits without having to use the ©goto© statement and ties control flow to the target control structure rather than an arbitrary point in a program. 1212 1469 Furthermore, the location of the label at the beginning of the target control structure informs the reader that complex control-flow is occurring in the body of the control structure. 1213 With \lstinline@goto@, the label at the end of the control structure fails to convey this important clue early enough to the reader.1470 With ©goto©, the label at the end of the control structure fails to convey this important clue early enough to the reader. 1214 1471 Finally, using an explicit target for the transfer instead of an implicit target allows new nested loop or switch constructs to be added or removed without affecting other constructs. 1215 The implicit targets of the current \lstinline@break@ and \lstinline@continue@, i.e., the closest enclosing loop or \lstinline@switch@, change as certain constructs are added or removed.1472 The implicit targets of the current ©break© and ©continue©, i.e., the closest enclosing loop or ©switch©, change as certain constructs are added or removed. 1216 1473 1217 1474 1218 1475 \section{Switch Statement} 1219 1476 1220 C allows a number of questionable forms for the \lstinline@switch@statement:1477 C allows a number of questionable forms for the ©switch© statement: 1221 1478 \begin{enumerate} 1222 1479 \item 1223 By default, the end of a \lstinline@case@clause\footnote{1224 In this section, the term \emph{case clause} refers to either a \lstinline@case@ or \lstinline@default@clause.}1225 \emph{falls through} to the next \lstinline@case@ clause in the \lstinline@switch@statement;1226 to exit a \lstinline@switch@ statement from a \lstinline@case@ clause requires explicitly terminating the clause with a transfer statement, most commonly \lstinline@break@, as in:1480 By default, the end of a ©case© clause\footnote{ 1481 In this section, the term \emph{case clause} refers to either a ©case© or ©default© clause.} 1482 \emph{falls through} to the next ©case© clause in the ©switch© statement; 1483 to exit a ©switch© statement from a ©case© clause requires explicitly terminating the clause with a transfer statement, most commonly ©break©, as in: 1227 1484 \begin{lstlisting} 1228 1485 switch ( i ) { … … 1249 1506 \end{lstlisting} 1250 1507 In this example, case 2 is always done if case 3 is done. 1251 This control flow is difficult to simulate with if statements or a \lstinline@switch@statement without fall-through as code must be duplicated or placed in a separate routine.1508 This control flow is difficult to simulate with if statements or a ©switch© statement without fall-through as code must be duplicated or placed in a separate routine. 1252 1509 C also uses fall-through to handle multiple case-values resulting in the same action, as in: 1253 1510 \begin{lstlisting} … … 1262 1519 \end{lstlisting} 1263 1520 However, this situation is handled in other languages without fall-through by allowing a list of case values. 1264 While fall-through itself is not a problem, the problem occurs when fall-through is the \lstinline@default@, as this semantics is not intuitive to most programmers and is different from virtually all other programming languages with a \lstinline@switch@statement.1265 Hence, \lstinline@default@ fall-through semantics results in a large number of programming errors as programmers often forget the \lstinline@break@ statement at the end of a \lstinline@case@clause, resulting in inadvertent fall-through.1266 1267 \item 1268 It is possible to place \lstinline@case@ clauses on statements nested \emph{within} the body of the \lstinline@switch@statement, as in:1521 While fall-through itself is not a problem, the problem occurs when fall-through is the ©default©, as this semantics is not intuitive to most programmers and is different from virtually all other programming languages with a ©switch© statement. 1522 Hence, ©default© fall-through semantics results in a large number of programming errors as programmers often forget the ©break© statement at the end of a ©case© clause, resulting in inadvertent fall-through. 1523 1524 \item 1525 It is possible to place ©case© clauses on statements nested \emph{within} the body of the ©switch© statement, as in: 1269 1526 \begin{lstlisting} 1270 1527 switch ( i ) { … … 1307 1564 } 1308 1565 \end{lstlisting} 1309 which unrolls a loop N times (N = 8 above) and uses the \lstinline@switch@statement to deal with any iterations not a multiple of N.1566 which unrolls a loop N times (N = 8 above) and uses the ©switch© statement to deal with any iterations not a multiple of N. 1310 1567 While efficient, this sort of special purpose usage is questionable: 1311 1568 \begin{quote} … … 1314 1571 \end{quote} 1315 1572 \item 1316 It is possible to place the \lstinline@default@ clause anywhere in the list of labelled clauses for a \lstinline@switch@statement, rather than only at the end.1317 Virtually all programming languages with a \lstinline@switch@ statement require the \lstinline@default@clause to appear last in the case-clause list.1318 The logic for this semantics is that after checking all the \lstinline@case@ clauses without success, the \lstinline@default@clause is selected;1319 hence, physically placing the \lstinline@default@ clause at the end of the \lstinline@case@clause list matches with this semantics.1320 This physical placement can be compared to the physical placement of an \lstinline@else@ clause at the end of a series of connected \lstinline@if@/\lstinline@else@statements.1321 1322 \item 1323 It is possible to place unreachable code at the start of a \lstinline@switch@statement, as in:1573 It is possible to place the ©default© clause anywhere in the list of labelled clauses for a ©switch© statement, rather than only at the end. 1574 Virtually all programming languages with a ©switch© statement require the ©default© clause to appear last in the case-clause list. 1575 The logic for this semantics is that after checking all the ©case© clauses without success, the ©default© clause is selected; 1576 hence, physically placing the ©default© clause at the end of the ©case© clause list matches with this semantics. 1577 This physical placement can be compared to the physical placement of an ©else© clause at the end of a series of connected ©if©/©else© statements. 1578 1579 \item 1580 It is possible to place unreachable code at the start of a ©switch© statement, as in: 1324 1581 \begin{lstlisting} 1325 1582 switch ( x ) { … … 1331 1588 } 1332 1589 \end{lstlisting} 1333 While the declaration of the local variable \lstinline@y@ is useful and its scope is across all \lstinline@case@clauses, the initialization for such a variable is defined to never be executed because control always transfers over it.1334 Furthermore, any statements before the first \lstinline@case@ clause can only be executed if labelled and transfered to using a \lstinline@goto@, either from outside or inside of the \lstinline@switch@.1590 While the declaration of the local variable ©y© is useful and its scope is across all ©case© clauses, the initialization for such a variable is defined to never be executed because control always transfers over it. 1591 Furthermore, any statements before the first ©case© clause can only be executed if labelled and transfered to using a ©goto©, either from outside or inside of the ©switch©. 1335 1592 As mentioned, transfer into control structures should be forbidden. 1336 Transfers from within the \lstinline@switch@ body using a \lstinline@goto@are equally unpalatable.1593 Transfers from within the ©switch© body using a ©goto© are equally unpalatable. 1337 1594 \end{enumerate} 1338 1595 Before discussing potential language changes to deal with these problems, it is worth observing that in a typical C program: 1339 1596 \begin{itemize} 1340 1597 \item 1341 the number of \lstinline@switch@statements is small,1342 \item 1343 most \lstinline@switch@statements are well formed (i.e., no Duff's device),1344 \item 1345 the \lstinline@default@clause is usually written as the last case-clause,1346 \item 1347 and there is only a medium amount of fall-through from one \lstinline@case@clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound.1598 the number of ©switch© statements is small, 1599 \item 1600 most ©switch© statements are well formed (i.e., no Duff's device), 1601 \item 1602 the ©default© clause is usually written as the last case-clause, 1603 \item 1604 and there is only a medium amount of fall-through from one ©case© clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound. 1348 1605 \end{itemize} 1349 1606 These observations should help to put the effects of suggested changes into perspective. … … 1351 1608 \begin{enumerate} 1352 1609 \item 1353 Eliminating the \lstinline@default@fall-through problem has the greatest potential for affecting existing code.1354 However, even if fall-through is removed, most \lstinline@switch@ statements would continue to work because of the explicit transfers already present at the end of each \lstinline@case@ clause, and the common placement of the \lstinline@default@clause at the end of the case list.1355 In addition, the above grammar provides for the most common use of fall-through, i.e., a list of \lstinline@case@clauses executing common code, e.g.:1610 Eliminating the ©default© fall-through problem has the greatest potential for affecting existing code. 1611 However, even if fall-through is removed, most ©switch© statements would continue to work because of the explicit transfers already present at the end of each ©case© clause, and the common placement of the ©default© clause at the end of the case list. 1612 In addition, the above grammar provides for the most common use of fall-through, i.e., a list of ©case© clauses executing common code, e.g.: 1356 1613 \begin{lstlisting} 1357 1614 case 1: case 2: case 3: ... 1358 1615 \end{lstlisting} 1359 1616 Nevertheless, reversing the default action would have a non-trivial effect on case actions that compound, such as the above example of processing shell arguments. 1360 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of \lstinline@switch@ statement, called \lstinline@choose@, with no fall-through semantics.1361 The \lstinline@choose@ statement is identical to the new \lstinline@switch@ statement, except there is no implicit fall-through between case-clauses and the \lstinline@break@ statement applies to the enclosing loop construct (as for the continue statement in a \lstinline@switch@statement).1617 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no fall-through semantics. 1618 The ©choose© statement is identical to the new ©switch© statement, except there is no implicit fall-through between case-clauses and the ©break© statement applies to the enclosing loop construct (as for the continue statement in a ©switch© statement). 1362 1619 It is still possible to fall-through if a case-clause ends with the new keyword fallthru, e.g.: 1363 1620 \begin{lstlisting} … … 1375 1632 \item 1376 1633 Eliminating Duff's device is straightforward and only invalidates a small amount of very questionable code. 1377 The solution is to allow \lstinline@case@ clauses to only appear at the same nesting level as the \lstinline@switch@ body, as is done in most other programming languages with \lstinline@switch@statements.1378 \item 1379 The issue of \lstinline@default@ at locations other than at the end of the cause clause can be solved by using good programming style, and there are a few reasonable situations involving fall-through where the \lstinline@default@clause may appear is locations other than at the end.1634 The solution is to allow ©case© clauses to only appear at the same nesting level as the ©switch© body, as is done in most other programming languages with ©switch© statements. 1635 \item 1636 The issue of ©default© at locations other than at the end of the cause clause can be solved by using good programming style, and there are a few reasonable situations involving fall-through where the ©default© clause may appear is locations other than at the end. 1380 1637 Therefore, no language change is made for this issue. 1381 1638 \item 1382 Dealing with unreachable code at the start of a \lstinline@switch@ statement is solved by defining the declaration-list, including any associated initialization, at the start of a \lstinline@switch@ statement body to be executed before the transfer to the appropriate \lstinline@case@clause.1639 Dealing with unreachable code at the start of a ©switch© statement is solved by defining the declaration-list, including any associated initialization, at the start of a ©switch© statement body to be executed before the transfer to the appropriate ©case© clause. 1383 1640 This semantics is the same as for declarations at the start of a loop body, which are executed before each iteration of the loop body. 1384 As well, this grammar does not allow statements to appear before the first \lstinline@case@clause.1641 As well, this grammar does not allow statements to appear before the first ©case© clause. 1385 1642 The change is compatible for declarations with initialization in this context because existing code cannot assume the initialization has occurred. 1386 1643 The change is incompatible for statements, but any existing code using it is highly questionable, as in: … … 1392 1649 } 1393 1650 \end{lstlisting} 1394 The statement after the \lstinline@switch@can never be executed unless it is labelled.1395 If it is labelled, it must be transfered to from outside or inside the \lstinline@switch@statement, neither of which is acceptable control flow.1651 The statement after the ©switch© can never be executed unless it is labelled. 1652 If it is labelled, it must be transfered to from outside or inside the ©switch© statement, neither of which is acceptable control flow. 1396 1653 \end{enumerate} 1397 1654 … … 1399 1656 \section{Case Clause} 1400 1657 1401 C restricts the \lstinline@case@ clause of a \lstinline@switch@statement to a single value.1402 For multiple \lstinline@case@ clauses associated with the same statement, it is necessary to have multiple \lstinline@case@clauses rather than multiple values.1403 Requiring a \lstinline@case@clause for each value does not seem to be in the spirit of brevity normally associated with C.1404 Therefore, the \lstinline@case@clause is extended with a list of values, as in:1658 C restricts the ©case© clause of a ©switch© statement to a single value. 1659 For multiple ©case© clauses associated with the same statement, it is necessary to have multiple ©case© clauses rather than multiple values. 1660 Requiring a ©case© clause for each value does not seem to be in the spirit of brevity normally associated with C. 1661 Therefore, the ©case© clause is extended with a list of values, as in: 1405 1662 \begin{quote2} 1406 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{\hspace{20pt}}l@{}}1407 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\1663 \begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{2em}}l@{}} 1664 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{C}} \\ 1408 1665 \begin{lstlisting} 1409 1666 switch ( i ) { 1410 `case 1, 3, 5`:1667 ®case 1, 3, 5®: 1411 1668 ... 1412 `case 2, 4, 6`:1669 ®case 2, 4, 6®: 1413 1670 ... 1414 1671 } … … 1436 1693 In addition, two forms of subranges are allowed to specify case values: the GNU C form and a new \CFA form. 1437 1694 \begin{quote2} 1438 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{\hspace{20pt}}l@{}}1439 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{GNU C}} \\1695 \begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{2em}}l@{}} 1696 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{GNU C}} \\ 1440 1697 \begin{lstlisting} 1441 1698 switch ( i ) { 1442 `case 1~5:`1699 ®case 1~5:® 1443 1700 ... 1444 `case 10~15:`1701 ®case 10~15:® 1445 1702 ... 1446 1703 } … … 1697 1954 1698 1955 The syntax for using references in \CFA is the same as \CC with the exception of reference initialization. 1699 Use \lstinline@&@to specify a reference, and access references just like regular objects, not like pointers (use dot notation to access fields).1956 Use ©&© to specify a reference, and access references just like regular objects, not like pointers (use dot notation to access fields). 1700 1957 When initializing a reference, \CFA uses a different syntax which differentiates reference initialization from assignment to a reference. 1701 The \lstinline@&@is used on both sides of the expression to clarify that the address of the reference is being set to the address of the variable to which it refers.1958 The ©&© is used on both sides of the expression to clarify that the address of the reference is being set to the address of the variable to which it refers. 1702 1959 1703 1960 \begin{figure} … … 1772 2029 In \CFA, as in C, all scalar types can be incremented and 1773 2030 decremented, which is defined in terms of adding or subtracting 1. 1774 The operations \lstinline@&&@, \lstinline@||@, and \lstinline@!@ can be applied to any scalar arguments and are defined in terms of comparison against 0 (ex. \lstinline@(a && b)@ becomes \lstinline@(a != 0 && b != 0)@).2031 The operations ©&&©, ©||©, and ©!© can be applied to any scalar arguments and are defined in terms of comparison against 0 (ex. ©(a && b)© becomes ©(a != 0 && b != 0)©). 1775 2032 1776 2033 In C, the integer constants 0 and 1 suffice because the integer promotion rules can convert them to any … … 1781 2038 polymorphic parameters, and user-defined pointer-like types may need a null value. 1782 2039 Defining special 1783 constants for a user-defined type is more efficient than defining a conversion to the type from \lstinline@_Bool@.2040 constants for a user-defined type is more efficient than defining a conversion to the type from ©_Bool©. 1784 2041 1785 2042 Why just 0 and 1? Why not other integers? No other integers have special status in C. … … 1864 2121 \begin{tabular}[t]{ll} 1865 2122 %identifier & operation \\ \hline 1866 \lstinline@?[?]@& subscripting \impl{?[?]}\\1867 \lstinline@?()@& function call \impl{?()}\\1868 \lstinline@?++@& postfix increment \impl{?++}\\1869 \lstinline@?--@& postfix decrement \impl{?--}\\1870 \lstinline@++?@& prefix increment \impl{++?}\\1871 \lstinline@--?@& prefix decrement \impl{--?}\\1872 \lstinline@*?@& dereference \impl{*?}\\1873 \lstinline@+?@& unary plus \impl{+?}\\1874 \lstinline@-?@& arithmetic negation \impl{-?}\\1875 \lstinline@~?@& bitwise negation \impl{~?}\\1876 \lstinline@!?@& logical complement \impl{"!?}\\1877 \lstinline@?*?@& multiplication \impl{?*?}\\1878 \lstinline@?/?@& division \impl{?/?}\\2123 ©?[?]© & subscripting \impl{?[?]}\\ 2124 ©?()© & function call \impl{?()}\\ 2125 ©?++© & postfix increment \impl{?++}\\ 2126 ©?--© & postfix decrement \impl{?--}\\ 2127 ©++?© & prefix increment \impl{++?}\\ 2128 ©--?© & prefix decrement \impl{--?}\\ 2129 ©*?© & dereference \impl{*?}\\ 2130 ©+?© & unary plus \impl{+?}\\ 2131 ©-?© & arithmetic negation \impl{-?}\\ 2132 ©~?© & bitwise negation \impl{~?}\\ 2133 ©!?© & logical complement \impl{"!?}\\ 2134 ©?*?© & multiplication \impl{?*?}\\ 2135 ©?/?© & division \impl{?/?}\\ 1879 2136 \end{tabular}\hfil 1880 2137 \begin{tabular}[t]{ll} 1881 2138 %identifier & operation \\ \hline 1882 \lstinline@?%?@& remainder \impl{?%?}\\1883 \lstinline@?+?@& addition \impl{?+?}\\1884 \lstinline@?-?@& subtraction \impl{?-?}\\1885 \lstinline@?<<?@& left shift \impl{?<<?}\\1886 \lstinline@?>>?@& right shift \impl{?>>?}\\1887 \lstinline@?<?@& less than \impl{?<?}\\1888 \lstinline@?<=?@& less than or equal \impl{?<=?}\\1889 \lstinline@?>=?@& greater than or equal \impl{?>=?}\\1890 \lstinline@?>?@& greater than \impl{?>?}\\1891 \lstinline@?==?@& equality \impl{?==?}\\1892 \lstinline@?!=?@& inequality \impl{?"!=?}\\1893 \lstinline@?&?@& bitwise AND \impl{?&?}\\2139 ©?%?© & remainder \impl{?%?}\\ 2140 ©?+?© & addition \impl{?+?}\\ 2141 ©?-?© & subtraction \impl{?-?}\\ 2142 ©?<<?© & left shift \impl{?<<?}\\ 2143 ©?>>?© & right shift \impl{?>>?}\\ 2144 ©?<?© & less than \impl{?<?}\\ 2145 ©?<=?© & less than or equal \impl{?<=?}\\ 2146 ©?>=?© & greater than or equal \impl{?>=?}\\ 2147 ©?>?© & greater than \impl{?>?}\\ 2148 ©?==?© & equality \impl{?==?}\\ 2149 ©?!=?© & inequality \impl{?"!=?}\\ 2150 ©?&?© & bitwise AND \impl{?&?}\\ 1894 2151 \end{tabular}\hfil 1895 2152 \begin{tabular}[t]{ll} 1896 2153 %identifier & operation \\ \hline 1897 \lstinline@?^?@& exclusive OR \impl{?^?}\\1898 \lstinline@?|?@& inclusive OR \impl{?"|?}\\1899 \lstinline@?=?@& simple assignment \impl{?=?}\\1900 \lstinline@?*=?@& multiplication assignment \impl{?*=?}\\1901 \lstinline@?/=?@& division assignment \impl{?/=?}\\1902 \lstinline@?%=?@& remainder assignment \impl{?%=?}\\1903 \lstinline@?+=?@& addition assignment \impl{?+=?}\\1904 \lstinline@?-=?@& subtraction assignment \impl{?-=?}\\1905 \lstinline@?<<=?@& left-shift assignment \impl{?<<=?}\\1906 \lstinline@?>>=?@& right-shift assignment \impl{?>>=?}\\1907 \lstinline@?&=?@& bitwise AND assignment \impl{?&=?}\\1908 \lstinline@?^=?@& exclusive OR assignment \impl{?^=?}\\1909 \lstinline@?|=?@& inclusive OR assignment \impl{?"|=?}\\2154 ©?^?© & exclusive OR \impl{?^?}\\ 2155 ©?|?© & inclusive OR \impl{?"|?}\\ 2156 ©?=?© & simple assignment \impl{?=?}\\ 2157 ©?*=?© & multiplication assignment \impl{?*=?}\\ 2158 ©?/=?© & division assignment \impl{?/=?}\\ 2159 ©?%=?© & remainder assignment \impl{?%=?}\\ 2160 ©?+=?© & addition assignment \impl{?+=?}\\ 2161 ©?-=?© & subtraction assignment \impl{?-=?}\\ 2162 ©?<<=?© & left-shift assignment \impl{?<<=?}\\ 2163 ©?>>=?© & right-shift assignment \impl{?>>=?}\\ 2164 ©?&=?© & bitwise AND assignment \impl{?&=?}\\ 2165 ©?^=?© & exclusive OR assignment \impl{?^=?}\\ 2166 ©?|=?© & inclusive OR assignment \impl{?"|=?}\\ 1910 2167 \end{tabular} 1911 2168 \hfil … … 1916 2173 These identifiers are defined such that the question marks in the name identify the location of the operands. 1917 2174 These operands represent the parameters to the functions, and define how the operands are mapped to the function call. 1918 For example, \lstinline@a + b@ becomes \lstinline@?+?(a, b)@.2175 For example, ©a + b© becomes ©?+?(a, b)©. 1919 2176 1920 2177 In the example below, a new type, myComplex, is defined with an overloaded constructor, + operator, and string operator. … … 1958 2215 Auto type-inferencing occurs in a declaration where a variable's type is inferred from its initialization expression type. 1959 2216 \begin{quote2} 1960 \begin{tabular}{@{}l@{\hspace{3 0pt}}ll@{}}1961 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CC}} & \multicolumn{1}{c}{\lstinline@gcc@}\index{gcc} \\2217 \begin{tabular}{@{}l@{\hspace{3em}}ll@{}} 2218 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CC}} & \multicolumn{1}{c}{©gcc©}\index{gcc} \\ 1962 2219 \begin{lstlisting} 1963 2220 … … 1990 2247 \end{itemize} 1991 2248 1992 In \CFA, \lstinline@typedef@provides a mechanism to alias long type names with short ones, both globally and locally, but not eliminate the use of the short name.1993 \lstinline@gcc@ provides \lstinline@typeof@to declare a secondary variable from a primary variable.2249 In \CFA, ©typedef© provides a mechanism to alias long type names with short ones, both globally and locally, but not eliminate the use of the short name. 2250 ©gcc© provides ©typeof© to declare a secondary variable from a primary variable. 1994 2251 \CFA also relies heavily on the specification of the left-hand side of assignment for type inferencing, so in many cases it is crucial to specify the type of the left-hand side to select the correct type of the right-hand expression. 1995 2252 Only for overloaded routines with the same return type is variable type-inferencing possible. 1996 Finally, \lstinline@auto@presents the programming problem of tracking down a type when the type is actually needed.2253 Finally, ©auto© presents the programming problem of tracking down a type when the type is actually needed. 1997 2254 For example, given 1998 2255 \begin{lstlisting} 1999 auto j = `...`2000 \end{lstlisting} 2001 and the need to write a routine to compute using \lstinline@j@2002 \begin{lstlisting} 2003 void rtn( `...`parm );2256 auto j = ®...® 2257 \end{lstlisting} 2258 and the need to write a routine to compute using ©j© 2259 \begin{lstlisting} 2260 void rtn( ®...® parm ); 2004 2261 rtn( j ); 2005 2262 \end{lstlisting} 2006 A programmer must work backwards to determine the type of \lstinline@j@'s initialization expression, reconstructing the possibly long generic type-name.2263 A programmer must work backwards to determine the type of ©j©'s initialization expression, reconstructing the possibly long generic type-name. 2007 2264 In this situation, having the type name or a short alias is very useful. 2008 2265 … … 2012 2269 At some point, a programmer wants the type of the variable to remain constant and the expression to be in error when it changes. 2013 2270 2014 Given \lstinline@typedef@ and \lstinline@typeof@in \CFA, and the strong need to use the type of left-hand side in inferencing, auto type-inferencing is not supported at this time.2271 Given ©typedef© and ©typeof© in \CFA, and the strong need to use the type of left-hand side in inferencing, auto type-inferencing is not supported at this time. 2015 2272 Should a significant need arise, this feature can be revisited. 2016 2273 … … 2216 2473 2217 2474 try { 2218 throw 13;2475 throw 13; 2219 2476 } 2220 2477 catch(int e) { 2221 printf(.caught an exception: %d\n., e);2478 printf(.caught an exception: %d\n., e); 2222 2479 } 2223 2480 \end{lstlisting} … … 2314 2571 } s; 2315 2572 \end{lstlisting} 2316 The problem occurs in accesing these fields using the selection operation `` \lstinline@.@'':2573 The problem occurs in accesing these fields using the selection operation ``©.©'': 2317 2574 \begin{lstlisting} 2318 2575 s.0 = 0; // ambiguity with floating constant .0 … … 2321 2578 To make this work, a space is required after the field selection: 2322 2579 \begin{lstlisting} 2323 `s.@\textvisiblespace@0`= 0;2324 `s.@\textvisiblespace@1`= 1;2580 ®s.§\textvisiblespace§0® = 0; 2581 ®s.§\textvisiblespace§1® = 1; 2325 2582 \end{lstlisting} 2326 2583 While this sytact is awkward, it is unlikely many programers will name fields of a structure 0 or 1. 2327 Like the \CC lexical problem with closing template-syntax, e.g, \lstinline@Foo<Bar<int`>>`@, this issue can be solved with a more powerful lexer/parser.2328 2329 There are several ambiguous cases with operator identifiers, e.g., \lstinline@int *?*?()@, where the string \lstinline@*?*?@ can be lexed as \lstinline@*@/\lstinline@?*?@ or \lstinline@*?@/\lstinline@*?@.2330 Since it is common practise to put a unary operator juxtaposed to an identifier, e.g., \lstinline@*i@, users will be annoyed if they cannot do this with respect to operator identifiers.2584 Like the \CC lexical problem with closing template-syntax, e.g, ©Foo<Bar<int®>>®©, this issue can be solved with a more powerful lexer/parser. 2585 2586 There are several ambiguous cases with operator identifiers, e.g., ©int *?*?()©, where the string ©*?*?© can be lexed as ©*©/©?*?© or ©*?©/©*?©. 2587 Since it is common practise to put a unary operator juxtaposed to an identifier, e.g., ©*i©, users will be annoyed if they cannot do this with respect to operator identifiers. 2331 2588 Even with this special hack, there are 5 general cases that cannot be handled. 2332 The first case is for the function-call identifier \lstinline@?()@:2333 \begin{lstlisting} 2334 int * @\textvisiblespace@?()(); // declaration: space required after '*'2335 * @\textvisiblespace@?()(); // expression: space required after '*'2336 \end{lstlisting} 2337 Without the space, the string \lstinline@*?()@is ambiguous without N character look ahead;2338 it requires scanning ahead to determine if there is a \lstinline@'('@, which is the start of an argument/parameter list.2589 The first case is for the function-call identifier ©?()©: 2590 \begin{lstlisting} 2591 int *§\textvisiblespace§?()(); // declaration: space required after '*' 2592 *§\textvisiblespace§?()(); // expression: space required after '*' 2593 \end{lstlisting} 2594 Without the space, the string ©*?()© is ambiguous without N character look ahead; 2595 it requires scanning ahead to determine if there is a ©'('©, which is the start of an argument/parameter list. 2339 2596 2340 2597 The 4 remaining cases occur in expressions: 2341 2598 \begin{lstlisting} 2342 i++ @\textvisiblespace@?i:0; // space required before '?'2343 i-- @\textvisiblespace@?i:0; // space required before '?'2344 i @\textvisiblespace@?++i:0; // space required after '?'2345 i @\textvisiblespace@?--i:0; // space required after '?'2346 \end{lstlisting} 2347 In the first two cases, the string \lstinline@i++?@ is ambiguous, where this string can be lexed as \lstinline@i@ / \lstinline@++?@ or \lstinline@i++@ / \lstinline@?@;2348 it requires scanning ahead to determine if there is a \lstinline@'('@, which is the start of an argument list.2349 In the second two cases, the string \lstinline@?++x@ is ambiguous, where this string can be lexed as \lstinline@?++@ / \lstinline@x@ or \lstinline@?@ / y\lstinline@++x@;2350 it requires scanning ahead to determine if there is a \lstinline@'('@, which is the start of an argument list.2599 i++§\textvisiblespace§?i:0; // space required before '?' 2600 i--§\textvisiblespace§?i:0; // space required before '?' 2601 i§\textvisiblespace§?++i:0; // space required after '?' 2602 i§\textvisiblespace§?--i:0; // space required after '?' 2603 \end{lstlisting} 2604 In the first two cases, the string ©i++?© is ambiguous, where this string can be lexed as ©i© / ©++?© or ©i++© / ©?©; 2605 it requires scanning ahead to determine if there is a ©'('©, which is the start of an argument list. 2606 In the second two cases, the string ©?++x© is ambiguous, where this string can be lexed as ©?++© / ©x© or ©?© / y©++x©; 2607 it requires scanning ahead to determine if there is a ©'('©, which is the start of an argument list. 2351 2608 2352 2609 … … 3274 3531 3275 3532 3276 \subsection {Comparing Key Features of \CFA}3533 \subsection[Comparing Key Features of CFA]{Comparing Key Features of \CFA} 3277 3534 3278 3535 … … 3287 3544 \begin{lstlisting} 3288 3545 struct Line { 3289 float l ength;3546 float lnth; 3290 3547 } 3291 3548 // default constructor 3292 3549 void ?{}( Line * l ) { 3550 l->lnth = 0.0; 3293 3551 sout | "default" | endl; 3294 l.length = 0.0;3295 3552 } 3296 3553 3297 3554 3298 3555 // constructor with length 3299 void ?{}( Line * l, float l ength ) {3300 sout | "length" | length | endl;3301 3302 l.length = length; 3556 void ?{}( Line * l, float lnth ) { 3557 l->lnth = lnth; 3558 sout | "lnth" | l->lnth | endl; 3559 3303 3560 } 3304 3561 3305 3562 // destructor 3306 void ^?( Line &l) {3563 void ^?() { 3307 3564 sout | "destroyed" | endl; 3308 l.l ength = 0.0;3565 l.lnth = 0.0; 3309 3566 } 3310 3567 3311 3568 // usage 3312 3569 Line line1; 3313 Line line2 { 3.4 };3570 Line line2 = { 3.4 }; 3314 3571 \end{lstlisting} 3315 3572 & 3316 3573 \begin{lstlisting}[language=C++] 3317 3574 class Line { 3318 float l ength;3575 float lnth; 3319 3576 3320 3577 // default constructor 3321 3578 Line() { 3322 3579 cout << "default" << endl; 3323 l ength = 0.0;3580 lnth = 0.0; 3324 3581 } 3325 3582 3326 3583 3327 // constructor with l ength3584 // constructor with lnth 3328 3585 Line( float l ) { 3329 3586 cout << "length " << length … … 3648 3905 3649 3906 \begin{comment} 3650 \subsubsection{Modules /Packages}3907 \subsubsection{Modules / Packages} 3651 3908 3652 3909 \begin{lstlisting} … … 3890 4147 3891 4148 3892 \subsubsection {\CC}4149 \subsubsection[C++]{\CC} 3893 4150 3894 4151 \CC is a general-purpose programming language. … … 3964 4221 \begin{enumerate} 3965 4222 \item 3966 Change type of character literal \lstinline@int@ to \lstinline@char@.4223 Change type of character literal ©int© to ©char©. 3967 4224 This change allows overloading differentiation argument type matching, e.g.: 3968 4225 \begin{lstlisting} … … 3981 4238 3982 4239 \item 3983 Change: String literals made \lstinline@const@\\3984 The type of a string literal is changed from \lstinline@array of char@ to \lstinline@array of const char@.3985 The type of a wide string literal is changed from \lstinline@array of wchar_t@ to \lstinline@array of const wchar_t@. \\4240 Change: String literals made ©const© \\ 4241 The type of a string literal is changed from ©array of char© to ©array of const char©. 4242 The type of a wide string literal is changed from ©array of wchar_t© to ©array of const wchar_t©. \\ 3986 4243 Rationale: This avoids calling an inappropriate overloaded function, which might expect to be able to modify its argument. 3987 4244 Effect on original feature: Change to semantics of well-defined feature. \\ 3988 Difficulty of converting: Simple syntactic transformation, because string literals can be converted to \lstinline@char*;@(4.2).4245 Difficulty of converting: Simple syntactic transformation, because string literals can be converted to ©char*;© (4.2). 3989 4246 The most common cases are handled by a new but deprecated standard conversion: 3990 4247 \begin{lstlisting} … … 4025 4282 4026 4283 \CFA is C \emph{incompatible} on this issue, and provides semantics similar to \CC. 4027 Nested types are not hoisted and can be referenced using the field selection operator `` \lstinline@.@'', unlike the \CC scope-resolution operator ``\lstinline@::@''.4284 Nested types are not hoisted and can be referenced using the field selection operator ``©.©'', unlike the \CC scope-resolution operator ``©::©''. 4028 4285 Given that nested types in C are equivalent to not using them, i.e., they are essentially useless, it is unlikely there are any realistic usages that break because of this incompatibility. 4029 4030 4286 4031 4287 \item … … 4039 4295 struct Y yy; // valid C, invalid C++ 4040 4296 \end{lstlisting} 4041 Rationale: C++ classes have member functions which require that classes establish scopes. The C rule 4042 would leave classes as an incomplete scope mechanism which would prevent C++ programmers from maintaining 4043 locality within a class. A coherent set of scope rules for C++ based on the C rule would be very 4044 complicated and C++ programmers would be unable to predict reliably the meanings of nontrivial examples 4045 involving nested or local functions. 4046 Effect on original feature: Change of semantics of welldefined 4047 feature. 4048 Difficulty of converting: Semantic transformation. To make the struct type name visible in the scope of 4049 the enclosing struct, the struct tag could be declared in the scope of the enclosing struct, before the enclosing 4050 struct is defined. Example: 4297 Rationale: C++ classes have member functions which require that classes establish scopes. 4298 The C rule would leave classes as an incomplete scope mechanism which would prevent C++ programmers from maintaining locality within a class. A coherent set of scope rules for C++ based on the C rule would be very complicated and C++ programmers would be unable to predict reliably the meanings of nontrivial examples involving nested or local functions. 4299 Effect on original feature: Change of semantics of welldefined feature. 4300 Difficulty of converting: Semantic transformation. To make the struct type name visible in the scope of the enclosing struct, the struct tag could be declared in the scope of the enclosing struct, before the enclosing struct is defined. Example: 4051 4301 \begin{lstlisting} 4052 4302 struct Y; // struct Y and struct X are at the same scope … … 4055 4305 }; 4056 4306 \end{lstlisting} 4057 All the definitions of C struct types enclosed in other struct definitions and accessed outside the scope of 4058 the enclosing struct could be exported to the scope of the enclosing struct. Note: this is a consequence of 4059 the difference in scope rules, which is documented in 3.3. 4307 All the definitions of C struct types enclosed in other struct definitions and accessed outside the scope of the enclosing struct could be exported to the scope of the enclosing struct. 4308 Note: this is a consequence of the difference in scope rules, which is documented in 3.3. 4060 4309 How widely used: Seldom. 4061 4310 \end{enumerate} … … 4069 4318 The general case is printing out a sequence of variables separated by whitespace. 4070 4319 \begin{quote2} 4071 \begin{tabular}{@{}l@{\hspace{3 0pt}}l@{}}4072 \multicolumn{1}{c@{\hspace{3 0pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{\CC}} \\4320 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 4321 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{\CC}} \\ 4073 4322 \begin{lstlisting} 4074 4323 int x = 0, y = 1, z = 2; 4075 `sout` `|` x `|` y `|` z `| endl`;4324 ®sout® ®|® x ®|® y ®|® z ®| endl®; 4076 4325 \end{lstlisting} 4077 4326 & … … 4082 4331 \end{tabular} 4083 4332 \end{quote2} 4084 The \CFA form is half as many characters, and is similar to PythonI/O with respect to implicit separators.4333 The \CFA form is half as many characters, and is similar to \Index{Python} I/O with respect to implicit separators. 4085 4334 4086 4335 The logical-or operator is used because it is the lowest-priority overloadable operator, other than assignment. … … 4109 4358 A seperator does not appear at the start or end of a line. 4110 4359 \begin{lstlisting}[belowskip=0pt] 4111 sout 1 | 2 | 3 | endl;4360 sout | 1 | 2 | 3 | endl; 4112 4361 \end{lstlisting} 4113 4362 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4128 4377 which is a local mechanism to disable insertion of the separator character. 4129 4378 \item 4130 A seperator does not appear before a C string starting with the \Index{extended ASCII}\index{ASCII} characters: \lstinline[mathescape=off]@([{$£¥¿«@4379 A seperator does not appear before a C string starting with the (extended) \Index{ASCII}\index{ASCII!extended} characters: \lstinline[mathescape=off]@([{$£¥¡¿«@ 4131 4380 %$ 4132 4381 \begin{lstlisting}[mathescape=off] 4133 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¿" | 7 | "x «" | 8| endl;4382 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¡" | 7 | "x ¿" | 8 | "x «" | 9 | endl; 4134 4383 \end{lstlisting} 4135 4384 %$ 4136 4385 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] 4137 x (1 x [2 x {3 x $4 x £5 x ¥6 x ¿7 x «84386 x (1 x [2 x {3 x $4 x £5 x ¥6 x ¡7 x ¿8 x «9 4138 4387 \end{lstlisting} 4139 4388 %$ 4140 4389 \item 4141 A seperator does not appear after a C string ending with the extended ASCII characters: \lstinline@,.:;!?)]}%¢»@4390 A seperator does not appear after a C string ending with the (extended) \Index{ASCII}\index{ASCII!extended} characters: ©,.:;!?)]}%¢»© 4142 4391 \begin{lstlisting}[belowskip=0pt] 4143 4392 sout | 1 | ", x" | 2 | ". x" | 3 | ": x" | 4 | "; x" | 5 | "! x" | 6 | "? x" | 7 | ") x" | 8 | "] x" | 9 | "} x" 4144 | 10 | "% x" | 11 | L"¢ x" | 12 | L"» x" | endl;4393 | 10 | "% x" | 11 | "¢ x" | 12 | "» x" | endl; 4145 4394 \end{lstlisting} 4146 4395 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4148 4397 \end{lstlisting} 4149 4398 \item 4150 A seperator does not appear before or after a C string begining/ending with the characters: \lstinline@\f\n\r\t\v\`'"@4399 A seperator does not appear before or after a C string begining/ending with the \Index{ASCII} quote or whitespace characters: \lstinline[showspaces=true]@`'" \t\v\f\r\n@ 4151 4400 \begin{lstlisting}[belowskip=0pt] 4152 sout | "x '" | 1 | "' x \`" | 2 | "\` x \"" | 3 | "\" x" | endl; 4153 \end{lstlisting} 4154 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] 4155 x '1' x \`2\` x "3" x 4156 \end{lstlisting} 4157 \begin{lstlisting}[showtabs=true,aboveskip=0pt] 4158 sout | "x\t" | 1 | "\tx" | endl; 4159 x 1 x 4401 sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x" | "x " | 4 | " x" | "x\t" | 1 | "\tx" | endl; 4402 \end{lstlisting} 4403 \begin{lstlisting}[mathescape=off,showspaces=true,showtabs=true,aboveskip=0pt,belowskip=0pt] 4404 x`1`x'2'x"3"x x 4 x x 1 x 4160 4405 \end{lstlisting} 4161 4406 \end{enumerate} … … 4189 4434 \end{lstlisting} 4190 4435 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] 4191 1 2 34436 1 2 3 4192 4437 \end{lstlisting} 4193 4438 \begin{lstlisting}[mathescape=off,aboveskip=0pt,aboveskip=0pt,belowskip=0pt] … … 4200 4445 \end{lstlisting} 4201 4446 %$ 4202 \VRef[Figure]{f:ExampleIO} shows an example of input and output I/O in \CFA. 4203 4204 \begin{figure} 4205 \begin{lstlisting}[mathescape=off] 4447 \begin{comment} 4206 4448 #include <fstream> 4207 4449 4208 4450 int main() { 4209 char c; // basic types 4210 short int si; 4211 unsigned short int usi; 4212 int i; 4213 unsigned int ui; 4214 long int li; 4215 unsigned long int uli; 4216 long long int lli; 4217 unsigned long long int ulli; 4218 float f; 4219 double d; 4220 long double ld; 4221 float _Complex fc; 4222 double _Complex dc; 4223 long double _Complex ldc; 4224 char s1[10], s2[10]; 4225 4226 ifstream in; // create / open file 4227 open( &in, "input.data", "r" ); 4228 4229 &in | &c // character 4230 | &si | &usi | &i | &ui | &li | &uli | &lli | &ulli // integral 4231 | &f | &d | &ld // floating point 4232 | &fc | &dc | &ldc // floating-point complex 4233 | cstr( s1 ) | cstr( s2, 10 ); // C string, length unchecked and checked 4234 4235 sout | c | ' ' | endl // character 4236 | si | usi | i | ui | li | uli | lli | ulli | endl // integral 4237 | f | d | ld | endl // floating point 4238 | fc | dc | ldc | endl; // complex 4239 sout | endl; 4240 sout | f | "" | d | "" | ld | endl // floating point without separator 4241 | sepDisable | fc | dc | ldc | sepEnable | endl // complex without separator 4242 | sepOn | s1 | sepOff | s2 | endl // local separator removal 4243 | s1 | "" | s2 | endl; // C string withou separator 4244 sout | endl; 4245 sepSet( sout, ", $" ); // change separator, maximum of 15 characters 4246 sout | f | d | ld | endl // floating point without separator 4247 | fc | dc | ldc | endl // complex without separator 4248 | s1 | s2 | endl; 4249 } 4250 4251 $ cat input.data 4252 A 1 2 3 4 5 6 7 8 1.1 1.2 1.3 1.1+2.3 1.1-2.3 1.1-2.3 abc xyz 4253 $ a.out 4254 A 4255 1 2 3 4 5 6 7 8 4256 1.1 1.2 1.3 4257 1.1+2.3i 1.1-2.3i 1.1-2.3i 4258 4259 1.11.21.3 4260 1.1+2.3i1.1-2.3i1.1-2.3i 4261 abcxyz 4262 abcxyz 4263 4264 1.1, $1.2, $1.3 4265 1.1+2.3i, $1.1-2.3i, $1.1-2.3i 4266 abc, $xyz 4267 \end{lstlisting} 4268 \caption{Example I/O} 4269 \label{f:ExampleIO} 4270 \end{figure} 4451 int x = 3, y = 5, z = 7; 4452 sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2) | endl; 4453 sout | 1 | 2 | 3 | endl; 4454 sout | '1' | '2' | '3' | endl; 4455 sout | 1 | "" | 2 | "" | 3 | endl; 4456 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¡" | 7 | "x ¿" | 8 | "x «" | 9 | endl; 4457 sout | 1 | ", x" | 2 | ". x" | 3 | ": x" | 4 | "; x" | 5 | "! x" | 6 | "? x" | 7 | ") x" | 8 | "] x" | 9 | "} x" 4458 | 10 | "% x" | 11 | "¢ x" | 12 | "» x" | endl; 4459 sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x" | "x " | 4 | " x" | "x\t" | 1 | "\tx" | endl; 4460 sout | sepOn | 1 | 2 | 3 | sepOn | endl; // separator at start of line 4461 sout | 1 | sepOff | 2 | 3 | endl; // turn off implicit separator temporarily 4462 sout | sepDisable | 1 | 2 | 3 | endl; // turn off implicit separation, affects all subsequent prints 4463 sout | 1 | sepOn | 2 | 3 | endl; // turn on implicit separator temporarily 4464 sout | sepEnable | 1 | 2 | 3 | endl; // turn on implicit separation, affects all subsequent prints 4465 sepSet( sout, ", $" ); // change separator from " " to ", $" 4466 sout | 1 | 2 | 3 | endl; 4467 4468 } 4469 4470 // Local Variables: // 4471 // tab-width: 4 // 4472 // End: // 4473 \end{comment} 4474 %$ 4271 4475 4272 4476 … … 4280 4484 4281 4485 \begin{lstlisting} 4282 forall( otype T ) T * malloc( void ); 4486 forall( otype T ) T * malloc( void );§\indexc{malloc}§ 4283 4487 forall( otype T ) T * malloc( char fill ); 4284 4488 forall( otype T ) T * malloc( T * ptr, size_t size ); 4285 4489 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ); 4286 forall( otype T ) T * calloc( size_t size );4287 forall( otype T ) T * realloc( T * ptr, size_t size ); 4490 forall( otype T ) T * calloc( size_t nmemb );§\indexc{calloc}§ 4491 forall( otype T ) T * realloc( T * ptr, size_t size );§\indexc{ato}§ 4288 4492 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ); 4289 4493 4290 forall( otype T ) T * aligned_alloc( size_t alignment ); 4494 forall( otype T ) T * aligned_alloc( size_t alignment );§\indexc{ato}§ 4291 4495 forall( otype T ) T * memalign( size_t alignment ); // deprecated 4292 4496 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment ); … … 4297 4501 4298 4502 4299 \subsection{ato /strto}4300 4301 \begin{lstlisting} 4302 int ato( const char * ptr ); 4503 \subsection{ato / strto} 4504 4505 \begin{lstlisting} 4506 int ato( const char * ptr );§\indexc{ato}§ 4303 4507 unsigned int ato( const char * ptr ); 4304 4508 long int ato( const char * ptr ); … … 4328 4532 4329 4533 4330 \subsection{bsearch /qsort}4534 \subsection{bsearch / qsort} 4331 4535 4332 4536 \begin{lstlisting} 4333 4537 forall( otype T | { int ?<?( T, T ); } ) 4334 T * bsearch( const T key, const T * arr, size_t dimension ); 4538 T * bsearch( const T key, const T * arr, size_t dimension );§\indexc{bsearch}§ 4335 4539 4336 4540 forall( otype T | { int ?<?( T, T ); } ) 4337 void qsort( const T * arr, size_t dimension ); 4541 void qsort( const T * arr, size_t dimension );§\indexc{qsort}§ 4338 4542 \end{lstlisting} 4339 4543 … … 4342 4546 4343 4547 \begin{lstlisting} 4344 char abs( char ); 4345 extern "C" { 4346 int abs( int ); // use default C routine for int 4347 } // extern "C" 4548 char abs( char );§\indexc{abs}§ 4549 int abs( int ); 4348 4550 long int abs( long int ); 4349 4551 long long int abs( long long int ); … … 4351 4553 double abs( double ); 4352 4554 long double abs( long double ); 4353 float _Complex abs( float _Complex ); 4354 double _Complex abs( double _Complex ); 4355 long double _Complex abs( long double _Complex ); 4356 \end{lstlisting} 4357 4358 4359 \subsection{floor/ceil} 4360 4361 \begin{lstlisting} 4362 float floor( float ); 4363 extern "C" { 4364 double floor( double ); // use C routine for double 4365 } // extern "C" 4366 long double floor( long double ); 4367 4368 float ceil( float ); 4369 extern "C" { 4370 double ceil( double ); // use C routine for double 4371 } // extern "C" 4372 long double ceil( long double ); 4555 float abs( float _Complex ); 4556 double abs( double _Complex ); 4557 long double abs( long double _Complex ); 4373 4558 \end{lstlisting} 4374 4559 … … 4377 4562 4378 4563 \begin{lstlisting} 4379 void rand48seed( long int s ); 4380 char rand48(); 4564 void rand48seed( long int s );§\indexc{rand48seed}§ 4565 char rand48();§\indexc{rand48}§ 4381 4566 int rand48(); 4382 4567 unsigned int rand48(); … … 4391 4576 4392 4577 4393 \subsection{min /max/swap}4578 \subsection{min / max / swap} 4394 4579 4395 4580 \begin{lstlisting} 4396 4581 forall( otype T | { int ?<?( T, T ); } ) 4397 T min( const T t1, const T t2 ); 4582 T min( const T t1, const T t2 );§\indexc{min}§ 4398 4583 4399 4584 forall( otype T | { int ?>?( T, T ); } ) 4400 T max( const T t1, const T t2 ); 4585 T max( const T t1, const T t2 );§\indexc{max}§ 4401 4586 4402 4587 forall( otype T ) 4403 void swap( T * t1, T * t2 ); 4588 void swap( T * t1, T * t2 );§\indexc{swap}§ 4589 \end{lstlisting} 4590 4591 4592 \section{Math Library} 4593 \label{s:Math Library} 4594 4595 The goal of the \CFA math-library is to wrap many of the existing C math library-routines that are explicitly polymorphic into implicitly polymorphic versions. 4596 4597 4598 \subsection{General} 4599 4600 \begin{lstlisting} 4601 float fabs( float );§\indexc{fabs}§ 4602 double fabs( double ); 4603 long double fabs( long double ); 4604 float cabs( float _Complex ); 4605 double cabs( double _Complex ); 4606 long double cabs( long double _Complex ); 4607 4608 float ?%?( float, float );§\indexc{fmod}§ 4609 float fmod( float, float ); 4610 double ?%?( double, double ); 4611 double fmod( double, double ); 4612 long double ?%?( long double, long double ); 4613 long double fmod( long double, long double ); 4614 4615 float remainder( float, float );§\indexc{remainder}§ 4616 double remainder( double, double ); 4617 long double remainder( long double, long double ); 4618 4619 [ int, float ] remquo( float, float );§\indexc{remquo}§ 4620 float remquo( float, float, int * ); 4621 [ int, double ] remquo( double, double ); 4622 double remquo( double, double, int * ); 4623 [ int, long double ] remquo( long double, long double ); 4624 long double remquo( long double, long double, int * ); 4625 4626 [ int, float ] div( float, float ); // alternative name for remquo 4627 float div( float, float, int * );§\indexc{div}§ 4628 [ int, double ] div( double, double ); 4629 double div( double, double, int * ); 4630 [ int, long double ] div( long double, long double ); 4631 long double div( long double, long double, int * ); 4632 4633 float fma( float, float, float );§\indexc{fma}§ 4634 double fma( double, double, double ); 4635 long double fma( long double, long double, long double ); 4636 4637 float fdim( float, float );§\indexc{fdim}§ 4638 double fdim( double, double ); 4639 long double fdim( long double, long double ); 4640 4641 float nan( const char * );§\indexc{nan}§ 4642 double nan( const char * ); 4643 long double nan( const char * ); 4644 \end{lstlisting} 4645 4646 4647 \subsection{Exponential} 4648 4649 \begin{lstlisting} 4650 float exp( float );§\indexc{exp}§ 4651 double exp( double ); 4652 long double exp( long double ); 4653 float _Complex exp( float _Complex ); 4654 double _Complex exp( double _Complex ); 4655 long double _Complex exp( long double _Complex ); 4656 4657 float exp2( float );§\indexc{exp2}§ 4658 double exp2( double ); 4659 long double exp2( long double ); 4660 float _Complex exp2( float _Complex ); 4661 double _Complex exp2( double _Complex ); 4662 long double _Complex exp2( long double _Complex ); 4663 4664 float expm1( float );§\indexc{expm1}§ 4665 double expm1( double ); 4666 long double expm1( long double ); 4667 4668 float log( float );§\indexc{log}§ 4669 double log( double ); 4670 long double log( long double ); 4671 float _Complex log( float _Complex ); 4672 double _Complex log( double _Complex ); 4673 long double _Complex log( long double _Complex ); 4674 4675 float log2( float );§\indexc{log2}§ 4676 double log2( double ); 4677 long double log2( long double ); 4678 float _Complex log2( float _Complex ); 4679 double _Complex log2( double _Complex ); 4680 long double _Complex log2( long double _Complex ); 4681 4682 float log10( float );§\indexc{log10}§ 4683 double log10( double ); 4684 long double log10( long double ); 4685 float _Complex log10( float _Complex ); 4686 double _Complex log10( double _Complex ); 4687 long double _Complex log10( long double _Complex ); 4688 4689 float log1p( float );§\indexc{log1p}§ 4690 double log1p( double ); 4691 long double log1p( long double ); 4692 4693 int ilogb( float );§\indexc{ilogb}§ 4694 int ilogb( double ); 4695 int ilogb( long double ); 4696 4697 float logb( float );§\indexc{logb}§ 4698 double logb( double ); 4699 long double logb( long double ); 4700 \end{lstlisting} 4701 4702 4703 \subsection{Power} 4704 4705 \begin{lstlisting} 4706 float sqrt( float );§\indexc{sqrt}§ 4707 double sqrt( double ); 4708 long double sqrt( long double ); 4709 float _Complex sqrt( float _Complex ); 4710 double _Complex sqrt( double _Complex ); 4711 long double _Complex sqrt( long double _Complex ); 4712 4713 float cbrt( float );§\indexc{cbrt}§ 4714 double cbrt( double ); 4715 long double cbrt( long double ); 4716 4717 float hypot( float, float );§\indexc{hypot}§ 4718 double hypot( double, double ); 4719 long double hypot( long double, long double ); 4720 4721 float pow( float, float );§\indexc{pow}§ 4722 double pow( double, double ); 4723 long double pow( long double, long double ); 4724 float _Complex pow( float _Complex, float _Complex ); 4725 double _Complex pow( double _Complex, double _Complex ); 4726 long double _Complex pow( long double _Complex, long double _Complex ); 4727 \end{lstlisting} 4728 4729 4730 \subsection{Trigonometric} 4731 4732 \begin{lstlisting} 4733 float sin( float );§\indexc{sin}§ 4734 double sin( double ); 4735 long double sin( long double ); 4736 float _Complex sin( float _Complex ); 4737 double _Complex sin( double _Complex ); 4738 long double _Complex sin( long double _Complex ); 4739 4740 float cos( float );§\indexc{cos}§ 4741 double cos( double ); 4742 long double cos( long double ); 4743 float _Complex cos( float _Complex ); 4744 double _Complex cos( double _Complex ); 4745 long double _Complex cos( long double _Complex ); 4746 4747 float tan( float );§\indexc{tan}§ 4748 double tan( double ); 4749 long double tan( long double ); 4750 float _Complex tan( float _Complex ); 4751 double _Complex tan( double _Complex ); 4752 long double _Complex tan( long double _Complex ); 4753 4754 float asin( float );§\indexc{asin}§ 4755 double asin( double ); 4756 long double asin( long double ); 4757 float _Complex asin( float _Complex ); 4758 double _Complex asin( double _Complex ); 4759 long double _Complex asin( long double _Complex ); 4760 4761 float acos( float );§\indexc{acos}§ 4762 double acos( double ); 4763 long double acos( long double ); 4764 float _Complex acos( float _Complex ); 4765 double _Complex acos( double _Complex ); 4766 long double _Complex acos( long double _Complex ); 4767 4768 float atan( float );§\indexc{atan}§ 4769 double atan( double ); 4770 long double atan( long double ); 4771 float _Complex atan( float _Complex ); 4772 double _Complex atan( double _Complex ); 4773 long double _Complex atan( long double _Complex ); 4774 4775 float atan2( float, float );§\indexc{atan2}§ 4776 double atan2( double, double ); 4777 long double atan2( long double, long double ); 4778 4779 float atan( float, float ); // alternative name for atan2 4780 double atan( double, double );§\indexc{atan}§ 4781 long double atan( long double, long double ); 4782 \end{lstlisting} 4783 4784 4785 \subsection{Hyperbolic} 4786 4787 \begin{lstlisting} 4788 float sinh( float );§\indexc{sinh}§ 4789 double sinh( double ); 4790 long double sinh( long double ); 4791 float _Complex sinh( float _Complex ); 4792 double _Complex sinh( double _Complex ); 4793 long double _Complex sinh( long double _Complex ); 4794 4795 float cosh( float );§\indexc{cosh}§ 4796 double cosh( double ); 4797 long double cosh( long double ); 4798 float _Complex cosh( float _Complex ); 4799 double _Complex cosh( double _Complex ); 4800 long double _Complex cosh( long double _Complex ); 4801 4802 float tanh( float );§\indexc{tanh}§ 4803 double tanh( double ); 4804 long double tanh( long double ); 4805 float _Complex tanh( float _Complex ); 4806 double _Complex tanh( double _Complex ); 4807 long double _Complex tanh( long double _Complex ); 4808 4809 float asinh( float );§\indexc{asinh}§ 4810 double asinh( double ); 4811 long double asinh( long double ); 4812 float _Complex asinh( float _Complex ); 4813 double _Complex asinh( double _Complex ); 4814 long double _Complex asinh( long double _Complex ); 4815 4816 float acosh( float );§\indexc{acosh}§ 4817 double acosh( double ); 4818 long double acosh( long double ); 4819 float _Complex acosh( float _Complex ); 4820 double _Complex acosh( double _Complex ); 4821 long double _Complex acosh( long double _Complex ); 4822 4823 float atanh( float );§\indexc{atanh}§ 4824 double atanh( double ); 4825 long double atanh( long double ); 4826 float _Complex atanh( float _Complex ); 4827 double _Complex atanh( double _Complex ); 4828 long double _Complex atanh( long double _Complex ); 4829 \end{lstlisting} 4830 4831 4832 \subsection{Error / Gamma} 4833 4834 \begin{lstlisting} 4835 float erf( float );§\indexc{erf}§ 4836 double erf( double ); 4837 long double erf( long double ); 4838 float _Complex erf( float _Complex ); 4839 double _Complex erf( double _Complex ); 4840 long double _Complex erf( long double _Complex ); 4841 4842 float erfc( float );§\indexc{erfc}§ 4843 double erfc( double ); 4844 long double erfc( long double ); 4845 float _Complex erfc( float _Complex ); 4846 double _Complex erfc( double _Complex ); 4847 long double _Complex erfc( long double _Complex ); 4848 4849 float lgamma( float );§\indexc{lgamma}§ 4850 double lgamma( double ); 4851 long double lgamma( long double ); 4852 float lgamma( float, int * ); 4853 double lgamma( double, int * ); 4854 long double lgamma( long double, int * ); 4855 4856 float tgamma( float );§\indexc{tgamma}§ 4857 double tgamma( double ); 4858 long double tgamma( long double ); 4859 \end{lstlisting} 4860 4861 4862 \subsection{Nearest Integer} 4863 4864 \begin{lstlisting} 4865 float floor( float );§\indexc{floor}§ 4866 double floor( double ); 4867 long double floor( long double ); 4868 4869 float ceil( float );§\indexc{ceil}§ 4870 double ceil( double ); 4871 long double ceil( long double ); 4872 4873 float trunc( float );§\indexc{trunc}§ 4874 double trunc( double ); 4875 long double trunc( long double ); 4876 4877 float rint( float );§\indexc{rint}§ 4878 long double rint( long double ); 4879 long int rint( float ); 4880 long int rint( double ); 4881 long int rint( long double ); 4882 long long int rint( float ); 4883 long long int rint( double ); 4884 long long int rint( long double ); 4885 4886 long int lrint( float );§\indexc{lrint}§ 4887 long int lrint( double ); 4888 long int lrint( long double ); 4889 long long int llrint( float ); 4890 long long int llrint( double ); 4891 long long int llrint( long double ); 4892 4893 float nearbyint( float );§\indexc{nearbyint}§ 4894 double nearbyint( double ); 4895 long double nearbyint( long double ); 4896 4897 float round( float );§\indexc{round}§ 4898 long double round( long double ); 4899 long int round( float ); 4900 long int round( double ); 4901 long int round( long double ); 4902 long long int round( float ); 4903 long long int round( double ); 4904 long long int round( long double ); 4905 4906 long int lround( float );§\indexc{lround}§ 4907 long int lround( double ); 4908 long int lround( long double ); 4909 long long int llround( float ); 4910 long long int llround( double ); 4911 long long int llround( long double ); 4912 \end{lstlisting} 4913 4914 4915 \subsection{Manipulation} 4916 4917 \begin{lstlisting} 4918 float copysign( float, float );§\indexc{copysign}§ 4919 double copysign( double, double ); 4920 long double copysign( long double, long double ); 4921 4922 float frexp( float, int * );§\indexc{frexp}§ 4923 double frexp( double, int * ); 4924 long double frexp( long double, int * ); 4925 4926 float ldexp( float, int );§\indexc{ldexp}§ 4927 double ldexp( double, int ); 4928 long double ldexp( long double, int ); 4929 4930 [ float, float ] modf( float );§\indexc{modf}§ 4931 float modf( float, float * ); 4932 [ double, double ] modf( double ); 4933 double modf( double, double * ); 4934 [ long double, long double ] modf( long double ); 4935 long double modf( long double, long double * ); 4936 4937 float nextafter( float, float );§\indexc{nextafter}§ 4938 double nextafter( double, double ); 4939 long double nextafter( long double, long double ); 4940 4941 float nexttoward( float, long double );§\indexc{nexttoward}§ 4942 double nexttoward( double, long double ); 4943 long double nexttoward( long double, long double ); 4944 4945 float scalbn( float, int );§\indexc{scalbn}§ 4946 double scalbn( double, int ); 4947 long double scalbn( long double, int ); 4948 4949 float scalbln( float, long int );§\indexc{scalbln}§ 4950 double scalbln( double, long int ); 4951 long double scalbln( long double, long int ); 4404 4952 \end{lstlisting} 4405 4953 … … 4413 4961 \begin{lstlisting} 4414 4962 // implementation 4415 struct Rational { 4963 struct Rational {§\indexc{Rational}§ 4416 4964 long int numerator, denominator; // invariant: denominator > 0 4417 4965 }; // Rational -
src/ArgTweak/FunctionFixer.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FunctionFixer.cc -- 7 // FunctionFixer.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 42 42 Expression *FunctionFixer::mutate( UntypedExpr *untypedExpr ) throw ( SemanticError ) { 43 43 assert( untypedExpr != 0 ); 44 NameExpr *function;45 44 46 if ( ( function = dynamic_cast< NameExpr *>(untypedExpr->get_function()) ) != 0) {45 if ( NameExpr * function = dynamic_cast< NameExpr *>(untypedExpr->get_function() ) ) { 47 46 std::list < DeclarationWithType * > options; 48 47 index->lookupId ( function->get_name(), options ); 49 48 for ( std::list < DeclarationWithType * >::iterator i = options.begin(); i != options.end(); i++ ) { 50 FunctionType *f; 51 if ( ( f = dynamic_cast< FunctionType * > ( (*i)->get_type() ) ) != 0 ) { 49 if ( FunctionType * f = dynamic_cast< FunctionType * > ( (*i)->get_type() ) ) { 52 50 std::list < DeclarationWithType * > &pars = f->get_parameters(); 53 54 51 bool candidateExists ; 55 for ( std::list < DeclarationWithType * >::iterator p = pars.begin(); p != pars.end(); p++ ) 52 for ( std::list < DeclarationWithType * >::iterator p = pars.begin(); p != pars.end(); p++ ) { 56 53 if ( ( candidateExists = align( f->get_parameters(), untypedExpr->get_args(), Matcher() ) ) ) break; 57 54 } 58 55 if ( ! candidateExists ) throw SemanticError("Error in function call"); 59 56 } // if -
src/CodeGen/CodeGenerator.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CodeGenerator.cc -- 7 // CodeGenerator.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:32:16201613 // Update Count : 2 4312 // Last Modified On : Thu Jun 9 13:21:00 2016 13 // Update Count : 256 14 14 // 15 15 … … 26 26 #include "SynTree/Statement.h" 27 27 #include "SynTree/Type.h" 28 #include "SynTree/Attribute.h" 28 29 29 30 #include "Common/utility.h" … … 33 34 #include "OperatorTable.h" 34 35 #include "GenType.h" 36 37 #include "InitTweak/InitTweak.h" 35 38 36 39 using namespace std; … … 45 48 } 46 49 47 ostream & CodeGenerator::Indenter::operator()( ostream & output ) {50 ostream & CodeGenerator::Indenter::operator()( ostream & output ) const { 48 51 return output << string( cg.cur_indent, ' ' ); 49 52 } 50 53 51 ostream & operator<<( ostream & output, CodeGenerator::Indenter &indent ) {54 ostream & operator<<( ostream & output, const CodeGenerator::Indenter &indent ) { 52 55 return indent( output ); 53 56 } 54 57 55 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ) { } 58 CodeGenerator::LabelPrinter & CodeGenerator::LabelPrinter::operator()( std::list< Label > & l ) { 59 labels = &l; 60 return *this; 61 } 62 63 ostream & operator<<( ostream & output, CodeGenerator::LabelPrinter &printLabels ) { 64 std::list< Label > & labs = *printLabels.labels; 65 // l.unique(); // assumes a sorted list. Why not use set? Does order matter? 66 for ( Label & l : labs ) { 67 output << l.get_name() + ": "; 68 printLabels.cg.genAttributes( l.get_attributes() ); 69 } 70 return output; 71 } 72 73 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) { } 56 74 57 75 CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp ) 58 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {76 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ), printLabels( *this ) { 59 77 //output << std::string( init ); 60 78 } 61 79 62 80 CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp ) 63 : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ) {81 : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ), printLabels( *this ) { 64 82 //output << std::string( init ); 65 83 } … … 67 85 string mangleName( DeclarationWithType *decl ) { 68 86 if ( decl->get_mangleName() != "" ) { 69 return decl->get_mangleName(); 87 // need to incorporate scope level in order to differentiate names for destructors 88 return decl->get_scopedMangleName(); 70 89 } else { 71 90 return decl->get_name(); 72 91 } // if 73 92 } 93 94 void CodeGenerator::genAttributes( std::list< Attribute * > & attributes ) { 95 if ( ! attributes.empty() ) { 96 output << "__attribute__ (("; 97 for ( Attribute *& attr : attributes ) { 98 if ( ! attr->empty() ) { 99 output << attr->get_name() << "("; 100 genCommaList( attr->get_parameters().begin(), attr->get_parameters().end() ); 101 output << ")"; 102 } 103 output << ","; 104 } 105 output << ")) "; 106 } 107 } 108 74 109 75 110 //*** Declarations 76 111 void CodeGenerator::visit( FunctionDecl *functionDecl ) { 112 genAttributes( functionDecl->get_attributes() ); 113 77 114 handleStorageClass( functionDecl ); 78 115 if ( functionDecl->get_isInline() ) { … … 99 136 handleStorageClass( objectDecl ); 100 137 output << genType( objectDecl->get_type(), mangleName( objectDecl ) ); 101 138 102 139 if ( objectDecl->get_init() ) { 103 140 output << " = "; … … 113 150 if ( aggDecl->get_name() != "" ) 114 151 output << aggDecl->get_name(); 115 152 116 153 std::list< Declaration * > &memb = aggDecl->get_members(); 117 154 … … 119 156 output << " {" << endl; 120 157 121 cur_indent += CodeGenerator::tabsize; 158 cur_indent += CodeGenerator::tabsize; 122 159 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) { 123 output << indent; 160 output << indent; 124 161 (*i)->accept( *this ); 125 162 output << ";" << endl; 126 163 } 127 164 128 cur_indent -= CodeGenerator::tabsize; 165 cur_indent -= CodeGenerator::tabsize; 129 166 130 167 output << indent << "}"; … … 141 178 handleAggregate( aggregateDecl ); 142 179 } 143 180 144 181 void CodeGenerator::visit( EnumDecl *aggDecl ) { 145 182 output << "enum "; … … 147 184 if ( aggDecl->get_name() != "" ) 148 185 output << aggDecl->get_name(); 149 186 150 187 std::list< Declaration* > &memb = aggDecl->get_members(); 151 188 … … 153 190 output << " {" << endl; 154 191 155 cur_indent += CodeGenerator::tabsize; 192 cur_indent += CodeGenerator::tabsize; 156 193 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) { 157 194 ObjectDecl *obj = dynamic_cast< ObjectDecl* >( *i ); 158 195 assert( obj ); 159 output << indent << mangleName( obj ); 196 output << indent << mangleName( obj ); 160 197 if ( obj->get_init() ) { 161 198 output << " = "; … … 165 202 } // for 166 203 167 cur_indent -= CodeGenerator::tabsize; 204 cur_indent -= CodeGenerator::tabsize; 168 205 169 206 output << indent << "}"; 170 207 } // if 171 208 } 172 209 173 210 void CodeGenerator::visit( TraitDecl *aggregateDecl ) {} 174 211 175 212 void CodeGenerator::visit( TypedefDecl *typeDecl ) { 176 213 output << "typedef "; 177 214 output << genType( typeDecl->get_base(), typeDecl->get_name() ); 178 215 } 179 216 180 217 void CodeGenerator::visit( TypeDecl *typeDecl ) { 181 218 // really, we should mutate this into something that isn't a TypeDecl but that requires large-scale changes, … … 213 250 printDesignators( init->get_designators() ); 214 251 output << "{ "; 215 genCommaList( init->begin_initializers(), init->end_initializers() ); 252 if ( init->begin_initializers() == init->end_initializers() ) { 253 // illegal to leave initializer list empty for scalar initializers, 254 // but always legal to have 0 255 output << "0"; 256 } else { 257 genCommaList( init->begin_initializers(), init->end_initializers() ); 258 } 216 259 output << " }"; 217 260 } 218 261 219 void CodeGenerator::visit( Constant *constant ) { 262 void CodeGenerator::visit( Constant *constant ) { 220 263 output << constant->get_value() ; 221 264 } … … 223 266 //*** Expressions 224 267 void CodeGenerator::visit( ApplicationExpr *applicationExpr ) { 268 extension( applicationExpr ); 225 269 if ( VariableExpr *varExpr = dynamic_cast< VariableExpr* >( applicationExpr->get_function() ) ) { 226 270 OperatorInfo opInfo; … … 231 275 case OT_POSTFIXASSIGN: 232 276 case OT_INFIXASSIGN: 277 case OT_CTOR: 278 case OT_DTOR: 233 279 { 234 280 assert( arg != applicationExpr->get_args().end() ); 235 281 if ( AddressExpr *addrExpr = dynamic_cast< AddressExpr * >( *arg ) ) { 236 282 // remove & from first assignment/ctor argument 237 283 *arg = addrExpr->get_arg(); 238 284 } else { 285 // no address-of operator, so must be a pointer - add dereference 239 286 UntypedExpr *newExpr = new UntypedExpr( new NameExpr( "*?" ) ); 240 287 newExpr->get_args().push_back( *arg ); 288 assert( (*arg)->get_results().size() == 1 ); 289 Type * type = InitTweak::getPointerBase( (*arg)->get_results().front() ); 290 assert( type ); 291 newExpr->get_results().push_back( type ); 241 292 *arg = newExpr; 242 293 } // if 243 294 break; 244 295 } 245 296 246 297 default: 247 298 // do nothing 248 299 ; 249 300 } 250 301 251 302 switch ( opInfo.type ) { 252 303 case OT_INDEX: … … 257 308 output << "]"; 258 309 break; 259 310 260 311 case OT_CALL: 261 312 // there are no intrinsic definitions of the function call operator 262 313 assert( false ); 263 314 break; 264 315 316 case OT_CTOR: 317 case OT_DTOR: 318 if ( applicationExpr->get_args().size() == 1 ) { 319 // the expression fed into a single parameter constructor or destructor 320 // may contain side effects, so must still output this expression 321 output << "("; 322 (*arg++)->accept( *this ); 323 output << ") /* " << opInfo.inputName << " */"; 324 } else if ( applicationExpr->get_args().size() == 2 ) { 325 // intrinsic two parameter constructors are essentially bitwise assignment 326 output << "("; 327 (*arg++)->accept( *this ); 328 output << opInfo.symbol; 329 (*arg)->accept( *this ); 330 output << ") /* " << opInfo.inputName << " */"; 331 } else { 332 // no constructors with 0 or more than 2 parameters 333 assert( false ); 334 } 335 break; 336 265 337 case OT_PREFIX: 266 338 case OT_PREFIXASSIGN: … … 271 343 output << ")"; 272 344 break; 273 345 274 346 case OT_POSTFIX: 275 347 case OT_POSTFIXASSIGN: … … 278 350 output << opInfo.symbol; 279 351 break; 352 280 353 281 354 case OT_INFIX: … … 288 361 output << ")"; 289 362 break; 290 363 291 364 case OT_CONSTANT: 292 365 case OT_LABELADDRESS: … … 307 380 } // if 308 381 } 309 382 310 383 void CodeGenerator::visit( UntypedExpr *untypedExpr ) { 384 extension( untypedExpr ); 311 385 if ( NameExpr *nameExpr = dynamic_cast< NameExpr* >( untypedExpr->get_function() ) ) { 312 386 OperatorInfo opInfo; … … 321 395 output << "]"; 322 396 break; 323 397 324 398 case OT_CALL: 325 399 assert( false ); 326 break; 327 400 401 402 case OT_CTOR: 403 case OT_DTOR: 404 if ( untypedExpr->get_args().size() == 1 ) { 405 // the expression fed into a single parameter constructor or destructor 406 // may contain side effects, so must still output this expression 407 output << "("; 408 (*arg++)->accept( *this ); 409 output << ") /* " << opInfo.inputName << " */"; 410 } else if ( untypedExpr->get_args().size() == 2 ) { 411 // intrinsic two parameter constructors are essentially bitwise assignment 412 output << "("; 413 (*arg++)->accept( *this ); 414 output << opInfo.symbol; 415 (*arg)->accept( *this ); 416 output << ") /* " << opInfo.inputName << " */"; 417 } else { 418 // no constructors with 0 or more than 2 parameters 419 assert( false ); 420 } 421 break; 422 328 423 case OT_PREFIX: 329 424 case OT_PREFIXASSIGN: … … 335 430 output << ")"; 336 431 break; 337 432 338 433 case OT_POSTFIX: 339 434 case OT_POSTFIXASSIGN: … … 342 437 output << opInfo.symbol; 343 438 break; 344 439 345 440 case OT_INFIX: 346 441 case OT_INFIXASSIGN: … … 352 447 output << ")"; 353 448 break; 354 449 355 450 case OT_CONSTANT: 356 451 // there are no intrinsic definitions of 0 or 1 as functions … … 370 465 } // if 371 466 } 372 467 373 468 void CodeGenerator::visit( NameExpr *nameExpr ) { 469 extension( nameExpr ); 374 470 OperatorInfo opInfo; 375 471 if ( operatorLookup( nameExpr->get_name(), opInfo ) ) { … … 380 476 } // if 381 477 } 382 478 383 479 void CodeGenerator::visit( AddressExpr *addressExpr ) { 480 extension( addressExpr ); 384 481 output << "(&"; 385 482 // this hack makes sure that we don't convert "constant_zero" to "0" if we're taking its address … … 393 490 394 491 void CodeGenerator::visit( CastExpr *castExpr ) { 492 extension( castExpr ); 395 493 output << "("; 396 494 if ( castExpr->get_results().empty() ) { … … 409 507 output << ")"; 410 508 } 411 509 412 510 void CodeGenerator::visit( UntypedMemberExpr *memberExpr ) { 413 511 assert( false ); 414 512 } 415 513 416 514 void CodeGenerator::visit( MemberExpr *memberExpr ) { 515 extension( memberExpr ); 417 516 memberExpr->get_aggregate()->accept( *this ); 418 517 output << "." << mangleName( memberExpr->get_member() ); 419 518 } 420 519 421 520 void CodeGenerator::visit( VariableExpr *variableExpr ) { 521 extension( variableExpr ); 422 522 OperatorInfo opInfo; 423 523 if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && operatorLookup( variableExpr->get_var()->get_name(), opInfo ) && opInfo.type == OT_CONSTANT ) { … … 427 527 } // if 428 528 } 429 529 430 530 void CodeGenerator::visit( ConstantExpr *constantExpr ) { 431 531 assert( constantExpr->get_constant() ); 532 extension( constantExpr ); 432 533 constantExpr->get_constant()->accept( *this ); 433 534 } 434 535 435 536 void CodeGenerator::visit( SizeofExpr *sizeofExpr ) { 537 extension( sizeofExpr ); 436 538 output << "sizeof("; 437 539 if ( sizeofExpr->get_isType() ) { … … 444 546 445 547 void CodeGenerator::visit( AlignofExpr *alignofExpr ) { 548 extension( alignofExpr ); 446 549 // use GCC extension to avoid bumping std to C11 447 550 output << "__alignof__("; … … 459 562 460 563 void CodeGenerator::visit( OffsetofExpr *offsetofExpr ) { 564 extension( offsetofExpr ); 461 565 // use GCC builtin 462 566 output << "__builtin_offsetof("; … … 469 573 assert( false && "OffsetPackExpr should not reach code generation" ); 470 574 } 471 575 472 576 void CodeGenerator::visit( LogicalExpr *logicalExpr ) { 577 extension( logicalExpr ); 473 578 output << "("; 474 579 logicalExpr->get_arg1()->accept( *this ); … … 481 586 output << ")"; 482 587 } 483 588 484 589 void CodeGenerator::visit( ConditionalExpr *conditionalExpr ) { 590 extension( conditionalExpr ); 485 591 output << "("; 486 592 conditionalExpr->get_arg1()->accept( *this ); … … 491 597 output << ")"; 492 598 } 493 599 494 600 void CodeGenerator::visit( CommaExpr *commaExpr ) { 601 extension( commaExpr ); 495 602 output << "("; 496 603 commaExpr->get_arg1()->accept( *this ); … … 499 606 output << ")"; 500 607 } 501 608 502 609 void CodeGenerator::visit( TupleExpr *tupleExpr ) {} 503 610 504 611 void CodeGenerator::visit( TypeExpr *typeExpr ) {} 505 612 506 613 void CodeGenerator::visit( AsmExpr *asmExpr ) { 614 extension( asmExpr ); 507 615 if ( asmExpr->get_inout() ) { 508 616 output << "[ "; … … 532 640 } 533 641 } 534 cur_indent -= CodeGenerator::tabsize; 642 cur_indent -= CodeGenerator::tabsize; 535 643 536 644 output << indent << "}"; … … 538 646 539 647 void CodeGenerator::visit( ExprStmt *exprStmt ) { 540 // I don't see why this check is necessary.541 // If this starts to cause problems then put it back in,542 // with an explanation543 648 assert( exprStmt ); 544 545 // if ( exprStmt != 0 ) { 546 exprStmt->get_expr()->accept( *this ); 547 output << ";" ; 548 // } // if 649 // cast the top-level expression to void to reduce gcc warnings. 650 Expression * expr = new CastExpr( exprStmt->get_expr() ); 651 expr->accept( *this ); 652 output << ";"; 549 653 } 550 654 … … 589 693 switchStmt->get_condition()->accept( *this ); 590 694 output << " ) "; 591 695 592 696 output << "{" << std::endl; 593 697 cur_indent += CodeGenerator::tabsize; … … 609 713 } // if 610 714 output << ":\n"; 611 715 612 716 std::list<Statement *> sts = caseStmt->get_statements(); 613 717 … … 626 730 if ( ! branchStmt->get_target().empty() ) 627 731 output << "goto " << branchStmt->get_target(); 628 else { 732 else { 629 733 if ( branchStmt->get_computedTarget() != 0 ) { 630 734 output << "goto *"; … … 646 750 void CodeGenerator::visit( ReturnStmt *returnStmt ) { 647 751 output << "return "; 648 649 // xxx -- check for null expression; 650 if ( returnStmt->get_expr() ) { 651 returnStmt->get_expr()->accept( *this ); 652 } // if 752 maybeAccept( returnStmt->get_expr(), *this ); 653 753 output << ";"; 654 754 } 655 755 656 756 void CodeGenerator::visit( WhileStmt *whileStmt ) { 657 if ( whileStmt->get_isDoWhile() ) 757 if ( whileStmt->get_isDoWhile() ) { 658 758 output << "do" ; 659 else {759 } else { 660 760 output << "while (" ; 661 761 whileStmt->get_condition()->accept( *this ); … … 677 777 678 778 void CodeGenerator::visit( ForStmt *forStmt ) { 679 // initialization is always hoisted, so don't 680 // bother doing anything with that 779 // initialization is always hoisted, so don't 780 // bother doing anything with that 681 781 output << "for (;"; 682 782 683 if ( forStmt->get_condition() != 0 ) 783 if ( forStmt->get_condition() != 0 ) { 684 784 forStmt->get_condition()->accept( *this ); 785 } 685 786 output << ";"; 686 787 687 if ( forStmt->get_increment() != 0 ) 688 forStmt->get_increment()->accept( *this ); 788 if ( forStmt->get_increment() != 0 ) { 789 // cast the top-level expression to void to reduce gcc warnings. 790 Expression * expr = new CastExpr( forStmt->get_increment() ); 791 expr->accept( *this ); 792 } 689 793 output << ") "; 690 794 … … 702 806 void CodeGenerator::visit( DeclStmt *declStmt ) { 703 807 declStmt->get_decl()->accept( *this ); 704 808 705 809 if ( doSemicolon( declStmt->get_decl() ) ) { 706 810 output << ";"; 707 811 } // if 708 }709 710 std::string CodeGenerator::printLabels( std::list< Label > &l ) {711 std::string str( "" );712 l.unique(); // assumes a sorted list. Why not use set?713 714 for ( std::list< Label >::iterator i = l.begin(); i != l.end(); i++ )715 str += *i + ": ";716 717 return str;718 812 } 719 813 -
src/CodeGen/CodeGenerator.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CodeGenerator.h -- 7 // CodeGenerator.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:32:24201613 // Update Count : 2 812 // Last Modified On : Thu Jun 9 13:15:58 2016 13 // Update Count : 29 14 14 // 15 15 … … 60 60 virtual void visit( MemberExpr *memberExpr ); 61 61 virtual void visit( VariableExpr *variableExpr ); 62 virtual void visit( ConstantExpr *constantExpr ); 62 virtual void visit( ConstantExpr *constantExpr ); 63 63 virtual void visit( SizeofExpr *sizeofExpr ); 64 64 virtual void visit( AlignofExpr *alignofExpr ); … … 85 85 virtual void visit( ForStmt * ); 86 86 virtual void visit( NullStmt * ); 87 virtual void visit( DeclStmt * ); 87 virtual void visit( DeclStmt * ); 88 89 void genAttributes( std::list< Attribute * > & attributes ); 88 90 89 91 template< class Iterator > void genCommaList( Iterator begin, Iterator end ); … … 92 94 Indenter(CodeGenerator &cg) : cg(cg) {} 93 95 CodeGenerator & cg; 94 std::ostream& operator()(std::ostream & os) ;96 std::ostream& operator()(std::ostream & os) const; 95 97 }; 98 99 struct LabelPrinter { 100 LabelPrinter(CodeGenerator &cg) : cg(cg), labels( 0 ) {} 101 LabelPrinter & operator()( std::list< Label > & l ); 102 CodeGenerator & cg; 103 std::list< Label > * labels; 104 }; 105 106 void extension( Expression *expr ) { 107 if ( expr->get_extension() ) { 108 output << "__extension__ "; 109 } // if 110 } // extension 96 111 private: 97 112 … … 100 115 bool insideFunction; 101 116 std::ostream &output; 117 LabelPrinter printLabels; 102 118 103 119 void printDesignators( std::list< Expression * > & ); 104 static std::string printLabels ( std::list < Label > & );105 120 void handleStorageClass( Declaration *decl ); 106 121 void handleAggregate( AggregateDecl *aggDecl ); … … 108 123 109 124 }; 110 125 111 126 template< class Iterator > 112 127 void CodeGenerator::genCommaList( Iterator begin, Iterator end ) { … … 119 134 } // for 120 135 } 121 136 122 137 inline bool doSemicolon( Declaration* decl ) { 123 138 if ( FunctionDecl* func = dynamic_cast< FunctionDecl* >( decl ) ) { -
src/CodeGen/FixNames.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FixNames.cc -- 7 // FixNames.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon May 18 23:36:42 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon Apr 11 15:38:10 2016 13 13 // Update Count : 1 14 14 // … … 26 26 virtual void visit( ObjectDecl *objectDecl ); 27 27 virtual void visit( FunctionDecl *functionDecl ); 28 29 virtual void visit( CompoundStmt *compoundStmt ); 30 31 private: 32 int scopeLevel = 1; 33 34 void fixDWT( DeclarationWithType *dwt ); 28 35 }; 29 36 … … 33 40 } 34 41 35 void fixDWT( DeclarationWithType *dwt ) {42 void FixNames::fixDWT( DeclarationWithType *dwt ) { 36 43 if ( dwt->get_name() != "" ) { 37 44 if ( LinkageSpec::isDecoratable( dwt->get_linkage() ) ) { 38 45 dwt->set_mangleName( SymTab::Mangler::mangle( dwt ) ); 46 dwt->set_scopeLevel( scopeLevel ); 39 47 } // if 40 48 } // if … … 50 58 fixDWT( functionDecl ); 51 59 } 60 61 void FixNames::visit( CompoundStmt *compoundStmt ) { 62 scopeLevel++; 63 Visitor::visit( compoundStmt ); 64 scopeLevel--; 65 } 52 66 } // namespace CodeGen 53 67 -
src/CodeGen/OperatorTable.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // OperatorTable.cc -- 7 // OperatorTable.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : T ue Jun 23 17:41:14 201513 // Update Count : 511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 16:48:27 2016 13 // Update Count : 9 14 14 // 15 15 … … 21 21 const OperatorInfo tableValues[] = { 22 22 { "?[?]", "", "_operator_index", OT_INDEX }, 23 { "?{}", "=", "_constructor", OT_CTOR }, 24 { "^?{}", "", "_destructor", OT_DTOR }, 23 25 { "?()", "", "_operator_call", OT_CALL }, 24 26 { "?++", "++", "_operator_postincr", OT_POSTFIXASSIGN }, -
src/CodeGen/OperatorTable.h
r1b5c81ed rf80e0218 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue Jun 23 16:09:27 201513 // Update Count : 311 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 24 16:17:57 2015 13 // Update Count : 5 14 14 // 15 15 … … 22 22 enum OperatorType { 23 23 OT_INDEX, 24 OT_CTOR, 25 OT_DTOR, 24 26 OT_CALL, 25 27 OT_PREFIX, -
src/Common/utility.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // utility.h -- 7 // utility.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 2 18:04:41 201513 // Update Count : 1612 // Last Modified On : Wed Jun 8 17:33:59 2016 13 // Update Count : 22 14 14 // 15 15 … … 33 33 } 34 34 35 template<typename T, typename U> 36 struct maybeBuild_t { 37 static T * doit( const U *orig ) { 38 if ( orig ) { 39 return orig->build(); 40 } else { 41 return 0; 42 } // if 43 } 44 }; 45 35 46 template< typename T, typename U > 36 47 static inline T * maybeBuild( const U *orig ) { 37 if ( orig ) { 38 return orig->build(); 39 } else { 40 return 0; 41 } // if 48 return maybeBuild_t<T,U>::doit(orig); 42 49 } 43 50 … … 62 69 os << std::string( indent, ' ' ); 63 70 (*i)->print( os, indent + 2 ); 71 // need an endl after each element because it's not easy to know when each individual item should end 64 72 os << std::endl; 65 73 } // if … … 128 136 } 129 137 130 template < typename T > 138 template < typename T > 131 139 std::string toString ( T value ) { 132 140 std::ostringstream os; -
src/ControlStruct/LabelFixer.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelFixer.cc -- 7 // LabelFixer.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 86 86 87 87 88 // sets the definition of the labelTable entry to be the provided 88 // sets the definition of the labelTable entry to be the provided 89 89 // statement for every label in the list parameter. Happens for every kind of statement 90 90 Label LabelFixer::setLabelsDef( std::list< Label > &llabel, Statement *definition ) { … … 95 95 96 96 for ( std::list< Label >::iterator i = llabel.begin(); i != llabel.end(); i++ ) { 97 if ( labelTable.find( *i ) == labelTable.end() ) { 97 Label & l = *i; 98 l.set_statement( definition ); // attach statement to the label to be used later 99 if ( labelTable.find( l ) == labelTable.end() ) { 98 100 // all labels on this statement need to use the same entry, so this should only be created once 99 101 // undefined and unused until now, add an entry 100 labelTable[ *i] = e;101 } else if ( labelTable[ *i]->defined() ) {102 labelTable[ l ] = e; 103 } else if ( labelTable[ l ]->defined() ) { 102 104 // defined twice, error 103 throw SemanticError( "Duplicate definition of label: " + *i);105 throw SemanticError( "Duplicate definition of label: " + l.get_name() ); 104 106 } else { 105 107 // used previously, but undefined until now -> link with this entry 106 delete labelTable[ *i];107 labelTable[ *i] = e;108 delete labelTable[ l ]; 109 labelTable[ l ] = e; 108 110 } // if 109 111 } // for 110 112 111 // produce one of the labels attached to this statement to be 113 // produce one of the labels attached to this statement to be 112 114 // temporarily used as the canonical label 113 115 return labelTable[ llabel.front() ]->get_label(); 114 116 } 115 117 116 // A label was used, add it otthe table if it isn't already there118 // A label was used, add it to the table if it isn't already there 117 119 template< typename UsageNode > 118 120 void LabelFixer::setLabelsUsg( Label orgValue, UsageNode *use ) { … … 130 132 for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) { 131 133 if ( ! i->second->defined() ) { 132 throw SemanticError( "Use of undefined label: " + i->first );134 throw SemanticError( "Use of undefined label: " + i->first.get_name() ); 133 135 } 134 136 (*ret)[ i->first ] = i->second->get_definition(); -
src/ControlStruct/LabelFixer.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelFixer.h -- 7 // LabelFixer.h -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 20 20 #include "SynTree/SynTree.h" 21 21 #include "SynTree/Visitor.h" 22 #include "SynTree/Label.h" 22 23 #include "LabelGenerator.h" 23 24 24 #include <map> 25 25 … … 74 74 75 75 private: 76 Label label; 76 Label label; 77 77 Statement *definition; 78 78 }; 79 79 80 80 std::map < Label, Entry *> labelTable; 81 81 LabelGenerator *generator; -
src/ControlStruct/LabelGenerator.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelGenerator.cc -- 7 // LabelGenerator.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 18 18 19 19 #include "LabelGenerator.h" 20 #include "SynTree/Label.h" 21 #include "SynTree/Attribute.h" 20 22 21 23 namespace ControlStruct { … … 33 35 os << "__L" << current++ << "__" << suffix; 34 36 std::string ret = os.str(); 35 return Label( ret ); 37 Label l( ret ); 38 l.get_attributes().push_back( new Attribute("unused") ); 39 return l; 36 40 } 37 41 } // namespace ControlStruct -
src/ControlStruct/MLEMutator.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // MLEMutator.cc -- 7 // MLEMutator.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 14 14 // 15 15 16 // NOTE: There are two known subtle differences from the code that uC++ 16 // NOTE: There are two known subtle differences from the code that uC++ 17 17 // generates for the same input 18 18 // -CFA puts the break label inside at the end of a switch, uC++ puts it after … … 27 27 #include "SynTree/Statement.h" 28 28 #include "SynTree/Expression.h" 29 #include "SynTree/Attribute.h" 29 30 30 31 namespace ControlStruct { … … 33 34 targetTable = 0; 34 35 } 35 36 // break labels have to come after the statement they break out of, 36 namespace { 37 Statement * isLoop( Statement * stmt ) { return dynamic_cast< WhileStmt * >( stmt ) ? stmt : dynamic_cast< ForStmt * >( stmt ) ? stmt : 0; } 38 } 39 40 // break labels have to come after the statement they break out of, 37 41 // so mutate a statement, then if they inform us through the breakLabel field 38 // tha they need a place to jump to on a break statement, add the break label 42 // tha they need a place to jump to on a break statement, add the break label 39 43 // to the body of statements 40 44 void MLEMutator::fixBlock( std::list< Statement * > &kids ) { … … 44 48 if ( ! get_breakLabel().empty() ) { 45 49 std::list< Statement * >::iterator next = k+1; 46 if ( next == kids.end() ) { 47 std::list<Label> ls; ls.push_back( get_breakLabel() ); 48 kids.push_back( new NullStmt( ls ) ); 49 } else { 50 (*next)->get_labels().push_back( get_breakLabel() ); 51 } 52 50 std::list<Label> ls; ls.push_back( get_breakLabel() ); 51 kids.insert( next, new NullStmt( ls ) ); 53 52 set_breakLabel(""); 54 53 } // if … … 60 59 if ( labeledBlock ) { 61 60 Label brkLabel = generator->newLabel("blockBreak"); 62 enclosing Blocks.push_back( Entry( cmpndStmt, brkLabel ) );61 enclosingControlStructures.push_back( Entry( cmpndStmt, brkLabel ) ); 63 62 } // if 64 63 … … 69 68 70 69 if ( labeledBlock ) { 71 assert( ! enclosing Blocks.empty() );72 if ( ! enclosing Blocks.back().useBreakExit().empty() ) {73 set_breakLabel( enclosing Blocks.back().useBreakExit() );74 } 75 enclosing Blocks.pop_back();70 assert( ! enclosingControlStructures.empty() ); 71 if ( ! enclosingControlStructures.back().useBreakExit().empty() ) { 72 set_breakLabel( enclosingControlStructures.back().useBreakExit() ); 73 } 74 enclosingControlStructures.pop_back(); 76 75 } // if 77 76 … … 81 80 template< typename LoopClass > 82 81 Statement *MLEMutator::handleLoopStmt( LoopClass *loopStmt ) { 83 // remember this as the most recent enclosing loop, then mutate 82 // remember this as the most recent enclosing loop, then mutate 84 83 // the body of the loop -- this will determine whether brkLabel 85 84 // and contLabel are used with branch statements … … 87 86 Label brkLabel = generator->newLabel("loopBreak"); 88 87 Label contLabel = generator->newLabel("loopContinue"); 89 enclosing Loops.push_back( Entry( loopStmt, brkLabel, contLabel ) );88 enclosingControlStructures.push_back( Entry( loopStmt, brkLabel, contLabel ) ); 90 89 loopStmt->set_body ( loopStmt->get_body()->acceptMutator( *this ) ); 91 90 92 91 // sanity check that the enclosing loops have been popped correctly 93 Entry &e = enclosing Loops.back();92 Entry &e = enclosingControlStructures.back(); 94 93 assert ( e == loopStmt ); 95 94 … … 97 96 // two labels, if they are used. 98 97 loopStmt->set_body( mutateLoop( loopStmt->get_body(), e ) ); 99 enclosing Loops.pop_back();98 enclosingControlStructures.pop_back(); 100 99 101 100 return loopStmt; … … 111 110 template< typename SwitchClass > 112 111 Statement *MLEMutator::handleSwitchStmt( SwitchClass *switchStmt ) { 113 // generate a label for breaking out of a labeled switch 112 // generate a label for breaking out of a labeled switch 114 113 Label brkLabel = generator->newLabel("switchBreak"); 115 enclosing Switches.push_back( Entry(switchStmt, brkLabel) );116 mutateAll( switchStmt->get_branches(), *this ); 117 118 Entry &e = enclosing Switches.back();114 enclosingControlStructures.push_back( Entry(switchStmt, brkLabel) ); 115 mutateAll( switchStmt->get_branches(), *this ); 116 117 Entry &e = enclosingControlStructures.back(); 119 118 assert ( e == switchStmt ); 120 119 121 120 // only generate break label if labeled break is used 122 121 if (e.isBreakUsed()) { 123 // for the purposes of keeping switch statements uniform (i.e. all statements that are 124 // direct children of a switch should be CastStmts), append the exit label + break to the 122 // for the purposes of keeping switch statements uniform (i.e. all statements that are 123 // direct children of a switch should be CastStmts), append the exit label + break to the 125 124 // last case statement; create a default case if there are no cases 126 125 std::list< Statement * > &branches = switchStmt->get_branches(); … … 131 130 if ( CaseStmt * c = dynamic_cast< CaseStmt * >( branches.back() ) ) { 132 131 std::list<Label> temp; temp.push_back( brkLabel ); 133 c->get_statements().push_back( new BranchStmt( temp, Label(" "), BranchStmt::Break ) );132 c->get_statements().push_back( new BranchStmt( temp, Label("brkLabel"), BranchStmt::Break ) ); 134 133 } else assert(0); // as of this point, all branches of a switch are still CaseStmts 135 134 } 136 135 137 assert ( enclosing Switches.back() == switchStmt );138 enclosing Switches.pop_back();136 assert ( enclosingControlStructures.back() == switchStmt ); 137 enclosingControlStructures.pop_back(); 139 138 return switchStmt; 140 139 } … … 143 142 std::string originalTarget = branchStmt->get_originalTarget(); 144 143 145 if ( branchStmt->get_type() == BranchStmt::Goto ) 144 std::list< Entry >::reverse_iterator targetEntry; 145 if ( branchStmt->get_type() == BranchStmt::Goto ) { 146 146 return branchStmt; 147 148 // test if continue target is a loop 149 if ( branchStmt->get_type() == BranchStmt::Continue) { 150 if ( enclosingLoops.empty() ) { 151 throw SemanticError( "'continue' outside a loop" ); 152 } else if ( branchStmt->get_target() != "" && std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) == enclosingLoops.end() ) { 153 throw SemanticError( "'continue' target label must be an enclosing loop: " + originalTarget ); 154 } 155 } 156 157 if ( branchStmt->get_type() == BranchStmt::Break && (enclosingLoops.empty() && enclosingSwitches.empty() && enclosingBlocks.empty() ) ) 158 throw SemanticError( "'break' outside a loop or switch" ); 159 160 if ( branchStmt->get_target() == "" ) return branchStmt; 161 162 if ( targetTable->find( branchStmt->get_target() ) == targetTable->end() ) 147 } else if ( branchStmt->get_type() == BranchStmt::Continue) { 148 // continue target must be a loop 149 if ( branchStmt->get_target() == "" ) { 150 targetEntry = std::find_if( enclosingControlStructures.rbegin(), enclosingControlStructures.rend(), [](Entry &e) { return isLoop( e.get_controlStructure() ); } ); 151 } else { 152 // labelled continue - lookup label in table ot find attached control structure 153 targetEntry = std::find( enclosingControlStructures.rbegin(), enclosingControlStructures.rend(), (*targetTable)[branchStmt->get_target()] ); 154 } 155 if ( targetEntry == enclosingControlStructures.rend() || ! isLoop( targetEntry->get_controlStructure() ) ) { 156 throw SemanticError( "'continue' target must be an enclosing loop: " + originalTarget ); 157 } 158 } else if ( branchStmt->get_type() == BranchStmt::Break ) { 159 if ( enclosingControlStructures.empty() ) throw SemanticError( "'break' outside a loop, switch, or labelled block" ); 160 targetEntry = enclosingControlStructures.rbegin(); 161 } else { 162 assert( false ); 163 } 164 165 if ( branchStmt->get_target() != "" && targetTable->find( branchStmt->get_target() ) == targetTable->end() ) { 163 166 throw SemanticError("The label defined in the exit loop statement does not exist: " + originalTarget ); // shouldn't happen (since that's already checked) 164 165 std::list< Entry >::iterator check; 166 if ( ( check = std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) ) == enclosingLoops.end() ) 167 // not in loop, checking if in block 168 if ( (check = std::find( enclosingBlocks.begin(), enclosingBlocks.end(), (*targetTable)[branchStmt->get_target()] )) == enclosingBlocks.end() ) 169 // neither in loop nor in block, checking if in switch/choose 170 if ( (check = std::find( enclosingSwitches.begin(), enclosingSwitches.end(), (*targetTable)[branchStmt->get_target()] )) == enclosingSwitches.end() ) 171 throw SemanticError("The target specified in the exit loop statement does not correspond to an enclosing control structure: " + originalTarget ); 172 173 // what about exiting innermost block or switch??? 174 if ( enclosingLoops.back() == (*check) ) 175 return branchStmt; // exit the innermost loop (labels unnecessary) 167 } 176 168 177 169 // branch error checks, get the appropriate label name and create a goto … … 179 171 switch ( branchStmt->get_type() ) { 180 172 case BranchStmt::Break: 181 assert( check->useBreakExit() != "");182 exitLabel = check->useBreakExit();173 assert( targetEntry->useBreakExit() != ""); 174 exitLabel = targetEntry->useBreakExit(); 183 175 break; 184 176 case BranchStmt::Continue: 185 assert( check->useContExit() != "");186 exitLabel = check->useContExit();177 assert( targetEntry->useContExit() != ""); 178 exitLabel = targetEntry->useContExit(); 187 179 break; 188 180 default: … … 190 182 } // switch 191 183 192 return new BranchStmt( std::list<Label>(), exitLabel, BranchStmt::Goto ); 184 if ( branchStmt->get_target() == "" && branchStmt->get_type() != BranchStmt::Continue ) { 185 // unlabelled break/continue - can keep branch as break/continue for extra semantic information, but add 186 // exitLabel as its destination so that label passes can easily determine where the break/continue goes to 187 branchStmt->set_target( exitLabel ); 188 return branchStmt; 189 } else { 190 // labelled break/continue - can't easily emulate this with break and continue, so transform into a goto 191 delete branchStmt; 192 return new BranchStmt( std::list<Label>(), exitLabel, BranchStmt::Goto ); 193 } 193 194 } 194 195 … … 206 207 // continue label goes in the body as the last statement 207 208 std::list< Label > labels; labels.push_back( e.useContExit() ); 208 newBody->get_kids().push_back( new NullStmt( labels ) ); 209 newBody->get_kids().push_back( new NullStmt( labels ) ); 209 210 } 210 211 211 212 if ( e.isBreakUsed() ) { 212 // break label goes after the loop -- it'll get set by the 213 // break label goes after the loop -- it'll get set by the 213 214 // outer mutator if we do this 214 set_breakLabel( e.useBreakExit() ); 215 set_breakLabel( e.useBreakExit() ); 215 216 } 216 217 … … 231 232 232 233 Statement *MLEMutator::mutate( ChooseStmt *switchStmt ) { 233 return handleSwitchStmt( switchStmt ); 234 return handleSwitchStmt( switchStmt ); 234 235 } 235 236 -
src/ControlStruct/MLEMutator.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // MLEMutator.h -- 7 // MLEMutator.h -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 23 23 #include "SynTree/SynTree.h" 24 24 #include "SynTree/Mutator.h" 25 #include "SynTree/Label.h" 25 26 26 27 #include "LabelGenerator.h" … … 38 39 Statement *mutate( BranchStmt *branchStmt ) throw ( SemanticError ); 39 40 40 Statement *mutate( CaseStmt *caseStmt ); 41 Statement *mutate( CaseStmt *caseStmt ); 41 42 Statement *mutate( SwitchStmt *switchStmt ); 42 43 Statement *mutate( ChooseStmt *switchStmt ); … … 55 56 bool operator!=( const Statement *stmt ) { return ( loop != stmt ); } 56 57 57 bool operator==( const Entry &other ) { return ( loop == other.get_ loop() ); }58 bool operator==( const Entry &other ) { return ( loop == other.get_controlStructure() ); } 58 59 59 Statement *get_ loop() const { return loop; }60 Statement *get_controlStructure() const { return loop; } 60 61 61 62 Label useContExit() { contUsed = true; return contExit; } … … 72 73 73 74 std::map< Label, Statement * > *targetTable; 74 std::list< Entry > enclosing Blocks, enclosingLoops, enclosingSwitches;75 std::list< Entry > enclosingControlStructures; 75 76 Label breakLabel; 76 77 LabelGenerator *generator; … … 79 80 Statement *handleLoopStmt( LoopClass *loopStmt ); 80 81 81 template< typename SwitchClass > 82 template< typename SwitchClass > 82 83 Statement *handleSwitchStmt( SwitchClass *switchStmt ); 83 84 -
src/ControlStruct/Mutate.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mutate.cc -- 7 // Mutate.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 39 39 ForExprMutator formut; 40 40 41 // transform choose statements into switch statements 42 ChooseMutator chmut; 43 41 44 // normalizes label definitions and generates multi-level 42 45 // exit labels 43 46 LabelFixer lfix; 44 45 // transform choose statements into switch statements46 ChooseMutator chmut;47 47 48 48 // expand case ranges and turn fallthru into a null statement … … 53 53 54 54 mutateAll( translationUnit, formut ); 55 mutateAll( translationUnit, chmut ); 55 56 acceptAll( translationUnit, lfix ); 56 mutateAll( translationUnit, chmut );57 57 mutateAll( translationUnit, ranges ); 58 58 //mutateAll( translationUnit, exc ); -
src/GenPoly/Box.cc
r1b5c81ed rf80e0218 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Feb 5 16:45:07201613 // Update Count : 2 8611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri May 13 14:51:21 2016 13 // Update Count : 295 14 14 // 15 15 … … 133 133 Value *lookup( Key *key, const std::list< TypeExpr* >& params ) const { 134 134 TypeList typeList( params ); 135 135 136 136 // scan scopes for matches to the key 137 137 for ( typename InnerMap::const_iterator insts = instantiations.find( key ); insts != instantiations.end(); insts = instantiations.findNext( insts, key ) ) { … … 160 160 virtual Declaration *mutate( UnionDecl *unionDecl ); 161 161 }; 162 162 163 163 /// Replaces polymorphic return types with out-parameters, replaces calls to polymorphic functions with adapter calls as needed, and adds appropriate type variables to the function call 164 164 class Pass1 : public PolyMutator { … … 197 197 void addInferredParams( ApplicationExpr *appExpr, FunctionType *functionType, std::list< Expression *>::iterator &arg, const TyVarMap &tyVars ); 198 198 /// Stores assignment operators from assertion list in local map of assignment operations 199 void find AssignOps( const std::list< TypeDecl *> &forall );199 void findTypeOps( const std::list< TypeDecl *> &forall ); 200 200 void passAdapters( ApplicationExpr *appExpr, FunctionType *functionType, const TyVarMap &exprTyVars ); 201 201 FunctionDecl *makeAdapter( FunctionType *adaptee, FunctionType *realType, const std::string &mangleName, const TyVarMap &tyVars ); … … 205 205 ObjectDecl *makeTemporary( Type *type ); 206 206 207 ScopedMap< std::string, DeclarationWithType *> assignOps; ///< Currently known type variable assignment operators 207 ScopedMap< std::string, DeclarationWithType* > assignOps; ///< Currently known type variable assignment operators 208 ScopedMap< std::string, DeclarationWithType* > ctorOps; ///< Currently known type variable constructors 209 ScopedMap< std::string, DeclarationWithType* > copyOps; ///< Currently known type variable copy constructors 210 ScopedMap< std::string, DeclarationWithType* > dtorOps; ///< Currently known type variable destructors 208 211 ResolvExpr::TypeMap< DeclarationWithType > scopedAssignOps; ///< Currently known assignment operators 212 ResolvExpr::TypeMap< DeclarationWithType > scopedCtorOps; ///< Currently known assignment operators 213 ResolvExpr::TypeMap< DeclarationWithType > scopedCopyOps; ///< Currently known assignment operators 214 ResolvExpr::TypeMap< DeclarationWithType > scopedDtorOps; ///< Currently known assignment operators 209 215 ScopedMap< std::string, DeclarationWithType* > adapters; ///< Set of adapter functions in the current scope 210 216 211 217 DeclarationWithType *retval; 212 218 bool useRetval; … … 226 232 virtual Type *mutate( PointerType *pointerType ); 227 233 virtual Type *mutate( FunctionType *funcType ); 228 234 229 235 private: 230 236 void addAdapters( FunctionType *functionType ); … … 297 303 /// Exits the type-variable scope 298 304 void endTypeScope(); 299 305 300 306 ScopedSet< std::string > knownLayouts; ///< Set of generic type layouts known in the current scope, indexed by sizeofName 301 307 ScopedSet< std::string > knownOffsets; ///< Set of non-generic types for which the offset array exists in the current scope, indexed by offsetofName … … 351 357 PolyGenericCalculator polyCalculator; 352 358 Pass3 pass3; 353 359 354 360 layoutBuilder.mutateDeclarationList( translationUnit ); 355 361 mutateTranslationUnit/*All*/( translationUnit, pass1 ); … … 370 376 return functionDecl; 371 377 } 372 378 373 379 /// Get a list of type declarations that will affect a layout function 374 380 std::list< TypeDecl* > takeOtypeOnly( std::list< TypeDecl* > &decls ) { … … 380 386 } 381 387 } 382 388 383 389 return otypeDecls; 384 390 } … … 387 393 void addOtypeParams( FunctionType *layoutFnType, std::list< TypeDecl* > &otypeParams ) { 388 394 BasicType sizeAlignType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 389 395 390 396 for ( std::list< TypeDecl* >::const_iterator param = otypeParams.begin(); param != otypeParams.end(); ++param ) { 391 397 TypeInstType paramType( Type::Qualifiers(), (*param)->get_name(), *param ); … … 444 450 return makeCond( ifCond, ifExpr ); 445 451 } 446 452 447 453 /// adds an expression to a compound statement 448 454 void addExpr( CompoundStmt *stmts, Expression *expr ) { … … 454 460 stmts->get_kids().push_back( stmt ); 455 461 } 456 462 457 463 Declaration *LayoutFunctionBuilder::mutate( StructDecl *structDecl ) { 458 464 // do not generate layout function for "empty" tag structs … … 467 473 BasicType *sizeAlignType = new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 468 474 PointerType *sizeAlignOutType = new PointerType( Type::Qualifiers(), sizeAlignType ); 469 475 470 476 ObjectDecl *sizeParam = new ObjectDecl( sizeofName( structDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 ); 471 477 layoutFnType->get_parameters().push_back( sizeParam ); … … 497 503 addStmt( layoutDecl->get_statements(), makeAlignTo( derefVar( sizeParam ), new AlignofExpr( memberType->clone() ) ) ); 498 504 } 499 505 500 506 // place current size in the current offset index 501 addExpr( layoutDecl->get_statements(), makeOp( "?=?", makeOp( "?[?]", new VariableExpr( offsetParam ), new ConstantExpr( Constant::from ( n_members ) ) ),507 addExpr( layoutDecl->get_statements(), makeOp( "?=?", makeOp( "?[?]", new VariableExpr( offsetParam ), new ConstantExpr( Constant::from_ulong( n_members ) ) ), 502 508 derefVar( sizeParam ) ) ); 503 509 ++n_members; … … 505 511 // add member size to current size 506 512 addExpr( layoutDecl->get_statements(), makeOp( "?+=?", derefVar( sizeParam ), new SizeofExpr( memberType->clone() ) ) ); 507 513 508 514 // take max of member alignment and global alignment 509 515 addStmt( layoutDecl->get_statements(), makeAssignMax( derefVar( alignParam ), new AlignofExpr( memberType->clone() ) ) ); … … 515 521 return structDecl; 516 522 } 517 523 518 524 Declaration *LayoutFunctionBuilder::mutate( UnionDecl *unionDecl ) { 519 525 // do not generate layout function for "empty" tag unions 520 526 if ( unionDecl->get_members().empty() ) return unionDecl; 521 527 522 528 // get parameters that can change layout, exiting early if none 523 529 std::list< TypeDecl* > otypeParams = takeOtypeOnly( unionDecl->get_parameters() ); … … 528 534 BasicType *sizeAlignType = new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 529 535 PointerType *sizeAlignOutType = new PointerType( Type::Qualifiers(), sizeAlignType ); 530 536 531 537 ObjectDecl *sizeParam = new ObjectDecl( sizeofName( unionDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 ); 532 538 layoutFnType->get_parameters().push_back( sizeParam ); … … 545 551 assert( dwt ); 546 552 Type *memberType = dwt->get_type(); 547 553 548 554 // take max member size and global size 549 555 addStmt( layoutDecl->get_statements(), makeAssignMax( derefVar( sizeParam ), new SizeofExpr( memberType->clone() ) ) ); 550 556 551 557 // take max of member alignment and global alignment 552 558 addStmt( layoutDecl->get_statements(), makeAssignMax( derefVar( alignParam ), new AlignofExpr( memberType->clone() ) ) ); … … 558 564 return unionDecl; 559 565 } 560 566 561 567 ////////////////////////////////////////// Pass1 //////////////////////////////////////////////////// 562 568 … … 600 606 Pass1::Pass1() : useRetval( false ), tempNamer( "_temp" ) {} 601 607 602 /// Returns T if the given declaration is (*?=?)(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 603 TypeInstType *isTypeInstAssignment( DeclarationWithType *decl ) { 604 if ( decl->get_name() == "?=?" ) { 605 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 606 if ( funType->get_parameters().size() == 2 ) { 607 if ( PointerType *pointer = dynamic_cast< PointerType *>( funType->get_parameters().front()->get_type() ) ) { 608 if ( TypeInstType *refType = dynamic_cast< TypeInstType *>( pointer->get_base() ) ) { 609 if ( TypeInstType *refType2 = dynamic_cast< TypeInstType *>( funType->get_parameters().back()->get_type() ) ) { 610 if ( refType->get_name() == refType2->get_name() ) { 611 return refType; 612 } // if 608 /// Returns T if the given declaration is a function with parameter (T*) for some TypeInstType T, NULL otherwise 609 TypeInstType *isTypeInstPtrFn( DeclarationWithType *decl ) { 610 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 611 if ( funType->get_parameters().size() == 1 ) { 612 if ( PointerType *pointer = dynamic_cast< PointerType *>( funType->get_parameters().front()->get_type() ) ) { 613 if ( TypeInstType *refType = dynamic_cast< TypeInstType *>( pointer->get_base() ) ) { 614 return refType; 615 } // if 616 } // if 617 } // if 618 } // if 619 return 0; 620 } 621 622 /// Returns T if the given declaration is a function with parameters (T*, T) for some TypeInstType T, NULL otherwise 623 TypeInstType *isTypeInstPtrValFn( DeclarationWithType *decl ) { 624 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 625 if ( funType->get_parameters().size() == 2 ) { 626 if ( PointerType *pointer = dynamic_cast< PointerType *>( funType->get_parameters().front()->get_type() ) ) { 627 if ( TypeInstType *refType = dynamic_cast< TypeInstType *>( pointer->get_base() ) ) { 628 if ( TypeInstType *refType2 = dynamic_cast< TypeInstType *>( funType->get_parameters().back()->get_type() ) ) { 629 if ( refType->get_name() == refType2->get_name() ) { 630 return refType; 613 631 } // if 614 632 } // if … … 620 638 } 621 639 622 /// returns T if the given declaration is: (*?=?)(T *, T) for some type T (return not checked, but maybe should be), NULL otherwise 623 /// Only picks assignments where neither parameter is cv-qualified 624 Type *isAssignment( DeclarationWithType *decl ) { 625 if ( decl->get_name() == "?=?" ) { 626 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 627 if ( funType->get_parameters().size() == 2 ) { 628 Type::Qualifiers defaultQualifiers; 629 Type *paramType1 = funType->get_parameters().front()->get_type(); 630 if ( paramType1->get_qualifiers() != defaultQualifiers ) return 0; 631 Type *paramType2 = funType->get_parameters().back()->get_type(); 632 if ( paramType2->get_qualifiers() != defaultQualifiers ) return 0; 633 634 if ( PointerType *pointerType = dynamic_cast< PointerType* >( paramType1 ) ) { 635 Type *baseType1 = pointerType->get_base(); 636 if ( baseType1->get_qualifiers() != defaultQualifiers ) return 0; 637 SymTab::Indexer dummy; 638 if ( ResolvExpr::typesCompatible( baseType1, paramType2, dummy ) ) { 639 return baseType1; 640 } // if 640 /// Returns T if the given declaration is (*?=?)(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 641 TypeInstType *isTypeInstAssignment( DeclarationWithType *decl ) { 642 return decl->get_name() == "?=?" ? isTypeInstPtrValFn( decl ) : 0; 643 } 644 645 /// Returns T if the given declaration is (*?{})(T *) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 646 TypeInstType *isTypeInstCtor( DeclarationWithType *decl ) { 647 return decl->get_name() == "?{}" ? isTypeInstPtrFn( decl ) : 0; 648 } 649 650 /// Returns T if the given declaration is (*?{})(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 651 TypeInstType *isTypeInstCopy( DeclarationWithType *decl ) { 652 return decl->get_name() == "?{}" ? isTypeInstPtrValFn( decl ) : 0; 653 } 654 655 /// Returns T if the given declaration is (*^?{})(T *) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 656 TypeInstType *isTypeInstDtor( DeclarationWithType *decl ) { 657 return decl->get_name() == "^?{}" ? isTypeInstPtrFn( decl ) : 0; 658 } 659 660 /// Returns T if the given declaration is a function with parameters (T*, T) for some type T, where neither parameter is cv-qualified, 661 /// NULL otherwise 662 Type *isNoCvPtrFn( DeclarationWithType *decl ) { 663 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 664 if ( funType->get_parameters().size() == 1 ) { 665 Type::Qualifiers defaultQualifiers; 666 Type *paramType = funType->get_parameters().front()->get_type(); 667 if ( paramType->get_qualifiers() != defaultQualifiers ) return 0; 668 669 if ( PointerType *pointerType = dynamic_cast< PointerType* >( paramType ) ) { 670 Type *baseType = pointerType->get_base(); 671 if ( baseType->get_qualifiers() == defaultQualifiers ) { 672 return baseType; 641 673 } // if 642 674 } // if … … 645 677 return 0; 646 678 } 647 648 void Pass1::findAssignOps( const std::list< TypeDecl *> &forall ) { 679 680 /// Returns T if the given declaration is a function with parameters (T*, T) for some type T, where neither parameter is cv-qualified, 681 /// NULL otherwise 682 Type *isNoCvPtrValFn( DeclarationWithType *decl ) { 683 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 684 if ( funType->get_parameters().size() == 2 ) { 685 Type::Qualifiers defaultQualifiers; 686 Type *paramType1 = funType->get_parameters().front()->get_type(); 687 if ( paramType1->get_qualifiers() != defaultQualifiers ) return 0; 688 Type *paramType2 = funType->get_parameters().back()->get_type(); 689 if ( paramType2->get_qualifiers() != defaultQualifiers ) return 0; 690 691 if ( PointerType *pointerType = dynamic_cast< PointerType* >( paramType1 ) ) { 692 Type *baseType1 = pointerType->get_base(); 693 if ( baseType1->get_qualifiers() != defaultQualifiers ) return 0; 694 SymTab::Indexer dummy; 695 if ( ResolvExpr::typesCompatible( baseType1, paramType2, dummy ) ) { 696 return baseType1; 697 } // if 698 } // if 699 } // if 700 } // if 701 return 0; 702 } 703 704 /// returns T if the given declaration is: (*?=?)(T *, T) for some type T (return not checked, but maybe should be), NULL otherwise 705 /// Only picks assignments where neither parameter is cv-qualified 706 Type *isAssignment( DeclarationWithType *decl ) { 707 return decl->get_name() == "?=?" ? isNoCvPtrValFn( decl ) : 0; 708 } 709 710 /// returns T if the given declaration is: (*?{})(T *) for some type T, NULL otherwise 711 /// Only picks ctors where the parameter is not cv-qualified 712 Type *isCtor( DeclarationWithType *decl ) { 713 return decl->get_name() == "?{}" ? isNoCvPtrFn( decl ) : 0; 714 } 715 716 /// returns T if the given declaration is: (*?{})(T *, T) for some type T (return not checked, but maybe should be), NULL otherwise 717 /// Only picks copy constructors where neither parameter is cv-qualified 718 Type *isCopy( DeclarationWithType *decl ) { 719 return decl->get_name() == "?{}" ? isNoCvPtrValFn( decl ) : 0; 720 } 721 722 /// returns T if the given declaration is: (*?{})(T *) for some type T, NULL otherwise 723 /// Only picks ctors where the parameter is not cv-qualified 724 Type *isDtor( DeclarationWithType *decl ) { 725 return decl->get_name() == "^?{}" ? isNoCvPtrFn( decl ) : 0; 726 } 727 728 void Pass1::findTypeOps( const std::list< TypeDecl *> &forall ) { 649 729 // what if a nested function uses an assignment operator? 650 730 // assignOps.clear(); … … 654 734 if ( TypeInstType *typeInst = isTypeInstAssignment( *assert ) ) { 655 735 assignOps[ typeInst->get_name() ] = *assert; 736 } else if ( TypeInstType *typeInst = isTypeInstCtor( *assert ) ) { 737 ctorOps[ typeInst->get_name() ] = *assert; 738 } else if ( TypeInstType *typeInst = isTypeInstCopy( *assert ) ) { 739 copyOps[ typeInst->get_name() ] = *assert; 740 } else if ( TypeInstType *typeInst = isTypeInstDtor( *assert ) ) { 741 dtorOps[ typeInst->get_name() ] = *assert; 656 742 } // if 657 743 } // for … … 661 747 DeclarationWithType *Pass1::mutate( FunctionDecl *functionDecl ) { 662 748 // if this is a assignment function, put it in the map for this scope 663 if ( Type *assignedType = isAssignment( functionDecl ) ) { 664 if ( ! dynamic_cast< TypeInstType* >( assignedType ) ) { 665 scopedAssignOps.insert( assignedType, functionDecl ); 749 if ( Type *paramType = isAssignment( functionDecl ) ) { 750 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 751 scopedAssignOps.insert( paramType, functionDecl ); 752 } 753 } else if ( Type *paramType = isCtor( functionDecl ) ) { 754 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 755 scopedCtorOps.insert( paramType, functionDecl ); 756 } 757 } else if ( Type *paramType = isCopy( functionDecl ) ) { 758 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 759 scopedCopyOps.insert( paramType, functionDecl ); 760 } 761 } else if ( Type *paramType = isDtor( functionDecl ) ) { 762 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 763 scopedDtorOps.insert( paramType, functionDecl ); 666 764 } 667 765 } … … 671 769 scopeTyVars.beginScope(); 672 770 assignOps.beginScope(); 771 ctorOps.beginScope(); 772 copyOps.beginScope(); 773 dtorOps.beginScope(); 774 673 775 DeclarationWithType *oldRetval = retval; 674 776 bool oldUseRetval = useRetval; … … 688 790 FunctionType *functionType = functionDecl->get_functionType(); 689 791 makeTyVarMap( functionDecl->get_functionType(), scopeTyVars ); 690 find AssignOps( functionDecl->get_functionType()->get_forall() );792 findTypeOps( functionDecl->get_functionType()->get_forall() ); 691 793 692 794 std::list< DeclarationWithType *> ¶mList = functionType->get_parameters(); … … 713 815 scopeTyVars.endScope(); 714 816 assignOps.endScope(); 817 ctorOps.endScope(); 818 copyOps.endScope(); 819 dtorOps.endScope(); 715 820 retval = oldRetval; 716 821 useRetval = oldUseRetval; … … 784 889 arg++; 785 890 } else { 786 throw SemanticError( "unbound type variable in application ", appExpr ); 891 /// xxx - should this be an assertion? 892 throw SemanticError( "unbound type variable: " + tyParm->first + " in application ", appExpr ); 787 893 } // if 788 894 } // if … … 803 909 passArgTypeVars( appExpr, polyRetType, concRetType, arg, exprTyVars, seenTypes ); 804 910 } 805 911 806 912 // add type information args for presently unseen types in parameter list 807 913 for ( ; fnParm != funcType->get_parameters().end() && fnArg != appExpr->get_args().end(); ++fnParm, ++fnArg ) { … … 882 988 assert( env ); 883 989 Type *concrete = replaceWithConcrete( appExpr, polyType ); 884 // add out-parameter for return value 990 // add out-parameter for return value 885 991 return addRetParam( appExpr, function, concrete, arg ); 886 992 } … … 910 1016 } else if ( arg->get_results().front()->get_isLvalue() ) { 911 1017 // VariableExpr and MemberExpr are lvalues; need to check this isn't coming from the second arg of a comma expression though (not an lvalue) 1018 // xxx - need to test that this code is still reachable 912 1019 if ( CommaExpr *commaArg = dynamic_cast< CommaExpr* >( arg ) ) { 913 1020 commaArg->set_arg2( new AddressExpr( commaArg->get_arg2() ) ); … … 1035 1142 std::list< DeclarationWithType *>::iterator param = adapterType->get_parameters().begin(); 1036 1143 std::list< DeclarationWithType *>::iterator realParam = adaptee->get_parameters().begin(); 1037 param++; // skip adaptee parameter 1144 param++; // skip adaptee parameter in the adapter type 1038 1145 if ( realType->get_returnVals().empty() ) { 1146 // void return 1039 1147 addAdapterParams( adapteeApp, arg, param, adapterType->get_parameters().end(), realParam, tyVars ); 1040 1148 bodyStmt = new ExprStmt( noLabels, adapteeApp ); 1041 1149 } else if ( isPolyType( adaptee->get_returnVals().front()->get_type(), tyVars ) ) { 1150 // return type T 1042 1151 if ( (*param)->get_name() == "" ) { 1043 1152 (*param)->set_name( "_ret" ); … … 1291 1400 } else if ( needsAdapter( function, scopeTyVars ) ) { 1292 1401 // std::cerr << "needs adapter: "; 1293 // for ( TyVarMap::iterator i = scopeTyVars.begin(); i != scopeTyVars.end(); ++i ) { 1294 // std::cerr << i->first << " "; 1295 // } 1296 // std::cerr << "\n"; 1402 // printTyVarMap( std::cerr, scopeTyVars ); 1403 // std::cerr << *env << std::endl; 1297 1404 // change the application so it calls the adapter rather than the passed function 1298 1405 ret = applyAdapter( appExpr, function, arg, scopeTyVars ); … … 1345 1452 } // if 1346 1453 } // if 1454 // isPolyType check needs to happen before mutating addrExpr arg, so pull it forward 1455 // out of the if condition. 1456 bool polytype = isPolyType( addrExpr->get_arg()->get_results().front(), scopeTyVars, env ); 1347 1457 addrExpr->set_arg( mutateExpression( addrExpr->get_arg() ) ); 1348 if ( isPolyType( addrExpr->get_arg()->get_results().front(), scopeTyVars, env )|| needs ) {1458 if ( polytype || needs ) { 1349 1459 Expression *ret = addrExpr->get_arg(); 1350 1460 delete ret->get_results().front(); … … 1365 1475 functionObj->set_mangleName( functionDecl->get_mangleName() ); 1366 1476 return new VariableExpr( functionObj ); 1477 } 1478 1479 /// Finds the operation declaration for a given type in one of the two maps 1480 DeclarationWithType* findOpForType( Type *formalType, const ScopedMap< std::string, DeclarationWithType* >& ops, ResolvExpr::TypeMap< DeclarationWithType >& scopedOps ) { 1481 if ( TypeInstType *formalTypeInstType = dynamic_cast< TypeInstType* >( formalType ) ) { 1482 ScopedMap< std::string, DeclarationWithType *>::const_iterator opIt = ops.find( formalTypeInstType->get_name() ); 1483 return opIt == ops.end() ? 0 : opIt->second; 1484 } else { 1485 return scopedOps.find( formalType ); 1486 } 1487 } 1488 1489 /// Adds an assertion parameter to the application expression for the actual assertion declaration valued with the assert op 1490 void addAssertionFor( ApplicationExpr *appExpr, DeclarationWithType *actualDecl, DeclarationWithType *assertOp ) { 1491 appExpr->get_inferParams()[ actualDecl->get_uniqueId() ] 1492 = ParamEntry( assertOp->get_uniqueId(), assertOp->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertOp ) ); 1367 1493 } 1368 1494 … … 1413 1539 assignExpr->get_env()->add( (*forallIt)->get_name(), formalType ); 1414 1540 1415 // skip types with no assign op(ftype/dtype)1541 // skip non-otype parameters (ftype/dtype) 1416 1542 if ( (*forallIt)->get_kind() != TypeDecl::Any ) continue; 1417 1543 1418 // find assignment operator for formal type 1419 DeclarationWithType *assertAssign = 0; 1420 if ( TypeInstType *formalTypeInstType = dynamic_cast< TypeInstType* >( formalType ) ) { 1421 ScopedMap< std::string, DeclarationWithType *>::const_iterator assertAssignIt = assignOps.find( formalTypeInstType->get_name() ); 1422 if ( assertAssignIt == assignOps.end() ) { 1423 throw SemanticError( "No assignment operation found for ", formalTypeInstType ); 1424 } 1425 assertAssign = assertAssignIt->second; 1426 } else { 1427 assertAssign = scopedAssignOps.find( formalType ); 1428 if ( ! assertAssign ) { 1429 throw SemanticError( "No assignment operation found for ", formalType ); 1430 } 1431 } 1432 1433 // add inferred parameter for field assignment operator to assignment expression 1544 // find otype operators for formal type 1545 DeclarationWithType *assertAssign = findOpForType( formalType, assignOps, scopedAssignOps ); 1546 if ( ! assertAssign ) throw SemanticError( "No assignment operation found for ", formalType ); 1547 1548 DeclarationWithType *assertCtor = findOpForType( formalType, ctorOps, scopedCtorOps ); 1549 if ( ! assertCtor ) throw SemanticError( "No default constructor found for ", formalType ); 1550 1551 DeclarationWithType *assertCopy = findOpForType( formalType, copyOps, scopedCopyOps ); 1552 if ( ! assertCopy ) throw SemanticError( "No copy constructor found for ", formalType ); 1553 1554 DeclarationWithType *assertDtor = findOpForType( formalType, dtorOps, scopedDtorOps ); 1555 if ( ! assertDtor ) throw SemanticError( "No destructor found for ", formalType ); 1556 1557 // add inferred parameters for otype operators to assignment expression 1558 // NOTE: Code here assumes that first four assertions are assign op, ctor, copy ctor, dtor, in that order 1434 1559 std::list< DeclarationWithType* > &asserts = (*forallIt)->get_assertions(); 1435 assert( ! asserts.empty() && "Type param needs assignment operator assertion" ); 1436 DeclarationWithType *actualDecl = asserts.front(); 1437 assignExpr->get_inferParams()[ actualDecl->get_uniqueId() ] 1438 = ParamEntry( assertAssign->get_uniqueId(), assertAssign->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertAssign ) ); 1560 assert( asserts.size() >= 4 && "Type param needs otype operator assertions" ); 1561 1562 std::list< DeclarationWithType* >::iterator actualIt = asserts.begin(); 1563 addAssertionFor( assignExpr, *actualIt, assertAssign ); 1564 ++actualIt; 1565 addAssertionFor( assignExpr, *actualIt, assertCtor ); 1566 ++actualIt; 1567 addAssertionFor( assignExpr, *actualIt, assertCopy ); 1568 ++actualIt; 1569 addAssertionFor( assignExpr, *actualIt, assertDtor ); 1570 1571 //DeclarationWithType *actualDecl = asserts.front(); 1572 //assignExpr->get_inferParams()[ actualDecl->get_uniqueId() ] 1573 // = ParamEntry( assertAssign->get_uniqueId(), assertAssign->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertAssign ) ); 1439 1574 } 1440 1575 } … … 1482 1617 adapters.beginScope(); 1483 1618 scopedAssignOps.beginScope(); 1619 scopedCtorOps.beginScope(); 1620 scopedCopyOps.beginScope(); 1621 scopedDtorOps.beginScope(); 1484 1622 } 1485 1623 … … 1487 1625 adapters.endScope(); 1488 1626 scopedAssignOps.endScope(); 1627 scopedCtorOps.endScope(); 1628 scopedCopyOps.endScope(); 1629 scopedDtorOps.endScope(); 1489 1630 } 1490 1631 … … 1886 2027 } 1887 2028 } 1888 2029 1889 2030 Type *ret = Mutator::mutate( funcType ); 1890 2031 … … 1905 2046 1906 2047 std::list<Expression*> designators; 1907 objectDecl->set_init( new SingleInit( alloc, designators ) );2048 objectDecl->set_init( new SingleInit( alloc, designators, false ) ); // not constructed 1908 2049 } 1909 2050 } … … 1942 2083 UntypedExpr *derefExpr = new UntypedExpr( new NameExpr( "*?" ) ); 1943 2084 derefExpr->get_args().push_back( derefdVar ); 2085 // xxx - should set results on derefExpr 1944 2086 derefdVar = derefExpr; 1945 2087 } 1946 2088 return derefdVar; 1947 2089 } 1948 2090 1949 2091 Expression *PolyGenericCalculator::mutate( MemberExpr *memberExpr ) { 1950 2092 // mutate, exiting early if no longer MemberExpr … … 2038 2180 2039 2181 bool PolyGenericCalculator::findGeneric( Type *ty ) { 2182 ty = replaceTypeInst( ty, env ); 2183 2040 2184 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( ty ) ) { 2041 // duplicate logic from isPolyType()2042 if ( env ) {2043 if ( Type *newType = env->lookup( typeInst->get_name() ) ) {2044 return findGeneric( newType );2045 } // if2046 } // if2047 2185 if ( scopeTyVars.find( typeInst->get_name() ) != scopeTyVars.end() ) { 2048 2186 // NOTE assumes here that getting put in the scopeTyVars included having the layout variables set … … 2066 2204 if ( n_members == 0 ) { 2067 2205 // all empty structs have the same layout - size 1, align 1 2068 makeVar( sizeofName( typeName ), layoutType, new SingleInit( new ConstantExpr( Constant::from ( (unsigned long)1 ) ) ) );2069 makeVar( alignofName( typeName ), layoutType->clone(), new SingleInit( new ConstantExpr( Constant::from ( (unsigned long)1 ) ) ) );2206 makeVar( sizeofName( typeName ), layoutType, new SingleInit( new ConstantExpr( Constant::from_ulong( (unsigned long)1 ) ) ) ); 2207 makeVar( alignofName( typeName ), layoutType->clone(), new SingleInit( new ConstantExpr( Constant::from_ulong( (unsigned long)1 ) ) ) ); 2070 2208 // NOTE zero-length arrays are forbidden in C, so empty structs have no offsetof array 2071 2209 } else { 2072 2210 ObjectDecl *sizeVar = makeVar( sizeofName( typeName ), layoutType ); 2073 2211 ObjectDecl *alignVar = makeVar( alignofName( typeName ), layoutType->clone() ); 2074 ObjectDecl *offsetVar = makeVar( offsetofName( typeName ), new ArrayType( Type::Qualifiers(), layoutType->clone(), new ConstantExpr( Constant::from ( n_members ) ), false, false ) );2212 ObjectDecl *offsetVar = makeVar( offsetofName( typeName ), new ArrayType( Type::Qualifiers(), layoutType->clone(), new ConstantExpr( Constant::from_int( n_members ) ), false, false ) ); 2075 2213 2076 2214 // generate call to layout function … … 2144 2282 Type *ty = offsetofExpr->get_type(); 2145 2283 if ( ! findGeneric( ty ) ) return offsetofExpr; 2146 2284 2147 2285 if ( StructInstType *structType = dynamic_cast< StructInstType* >( ty ) ) { 2148 2286 // replace offsetof expression by index into offset array … … 2191 2329 2192 2330 // build the offset array and replace the pack with a reference to it 2193 ObjectDecl *offsetArray = makeVar( offsetName, new ArrayType( Type::Qualifiers(), offsetType, new ConstantExpr( Constant::from ( baseMembers.size() ) ), false, false ),2331 ObjectDecl *offsetArray = makeVar( offsetName, new ArrayType( Type::Qualifiers(), offsetType, new ConstantExpr( Constant::from_ulong( baseMembers.size() ) ), false, false ), 2194 2332 new ListInit( inits ) ); 2195 2333 ret = new VariableExpr( offsetArray ); -
src/GenPoly/CopyParams.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CopyParams.cc -- 7 // CopyParams.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr11 // Last Modified By : Rob Schluntz 12 12 // Last Modified On : Tue May 19 07:33:31 2015 13 13 // Update Count : 1 … … 29 29 public: 30 30 CopyParams(); 31 31 32 32 virtual void visit( FunctionDecl *funcDecl ); 33 33 virtual void visit( AddressExpr *addrExpr ); … … 50 50 if ( funcDecl->get_statements() ) { 51 51 funcDecl->get_statements()->accept( *this ); 52 52 53 53 if ( ! modVars.empty() ) { 54 54 std::map< std::string, DeclarationWithType* > assignOps; … … 57 57 if ( (*tyVar)->get_kind() == TypeDecl::Any ) { 58 58 assert( !(*tyVar)->get_assertions().empty() ); 59 assert( (*tyVar)->get_assertions().front()->get_name() == "?=?" ); 59 60 assignOps[ (*tyVar)->get_name() ] = (*tyVar)->get_assertions().front(); 60 61 } // if -
src/GenPoly/GenPoly.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // GenPoly.cc -- 7 // GenPoly.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue Dec 15 16:11:18 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed May 25 13:39:21 2016 13 13 // Update Count : 13 14 14 // … … 66 66 } 67 67 68 Type* replaceTypeInst( Type* type, const TypeSubstitution* env ) { 69 if ( ! env ) return type; 70 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( type ) ) { 71 Type *newType = env->lookup( typeInst->get_name() ); 72 if ( newType ) return newType; 73 } 74 return type; 75 } 76 68 77 Type *isPolyType( Type *type, const TypeSubstitution *env ) { 78 type = replaceTypeInst( type, env ); 79 69 80 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) { 70 if ( env ) {71 if ( Type *newType = env->lookup( typeInst->get_name() ) ) {72 return isPolyType( newType, env );73 } // if74 } // if75 81 return type; 76 82 } else if ( StructInstType *structType = dynamic_cast< StructInstType* >( type ) ) { … … 81 87 return 0; 82 88 } 83 89 84 90 Type *isPolyType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env ) { 91 type = replaceTypeInst( type, env ); 92 85 93 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) { 86 if ( env ) {87 if ( Type *newType = env->lookup( typeInst->get_name() ) ) {88 return isPolyType( newType, tyVars, env );89 } // if90 } // if91 94 if ( tyVars.find( typeInst->get_name() ) != tyVars.end() ) { 92 95 return type; … … 101 104 102 105 Type *isPolyPtr( Type *type, const TypeSubstitution *env ) { 106 type = replaceTypeInst( type, env ); 107 103 108 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 104 109 return isPolyType( ptr->get_base(), env ); 105 } else if ( env ) { 106 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) { 107 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 108 return isPolyPtr( newType, env ); 109 } // if 110 } // if 111 } // if 112 return 0; 113 } 114 110 } 111 return 0; 112 } 113 115 114 Type *isPolyPtr( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env ) { 115 type = replaceTypeInst( type, env ); 116 116 117 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 117 118 return isPolyType( ptr->get_base(), tyVars, env ); 118 } else if ( env ) { 119 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) { 120 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 121 return isPolyPtr( newType, tyVars, env ); 122 } // if 123 } // if 124 } // if 119 } 125 120 return 0; 126 121 } … … 132 127 133 128 while ( true ) { 129 type = replaceTypeInst( type, env ); 130 134 131 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 135 132 type = ptr->get_base(); 136 133 ++(*levels); 137 } else if ( env ) {138 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) {139 if ( Type *newType = env->lookup( typeInst->get_name() ) ) {140 type = newType;141 } else break;142 } else break;143 134 } else break; 144 135 } … … 146 137 return isPolyType( type, env ); 147 138 } 148 139 149 140 Type * hasPolyBase( Type *type, const TyVarMap &tyVars, int *levels, const TypeSubstitution *env ) { 150 141 int dummy; … … 153 144 154 145 while ( true ) { 146 type = replaceTypeInst( type, env ); 147 155 148 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 156 149 type = ptr->get_base(); 157 150 ++(*levels); 158 } else if ( env ) {159 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) {160 if ( Type *newType = env->lookup( typeInst->get_name() ) ) {161 type = newType;162 } else break;163 } else break;164 151 } else break; 165 152 } … … 185 172 if ( VariableExpr *varExpr = dynamic_cast< VariableExpr* >( expr ) ) { 186 173 return varExpr; 174 } else if ( MemberExpr *memberExpr = dynamic_cast< MemberExpr* >( expr ) ) { 175 expr = memberExpr->get_aggregate(); 187 176 } else if ( AddressExpr *addressExpr = dynamic_cast< AddressExpr* >( expr ) ) { 188 177 expr = addressExpr->get_arg(); … … 192 181 if ( ! fn || fn->get_name() != std::string("*?") ) return 0; 193 182 expr = *untypedExpr->begin_args(); 183 } else if ( CommaExpr *commaExpr = dynamic_cast< CommaExpr* >( expr ) ) { 184 // copy constructors insert comma exprs, look at second argument which contains the variable 185 expr = commaExpr->get_arg2(); 186 continue; 194 187 } else break; 195 188 … … 209 202 } 210 203 } 211 204 212 205 void printTyVarMap( std::ostream &os, const TyVarMap &tyVarMap ) { 213 206 for ( TyVarMap::const_iterator i = tyVarMap.begin(); i != tyVarMap.end(); ++i ) { -
src/GenPoly/GenPoly.h
r1b5c81ed rf80e0218 31 31 namespace GenPoly { 32 32 typedef ErasableScopedMap< std::string, TypeDecl::Kind > TyVarMap; 33 33 34 34 /// A function needs an adapter if it returns a polymorphic value or if any of its 35 35 /// parameters have polymorphic type … … 39 39 ReferenceToType *isPolyRet( FunctionType *function ); 40 40 41 /// Replaces a TypeInstType by its referrent in the environment, if applicable 42 Type* replaceTypeInst( Type* type, const TypeSubstitution* env ); 43 41 44 /// returns polymorphic type if is polymorphic type, NULL otherwise; will look up substitution in env if provided 42 45 Type *isPolyType( Type *type, const TypeSubstitution *env = 0 ); -
src/GenPoly/PolyMutator.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // PolyMutator.cc -- 7 // PolyMutator.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri Aug 14 15:28:50 201512 // Last Modified On : Mon May 02 14:50:58 2016 13 13 // Update Count : 11 14 14 // … … 63 63 env = expr->get_env(); 64 64 } 65 // xxx - should env be cloned (or moved) onto the result of the mutate? 65 66 return expr->acceptMutator( *this ); 66 67 } else { … … 144 145 return untypedExpr; 145 146 } 146 147 147 148 148 149 Initializer *PolyMutator::mutate( SingleInit *singleInit ) { 149 150 singleInit->set_value( mutateExpression( singleInit->get_value() ) ); -
src/GenPoly/ScopedMap.h
r1b5c81ed rf80e0218 90 90 return next_valid(); 91 91 } 92 iterator &operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }92 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 93 93 94 94 iterator& operator-- () { … … 101 101 return prev_valid(); 102 102 } 103 iterator &operator-- (int) { iterator tmp = *this; --(*this); return tmp; }103 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 104 104 105 105 bool operator== (const iterator &that) { … … 166 166 return next_valid(); 167 167 } 168 const_iterator &operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }168 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 169 169 170 170 const_iterator& operator-- () { … … 177 177 return prev_valid(); 178 178 } 179 const_iterator &operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }179 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 180 180 181 181 bool operator== (const const_iterator &that) { -
src/GenPoly/ScopedSet.h
r1b5c81ed rf80e0218 87 87 return next_valid(); 88 88 } 89 iterator &operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }89 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 90 90 91 91 iterator& operator-- () { … … 98 98 return prev_valid(); 99 99 } 100 iterator &operator-- (int) { iterator tmp = *this; --(*this); return tmp; }100 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 101 101 102 102 bool operator== (const iterator &that) { … … 163 163 return next_valid(); 164 164 } 165 const_iterator &operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }165 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 166 166 167 167 const_iterator& operator-- () { … … 174 174 return prev_valid(); 175 175 } 176 const_iterator &operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }176 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 177 177 178 178 bool operator== (const const_iterator &that) { -
src/GenPoly/Specialize.cc
r1b5c81ed rf80e0218 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jan 20 12:40:33201613 // Update Count : 1812 // Last Modified On : Thu Apr 28 15:17:45 2016 13 // Update Count : 24 14 14 // 15 15 … … 25 25 #include "SynTree/Statement.h" 26 26 #include "SynTree/Type.h" 27 #include "SynTree/Attribute.h" 27 28 #include "SynTree/TypeSubstitution.h" 28 29 #include "SynTree/Mutator.h" … … 41 42 virtual Expression * mutate( AddressExpr *castExpr ); 42 43 virtual Expression * mutate( CastExpr *castExpr ); 43 virtual Expression * mutate( LogicalExpr *logicalExpr );44 virtual Expression * mutate( ConditionalExpr *conditionalExpr );45 virtual Expression * mutate( CommaExpr *commaExpr );44 // virtual Expression * mutate( LogicalExpr *logicalExpr ); 45 // virtual Expression * mutate( ConditionalExpr *conditionalExpr ); 46 // virtual Expression * mutate( CommaExpr *commaExpr ); 46 47 47 48 private: … … 98 99 } // if 99 100 // create new thunk with same signature as formal type (C linkage, empty body) 100 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >()), false, false );101 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( noLabels ), false, false ); 101 102 thunkFunc->fixUniqueId(); 103 104 // thunks may be generated and not used - silence warning with attribute 105 thunkFunc->get_attributes().push_back( new Attribute( "unused" ) ); 102 106 103 107 // thread thunk parameters into call to actual function, naming thunk parameters as we go … … 142 146 143 147 Expression * Specialize::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) { 144 assert( ! actual->get_results().empty() ); 148 assert( ! actual->get_results().empty() ); // using front, should have this assert 145 149 if ( needsSpecialization( formalType, actual->get_results().front(), env ) ) { 146 150 FunctionType *funType; … … 212 216 } 213 217 214 Expression * Specialize::mutate( LogicalExpr *logicalExpr ) { 215 return logicalExpr; 216 } 217 218 Expression * Specialize::mutate( ConditionalExpr *condExpr ) { 219 return condExpr; 220 } 221 222 Expression * Specialize::mutate( CommaExpr *commaExpr ) { 223 return commaExpr; 224 } 218 // Removing these for now. Richard put these in for some reason, but it's not clear why. 219 // In particular, copy constructors produce a comma expression, and with this code the parts 220 // of that comma expression are not specialized, which causes problems. 221 222 // Expression * Specialize::mutate( LogicalExpr *logicalExpr ) { 223 // return logicalExpr; 224 // } 225 226 // Expression * Specialize::mutate( ConditionalExpr *condExpr ) { 227 // return condExpr; 228 // } 229 230 // Expression * Specialize::mutate( CommaExpr *commaExpr ) { 231 // return commaExpr; 232 // } 225 233 } // namespace GenPoly 226 234 -
src/InitTweak/InitModel.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // InitModel.cc -- 7 // InitModel.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : T ue May 19 16:37:08 201513 // Update Count : 111 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Jan 07 13:38:46 2016 13 // Update Count : 5 14 14 // 15 15 … … 198 198 assert(init == 0 && single != 0); 199 199 std::list< Expression * > empty; 200 init = new SingleInit( single->get_expr(), empty );200 init = new SingleInit( single->get_expr(), empty, false ); // cannot be constructed 201 201 return; 202 202 } … … 214 214 } // if 215 215 216 init = new ListInit( contents ); 216 std::list< Expression * > desig; 217 init = new ListInit( contents, desig, false ); // cannot be constructed 217 218 return; 218 219 } -
src/InitTweak/module.mk
r1b5c81ed rf80e0218 11 11 ## Created On : Mon Jun 1 17:49:17 2015 12 12 ## Last Modified By : Rob Schluntz 13 ## Last Modified On : Mon Jan 11 14:40:16201614 ## Update Count : 213 ## Last Modified On : Fri May 13 11:36:24 2016 14 ## Update Count : 3 15 15 ############################################################################### 16 16 17 SRC += InitTweak/RemoveInit.cc 17 SRC += InitTweak/GenInit.cc \ 18 InitTweak/FixInit.cc \ 19 InitTweak/FixGlobalInit.cc \ 20 InitTweak/InitTweak.cc 18 21 -
src/MakeLibCfa.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // MakeLibCfa.cc -- 7 // MakeLibCfa.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 10:33:33 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Jun 26 16:52:59 201513 // Update Count : 1414 // 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri Apr 22 13:54:15 2016 13 // Update Count : 40 14 // 15 15 16 16 #include "MakeLibCfa.h" … … 29 29 void visit( FunctionDecl* funcDecl ); 30 30 void visit( ObjectDecl* objDecl ); 31 31 32 32 std::list< Declaration* > &get_newDecls() { return newDecls; } 33 33 private: … … 43 43 void MakeLibCfa::visit( FunctionDecl* origFuncDecl ) { 44 44 if ( origFuncDecl->get_linkage() != LinkageSpec::Intrinsic ) return; 45 45 if ( origFuncDecl->get_statements() ) return; 46 46 47 FunctionDecl *funcDecl = origFuncDecl->clone(); 47 48 CodeGen::OperatorInfo opInfo; … … 54 55 assert( param != funcDecl->get_functionType()->get_parameters().end() ); 55 56 56 if ( (*param)->get_name() == "" ) { 57 (*param)->set_name( paramNamer.newName() ); 58 (*param)->set_linkage( LinkageSpec::C ); 59 } // if 57 for ( ; param != funcDecl->get_functionType()->get_parameters().end(); ++param ) { 58 if ( (*param)->get_name() == "" ) { 59 (*param)->set_name( paramNamer.newName() ); 60 (*param)->set_linkage( LinkageSpec::C ); 61 } 62 newExpr->get_args().push_back( new VariableExpr( *param ) ); 63 } // for 64 65 funcDecl->set_statements( new CompoundStmt( std::list< Label >() ) ); 66 newDecls.push_back( funcDecl ); 60 67 61 68 switch ( opInfo.type ) { … … 65 72 case CodeGen::OT_POSTFIX: 66 73 case CodeGen::OT_INFIX: 67 newExpr->get_args().push_back( new VariableExpr( *param ) );68 break;69 74 case CodeGen::OT_PREFIXASSIGN: 70 75 case CodeGen::OT_POSTFIXASSIGN: 71 76 case CodeGen::OT_INFIXASSIGN: 72 { 73 newExpr->get_args().push_back( new VariableExpr( *param ) ); 74 // UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 75 // deref->get_args().push_back( new VariableExpr( *param ) ); 76 // newExpr->get_args().push_back( deref ); 77 funcDecl->get_statements()->get_kids().push_back( new ReturnStmt( std::list< Label >(), newExpr ) ); 77 78 break; 78 } 79 case CodeGen::OT_CTOR: 80 // ctors don't return a value 81 if ( funcDecl->get_functionType()->get_parameters().size() == 1 ) { 82 // intrinsic default constructors should do nothing 83 // delete newExpr; 84 break; 85 } else { 86 assert( funcDecl->get_functionType()->get_parameters().size() == 2 ); 87 // anything else is a single parameter constructor that is effectively a C-style assignment 88 // delete newExpr->get_function(); 89 assert(newExpr->get_args().size()==2); 90 newExpr->set_function( new NameExpr( "?=?" ) ); 91 funcDecl->get_statements()->get_kids().push_back( new ExprStmt( std::list< Label >(), newExpr ) ); 92 } 93 break; 94 case CodeGen::OT_DTOR: 95 // intrinsic destructors should do nothing 96 // delete newExpr; 97 break; 79 98 case CodeGen::OT_CONSTANT: 80 99 case CodeGen::OT_LABELADDRESS: … … 82 101 assert( false ); 83 102 } // switch 84 85 for ( param++; param != funcDecl->get_functionType()->get_parameters().end(); ++param ) {86 if ( (*param)->get_name() == "" ) {87 (*param)->set_name( paramNamer.newName() );88 (*param)->set_linkage( LinkageSpec::C );89 }90 newExpr->get_args().push_back( new VariableExpr( *param ) );91 } // for92 funcDecl->set_statements( new CompoundStmt( std::list< Label >() ) );93 funcDecl->get_statements()->get_kids().push_back( new ReturnStmt( std::list< Label >(), newExpr ) );94 newDecls.push_back( funcDecl );95 103 } 96 104 97 105 void MakeLibCfa::visit( ObjectDecl* origObjDecl ) { 98 106 if ( origObjDecl->get_linkage() != LinkageSpec::Intrinsic ) return; 99 107 100 108 ObjectDecl *objDecl = origObjDecl->clone(); 101 109 assert( ! objDecl->get_init() ); 102 110 std::list< Expression* > noDesignators; 103 objDecl->set_init( new SingleInit( new NameExpr( objDecl->get_name() ), noDesignators ) );111 objDecl->set_init( new SingleInit( new NameExpr( objDecl->get_name() ), noDesignators, false ) ); // cannot be constructed 104 112 newDecls.push_back( objDecl ); 105 113 } 106 114 } // namespace LibCfa 107 108 // Local Variables: //109 // tab-width: 4 //110 // mode: c++ //111 // compile-command: "make install" //112 // End: // -
src/Makefile.in
r1b5c81ed rf80e0218 123 123 GenPoly/driver_cfa_cpp-FindFunction.$(OBJEXT) \ 124 124 GenPoly/driver_cfa_cpp-DeclMutator.$(OBJEXT) \ 125 InitTweak/driver_cfa_cpp-RemoveInit.$(OBJEXT) \ 125 InitTweak/driver_cfa_cpp-GenInit.$(OBJEXT) \ 126 InitTweak/driver_cfa_cpp-FixInit.$(OBJEXT) \ 127 InitTweak/driver_cfa_cpp-FixGlobalInit.$(OBJEXT) \ 128 InitTweak/driver_cfa_cpp-InitTweak.$(OBJEXT) \ 126 129 Parser/driver_cfa_cpp-parser.$(OBJEXT) \ 127 130 Parser/driver_cfa_cpp-lex.$(OBJEXT) \ … … 159 162 SymTab/driver_cfa_cpp-ImplementationType.$(OBJEXT) \ 160 163 SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT) \ 164 SymTab/driver_cfa_cpp-Autogen.$(OBJEXT) \ 161 165 SynTree/driver_cfa_cpp-Type.$(OBJEXT) \ 162 166 SynTree/driver_cfa_cpp-VoidType.$(OBJEXT) \ … … 190 194 SynTree/driver_cfa_cpp-Visitor.$(OBJEXT) \ 191 195 SynTree/driver_cfa_cpp-Mutator.$(OBJEXT) \ 196 SynTree/driver_cfa_cpp-AddStmtVisitor.$(OBJEXT) \ 192 197 SynTree/driver_cfa_cpp-TypeSubstitution.$(OBJEXT) \ 198 SynTree/driver_cfa_cpp-Attribute.$(OBJEXT) \ 193 199 Tuples/driver_cfa_cpp-Mutate.$(OBJEXT) \ 194 200 Tuples/driver_cfa_cpp-AssignExpand.$(OBJEXT) \ … … 207 213 am__depfiles_maybe = depfiles 208 214 am__mv = mv -f 215 AM_V_lt = $(am__v_lt_@AM_V@) 216 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 217 am__v_lt_0 = --silent 209 218 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 210 219 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) 220 AM_V_CXX = $(am__v_CXX_@AM_V@) 221 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 222 am__v_CXX_0 = @echo " CXX " $@; 223 AM_V_at = $(am__v_at_@AM_V@) 224 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 225 am__v_at_0 = @ 211 226 CXXLD = $(CXX) 212 227 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ 213 228 -o $@ 229 AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) 230 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 231 am__v_CXXLD_0 = @echo " CXXLD " $@; 214 232 @MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ || 215 233 LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) 234 AM_V_LEX = $(am__v_LEX_@AM_V@) 235 am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) 236 am__v_LEX_0 = @echo " LEX " $@; 216 237 YLWRAP = $(top_srcdir)/automake/ylwrap 217 238 @MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ || 218 239 YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) 240 AM_V_YACC = $(am__v_YACC_@AM_V@) 241 am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) 242 am__v_YACC_0 = @echo " YACC " $@; 219 243 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 220 244 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 245 AM_V_CC = $(am__v_CC_@AM_V@) 246 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 247 am__v_CC_0 = @echo " CC " $@; 221 248 CCLD = $(CC) 222 249 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 250 AM_V_CCLD = $(am__v_CCLD_@AM_V@) 251 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 252 am__v_CCLD_0 = @echo " CCLD " $@; 253 AM_V_GEN = $(am__v_GEN_@AM_V@) 254 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 255 am__v_GEN_0 = @echo " GEN " $@; 223 256 SOURCES = $(driver_cfa_cpp_SOURCES) 224 257 DIST_SOURCES = $(driver_cfa_cpp_SOURCES) … … 229 262 ALLOCA = @ALLOCA@ 230 263 AMTAR = @AMTAR@ 264 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 231 265 AUTOCONF = @AUTOCONF@ 232 266 AUTOHEADER = @AUTOHEADER@ … … 236 270 CC = @CC@ 237 271 CCDEPMODE = @CCDEPMODE@ 272 CFA_BACKEND_CC = @CFA_BACKEND_CC@ 238 273 CFA_BINDIR = @CFA_BINDIR@ 239 274 CFA_INCDIR = @CFA_INCDIR@ … … 254 289 EGREP = @EGREP@ 255 290 EXEEXT = @EXEEXT@ 256 GCC_PATH = @GCC_PATH@257 291 GREP = @GREP@ 258 292 INSTALL = @INSTALL@ … … 345 379 GenPoly/ScrubTyVars.cc GenPoly/Lvalue.cc GenPoly/Specialize.cc \ 346 380 GenPoly/CopyParams.cc GenPoly/FindFunction.cc \ 347 GenPoly/DeclMutator.cc InitTweak/RemoveInit.cc \ 348 Parser/parser.yy Parser/lex.ll Parser/TypedefTable.cc \ 349 Parser/ParseNode.cc Parser/DeclarationNode.cc \ 350 Parser/ExpressionNode.cc Parser/StatementNode.cc \ 351 Parser/InitializerNode.cc Parser/TypeData.cc \ 352 Parser/LinkageSpec.cc Parser/parseutility.cc Parser/Parser.cc \ 381 GenPoly/DeclMutator.cc InitTweak/GenInit.cc \ 382 InitTweak/FixInit.cc InitTweak/FixGlobalInit.cc \ 383 InitTweak/InitTweak.cc Parser/parser.yy Parser/lex.ll \ 384 Parser/TypedefTable.cc Parser/ParseNode.cc \ 385 Parser/DeclarationNode.cc Parser/ExpressionNode.cc \ 386 Parser/StatementNode.cc Parser/InitializerNode.cc \ 387 Parser/TypeData.cc Parser/LinkageSpec.cc \ 388 Parser/parseutility.cc Parser/Parser.cc \ 353 389 ResolvExpr/AlternativeFinder.cc ResolvExpr/Alternative.cc \ 354 390 ResolvExpr/Unify.cc ResolvExpr/PtrsAssignable.cc \ … … 362 398 SymTab/Mangler.cc SymTab/Validate.cc SymTab/FixFunction.cc \ 363 399 SymTab/ImplementationType.cc SymTab/TypeEquality.cc \ 364 SynTree/Type.cc SynTree/VoidType.cc SynTree/BasicType.cc \ 365 SynTree/PointerType.cc SynTree/ArrayType.cc \ 366 SynTree/FunctionType.cc SynTree/ReferenceToType.cc \ 367 SynTree/TupleType.cc SynTree/TypeofType.cc SynTree/AttrType.cc \ 400 SymTab/Autogen.cc SynTree/Type.cc SynTree/VoidType.cc \ 401 SynTree/BasicType.cc SynTree/PointerType.cc \ 402 SynTree/ArrayType.cc SynTree/FunctionType.cc \ 403 SynTree/ReferenceToType.cc SynTree/TupleType.cc \ 404 SynTree/TypeofType.cc SynTree/AttrType.cc \ 368 405 SynTree/VarArgsType.cc SynTree/Constant.cc \ 369 406 SynTree/Expression.cc SynTree/TupleExpr.cc \ … … 376 413 SynTree/NamedTypeDecl.cc SynTree/TypeDecl.cc \ 377 414 SynTree/Initializer.cc SynTree/Visitor.cc SynTree/Mutator.cc \ 378 SynTree/ TypeSubstitution.cc Tuples/Mutate.cc \379 Tuples/AssignExpand.cc Tuples/FunctionFixer.cc \380 Tuples/ TupleAssignment.cc Tuples/FunctionChecker.cc \381 Tuples/ NameMatcher.cc415 SynTree/AddStmtVisitor.cc SynTree/TypeSubstitution.cc \ 416 SynTree/Attribute.cc Tuples/Mutate.cc Tuples/AssignExpand.cc \ 417 Tuples/FunctionFixer.cc Tuples/TupleAssignment.cc \ 418 Tuples/FunctionChecker.cc Tuples/NameMatcher.cc 382 419 MAINTAINERCLEANFILES = Parser/parser.output ${libdir}/${notdir \ 383 420 ${cfa_cpplib_PROGRAMS}} … … 561 598 @$(MKDIR_P) InitTweak/$(DEPDIR) 562 599 @: > InitTweak/$(DEPDIR)/$(am__dirstamp) 563 InitTweak/driver_cfa_cpp-RemoveInit.$(OBJEXT): \ 600 InitTweak/driver_cfa_cpp-GenInit.$(OBJEXT): InitTweak/$(am__dirstamp) \ 601 InitTweak/$(DEPDIR)/$(am__dirstamp) 602 InitTweak/driver_cfa_cpp-FixInit.$(OBJEXT): InitTweak/$(am__dirstamp) \ 603 InitTweak/$(DEPDIR)/$(am__dirstamp) 604 InitTweak/driver_cfa_cpp-FixGlobalInit.$(OBJEXT): \ 605 InitTweak/$(am__dirstamp) InitTweak/$(DEPDIR)/$(am__dirstamp) 606 InitTweak/driver_cfa_cpp-InitTweak.$(OBJEXT): \ 564 607 InitTweak/$(am__dirstamp) InitTweak/$(DEPDIR)/$(am__dirstamp) 565 608 Parser/parser.h: Parser/parser.cc … … 670 713 SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT): SymTab/$(am__dirstamp) \ 671 714 SymTab/$(DEPDIR)/$(am__dirstamp) 715 SymTab/driver_cfa_cpp-Autogen.$(OBJEXT): SymTab/$(am__dirstamp) \ 716 SymTab/$(DEPDIR)/$(am__dirstamp) 672 717 SynTree/$(am__dirstamp): 673 718 @$(MKDIR_P) SynTree … … 738 783 SynTree/driver_cfa_cpp-Mutator.$(OBJEXT): SynTree/$(am__dirstamp) \ 739 784 SynTree/$(DEPDIR)/$(am__dirstamp) 785 SynTree/driver_cfa_cpp-AddStmtVisitor.$(OBJEXT): \ 786 SynTree/$(am__dirstamp) SynTree/$(DEPDIR)/$(am__dirstamp) 740 787 SynTree/driver_cfa_cpp-TypeSubstitution.$(OBJEXT): \ 741 788 SynTree/$(am__dirstamp) SynTree/$(DEPDIR)/$(am__dirstamp) 789 SynTree/driver_cfa_cpp-Attribute.$(OBJEXT): SynTree/$(am__dirstamp) \ 790 SynTree/$(DEPDIR)/$(am__dirstamp) 742 791 Tuples/$(am__dirstamp): 743 792 @$(MKDIR_P) Tuples … … 763 812 driver/cfa-cpp$(EXEEXT): $(driver_cfa_cpp_OBJECTS) $(driver_cfa_cpp_DEPENDENCIES) $(EXTRA_driver_cfa_cpp_DEPENDENCIES) driver/$(am__dirstamp) 764 813 @rm -f driver/cfa-cpp$(EXEEXT) 765 $( driver_cfa_cpp_LINK) $(driver_cfa_cpp_OBJECTS) $(driver_cfa_cpp_LDADD) $(LIBS)814 $(AM_V_CXXLD)$(driver_cfa_cpp_LINK) $(driver_cfa_cpp_OBJECTS) $(driver_cfa_cpp_LDADD) $(LIBS) 766 815 767 816 mostlyclean-compile: … … 792 841 -rm -f GenPoly/driver_cfa_cpp-ScrubTyVars.$(OBJEXT) 793 842 -rm -f GenPoly/driver_cfa_cpp-Specialize.$(OBJEXT) 794 -rm -f InitTweak/driver_cfa_cpp-RemoveInit.$(OBJEXT) 843 -rm -f InitTweak/driver_cfa_cpp-FixGlobalInit.$(OBJEXT) 844 -rm -f InitTweak/driver_cfa_cpp-FixInit.$(OBJEXT) 845 -rm -f InitTweak/driver_cfa_cpp-GenInit.$(OBJEXT) 846 -rm -f InitTweak/driver_cfa_cpp-InitTweak.$(OBJEXT) 795 847 -rm -f Parser/driver_cfa_cpp-DeclarationNode.$(OBJEXT) 796 848 -rm -f Parser/driver_cfa_cpp-ExpressionNode.$(OBJEXT) … … 822 874 -rm -f ResolvExpr/driver_cfa_cpp-TypeEnvironment.$(OBJEXT) 823 875 -rm -f ResolvExpr/driver_cfa_cpp-Unify.$(OBJEXT) 876 -rm -f SymTab/driver_cfa_cpp-Autogen.$(OBJEXT) 824 877 -rm -f SymTab/driver_cfa_cpp-FixFunction.$(OBJEXT) 825 878 -rm -f SymTab/driver_cfa_cpp-ImplementationType.$(OBJEXT) … … 828 881 -rm -f SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT) 829 882 -rm -f SymTab/driver_cfa_cpp-Validate.$(OBJEXT) 883 -rm -f SynTree/driver_cfa_cpp-AddStmtVisitor.$(OBJEXT) 830 884 -rm -f SynTree/driver_cfa_cpp-AddressExpr.$(OBJEXT) 831 885 -rm -f SynTree/driver_cfa_cpp-AggregateDecl.$(OBJEXT) … … 833 887 -rm -f SynTree/driver_cfa_cpp-ArrayType.$(OBJEXT) 834 888 -rm -f SynTree/driver_cfa_cpp-AttrType.$(OBJEXT) 889 -rm -f SynTree/driver_cfa_cpp-Attribute.$(OBJEXT) 835 890 -rm -f SynTree/driver_cfa_cpp-BasicType.$(OBJEXT) 836 891 -rm -f SynTree/driver_cfa_cpp-CommaExpr.$(OBJEXT) … … 897 952 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po@am__quote@ 898 953 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po@am__quote@ 899 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Po@am__quote@ 954 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Po@am__quote@ 955 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Po@am__quote@ 956 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Po@am__quote@ 957 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Po@am__quote@ 900 958 @AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po@am__quote@ 901 959 @AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po@am__quote@ … … 927 985 @AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po@am__quote@ 928 986 @AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po@am__quote@ 987 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Po@am__quote@ 929 988 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po@am__quote@ 930 989 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po@am__quote@ … … 933 992 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po@am__quote@ 934 993 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po@am__quote@ 994 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Po@am__quote@ 935 995 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po@am__quote@ 936 996 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po@am__quote@ … … 938 998 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po@am__quote@ 939 999 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po@am__quote@ 1000 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Po@am__quote@ 940 1001 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po@am__quote@ 941 1002 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po@am__quote@ … … 973 1034 974 1035 .cc.o: 975 @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\1036 @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ 976 1037 @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ 977 1038 @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po 978 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@979 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 980 @am__fastdepCXX_FALSE@ $( CXXCOMPILE) -c -o $@ $<1039 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 1040 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1041 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< 981 1042 982 1043 .cc.obj: 983 @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\1044 @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ 984 1045 @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ 985 1046 @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po 986 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@987 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 988 @am__fastdepCXX_FALSE@ $( CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`1047 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 1048 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1049 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 989 1050 990 1051 driver_cfa_cpp-main.o: main.cc 991 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc992 @am__fastdepCXX_TRUE@ $( am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po993 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cc' object='driver_cfa_cpp-main.o' libtool=no @AMDEPBACKSLASH@994 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 995 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc1052 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc 1053 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po 1054 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='main.cc' object='driver_cfa_cpp-main.o' libtool=no @AMDEPBACKSLASH@ 1055 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1056 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc 996 1057 997 1058 driver_cfa_cpp-main.obj: main.cc 998 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi`999 @am__fastdepCXX_TRUE@ $( am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po1000 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cc' object='driver_cfa_cpp-main.obj' libtool=no @AMDEPBACKSLASH@1001 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1002 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi`1059 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi` 1060 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po 1061 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='main.cc' object='driver_cfa_cpp-main.obj' libtool=no @AMDEPBACKSLASH@ 1062 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1063 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi` 1003 1064 1004 1065 driver_cfa_cpp-MakeLibCfa.o: MakeLibCfa.cc 1005 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc1006 @am__fastdepCXX_TRUE@ $( am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po1007 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.o' libtool=no @AMDEPBACKSLASH@1008 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1009 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc1066 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc 1067 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po 1068 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.o' libtool=no @AMDEPBACKSLASH@ 1069 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1070 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc 1010 1071 1011 1072 driver_cfa_cpp-MakeLibCfa.obj: MakeLibCfa.cc 1012 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`1013 @am__fastdepCXX_TRUE@ $( am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po1014 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.obj' libtool=no @AMDEPBACKSLASH@1015 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1016 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`1073 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi` 1074 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po 1075 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.obj' libtool=no @AMDEPBACKSLASH@ 1076 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1077 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi` 1017 1078 1018 1079 CodeGen/driver_cfa_cpp-Generate.o: CodeGen/Generate.cc 1019 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc1020 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po1021 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.o' libtool=no @AMDEPBACKSLASH@1022 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1023 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc1080 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc 1081 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po 1082 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.o' libtool=no @AMDEPBACKSLASH@ 1083 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1084 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc 1024 1085 1025 1086 CodeGen/driver_cfa_cpp-Generate.obj: CodeGen/Generate.cc 1026 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`1027 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po1028 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.obj' libtool=no @AMDEPBACKSLASH@1029 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1030 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`1087 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi` 1088 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po 1089 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.obj' libtool=no @AMDEPBACKSLASH@ 1090 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1091 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi` 1031 1092 1032 1093 CodeGen/driver_cfa_cpp-CodeGenerator.o: CodeGen/CodeGenerator.cc 1033 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc1034 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po1035 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.o' libtool=no @AMDEPBACKSLASH@1036 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1037 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc1094 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc 1095 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po 1096 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.o' libtool=no @AMDEPBACKSLASH@ 1097 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1098 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc 1038 1099 1039 1100 CodeGen/driver_cfa_cpp-CodeGenerator.obj: CodeGen/CodeGenerator.cc 1040 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`1041 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po1042 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.obj' libtool=no @AMDEPBACKSLASH@1043 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1044 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`1101 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi` 1102 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po 1103 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.obj' libtool=no @AMDEPBACKSLASH@ 1104 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1105 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi` 1045 1106 1046 1107 CodeGen/driver_cfa_cpp-GenType.o: CodeGen/GenType.cc 1047 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc1048 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po1049 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.o' libtool=no @AMDEPBACKSLASH@1050 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1051 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc1108 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc 1109 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po 1110 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.o' libtool=no @AMDEPBACKSLASH@ 1111 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1112 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc 1052 1113 1053 1114 CodeGen/driver_cfa_cpp-GenType.obj: CodeGen/GenType.cc 1054 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi`1055 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po1056 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.obj' libtool=no @AMDEPBACKSLASH@1057 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1058 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi`1115 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi` 1116 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po 1117 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.obj' libtool=no @AMDEPBACKSLASH@ 1118 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1119 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi` 1059 1120 1060 1121 CodeGen/driver_cfa_cpp-FixNames.o: CodeGen/FixNames.cc 1061 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc1062 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po1063 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.o' libtool=no @AMDEPBACKSLASH@1064 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1065 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc1122 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc 1123 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po 1124 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.o' libtool=no @AMDEPBACKSLASH@ 1125 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1126 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc 1066 1127 1067 1128 CodeGen/driver_cfa_cpp-FixNames.obj: CodeGen/FixNames.cc 1068 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi`1069 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po1070 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.obj' libtool=no @AMDEPBACKSLASH@1071 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1072 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi`1129 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi` 1130 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po 1131 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.obj' libtool=no @AMDEPBACKSLASH@ 1132 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1133 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi` 1073 1134 1074 1135 CodeGen/driver_cfa_cpp-OperatorTable.o: CodeGen/OperatorTable.cc 1075 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc1076 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po1077 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.o' libtool=no @AMDEPBACKSLASH@1078 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1079 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc1136 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc 1137 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po 1138 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.o' libtool=no @AMDEPBACKSLASH@ 1139 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1140 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc 1080 1141 1081 1142 CodeGen/driver_cfa_cpp-OperatorTable.obj: CodeGen/OperatorTable.cc 1082 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi`1083 @am__fastdepCXX_TRUE@ $( am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po1084 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.obj' libtool=no @AMDEPBACKSLASH@1085 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1086 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi`1143 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi` 1144 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po 1145 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.obj' libtool=no @AMDEPBACKSLASH@ 1146 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1147 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi` 1087 1148 1088 1149 Common/driver_cfa_cpp-SemanticError.o: Common/SemanticError.cc 1089 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc1090 @am__fastdepCXX_TRUE@ $( am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po1091 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.o' libtool=no @AMDEPBACKSLASH@1092 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1093 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc1150 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc 1151 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po 1152 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.o' libtool=no @AMDEPBACKSLASH@ 1153 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1154 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc 1094 1155 1095 1156 Common/driver_cfa_cpp-SemanticError.obj: Common/SemanticError.cc 1096 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi`1097 @am__fastdepCXX_TRUE@ $( am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po1098 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.obj' libtool=no @AMDEPBACKSLASH@1099 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1100 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi`1157 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi` 1158 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po 1159 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.obj' libtool=no @AMDEPBACKSLASH@ 1160 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1161 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi` 1101 1162 1102 1163 Common/driver_cfa_cpp-UniqueName.o: Common/UniqueName.cc 1103 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc1104 @am__fastdepCXX_TRUE@ $( am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po1105 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.o' libtool=no @AMDEPBACKSLASH@1106 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1107 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc1164 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc 1165 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po 1166 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.o' libtool=no @AMDEPBACKSLASH@ 1167 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1168 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc 1108 1169 1109 1170 Common/driver_cfa_cpp-UniqueName.obj: Common/UniqueName.cc 1110 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi`1111 @am__fastdepCXX_TRUE@ $( am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po1112 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.obj' libtool=no @AMDEPBACKSLASH@1113 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1114 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi`1171 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi` 1172 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po 1173 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.obj' libtool=no @AMDEPBACKSLASH@ 1174 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1175 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi` 1115 1176 1116 1177 ControlStruct/driver_cfa_cpp-LabelGenerator.o: ControlStruct/LabelGenerator.cc 1117 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc1118 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po1119 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.o' libtool=no @AMDEPBACKSLASH@1120 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1121 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc1178 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc 1179 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po 1180 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.o' libtool=no @AMDEPBACKSLASH@ 1181 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1182 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc 1122 1183 1123 1184 ControlStruct/driver_cfa_cpp-LabelGenerator.obj: ControlStruct/LabelGenerator.cc 1124 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi`1125 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po1126 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.obj' libtool=no @AMDEPBACKSLASH@1127 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1128 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi`1185 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi` 1186 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po 1187 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.obj' libtool=no @AMDEPBACKSLASH@ 1188 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1189 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi` 1129 1190 1130 1191 ControlStruct/driver_cfa_cpp-LabelFixer.o: ControlStruct/LabelFixer.cc 1131 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc1132 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po1133 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.o' libtool=no @AMDEPBACKSLASH@1134 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1135 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc1192 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc 1193 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po 1194 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.o' libtool=no @AMDEPBACKSLASH@ 1195 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1196 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc 1136 1197 1137 1198 ControlStruct/driver_cfa_cpp-LabelFixer.obj: ControlStruct/LabelFixer.cc 1138 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi`1139 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po1140 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.obj' libtool=no @AMDEPBACKSLASH@1141 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1142 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi`1199 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi` 1200 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po 1201 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.obj' libtool=no @AMDEPBACKSLASH@ 1202 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1203 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi` 1143 1204 1144 1205 ControlStruct/driver_cfa_cpp-MLEMutator.o: ControlStruct/MLEMutator.cc 1145 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc1146 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po1147 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.o' libtool=no @AMDEPBACKSLASH@1148 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1149 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc1206 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc 1207 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po 1208 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.o' libtool=no @AMDEPBACKSLASH@ 1209 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1210 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc 1150 1211 1151 1212 ControlStruct/driver_cfa_cpp-MLEMutator.obj: ControlStruct/MLEMutator.cc 1152 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`1153 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po1154 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.obj' libtool=no @AMDEPBACKSLASH@1155 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1156 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`1213 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi` 1214 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po 1215 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.obj' libtool=no @AMDEPBACKSLASH@ 1216 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1217 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi` 1157 1218 1158 1219 ControlStruct/driver_cfa_cpp-CaseRangeMutator.o: ControlStruct/CaseRangeMutator.cc 1159 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc1160 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po1161 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.o' libtool=no @AMDEPBACKSLASH@1162 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1163 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc1220 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc 1221 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po 1222 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.o' libtool=no @AMDEPBACKSLASH@ 1223 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1224 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc 1164 1225 1165 1226 ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj: ControlStruct/CaseRangeMutator.cc 1166 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`1167 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po1168 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj' libtool=no @AMDEPBACKSLASH@1169 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1170 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`1227 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi` 1228 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po 1229 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj' libtool=no @AMDEPBACKSLASH@ 1230 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1231 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi` 1171 1232 1172 1233 ControlStruct/driver_cfa_cpp-Mutate.o: ControlStruct/Mutate.cc 1173 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc1174 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po1175 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@1176 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1177 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc1234 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc 1235 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 1236 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@ 1237 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1238 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc 1178 1239 1179 1240 ControlStruct/driver_cfa_cpp-Mutate.obj: ControlStruct/Mutate.cc 1180 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi`1181 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po1182 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@1183 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1184 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi`1241 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi` 1242 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 1243 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@ 1244 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1245 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi` 1185 1246 1186 1247 ControlStruct/driver_cfa_cpp-ChooseMutator.o: ControlStruct/ChooseMutator.cc 1187 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc1188 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po1189 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.o' libtool=no @AMDEPBACKSLASH@1190 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1191 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc1248 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc 1249 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po 1250 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.o' libtool=no @AMDEPBACKSLASH@ 1251 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1252 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc 1192 1253 1193 1254 ControlStruct/driver_cfa_cpp-ChooseMutator.obj: ControlStruct/ChooseMutator.cc 1194 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi`1195 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po1196 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.obj' libtool=no @AMDEPBACKSLASH@1197 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1198 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi`1255 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi` 1256 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po 1257 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.obj' libtool=no @AMDEPBACKSLASH@ 1258 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1259 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi` 1199 1260 1200 1261 ControlStruct/driver_cfa_cpp-ForExprMutator.o: ControlStruct/ForExprMutator.cc 1201 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc1202 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po1203 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.o' libtool=no @AMDEPBACKSLASH@1204 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1205 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc1262 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc 1263 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po 1264 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.o' libtool=no @AMDEPBACKSLASH@ 1265 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1266 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc 1206 1267 1207 1268 ControlStruct/driver_cfa_cpp-ForExprMutator.obj: ControlStruct/ForExprMutator.cc 1208 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi`1209 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po1210 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.obj' libtool=no @AMDEPBACKSLASH@1211 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1212 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi`1269 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi` 1270 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po 1271 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.obj' libtool=no @AMDEPBACKSLASH@ 1272 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1273 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi` 1213 1274 1214 1275 ControlStruct/driver_cfa_cpp-LabelTypeChecker.o: ControlStruct/LabelTypeChecker.cc 1215 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc1216 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po1217 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.o' libtool=no @AMDEPBACKSLASH@1218 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1219 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc1276 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc 1277 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po 1278 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.o' libtool=no @AMDEPBACKSLASH@ 1279 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1280 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc 1220 1281 1221 1282 ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj: ControlStruct/LabelTypeChecker.cc 1222 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi`1223 @am__fastdepCXX_TRUE@ $( am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po1224 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj' libtool=no @AMDEPBACKSLASH@1225 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1226 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi`1283 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi` 1284 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po 1285 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj' libtool=no @AMDEPBACKSLASH@ 1286 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1287 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi` 1227 1288 1228 1289 Designators/driver_cfa_cpp-Processor.o: Designators/Processor.cc 1229 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.o -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc1230 @am__fastdepCXX_TRUE@ $( am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po1231 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.o' libtool=no @AMDEPBACKSLASH@1232 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1233 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc1290 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.o -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc 1291 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po 1292 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.o' libtool=no @AMDEPBACKSLASH@ 1293 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1294 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc 1234 1295 1235 1296 Designators/driver_cfa_cpp-Processor.obj: Designators/Processor.cc 1236 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.obj -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`1237 @am__fastdepCXX_TRUE@ $( am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po1238 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.obj' libtool=no @AMDEPBACKSLASH@1239 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1240 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`1297 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.obj -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi` 1298 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po 1299 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.obj' libtool=no @AMDEPBACKSLASH@ 1300 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1301 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi` 1241 1302 1242 1303 GenPoly/driver_cfa_cpp-Box.o: GenPoly/Box.cc 1243 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc1244 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po1245 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.o' libtool=no @AMDEPBACKSLASH@1246 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1247 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc1304 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc 1305 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po 1306 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.o' libtool=no @AMDEPBACKSLASH@ 1307 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1308 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc 1248 1309 1249 1310 GenPoly/driver_cfa_cpp-Box.obj: GenPoly/Box.cc 1250 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi`1251 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po1252 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.obj' libtool=no @AMDEPBACKSLASH@1253 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1254 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi`1311 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi` 1312 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po 1313 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.obj' libtool=no @AMDEPBACKSLASH@ 1314 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1315 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi` 1255 1316 1256 1317 GenPoly/driver_cfa_cpp-GenPoly.o: GenPoly/GenPoly.cc 1257 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc1258 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po1259 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.o' libtool=no @AMDEPBACKSLASH@1260 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1261 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc1318 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc 1319 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po 1320 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.o' libtool=no @AMDEPBACKSLASH@ 1321 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1322 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc 1262 1323 1263 1324 GenPoly/driver_cfa_cpp-GenPoly.obj: GenPoly/GenPoly.cc 1264 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi`1265 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po1266 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.obj' libtool=no @AMDEPBACKSLASH@1267 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1268 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi`1325 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi` 1326 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po 1327 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.obj' libtool=no @AMDEPBACKSLASH@ 1328 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1329 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi` 1269 1330 1270 1331 GenPoly/driver_cfa_cpp-PolyMutator.o: GenPoly/PolyMutator.cc 1271 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc1272 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po1273 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.o' libtool=no @AMDEPBACKSLASH@1274 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1275 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc1332 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc 1333 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po 1334 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.o' libtool=no @AMDEPBACKSLASH@ 1335 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1336 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc 1276 1337 1277 1338 GenPoly/driver_cfa_cpp-PolyMutator.obj: GenPoly/PolyMutator.cc 1278 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi`1279 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po1280 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.obj' libtool=no @AMDEPBACKSLASH@1281 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1282 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi`1339 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi` 1340 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po 1341 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.obj' libtool=no @AMDEPBACKSLASH@ 1342 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1343 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi` 1283 1344 1284 1345 GenPoly/driver_cfa_cpp-ScrubTyVars.o: GenPoly/ScrubTyVars.cc 1285 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc1286 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po1287 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.o' libtool=no @AMDEPBACKSLASH@1288 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1289 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc1346 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc 1347 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po 1348 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.o' libtool=no @AMDEPBACKSLASH@ 1349 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1350 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc 1290 1351 1291 1352 GenPoly/driver_cfa_cpp-ScrubTyVars.obj: GenPoly/ScrubTyVars.cc 1292 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi`1293 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po1294 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.obj' libtool=no @AMDEPBACKSLASH@1295 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1296 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi`1353 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi` 1354 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po 1355 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.obj' libtool=no @AMDEPBACKSLASH@ 1356 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1357 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi` 1297 1358 1298 1359 GenPoly/driver_cfa_cpp-Lvalue.o: GenPoly/Lvalue.cc 1299 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc1300 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po1301 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.o' libtool=no @AMDEPBACKSLASH@1302 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1303 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc1360 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc 1361 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po 1362 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.o' libtool=no @AMDEPBACKSLASH@ 1363 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1364 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc 1304 1365 1305 1366 GenPoly/driver_cfa_cpp-Lvalue.obj: GenPoly/Lvalue.cc 1306 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi`1307 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po1308 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.obj' libtool=no @AMDEPBACKSLASH@1309 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1310 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi`1367 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi` 1368 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po 1369 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.obj' libtool=no @AMDEPBACKSLASH@ 1370 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1371 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi` 1311 1372 1312 1373 GenPoly/driver_cfa_cpp-Specialize.o: GenPoly/Specialize.cc 1313 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc1314 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po1315 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.o' libtool=no @AMDEPBACKSLASH@1316 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1317 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc1374 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc 1375 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po 1376 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.o' libtool=no @AMDEPBACKSLASH@ 1377 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1378 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc 1318 1379 1319 1380 GenPoly/driver_cfa_cpp-Specialize.obj: GenPoly/Specialize.cc 1320 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi`1321 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po1322 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.obj' libtool=no @AMDEPBACKSLASH@1323 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1324 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi`1381 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi` 1382 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po 1383 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.obj' libtool=no @AMDEPBACKSLASH@ 1384 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1385 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi` 1325 1386 1326 1387 GenPoly/driver_cfa_cpp-CopyParams.o: GenPoly/CopyParams.cc 1327 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc1328 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po1329 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.o' libtool=no @AMDEPBACKSLASH@1330 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1331 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc1388 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc 1389 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po 1390 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.o' libtool=no @AMDEPBACKSLASH@ 1391 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1392 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc 1332 1393 1333 1394 GenPoly/driver_cfa_cpp-CopyParams.obj: GenPoly/CopyParams.cc 1334 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi`1335 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po1336 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.obj' libtool=no @AMDEPBACKSLASH@1337 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1338 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi`1395 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi` 1396 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po 1397 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.obj' libtool=no @AMDEPBACKSLASH@ 1398 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1399 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi` 1339 1400 1340 1401 GenPoly/driver_cfa_cpp-FindFunction.o: GenPoly/FindFunction.cc 1341 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc1342 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po1343 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.o' libtool=no @AMDEPBACKSLASH@1344 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1345 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc1402 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc 1403 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po 1404 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.o' libtool=no @AMDEPBACKSLASH@ 1405 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1406 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc 1346 1407 1347 1408 GenPoly/driver_cfa_cpp-FindFunction.obj: GenPoly/FindFunction.cc 1348 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`1349 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po1350 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.obj' libtool=no @AMDEPBACKSLASH@1351 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1352 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`1409 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi` 1410 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po 1411 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.obj' libtool=no @AMDEPBACKSLASH@ 1412 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1413 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi` 1353 1414 1354 1415 GenPoly/driver_cfa_cpp-DeclMutator.o: GenPoly/DeclMutator.cc 1355 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc1356 @am__fastdepCXX_TRUE@ $( am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po1357 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.o' libtool=no @AMDEPBACKSLASH@1358 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1359 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc1416 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc 1417 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po 1418 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.o' libtool=no @AMDEPBACKSLASH@ 1419 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1420 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc 1360 1421 1361 1422 GenPoly/driver_cfa_cpp-DeclMutator.obj: GenPoly/DeclMutator.cc 1362 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1363 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po 1364 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.obj' libtool=no @AMDEPBACKSLASH@ 1365 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1366 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1367 1368 InitTweak/driver_cfa_cpp-RemoveInit.o: InitTweak/RemoveInit.cc 1369 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-RemoveInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo -c -o InitTweak/driver_cfa_cpp-RemoveInit.o `test -f 'InitTweak/RemoveInit.cc' || echo '$(srcdir)/'`InitTweak/RemoveInit.cc 1370 @am__fastdepCXX_TRUE@ $(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Po 1371 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InitTweak/RemoveInit.cc' object='InitTweak/driver_cfa_cpp-RemoveInit.o' libtool=no @AMDEPBACKSLASH@ 1372 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1373 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-RemoveInit.o `test -f 'InitTweak/RemoveInit.cc' || echo '$(srcdir)/'`InitTweak/RemoveInit.cc 1374 1375 InitTweak/driver_cfa_cpp-RemoveInit.obj: InitTweak/RemoveInit.cc 1376 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-RemoveInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo -c -o InitTweak/driver_cfa_cpp-RemoveInit.obj `if test -f 'InitTweak/RemoveInit.cc'; then $(CYGPATH_W) 'InitTweak/RemoveInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/RemoveInit.cc'; fi` 1377 @am__fastdepCXX_TRUE@ $(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Po 1378 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InitTweak/RemoveInit.cc' object='InitTweak/driver_cfa_cpp-RemoveInit.obj' libtool=no @AMDEPBACKSLASH@ 1379 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1380 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-RemoveInit.obj `if test -f 'InitTweak/RemoveInit.cc'; then $(CYGPATH_W) 'InitTweak/RemoveInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/RemoveInit.cc'; fi` 1423 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1424 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po 1425 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.obj' libtool=no @AMDEPBACKSLASH@ 1426 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1427 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1428 1429 InitTweak/driver_cfa_cpp-GenInit.o: InitTweak/GenInit.cc 1430 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-GenInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo -c -o InitTweak/driver_cfa_cpp-GenInit.o `test -f 'InitTweak/GenInit.cc' || echo '$(srcdir)/'`InitTweak/GenInit.cc 1431 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Po 1432 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/GenInit.cc' object='InitTweak/driver_cfa_cpp-GenInit.o' libtool=no @AMDEPBACKSLASH@ 1433 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1434 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-GenInit.o `test -f 'InitTweak/GenInit.cc' || echo '$(srcdir)/'`InitTweak/GenInit.cc 1435 1436 InitTweak/driver_cfa_cpp-GenInit.obj: InitTweak/GenInit.cc 1437 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-GenInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo -c -o InitTweak/driver_cfa_cpp-GenInit.obj `if test -f 'InitTweak/GenInit.cc'; then $(CYGPATH_W) 'InitTweak/GenInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/GenInit.cc'; fi` 1438 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Po 1439 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/GenInit.cc' object='InitTweak/driver_cfa_cpp-GenInit.obj' libtool=no @AMDEPBACKSLASH@ 1440 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1441 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-GenInit.obj `if test -f 'InitTweak/GenInit.cc'; then $(CYGPATH_W) 'InitTweak/GenInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/GenInit.cc'; fi` 1442 1443 InitTweak/driver_cfa_cpp-FixInit.o: InitTweak/FixInit.cc 1444 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixInit.o `test -f 'InitTweak/FixInit.cc' || echo '$(srcdir)/'`InitTweak/FixInit.cc 1445 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Po 1446 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixInit.cc' object='InitTweak/driver_cfa_cpp-FixInit.o' libtool=no @AMDEPBACKSLASH@ 1447 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1448 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixInit.o `test -f 'InitTweak/FixInit.cc' || echo '$(srcdir)/'`InitTweak/FixInit.cc 1449 1450 InitTweak/driver_cfa_cpp-FixInit.obj: InitTweak/FixInit.cc 1451 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixInit.obj `if test -f 'InitTweak/FixInit.cc'; then $(CYGPATH_W) 'InitTweak/FixInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixInit.cc'; fi` 1452 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Po 1453 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixInit.cc' object='InitTweak/driver_cfa_cpp-FixInit.obj' libtool=no @AMDEPBACKSLASH@ 1454 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1455 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixInit.obj `if test -f 'InitTweak/FixInit.cc'; then $(CYGPATH_W) 'InitTweak/FixInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixInit.cc'; fi` 1456 1457 InitTweak/driver_cfa_cpp-FixGlobalInit.o: InitTweak/FixGlobalInit.cc 1458 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixGlobalInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.o `test -f 'InitTweak/FixGlobalInit.cc' || echo '$(srcdir)/'`InitTweak/FixGlobalInit.cc 1459 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Po 1460 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixGlobalInit.cc' object='InitTweak/driver_cfa_cpp-FixGlobalInit.o' libtool=no @AMDEPBACKSLASH@ 1461 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1462 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.o `test -f 'InitTweak/FixGlobalInit.cc' || echo '$(srcdir)/'`InitTweak/FixGlobalInit.cc 1463 1464 InitTweak/driver_cfa_cpp-FixGlobalInit.obj: InitTweak/FixGlobalInit.cc 1465 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixGlobalInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.obj `if test -f 'InitTweak/FixGlobalInit.cc'; then $(CYGPATH_W) 'InitTweak/FixGlobalInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixGlobalInit.cc'; fi` 1466 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Po 1467 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixGlobalInit.cc' object='InitTweak/driver_cfa_cpp-FixGlobalInit.obj' libtool=no @AMDEPBACKSLASH@ 1468 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1469 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.obj `if test -f 'InitTweak/FixGlobalInit.cc'; then $(CYGPATH_W) 'InitTweak/FixGlobalInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixGlobalInit.cc'; fi` 1470 1471 InitTweak/driver_cfa_cpp-InitTweak.o: InitTweak/InitTweak.cc 1472 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-InitTweak.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo -c -o InitTweak/driver_cfa_cpp-InitTweak.o `test -f 'InitTweak/InitTweak.cc' || echo '$(srcdir)/'`InitTweak/InitTweak.cc 1473 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Po 1474 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/InitTweak.cc' object='InitTweak/driver_cfa_cpp-InitTweak.o' libtool=no @AMDEPBACKSLASH@ 1475 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1476 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-InitTweak.o `test -f 'InitTweak/InitTweak.cc' || echo '$(srcdir)/'`InitTweak/InitTweak.cc 1477 1478 InitTweak/driver_cfa_cpp-InitTweak.obj: InitTweak/InitTweak.cc 1479 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-InitTweak.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo -c -o InitTweak/driver_cfa_cpp-InitTweak.obj `if test -f 'InitTweak/InitTweak.cc'; then $(CYGPATH_W) 'InitTweak/InitTweak.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitTweak.cc'; fi` 1480 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Po 1481 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/InitTweak.cc' object='InitTweak/driver_cfa_cpp-InitTweak.obj' libtool=no @AMDEPBACKSLASH@ 1482 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1483 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-InitTweak.obj `if test -f 'InitTweak/InitTweak.cc'; then $(CYGPATH_W) 'InitTweak/InitTweak.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitTweak.cc'; fi` 1381 1484 1382 1485 Parser/driver_cfa_cpp-parser.o: Parser/parser.cc 1383 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc1384 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po1385 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.o' libtool=no @AMDEPBACKSLASH@1386 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1387 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc1486 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc 1487 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po 1488 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.o' libtool=no @AMDEPBACKSLASH@ 1489 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1490 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc 1388 1491 1389 1492 Parser/driver_cfa_cpp-parser.obj: Parser/parser.cc 1390 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi`1391 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po1392 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.obj' libtool=no @AMDEPBACKSLASH@1393 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1394 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi`1493 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi` 1494 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po 1495 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.obj' libtool=no @AMDEPBACKSLASH@ 1496 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1497 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi` 1395 1498 1396 1499 Parser/driver_cfa_cpp-lex.o: Parser/lex.cc 1397 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc1398 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po1399 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.o' libtool=no @AMDEPBACKSLASH@1400 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1401 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc1500 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc 1501 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po 1502 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.o' libtool=no @AMDEPBACKSLASH@ 1503 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1504 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc 1402 1505 1403 1506 Parser/driver_cfa_cpp-lex.obj: Parser/lex.cc 1404 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi`1405 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po1406 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.obj' libtool=no @AMDEPBACKSLASH@1407 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1408 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi`1507 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi` 1508 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po 1509 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.obj' libtool=no @AMDEPBACKSLASH@ 1510 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1511 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi` 1409 1512 1410 1513 Parser/driver_cfa_cpp-TypedefTable.o: Parser/TypedefTable.cc 1411 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc1412 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po1413 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.o' libtool=no @AMDEPBACKSLASH@1414 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1415 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc1514 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc 1515 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po 1516 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.o' libtool=no @AMDEPBACKSLASH@ 1517 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1518 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc 1416 1519 1417 1520 Parser/driver_cfa_cpp-TypedefTable.obj: Parser/TypedefTable.cc 1418 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi`1419 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po1420 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.obj' libtool=no @AMDEPBACKSLASH@1421 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1422 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi`1521 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi` 1522 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po 1523 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.obj' libtool=no @AMDEPBACKSLASH@ 1524 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1525 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi` 1423 1526 1424 1527 Parser/driver_cfa_cpp-ParseNode.o: Parser/ParseNode.cc 1425 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc1426 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po1427 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.o' libtool=no @AMDEPBACKSLASH@1428 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1429 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc1528 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc 1529 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po 1530 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.o' libtool=no @AMDEPBACKSLASH@ 1531 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1532 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc 1430 1533 1431 1534 Parser/driver_cfa_cpp-ParseNode.obj: Parser/ParseNode.cc 1432 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi`1433 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po1434 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.obj' libtool=no @AMDEPBACKSLASH@1435 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1436 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi`1535 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi` 1536 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po 1537 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.obj' libtool=no @AMDEPBACKSLASH@ 1538 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1539 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi` 1437 1540 1438 1541 Parser/driver_cfa_cpp-DeclarationNode.o: Parser/DeclarationNode.cc 1439 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc1440 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po1441 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.o' libtool=no @AMDEPBACKSLASH@1442 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1443 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc1542 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc 1543 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po 1544 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.o' libtool=no @AMDEPBACKSLASH@ 1545 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1546 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc 1444 1547 1445 1548 Parser/driver_cfa_cpp-DeclarationNode.obj: Parser/DeclarationNode.cc 1446 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi`1447 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po1448 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.obj' libtool=no @AMDEPBACKSLASH@1449 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1450 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi`1549 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi` 1550 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po 1551 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.obj' libtool=no @AMDEPBACKSLASH@ 1552 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1553 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi` 1451 1554 1452 1555 Parser/driver_cfa_cpp-ExpressionNode.o: Parser/ExpressionNode.cc 1453 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc1454 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po1455 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.o' libtool=no @AMDEPBACKSLASH@1456 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1457 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc1556 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc 1557 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po 1558 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.o' libtool=no @AMDEPBACKSLASH@ 1559 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1560 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc 1458 1561 1459 1562 Parser/driver_cfa_cpp-ExpressionNode.obj: Parser/ExpressionNode.cc 1460 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi`1461 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po1462 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.obj' libtool=no @AMDEPBACKSLASH@1463 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1464 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi`1563 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi` 1564 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po 1565 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.obj' libtool=no @AMDEPBACKSLASH@ 1566 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1567 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi` 1465 1568 1466 1569 Parser/driver_cfa_cpp-StatementNode.o: Parser/StatementNode.cc 1467 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc1468 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po1469 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.o' libtool=no @AMDEPBACKSLASH@1470 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1471 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc1570 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc 1571 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po 1572 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.o' libtool=no @AMDEPBACKSLASH@ 1573 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1574 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc 1472 1575 1473 1576 Parser/driver_cfa_cpp-StatementNode.obj: Parser/StatementNode.cc 1474 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi`1475 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po1476 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.obj' libtool=no @AMDEPBACKSLASH@1477 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1478 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi`1577 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi` 1578 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po 1579 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.obj' libtool=no @AMDEPBACKSLASH@ 1580 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1581 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi` 1479 1582 1480 1583 Parser/driver_cfa_cpp-InitializerNode.o: Parser/InitializerNode.cc 1481 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc1482 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po1483 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.o' libtool=no @AMDEPBACKSLASH@1484 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1485 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc1584 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc 1585 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po 1586 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.o' libtool=no @AMDEPBACKSLASH@ 1587 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1588 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc 1486 1589 1487 1590 Parser/driver_cfa_cpp-InitializerNode.obj: Parser/InitializerNode.cc 1488 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi`1489 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po1490 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.obj' libtool=no @AMDEPBACKSLASH@1491 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1492 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi`1591 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi` 1592 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po 1593 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.obj' libtool=no @AMDEPBACKSLASH@ 1594 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1595 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi` 1493 1596 1494 1597 Parser/driver_cfa_cpp-TypeData.o: Parser/TypeData.cc 1495 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc1496 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po1497 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.o' libtool=no @AMDEPBACKSLASH@1498 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1499 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc1598 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc 1599 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po 1600 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.o' libtool=no @AMDEPBACKSLASH@ 1601 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1602 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc 1500 1603 1501 1604 Parser/driver_cfa_cpp-TypeData.obj: Parser/TypeData.cc 1502 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi`1503 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po1504 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.obj' libtool=no @AMDEPBACKSLASH@1505 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1506 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi`1605 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi` 1606 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po 1607 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.obj' libtool=no @AMDEPBACKSLASH@ 1608 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1609 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi` 1507 1610 1508 1611 Parser/driver_cfa_cpp-LinkageSpec.o: Parser/LinkageSpec.cc 1509 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc1510 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po1511 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.o' libtool=no @AMDEPBACKSLASH@1512 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1513 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc1612 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc 1613 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po 1614 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.o' libtool=no @AMDEPBACKSLASH@ 1615 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1616 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc 1514 1617 1515 1618 Parser/driver_cfa_cpp-LinkageSpec.obj: Parser/LinkageSpec.cc 1516 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi`1517 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po1518 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.obj' libtool=no @AMDEPBACKSLASH@1519 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1520 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi`1619 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi` 1620 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po 1621 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.obj' libtool=no @AMDEPBACKSLASH@ 1622 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1623 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi` 1521 1624 1522 1625 Parser/driver_cfa_cpp-parseutility.o: Parser/parseutility.cc 1523 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc1524 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po1525 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.o' libtool=no @AMDEPBACKSLASH@1526 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1527 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc1626 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc 1627 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po 1628 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.o' libtool=no @AMDEPBACKSLASH@ 1629 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1630 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc 1528 1631 1529 1632 Parser/driver_cfa_cpp-parseutility.obj: Parser/parseutility.cc 1530 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi`1531 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po1532 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.obj' libtool=no @AMDEPBACKSLASH@1533 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1534 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi`1633 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi` 1634 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po 1635 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.obj' libtool=no @AMDEPBACKSLASH@ 1636 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1637 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi` 1535 1638 1536 1639 Parser/driver_cfa_cpp-Parser.o: Parser/Parser.cc 1537 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc1538 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po1539 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.o' libtool=no @AMDEPBACKSLASH@1540 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1541 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc1640 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc 1641 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po 1642 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.o' libtool=no @AMDEPBACKSLASH@ 1643 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1644 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc 1542 1645 1543 1646 Parser/driver_cfa_cpp-Parser.obj: Parser/Parser.cc 1544 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi`1545 @am__fastdepCXX_TRUE@ $( am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po1546 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.obj' libtool=no @AMDEPBACKSLASH@1547 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1548 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi`1647 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi` 1648 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po 1649 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.obj' libtool=no @AMDEPBACKSLASH@ 1650 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1651 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi` 1549 1652 1550 1653 ResolvExpr/driver_cfa_cpp-AlternativeFinder.o: ResolvExpr/AlternativeFinder.cc 1551 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc1552 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po1553 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.o' libtool=no @AMDEPBACKSLASH@1554 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1555 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc1654 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc 1655 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po 1656 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.o' libtool=no @AMDEPBACKSLASH@ 1657 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1658 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc 1556 1659 1557 1660 ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj: ResolvExpr/AlternativeFinder.cc 1558 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi`1559 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po1560 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj' libtool=no @AMDEPBACKSLASH@1561 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1562 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi`1661 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi` 1662 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po 1663 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj' libtool=no @AMDEPBACKSLASH@ 1664 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1665 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi` 1563 1666 1564 1667 ResolvExpr/driver_cfa_cpp-Alternative.o: ResolvExpr/Alternative.cc 1565 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc1566 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po1567 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.o' libtool=no @AMDEPBACKSLASH@1568 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1569 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc1668 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc 1669 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po 1670 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.o' libtool=no @AMDEPBACKSLASH@ 1671 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1672 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc 1570 1673 1571 1674 ResolvExpr/driver_cfa_cpp-Alternative.obj: ResolvExpr/Alternative.cc 1572 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi`1573 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po1574 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.obj' libtool=no @AMDEPBACKSLASH@1575 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1576 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi`1675 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi` 1676 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po 1677 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.obj' libtool=no @AMDEPBACKSLASH@ 1678 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1679 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi` 1577 1680 1578 1681 ResolvExpr/driver_cfa_cpp-Unify.o: ResolvExpr/Unify.cc 1579 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc1580 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po1581 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.o' libtool=no @AMDEPBACKSLASH@1582 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1583 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc1682 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc 1683 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po 1684 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.o' libtool=no @AMDEPBACKSLASH@ 1685 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1686 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc 1584 1687 1585 1688 ResolvExpr/driver_cfa_cpp-Unify.obj: ResolvExpr/Unify.cc 1586 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi`1587 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po1588 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.obj' libtool=no @AMDEPBACKSLASH@1589 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1590 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi`1689 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi` 1690 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po 1691 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.obj' libtool=no @AMDEPBACKSLASH@ 1692 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1693 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi` 1591 1694 1592 1695 ResolvExpr/driver_cfa_cpp-PtrsAssignable.o: ResolvExpr/PtrsAssignable.cc 1593 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc1594 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po1595 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.o' libtool=no @AMDEPBACKSLASH@1596 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1597 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc1696 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc 1697 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po 1698 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.o' libtool=no @AMDEPBACKSLASH@ 1699 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1700 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc 1598 1701 1599 1702 ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj: ResolvExpr/PtrsAssignable.cc 1600 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi`1601 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po1602 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj' libtool=no @AMDEPBACKSLASH@1603 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1604 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi`1703 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi` 1704 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po 1705 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj' libtool=no @AMDEPBACKSLASH@ 1706 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1707 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi` 1605 1708 1606 1709 ResolvExpr/driver_cfa_cpp-CommonType.o: ResolvExpr/CommonType.cc 1607 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc1608 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po1609 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.o' libtool=no @AMDEPBACKSLASH@1610 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1611 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc1710 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc 1711 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po 1712 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.o' libtool=no @AMDEPBACKSLASH@ 1713 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1714 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc 1612 1715 1613 1716 ResolvExpr/driver_cfa_cpp-CommonType.obj: ResolvExpr/CommonType.cc 1614 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi`1615 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po1616 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.obj' libtool=no @AMDEPBACKSLASH@1617 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1618 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi`1717 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi` 1718 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po 1719 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.obj' libtool=no @AMDEPBACKSLASH@ 1720 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1721 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi` 1619 1722 1620 1723 ResolvExpr/driver_cfa_cpp-ConversionCost.o: ResolvExpr/ConversionCost.cc 1621 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc1622 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po1623 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.o' libtool=no @AMDEPBACKSLASH@1624 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1625 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc1724 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc 1725 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po 1726 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.o' libtool=no @AMDEPBACKSLASH@ 1727 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1728 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc 1626 1729 1627 1730 ResolvExpr/driver_cfa_cpp-ConversionCost.obj: ResolvExpr/ConversionCost.cc 1628 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi`1629 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po1630 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.obj' libtool=no @AMDEPBACKSLASH@1631 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1632 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi`1731 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi` 1732 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po 1733 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.obj' libtool=no @AMDEPBACKSLASH@ 1734 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1735 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi` 1633 1736 1634 1737 ResolvExpr/driver_cfa_cpp-CastCost.o: ResolvExpr/CastCost.cc 1635 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc1636 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po1637 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.o' libtool=no @AMDEPBACKSLASH@1638 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1639 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc1738 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc 1739 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po 1740 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.o' libtool=no @AMDEPBACKSLASH@ 1741 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1742 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc 1640 1743 1641 1744 ResolvExpr/driver_cfa_cpp-CastCost.obj: ResolvExpr/CastCost.cc 1642 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi`1643 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po1644 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.obj' libtool=no @AMDEPBACKSLASH@1645 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1646 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi`1745 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi` 1746 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po 1747 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.obj' libtool=no @AMDEPBACKSLASH@ 1748 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1749 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi` 1647 1750 1648 1751 ResolvExpr/driver_cfa_cpp-PtrsCastable.o: ResolvExpr/PtrsCastable.cc 1649 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc1650 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po1651 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.o' libtool=no @AMDEPBACKSLASH@1652 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1653 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc1752 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc 1753 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po 1754 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.o' libtool=no @AMDEPBACKSLASH@ 1755 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1756 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc 1654 1757 1655 1758 ResolvExpr/driver_cfa_cpp-PtrsCastable.obj: ResolvExpr/PtrsCastable.cc 1656 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi`1657 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po1658 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.obj' libtool=no @AMDEPBACKSLASH@1659 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1660 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi`1759 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi` 1760 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po 1761 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.obj' libtool=no @AMDEPBACKSLASH@ 1762 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1763 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi` 1661 1764 1662 1765 ResolvExpr/driver_cfa_cpp-AdjustExprType.o: ResolvExpr/AdjustExprType.cc 1663 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc1664 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po1665 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.o' libtool=no @AMDEPBACKSLASH@1666 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1667 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc1766 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc 1767 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po 1768 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.o' libtool=no @AMDEPBACKSLASH@ 1769 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1770 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc 1668 1771 1669 1772 ResolvExpr/driver_cfa_cpp-AdjustExprType.obj: ResolvExpr/AdjustExprType.cc 1670 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi`1671 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po1672 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.obj' libtool=no @AMDEPBACKSLASH@1673 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1674 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi`1773 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi` 1774 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po 1775 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.obj' libtool=no @AMDEPBACKSLASH@ 1776 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1777 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi` 1675 1778 1676 1779 ResolvExpr/driver_cfa_cpp-AlternativePrinter.o: ResolvExpr/AlternativePrinter.cc 1677 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc1678 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po1679 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.o' libtool=no @AMDEPBACKSLASH@1680 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1681 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc1780 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc 1781 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po 1782 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.o' libtool=no @AMDEPBACKSLASH@ 1783 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1784 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc 1682 1785 1683 1786 ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj: ResolvExpr/AlternativePrinter.cc 1684 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi`1685 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po1686 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj' libtool=no @AMDEPBACKSLASH@1687 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1688 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi`1787 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi` 1788 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po 1789 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj' libtool=no @AMDEPBACKSLASH@ 1790 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1791 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi` 1689 1792 1690 1793 ResolvExpr/driver_cfa_cpp-Resolver.o: ResolvExpr/Resolver.cc 1691 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc1692 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po1693 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.o' libtool=no @AMDEPBACKSLASH@1694 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1695 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc1794 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc 1795 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po 1796 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.o' libtool=no @AMDEPBACKSLASH@ 1797 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1798 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc 1696 1799 1697 1800 ResolvExpr/driver_cfa_cpp-Resolver.obj: ResolvExpr/Resolver.cc 1698 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi`1699 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po1700 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.obj' libtool=no @AMDEPBACKSLASH@1701 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1702 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi`1801 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi` 1802 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po 1803 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.obj' libtool=no @AMDEPBACKSLASH@ 1804 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1805 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi` 1703 1806 1704 1807 ResolvExpr/driver_cfa_cpp-ResolveTypeof.o: ResolvExpr/ResolveTypeof.cc 1705 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc1706 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po1707 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.o' libtool=no @AMDEPBACKSLASH@1708 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1709 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc1808 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc 1809 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po 1810 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.o' libtool=no @AMDEPBACKSLASH@ 1811 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1812 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc 1710 1813 1711 1814 ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj: ResolvExpr/ResolveTypeof.cc 1712 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi`1713 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po1714 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj' libtool=no @AMDEPBACKSLASH@1715 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1716 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi`1815 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi` 1816 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po 1817 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj' libtool=no @AMDEPBACKSLASH@ 1818 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1819 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi` 1717 1820 1718 1821 ResolvExpr/driver_cfa_cpp-RenameVars.o: ResolvExpr/RenameVars.cc 1719 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc1720 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po1721 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.o' libtool=no @AMDEPBACKSLASH@1722 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1723 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc1822 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc 1823 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po 1824 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.o' libtool=no @AMDEPBACKSLASH@ 1825 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1826 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc 1724 1827 1725 1828 ResolvExpr/driver_cfa_cpp-RenameVars.obj: ResolvExpr/RenameVars.cc 1726 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi`1727 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po1728 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.obj' libtool=no @AMDEPBACKSLASH@1729 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1730 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi`1829 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi` 1830 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po 1831 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.obj' libtool=no @AMDEPBACKSLASH@ 1832 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1833 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi` 1731 1834 1732 1835 ResolvExpr/driver_cfa_cpp-FindOpenVars.o: ResolvExpr/FindOpenVars.cc 1733 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc1734 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po1735 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.o' libtool=no @AMDEPBACKSLASH@1736 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1737 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc1836 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc 1837 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po 1838 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.o' libtool=no @AMDEPBACKSLASH@ 1839 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1840 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc 1738 1841 1739 1842 ResolvExpr/driver_cfa_cpp-FindOpenVars.obj: ResolvExpr/FindOpenVars.cc 1740 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi`1741 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po1742 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.obj' libtool=no @AMDEPBACKSLASH@1743 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1744 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi`1843 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi` 1844 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po 1845 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.obj' libtool=no @AMDEPBACKSLASH@ 1846 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1847 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi` 1745 1848 1746 1849 ResolvExpr/driver_cfa_cpp-PolyCost.o: ResolvExpr/PolyCost.cc 1747 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc1748 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po1749 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.o' libtool=no @AMDEPBACKSLASH@1750 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1751 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc1850 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc 1851 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po 1852 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.o' libtool=no @AMDEPBACKSLASH@ 1853 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1854 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc 1752 1855 1753 1856 ResolvExpr/driver_cfa_cpp-PolyCost.obj: ResolvExpr/PolyCost.cc 1754 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi`1755 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po1756 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.obj' libtool=no @AMDEPBACKSLASH@1757 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1758 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi`1857 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi` 1858 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po 1859 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.obj' libtool=no @AMDEPBACKSLASH@ 1860 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1861 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi` 1759 1862 1760 1863 ResolvExpr/driver_cfa_cpp-Occurs.o: ResolvExpr/Occurs.cc 1761 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc1762 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po1763 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.o' libtool=no @AMDEPBACKSLASH@1764 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1765 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc1864 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc 1865 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po 1866 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.o' libtool=no @AMDEPBACKSLASH@ 1867 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1868 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc 1766 1869 1767 1870 ResolvExpr/driver_cfa_cpp-Occurs.obj: ResolvExpr/Occurs.cc 1768 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi`1769 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po1770 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.obj' libtool=no @AMDEPBACKSLASH@1771 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1772 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi`1871 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi` 1872 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po 1873 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.obj' libtool=no @AMDEPBACKSLASH@ 1874 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1875 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi` 1773 1876 1774 1877 ResolvExpr/driver_cfa_cpp-TypeEnvironment.o: ResolvExpr/TypeEnvironment.cc 1775 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc1776 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po1777 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.o' libtool=no @AMDEPBACKSLASH@1778 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1779 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc1878 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc 1879 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po 1880 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.o' libtool=no @AMDEPBACKSLASH@ 1881 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1882 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc 1780 1883 1781 1884 ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj: ResolvExpr/TypeEnvironment.cc 1782 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi`1783 @am__fastdepCXX_TRUE@ $( am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po1784 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj' libtool=no @AMDEPBACKSLASH@1785 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1786 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi`1885 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi` 1886 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po 1887 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj' libtool=no @AMDEPBACKSLASH@ 1888 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1889 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi` 1787 1890 1788 1891 SymTab/driver_cfa_cpp-Indexer.o: SymTab/Indexer.cc 1789 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc1790 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po1791 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.o' libtool=no @AMDEPBACKSLASH@1792 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1793 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc1892 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc 1893 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po 1894 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.o' libtool=no @AMDEPBACKSLASH@ 1895 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1896 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc 1794 1897 1795 1898 SymTab/driver_cfa_cpp-Indexer.obj: SymTab/Indexer.cc 1796 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi`1797 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po1798 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.obj' libtool=no @AMDEPBACKSLASH@1799 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1800 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi`1899 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi` 1900 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po 1901 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.obj' libtool=no @AMDEPBACKSLASH@ 1902 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1903 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi` 1801 1904 1802 1905 SymTab/driver_cfa_cpp-Mangler.o: SymTab/Mangler.cc 1803 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc1804 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po1805 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.o' libtool=no @AMDEPBACKSLASH@1806 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1807 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc1906 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc 1907 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po 1908 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.o' libtool=no @AMDEPBACKSLASH@ 1909 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1910 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc 1808 1911 1809 1912 SymTab/driver_cfa_cpp-Mangler.obj: SymTab/Mangler.cc 1810 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi`1811 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po1812 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.obj' libtool=no @AMDEPBACKSLASH@1813 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1814 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi`1913 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi` 1914 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po 1915 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.obj' libtool=no @AMDEPBACKSLASH@ 1916 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1917 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi` 1815 1918 1816 1919 SymTab/driver_cfa_cpp-Validate.o: SymTab/Validate.cc 1817 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc1818 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po1819 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.o' libtool=no @AMDEPBACKSLASH@1820 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1821 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc1920 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc 1921 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po 1922 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.o' libtool=no @AMDEPBACKSLASH@ 1923 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1924 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc 1822 1925 1823 1926 SymTab/driver_cfa_cpp-Validate.obj: SymTab/Validate.cc 1824 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi`1825 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po1826 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.obj' libtool=no @AMDEPBACKSLASH@1827 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1828 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi`1927 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi` 1928 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po 1929 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.obj' libtool=no @AMDEPBACKSLASH@ 1930 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1931 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi` 1829 1932 1830 1933 SymTab/driver_cfa_cpp-FixFunction.o: SymTab/FixFunction.cc 1831 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc1832 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po1833 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.o' libtool=no @AMDEPBACKSLASH@1834 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1835 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc1934 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc 1935 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po 1936 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.o' libtool=no @AMDEPBACKSLASH@ 1937 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1938 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc 1836 1939 1837 1940 SymTab/driver_cfa_cpp-FixFunction.obj: SymTab/FixFunction.cc 1838 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi`1839 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po1840 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.obj' libtool=no @AMDEPBACKSLASH@1841 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1842 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi`1941 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi` 1942 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po 1943 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.obj' libtool=no @AMDEPBACKSLASH@ 1944 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1945 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi` 1843 1946 1844 1947 SymTab/driver_cfa_cpp-ImplementationType.o: SymTab/ImplementationType.cc 1845 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc1846 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po1847 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.o' libtool=no @AMDEPBACKSLASH@1848 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1849 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc1948 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc 1949 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po 1950 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.o' libtool=no @AMDEPBACKSLASH@ 1951 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1952 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc 1850 1953 1851 1954 SymTab/driver_cfa_cpp-ImplementationType.obj: SymTab/ImplementationType.cc 1852 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi`1853 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po1854 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.obj' libtool=no @AMDEPBACKSLASH@1855 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1856 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi`1955 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi` 1956 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po 1957 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.obj' libtool=no @AMDEPBACKSLASH@ 1958 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1959 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi` 1857 1960 1858 1961 SymTab/driver_cfa_cpp-TypeEquality.o: SymTab/TypeEquality.cc 1859 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc1860 @am__fastdepCXX_TRUE@ $( am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po1861 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.o' libtool=no @AMDEPBACKSLASH@1862 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1863 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc1962 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc 1963 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po 1964 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.o' libtool=no @AMDEPBACKSLASH@ 1965 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1966 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc 1864 1967 1865 1968 SymTab/driver_cfa_cpp-TypeEquality.obj: SymTab/TypeEquality.cc 1866 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1867 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po 1868 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.obj' libtool=no @AMDEPBACKSLASH@ 1869 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1870 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1969 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1970 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po 1971 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.obj' libtool=no @AMDEPBACKSLASH@ 1972 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1973 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1974 1975 SymTab/driver_cfa_cpp-Autogen.o: SymTab/Autogen.cc 1976 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Autogen.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo -c -o SymTab/driver_cfa_cpp-Autogen.o `test -f 'SymTab/Autogen.cc' || echo '$(srcdir)/'`SymTab/Autogen.cc 1977 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Po 1978 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Autogen.cc' object='SymTab/driver_cfa_cpp-Autogen.o' libtool=no @AMDEPBACKSLASH@ 1979 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1980 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Autogen.o `test -f 'SymTab/Autogen.cc' || echo '$(srcdir)/'`SymTab/Autogen.cc 1981 1982 SymTab/driver_cfa_cpp-Autogen.obj: SymTab/Autogen.cc 1983 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Autogen.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo -c -o SymTab/driver_cfa_cpp-Autogen.obj `if test -f 'SymTab/Autogen.cc'; then $(CYGPATH_W) 'SymTab/Autogen.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Autogen.cc'; fi` 1984 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Po 1985 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Autogen.cc' object='SymTab/driver_cfa_cpp-Autogen.obj' libtool=no @AMDEPBACKSLASH@ 1986 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1987 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Autogen.obj `if test -f 'SymTab/Autogen.cc'; then $(CYGPATH_W) 'SymTab/Autogen.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Autogen.cc'; fi` 1871 1988 1872 1989 SynTree/driver_cfa_cpp-Type.o: SynTree/Type.cc 1873 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc1874 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po1875 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.o' libtool=no @AMDEPBACKSLASH@1876 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1877 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc1990 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc 1991 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po 1992 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.o' libtool=no @AMDEPBACKSLASH@ 1993 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1994 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc 1878 1995 1879 1996 SynTree/driver_cfa_cpp-Type.obj: SynTree/Type.cc 1880 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi`1881 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po1882 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.obj' libtool=no @AMDEPBACKSLASH@1883 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1884 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi`1997 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi` 1998 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po 1999 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.obj' libtool=no @AMDEPBACKSLASH@ 2000 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2001 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi` 1885 2002 1886 2003 SynTree/driver_cfa_cpp-VoidType.o: SynTree/VoidType.cc 1887 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc1888 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po1889 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.o' libtool=no @AMDEPBACKSLASH@1890 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1891 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc2004 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc 2005 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po 2006 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.o' libtool=no @AMDEPBACKSLASH@ 2007 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2008 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc 1892 2009 1893 2010 SynTree/driver_cfa_cpp-VoidType.obj: SynTree/VoidType.cc 1894 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi`1895 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po1896 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.obj' libtool=no @AMDEPBACKSLASH@1897 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1898 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi`2011 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi` 2012 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po 2013 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.obj' libtool=no @AMDEPBACKSLASH@ 2014 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2015 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi` 1899 2016 1900 2017 SynTree/driver_cfa_cpp-BasicType.o: SynTree/BasicType.cc 1901 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc1902 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po1903 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.o' libtool=no @AMDEPBACKSLASH@1904 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1905 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc2018 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc 2019 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po 2020 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.o' libtool=no @AMDEPBACKSLASH@ 2021 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2022 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc 1906 2023 1907 2024 SynTree/driver_cfa_cpp-BasicType.obj: SynTree/BasicType.cc 1908 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi`1909 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po1910 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.obj' libtool=no @AMDEPBACKSLASH@1911 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1912 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi`2025 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi` 2026 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po 2027 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.obj' libtool=no @AMDEPBACKSLASH@ 2028 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2029 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi` 1913 2030 1914 2031 SynTree/driver_cfa_cpp-PointerType.o: SynTree/PointerType.cc 1915 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc1916 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po1917 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.o' libtool=no @AMDEPBACKSLASH@1918 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1919 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc2032 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc 2033 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po 2034 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.o' libtool=no @AMDEPBACKSLASH@ 2035 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2036 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc 1920 2037 1921 2038 SynTree/driver_cfa_cpp-PointerType.obj: SynTree/PointerType.cc 1922 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi`1923 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po1924 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.obj' libtool=no @AMDEPBACKSLASH@1925 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1926 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi`2039 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi` 2040 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po 2041 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.obj' libtool=no @AMDEPBACKSLASH@ 2042 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2043 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi` 1927 2044 1928 2045 SynTree/driver_cfa_cpp-ArrayType.o: SynTree/ArrayType.cc 1929 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc1930 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po1931 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.o' libtool=no @AMDEPBACKSLASH@1932 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1933 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc2046 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc 2047 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po 2048 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.o' libtool=no @AMDEPBACKSLASH@ 2049 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2050 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc 1934 2051 1935 2052 SynTree/driver_cfa_cpp-ArrayType.obj: SynTree/ArrayType.cc 1936 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi`1937 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po1938 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.obj' libtool=no @AMDEPBACKSLASH@1939 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1940 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi`2053 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi` 2054 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po 2055 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.obj' libtool=no @AMDEPBACKSLASH@ 2056 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2057 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi` 1941 2058 1942 2059 SynTree/driver_cfa_cpp-FunctionType.o: SynTree/FunctionType.cc 1943 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc1944 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po1945 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.o' libtool=no @AMDEPBACKSLASH@1946 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1947 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc2060 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc 2061 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po 2062 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.o' libtool=no @AMDEPBACKSLASH@ 2063 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2064 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc 1948 2065 1949 2066 SynTree/driver_cfa_cpp-FunctionType.obj: SynTree/FunctionType.cc 1950 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi`1951 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po1952 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.obj' libtool=no @AMDEPBACKSLASH@1953 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1954 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi`2067 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi` 2068 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po 2069 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.obj' libtool=no @AMDEPBACKSLASH@ 2070 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2071 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi` 1955 2072 1956 2073 SynTree/driver_cfa_cpp-ReferenceToType.o: SynTree/ReferenceToType.cc 1957 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc1958 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po1959 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.o' libtool=no @AMDEPBACKSLASH@1960 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1961 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc2074 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc 2075 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po 2076 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.o' libtool=no @AMDEPBACKSLASH@ 2077 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2078 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc 1962 2079 1963 2080 SynTree/driver_cfa_cpp-ReferenceToType.obj: SynTree/ReferenceToType.cc 1964 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi`1965 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po1966 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.obj' libtool=no @AMDEPBACKSLASH@1967 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1968 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi`2081 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi` 2082 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po 2083 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.obj' libtool=no @AMDEPBACKSLASH@ 2084 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2085 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi` 1969 2086 1970 2087 SynTree/driver_cfa_cpp-TupleType.o: SynTree/TupleType.cc 1971 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc1972 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po1973 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.o' libtool=no @AMDEPBACKSLASH@1974 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1975 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc2088 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc 2089 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po 2090 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.o' libtool=no @AMDEPBACKSLASH@ 2091 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2092 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc 1976 2093 1977 2094 SynTree/driver_cfa_cpp-TupleType.obj: SynTree/TupleType.cc 1978 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi`1979 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po1980 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.obj' libtool=no @AMDEPBACKSLASH@1981 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1982 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi`2095 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi` 2096 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po 2097 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.obj' libtool=no @AMDEPBACKSLASH@ 2098 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2099 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi` 1983 2100 1984 2101 SynTree/driver_cfa_cpp-TypeofType.o: SynTree/TypeofType.cc 1985 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc1986 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po1987 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.o' libtool=no @AMDEPBACKSLASH@1988 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1989 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc2102 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc 2103 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po 2104 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.o' libtool=no @AMDEPBACKSLASH@ 2105 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2106 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc 1990 2107 1991 2108 SynTree/driver_cfa_cpp-TypeofType.obj: SynTree/TypeofType.cc 1992 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi`1993 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po1994 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.obj' libtool=no @AMDEPBACKSLASH@1995 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1996 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi`2109 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi` 2110 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po 2111 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.obj' libtool=no @AMDEPBACKSLASH@ 2112 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2113 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi` 1997 2114 1998 2115 SynTree/driver_cfa_cpp-AttrType.o: SynTree/AttrType.cc 1999 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc2000 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po2001 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.o' libtool=no @AMDEPBACKSLASH@2002 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2003 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc2116 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc 2117 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po 2118 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.o' libtool=no @AMDEPBACKSLASH@ 2119 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2120 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc 2004 2121 2005 2122 SynTree/driver_cfa_cpp-AttrType.obj: SynTree/AttrType.cc 2006 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi`2007 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po2008 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.obj' libtool=no @AMDEPBACKSLASH@2009 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2010 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi`2123 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi` 2124 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po 2125 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.obj' libtool=no @AMDEPBACKSLASH@ 2126 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2127 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi` 2011 2128 2012 2129 SynTree/driver_cfa_cpp-VarArgsType.o: SynTree/VarArgsType.cc 2013 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc2014 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po2015 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.o' libtool=no @AMDEPBACKSLASH@2016 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2017 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc2130 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc 2131 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po 2132 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.o' libtool=no @AMDEPBACKSLASH@ 2133 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2134 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc 2018 2135 2019 2136 SynTree/driver_cfa_cpp-VarArgsType.obj: SynTree/VarArgsType.cc 2020 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi`2021 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po2022 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.obj' libtool=no @AMDEPBACKSLASH@2023 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2024 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi`2137 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi` 2138 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po 2139 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.obj' libtool=no @AMDEPBACKSLASH@ 2140 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2141 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi` 2025 2142 2026 2143 SynTree/driver_cfa_cpp-Constant.o: SynTree/Constant.cc 2027 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc2028 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po2029 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.o' libtool=no @AMDEPBACKSLASH@2030 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2031 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc2144 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc 2145 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po 2146 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.o' libtool=no @AMDEPBACKSLASH@ 2147 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2148 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc 2032 2149 2033 2150 SynTree/driver_cfa_cpp-Constant.obj: SynTree/Constant.cc 2034 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi`2035 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po2036 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.obj' libtool=no @AMDEPBACKSLASH@2037 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2038 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi`2151 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi` 2152 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po 2153 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.obj' libtool=no @AMDEPBACKSLASH@ 2154 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2155 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi` 2039 2156 2040 2157 SynTree/driver_cfa_cpp-Expression.o: SynTree/Expression.cc 2041 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc2042 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po2043 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.o' libtool=no @AMDEPBACKSLASH@2044 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2045 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc2158 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc 2159 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po 2160 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.o' libtool=no @AMDEPBACKSLASH@ 2161 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2162 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc 2046 2163 2047 2164 SynTree/driver_cfa_cpp-Expression.obj: SynTree/Expression.cc 2048 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi`2049 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po2050 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.obj' libtool=no @AMDEPBACKSLASH@2051 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2052 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi`2165 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi` 2166 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po 2167 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.obj' libtool=no @AMDEPBACKSLASH@ 2168 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2169 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi` 2053 2170 2054 2171 SynTree/driver_cfa_cpp-TupleExpr.o: SynTree/TupleExpr.cc 2055 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc2056 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po2057 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.o' libtool=no @AMDEPBACKSLASH@2058 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2059 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc2172 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc 2173 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po 2174 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.o' libtool=no @AMDEPBACKSLASH@ 2175 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2176 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc 2060 2177 2061 2178 SynTree/driver_cfa_cpp-TupleExpr.obj: SynTree/TupleExpr.cc 2062 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi`2063 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po2064 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.obj' libtool=no @AMDEPBACKSLASH@2065 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2066 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi`2179 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi` 2180 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po 2181 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.obj' libtool=no @AMDEPBACKSLASH@ 2182 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2183 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi` 2067 2184 2068 2185 SynTree/driver_cfa_cpp-CommaExpr.o: SynTree/CommaExpr.cc 2069 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc2070 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po2071 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.o' libtool=no @AMDEPBACKSLASH@2072 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2073 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc2186 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc 2187 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po 2188 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.o' libtool=no @AMDEPBACKSLASH@ 2189 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2190 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc 2074 2191 2075 2192 SynTree/driver_cfa_cpp-CommaExpr.obj: SynTree/CommaExpr.cc 2076 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi`2077 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po2078 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.obj' libtool=no @AMDEPBACKSLASH@2079 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2080 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi`2193 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi` 2194 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po 2195 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.obj' libtool=no @AMDEPBACKSLASH@ 2196 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2197 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi` 2081 2198 2082 2199 SynTree/driver_cfa_cpp-TypeExpr.o: SynTree/TypeExpr.cc 2083 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc2084 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po2085 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.o' libtool=no @AMDEPBACKSLASH@2086 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2087 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc2200 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc 2201 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po 2202 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.o' libtool=no @AMDEPBACKSLASH@ 2203 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2204 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc 2088 2205 2089 2206 SynTree/driver_cfa_cpp-TypeExpr.obj: SynTree/TypeExpr.cc 2090 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi`2091 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po2092 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.obj' libtool=no @AMDEPBACKSLASH@2093 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2094 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi`2207 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi` 2208 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po 2209 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.obj' libtool=no @AMDEPBACKSLASH@ 2210 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2211 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi` 2095 2212 2096 2213 SynTree/driver_cfa_cpp-ApplicationExpr.o: SynTree/ApplicationExpr.cc 2097 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc2098 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po2099 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.o' libtool=no @AMDEPBACKSLASH@2100 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2101 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc2214 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc 2215 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po 2216 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.o' libtool=no @AMDEPBACKSLASH@ 2217 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2218 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc 2102 2219 2103 2220 SynTree/driver_cfa_cpp-ApplicationExpr.obj: SynTree/ApplicationExpr.cc 2104 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi`2105 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po2106 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.obj' libtool=no @AMDEPBACKSLASH@2107 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2108 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi`2221 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi` 2222 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po 2223 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.obj' libtool=no @AMDEPBACKSLASH@ 2224 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2225 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi` 2109 2226 2110 2227 SynTree/driver_cfa_cpp-AddressExpr.o: SynTree/AddressExpr.cc 2111 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc2112 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po2113 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.o' libtool=no @AMDEPBACKSLASH@2114 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2115 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc2228 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc 2229 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po 2230 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.o' libtool=no @AMDEPBACKSLASH@ 2231 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2232 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc 2116 2233 2117 2234 SynTree/driver_cfa_cpp-AddressExpr.obj: SynTree/AddressExpr.cc 2118 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi`2119 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po2120 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.obj' libtool=no @AMDEPBACKSLASH@2121 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2122 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi`2235 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi` 2236 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po 2237 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.obj' libtool=no @AMDEPBACKSLASH@ 2238 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2239 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi` 2123 2240 2124 2241 SynTree/driver_cfa_cpp-Statement.o: SynTree/Statement.cc 2125 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc2126 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po2127 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.o' libtool=no @AMDEPBACKSLASH@2128 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2129 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc2242 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc 2243 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po 2244 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.o' libtool=no @AMDEPBACKSLASH@ 2245 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2246 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc 2130 2247 2131 2248 SynTree/driver_cfa_cpp-Statement.obj: SynTree/Statement.cc 2132 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi`2133 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po2134 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.obj' libtool=no @AMDEPBACKSLASH@2135 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2136 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi`2249 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi` 2250 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po 2251 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.obj' libtool=no @AMDEPBACKSLASH@ 2252 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2253 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi` 2137 2254 2138 2255 SynTree/driver_cfa_cpp-CompoundStmt.o: SynTree/CompoundStmt.cc 2139 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc2140 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po2141 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.o' libtool=no @AMDEPBACKSLASH@2142 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2143 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc2256 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc 2257 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po 2258 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.o' libtool=no @AMDEPBACKSLASH@ 2259 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2260 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc 2144 2261 2145 2262 SynTree/driver_cfa_cpp-CompoundStmt.obj: SynTree/CompoundStmt.cc 2146 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi`2147 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po2148 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.obj' libtool=no @AMDEPBACKSLASH@2149 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2150 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi`2263 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi` 2264 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po 2265 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.obj' libtool=no @AMDEPBACKSLASH@ 2266 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2267 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi` 2151 2268 2152 2269 SynTree/driver_cfa_cpp-DeclStmt.o: SynTree/DeclStmt.cc 2153 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc2154 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po2155 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.o' libtool=no @AMDEPBACKSLASH@2156 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2157 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc2270 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc 2271 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po 2272 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.o' libtool=no @AMDEPBACKSLASH@ 2273 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2274 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc 2158 2275 2159 2276 SynTree/driver_cfa_cpp-DeclStmt.obj: SynTree/DeclStmt.cc 2160 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi`2161 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po2162 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.obj' libtool=no @AMDEPBACKSLASH@2163 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2164 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi`2277 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi` 2278 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po 2279 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.obj' libtool=no @AMDEPBACKSLASH@ 2280 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2281 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi` 2165 2282 2166 2283 SynTree/driver_cfa_cpp-Declaration.o: SynTree/Declaration.cc 2167 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc2168 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po2169 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.o' libtool=no @AMDEPBACKSLASH@2170 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2171 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc2284 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc 2285 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po 2286 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.o' libtool=no @AMDEPBACKSLASH@ 2287 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2288 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc 2172 2289 2173 2290 SynTree/driver_cfa_cpp-Declaration.obj: SynTree/Declaration.cc 2174 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi`2175 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po2176 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.obj' libtool=no @AMDEPBACKSLASH@2177 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2178 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi`2291 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi` 2292 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po 2293 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.obj' libtool=no @AMDEPBACKSLASH@ 2294 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2295 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi` 2179 2296 2180 2297 SynTree/driver_cfa_cpp-DeclarationWithType.o: SynTree/DeclarationWithType.cc 2181 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc2182 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po2183 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.o' libtool=no @AMDEPBACKSLASH@2184 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2185 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc2298 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc 2299 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po 2300 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.o' libtool=no @AMDEPBACKSLASH@ 2301 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2302 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc 2186 2303 2187 2304 SynTree/driver_cfa_cpp-DeclarationWithType.obj: SynTree/DeclarationWithType.cc 2188 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi`2189 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po2190 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.obj' libtool=no @AMDEPBACKSLASH@2191 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2192 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi`2305 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi` 2306 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po 2307 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.obj' libtool=no @AMDEPBACKSLASH@ 2308 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2309 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi` 2193 2310 2194 2311 SynTree/driver_cfa_cpp-ObjectDecl.o: SynTree/ObjectDecl.cc 2195 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc2196 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po2197 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.o' libtool=no @AMDEPBACKSLASH@2198 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2199 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc2312 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc 2313 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po 2314 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.o' libtool=no @AMDEPBACKSLASH@ 2315 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2316 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc 2200 2317 2201 2318 SynTree/driver_cfa_cpp-ObjectDecl.obj: SynTree/ObjectDecl.cc 2202 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi`2203 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po2204 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.obj' libtool=no @AMDEPBACKSLASH@2205 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2206 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi`2319 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi` 2320 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po 2321 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.obj' libtool=no @AMDEPBACKSLASH@ 2322 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2323 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi` 2207 2324 2208 2325 SynTree/driver_cfa_cpp-FunctionDecl.o: SynTree/FunctionDecl.cc 2209 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc2210 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po2211 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.o' libtool=no @AMDEPBACKSLASH@2212 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2213 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc2326 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc 2327 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po 2328 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.o' libtool=no @AMDEPBACKSLASH@ 2329 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2330 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc 2214 2331 2215 2332 SynTree/driver_cfa_cpp-FunctionDecl.obj: SynTree/FunctionDecl.cc 2216 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi`2217 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po2218 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.obj' libtool=no @AMDEPBACKSLASH@2219 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2220 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi`2333 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi` 2334 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po 2335 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.obj' libtool=no @AMDEPBACKSLASH@ 2336 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2337 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi` 2221 2338 2222 2339 SynTree/driver_cfa_cpp-AggregateDecl.o: SynTree/AggregateDecl.cc 2223 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc2224 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po2225 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.o' libtool=no @AMDEPBACKSLASH@2226 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2227 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc2340 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc 2341 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po 2342 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.o' libtool=no @AMDEPBACKSLASH@ 2343 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2344 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc 2228 2345 2229 2346 SynTree/driver_cfa_cpp-AggregateDecl.obj: SynTree/AggregateDecl.cc 2230 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi`2231 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po2232 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.obj' libtool=no @AMDEPBACKSLASH@2233 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2234 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi`2347 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi` 2348 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po 2349 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.obj' libtool=no @AMDEPBACKSLASH@ 2350 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2351 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi` 2235 2352 2236 2353 SynTree/driver_cfa_cpp-NamedTypeDecl.o: SynTree/NamedTypeDecl.cc 2237 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc2238 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po2239 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.o' libtool=no @AMDEPBACKSLASH@2240 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2241 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc2354 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc 2355 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po 2356 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.o' libtool=no @AMDEPBACKSLASH@ 2357 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2358 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc 2242 2359 2243 2360 SynTree/driver_cfa_cpp-NamedTypeDecl.obj: SynTree/NamedTypeDecl.cc 2244 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi`2245 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po2246 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.obj' libtool=no @AMDEPBACKSLASH@2247 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2248 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi`2361 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi` 2362 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po 2363 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.obj' libtool=no @AMDEPBACKSLASH@ 2364 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2365 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi` 2249 2366 2250 2367 SynTree/driver_cfa_cpp-TypeDecl.o: SynTree/TypeDecl.cc 2251 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc2252 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po2253 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.o' libtool=no @AMDEPBACKSLASH@2254 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2255 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc2368 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc 2369 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po 2370 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.o' libtool=no @AMDEPBACKSLASH@ 2371 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2372 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc 2256 2373 2257 2374 SynTree/driver_cfa_cpp-TypeDecl.obj: SynTree/TypeDecl.cc 2258 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi`2259 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po2260 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.obj' libtool=no @AMDEPBACKSLASH@2261 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2262 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi`2375 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi` 2376 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po 2377 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.obj' libtool=no @AMDEPBACKSLASH@ 2378 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2379 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi` 2263 2380 2264 2381 SynTree/driver_cfa_cpp-Initializer.o: SynTree/Initializer.cc 2265 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc2266 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po2267 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.o' libtool=no @AMDEPBACKSLASH@2268 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2269 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc2382 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc 2383 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po 2384 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.o' libtool=no @AMDEPBACKSLASH@ 2385 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2386 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc 2270 2387 2271 2388 SynTree/driver_cfa_cpp-Initializer.obj: SynTree/Initializer.cc 2272 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi`2273 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po2274 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.obj' libtool=no @AMDEPBACKSLASH@2275 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2276 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi`2389 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi` 2390 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po 2391 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.obj' libtool=no @AMDEPBACKSLASH@ 2392 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2393 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi` 2277 2394 2278 2395 SynTree/driver_cfa_cpp-Visitor.o: SynTree/Visitor.cc 2279 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc2280 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po2281 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.o' libtool=no @AMDEPBACKSLASH@2282 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2283 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc2396 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc 2397 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po 2398 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.o' libtool=no @AMDEPBACKSLASH@ 2399 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2400 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc 2284 2401 2285 2402 SynTree/driver_cfa_cpp-Visitor.obj: SynTree/Visitor.cc 2286 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi`2287 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po2288 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.obj' libtool=no @AMDEPBACKSLASH@2289 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2290 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi`2403 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi` 2404 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po 2405 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.obj' libtool=no @AMDEPBACKSLASH@ 2406 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2407 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi` 2291 2408 2292 2409 SynTree/driver_cfa_cpp-Mutator.o: SynTree/Mutator.cc 2293 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc2294 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po2295 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.o' libtool=no @AMDEPBACKSLASH@2296 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2297 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc2410 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc 2411 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po 2412 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.o' libtool=no @AMDEPBACKSLASH@ 2413 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2414 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc 2298 2415 2299 2416 SynTree/driver_cfa_cpp-Mutator.obj: SynTree/Mutator.cc 2300 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2301 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po 2302 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.obj' libtool=no @AMDEPBACKSLASH@ 2303 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2304 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2417 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2418 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po 2419 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.obj' libtool=no @AMDEPBACKSLASH@ 2420 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2421 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2422 2423 SynTree/driver_cfa_cpp-AddStmtVisitor.o: SynTree/AddStmtVisitor.cc 2424 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddStmtVisitor.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.o `test -f 'SynTree/AddStmtVisitor.cc' || echo '$(srcdir)/'`SynTree/AddStmtVisitor.cc 2425 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Po 2426 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddStmtVisitor.cc' object='SynTree/driver_cfa_cpp-AddStmtVisitor.o' libtool=no @AMDEPBACKSLASH@ 2427 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2428 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.o `test -f 'SynTree/AddStmtVisitor.cc' || echo '$(srcdir)/'`SynTree/AddStmtVisitor.cc 2429 2430 SynTree/driver_cfa_cpp-AddStmtVisitor.obj: SynTree/AddStmtVisitor.cc 2431 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddStmtVisitor.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.obj `if test -f 'SynTree/AddStmtVisitor.cc'; then $(CYGPATH_W) 'SynTree/AddStmtVisitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddStmtVisitor.cc'; fi` 2432 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Po 2433 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddStmtVisitor.cc' object='SynTree/driver_cfa_cpp-AddStmtVisitor.obj' libtool=no @AMDEPBACKSLASH@ 2434 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2435 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.obj `if test -f 'SynTree/AddStmtVisitor.cc'; then $(CYGPATH_W) 'SynTree/AddStmtVisitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddStmtVisitor.cc'; fi` 2305 2436 2306 2437 SynTree/driver_cfa_cpp-TypeSubstitution.o: SynTree/TypeSubstitution.cc 2307 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc2308 @am__fastdepCXX_TRUE@ $( am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po2309 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.o' libtool=no @AMDEPBACKSLASH@2310 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2311 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc2438 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc 2439 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po 2440 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.o' libtool=no @AMDEPBACKSLASH@ 2441 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2442 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc 2312 2443 2313 2444 SynTree/driver_cfa_cpp-TypeSubstitution.obj: SynTree/TypeSubstitution.cc 2314 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2315 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po 2316 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.obj' libtool=no @AMDEPBACKSLASH@ 2317 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2318 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2445 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2446 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po 2447 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.obj' libtool=no @AMDEPBACKSLASH@ 2448 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2449 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2450 2451 SynTree/driver_cfa_cpp-Attribute.o: SynTree/Attribute.cc 2452 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Attribute.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo -c -o SynTree/driver_cfa_cpp-Attribute.o `test -f 'SynTree/Attribute.cc' || echo '$(srcdir)/'`SynTree/Attribute.cc 2453 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Po 2454 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Attribute.cc' object='SynTree/driver_cfa_cpp-Attribute.o' libtool=no @AMDEPBACKSLASH@ 2455 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2456 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Attribute.o `test -f 'SynTree/Attribute.cc' || echo '$(srcdir)/'`SynTree/Attribute.cc 2457 2458 SynTree/driver_cfa_cpp-Attribute.obj: SynTree/Attribute.cc 2459 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Attribute.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo -c -o SynTree/driver_cfa_cpp-Attribute.obj `if test -f 'SynTree/Attribute.cc'; then $(CYGPATH_W) 'SynTree/Attribute.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Attribute.cc'; fi` 2460 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Po 2461 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Attribute.cc' object='SynTree/driver_cfa_cpp-Attribute.obj' libtool=no @AMDEPBACKSLASH@ 2462 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2463 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Attribute.obj `if test -f 'SynTree/Attribute.cc'; then $(CYGPATH_W) 'SynTree/Attribute.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Attribute.cc'; fi` 2319 2464 2320 2465 Tuples/driver_cfa_cpp-Mutate.o: Tuples/Mutate.cc 2321 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc2322 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po2323 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@2324 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2325 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc2466 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc 2467 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 2468 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@ 2469 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2470 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc 2326 2471 2327 2472 Tuples/driver_cfa_cpp-Mutate.obj: Tuples/Mutate.cc 2328 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`2329 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po2330 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@2331 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2332 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`2473 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi` 2474 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 2475 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@ 2476 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2477 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi` 2333 2478 2334 2479 Tuples/driver_cfa_cpp-AssignExpand.o: Tuples/AssignExpand.cc 2335 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc2336 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po2337 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.o' libtool=no @AMDEPBACKSLASH@2338 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2339 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc2480 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc 2481 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po 2482 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.o' libtool=no @AMDEPBACKSLASH@ 2483 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2484 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc 2340 2485 2341 2486 Tuples/driver_cfa_cpp-AssignExpand.obj: Tuples/AssignExpand.cc 2342 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`2343 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po2344 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.obj' libtool=no @AMDEPBACKSLASH@2345 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2346 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`2487 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi` 2488 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po 2489 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.obj' libtool=no @AMDEPBACKSLASH@ 2490 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2491 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi` 2347 2492 2348 2493 Tuples/driver_cfa_cpp-FunctionFixer.o: Tuples/FunctionFixer.cc 2349 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc2350 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po2351 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.o' libtool=no @AMDEPBACKSLASH@2352 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2353 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc2494 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc 2495 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po 2496 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.o' libtool=no @AMDEPBACKSLASH@ 2497 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2498 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc 2354 2499 2355 2500 Tuples/driver_cfa_cpp-FunctionFixer.obj: Tuples/FunctionFixer.cc 2356 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`2357 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po2358 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.obj' libtool=no @AMDEPBACKSLASH@2359 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2360 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`2501 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi` 2502 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po 2503 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.obj' libtool=no @AMDEPBACKSLASH@ 2504 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2505 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi` 2361 2506 2362 2507 Tuples/driver_cfa_cpp-TupleAssignment.o: Tuples/TupleAssignment.cc 2363 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc2364 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po2365 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.o' libtool=no @AMDEPBACKSLASH@2366 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2367 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc2508 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc 2509 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po 2510 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.o' libtool=no @AMDEPBACKSLASH@ 2511 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2512 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc 2368 2513 2369 2514 Tuples/driver_cfa_cpp-TupleAssignment.obj: Tuples/TupleAssignment.cc 2370 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi`2371 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po2372 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.obj' libtool=no @AMDEPBACKSLASH@2373 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2374 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi`2515 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi` 2516 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po 2517 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.obj' libtool=no @AMDEPBACKSLASH@ 2518 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2519 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi` 2375 2520 2376 2521 Tuples/driver_cfa_cpp-FunctionChecker.o: Tuples/FunctionChecker.cc 2377 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc2378 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po2379 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.o' libtool=no @AMDEPBACKSLASH@2380 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2381 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc2522 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc 2523 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po 2524 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.o' libtool=no @AMDEPBACKSLASH@ 2525 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2526 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc 2382 2527 2383 2528 Tuples/driver_cfa_cpp-FunctionChecker.obj: Tuples/FunctionChecker.cc 2384 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`2385 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po2386 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.obj' libtool=no @AMDEPBACKSLASH@2387 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2388 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`2529 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi` 2530 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po 2531 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.obj' libtool=no @AMDEPBACKSLASH@ 2532 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2533 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi` 2389 2534 2390 2535 Tuples/driver_cfa_cpp-NameMatcher.o: Tuples/NameMatcher.cc 2391 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc2392 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po2393 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.o' libtool=no @AMDEPBACKSLASH@2394 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2395 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc2536 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc 2537 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po 2538 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.o' libtool=no @AMDEPBACKSLASH@ 2539 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2540 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc 2396 2541 2397 2542 Tuples/driver_cfa_cpp-NameMatcher.obj: Tuples/NameMatcher.cc 2398 @am__fastdepCXX_TRUE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi`2399 @am__fastdepCXX_TRUE@ $( am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po2400 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.obj' libtool=no @AMDEPBACKSLASH@2401 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2402 @am__fastdepCXX_FALSE@ $( CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi`2543 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi` 2544 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po 2545 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.obj' libtool=no @AMDEPBACKSLASH@ 2546 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2547 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi` 2403 2548 2404 2549 .ll.cc: 2405 $( am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)2550 $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) 2406 2551 2407 2552 .yy.cc: 2408 $( am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)2553 $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) 2409 2554 2410 2555 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -
src/Parser/DeclarationNode.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // DeclarationNode.cc -- 7 // DeclarationNode.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 12:34:05 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Apr 13 16:53:17201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 15:38:09 2016 13 13 // Update Count : 161 14 14 // … … 97 97 os << endl << string( indent + 2, ' ' ) << "with initializer "; 98 98 initializer->printOneLine( os ); 99 os << " maybe constructed? " << initializer->get_maybeConstructed(); 100 99 101 } // if 100 102 … … 353 355 } // if 354 356 } 355 357 356 358 DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) { 357 359 if ( q ) { … … 504 506 assert( false ); 505 507 } // switch 506 508 507 509 return this; 508 510 } … … 615 617 assert( a->type->kind == TypeData::Array ); 616 618 TypeData *lastArray = findLast( a->type ); 617 if ( type ) { 619 if ( type ) { 618 620 switch ( type->kind ) { 619 621 case TypeData::Aggregate: … … 659 661 } // if 660 662 } 661 663 662 664 DeclarationNode *DeclarationNode::addIdList( DeclarationNode *ids ) { 663 665 type = addIdListToType( type, ids ); … … 864 866 Type *DeclarationNode::buildType() const { 865 867 assert( type ); 866 868 867 869 switch ( type->kind ) { 868 870 case TypeData::Enum: -
src/Parser/ExpressionNode.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ExpressionNode.cc -- 8 // 7 // ExpressionNode.cc -- 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 8 15:43:05201613 // Update Count : 29614 // 12 // Last Modified On : Mon Jun 13 14:46:17 2016 13 // Update Count : 307 14 // 15 15 16 16 #include <cassert> … … 32 32 using namespace std; 33 33 34 ExpressionNode::ExpressionNode() : ParseNode() , argName( 0 ){}35 36 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ) , argName( 0 ){}37 38 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ) {34 ExpressionNode::ExpressionNode() : ParseNode() {} 35 36 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ) {} 37 38 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ), extension( other.extension ) { 39 39 if ( other.argName ) { 40 40 argName = other.argName->clone(); … … 231 231 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 232 232 value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) ); 233 233 234 234 delete newValue; // allocated by lexer 235 235 return this; … … 344 344 345 345 Expression *DesignatorNode::build() const { 346 Expression * ret = get_argName()->build();346 Expression * ret = maybeBuild<Expression>(get_argName()); 347 347 348 348 if ( isArrayIndex ) { 349 // need to traverse entire structure and change any instances of 0 or 1 to 349 // need to traverse entire structure and change any instances of 0 or 1 to 350 350 // ConstantExpr 351 351 DesignatorFixer fixer; … … 389 389 "Cond", "NCond", 390 390 // diadic 391 "SizeOf", "AlignOf", "OffsetOf", "Attr", " CompLit", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&",391 "SizeOf", "AlignOf", "OffsetOf", "Attr", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&", 392 392 "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?", 393 393 "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", … … 440 440 } 441 441 442 CompositeExprNode::CompositeExprNode( const CompositeExprNode &other ) : ExpressionNode( other ), function( maybeClone( other.function ) ) {442 CompositeExprNode::CompositeExprNode( const CompositeExprNode &other ) : ExpressionNode( other ), function( maybeClone( other.function ) ), arguments( 0 ) { 443 443 ParseNode *cur = other.arguments; 444 444 while ( cur ) { … … 466 466 467 467 if ( ! ( op = dynamic_cast<OperatorNode *>( function ) ) ) { // function as opposed to operator 468 return new UntypedExpr( function->build(), args, maybeBuild< Expression >( get_argName() ));468 return new UntypedExpr( maybeBuild<Expression>(function), args, maybeBuild< Expression >( get_argName() )); 469 469 } // if 470 470 … … 550 550 if ( dynamic_cast< VoidType* >( targetType ) ) { 551 551 delete targetType; 552 return new CastExpr( expr_node->build(), maybeBuild< Expression >( get_argName() ) );552 return new CastExpr( maybeBuild<Expression>(expr_node), maybeBuild< Expression >( get_argName() ) ); 553 553 } else { 554 return new CastExpr( expr_node->build(),targetType, maybeBuild< Expression >( get_argName() ) );554 return new CastExpr( maybeBuild<Expression>(expr_node),targetType, maybeBuild< Expression >( get_argName() ) ); 555 555 } // if 556 556 } … … 608 608 { 609 609 assert( args.size() == 2 ); 610 610 611 611 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args() ) ) { 612 612 NameExpr *member = dynamic_cast<NameExpr *>( args.back() ); … … 621 621 assert( var ); 622 622 if ( ! get_args()->get_link() ) { 623 return new AttrExpr( var->build(), ( Expression*)0);623 return new AttrExpr( maybeBuild<Expression>(var), ( Expression*)0); 624 624 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link()) ) { 625 return new AttrExpr( var->build(), arg->get_decl()->buildType());625 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType()); 626 626 } else { 627 return new AttrExpr( var->build(), args.back()); 628 } // if 629 } 630 case OperatorNode::CompLit: 631 throw UnimplementedError( "C99 compound literals" ); 632 // the short-circuited operators 627 return new AttrExpr( maybeBuild<Expression>(var), args.back()); 628 } // if 629 } 633 630 case OperatorNode::Or: 634 631 case OperatorNode::And: … … 719 716 720 717 Expression *AsmExprNode::build() const { 721 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *) constraint->build(), operand->build() );718 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)maybeBuild<Expression>(constraint), maybeBuild<Expression>(operand) ); 722 719 } 723 720 … … 796 793 797 794 Expression *ValofExprNode::build() const { 798 return new UntypedValofExpr ( get_body()->build(), maybeBuild< Expression >( get_argName() ) );795 return new UntypedValofExpr ( maybeBuild<Statement>(get_body()), maybeBuild< Expression >( get_argName() ) ); 799 796 } 800 797 … … 908 905 909 906 Expression *CompoundLiteralNode::build() const { 910 Declaration * newDecl = type->build();// compound literal type907 Declaration * newDecl = maybeBuild<Declaration>(type); // compound literal type 911 908 if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type 912 return new CompoundLiteralExpr( newDeclWithType->get_type(), kids->build() );909 return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild<Initializer>(kids) ); 913 910 // these types do not have associated type information 914 911 } else if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( newDecl ) ) { 915 return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), kids->build() );912 return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybeBuild<Initializer>(kids) ); 916 913 } else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( newDecl ) ) { 917 return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), kids->build() );914 return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybeBuild<Initializer>(kids) ); 918 915 } else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( newDecl ) ) { 919 return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), kids->build() );916 return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybeBuild<Initializer>(kids) ); 920 917 } else { 921 918 assert( false ); -
src/Parser/InitializerNode.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // InitializerNode.cc -- 8 // 7 // InitializerNode.cc -- 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:20:24 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Thu Oct 8 17:18:55 201513 // Update Count : 414 // 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Jan 07 13:32:57 2016 13 // Update Count : 13 14 // 15 15 16 16 #include <cassert> … … 23 23 24 24 InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des ) 25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ) {25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 26 26 if ( aggrp ) 27 27 kids = dynamic_cast< InitializerNode *>( get_link() ); … … 32 32 33 33 InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des ) 34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ) {34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 35 35 if ( init != 0 ) 36 36 set_link(init); … … 91 91 } // if 92 92 93 return new ListInit( initlist, designlist );93 return new ListInit( initlist, designlist, maybeConstructed ); 94 94 } else { 95 95 std::list< Expression *> designators; … … 99 99 100 100 if ( get_expression() != 0) 101 return new SingleInit( get_expression()->build(), designators );101 return new SingleInit( get_expression()->build(), designators, maybeConstructed ); 102 102 } // if 103 103 -
src/Parser/ParseNode.h
r1b5c81ed rf80e0218 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:28:16 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon Apr 11 11:50:52201613 // Update Count : 2 0511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 27 23:28:10 2016 13 // Update Count : 242 14 14 // 15 15 … … 20 20 #include <list> 21 21 #include <iterator> 22 #include <memory> 22 23 23 24 #include "Common/utility.h" 24 25 #include "Parser/LinkageSpec.h" 25 26 #include "SynTree/Type.h" 27 #include "SynTree/Expression.h" 26 28 //#include "SynTree/Declaration.h" 27 29 #include "Common/UniqueName.h" 30 #include "SynTree/Label.h" 28 31 29 32 class ExpressionNode; … … 79 82 ExpressionNode *set_argName( const std::string *aName ); 80 83 ExpressionNode *set_argName( ExpressionNode *aDesignator ); 84 bool get_extension() const { return extension; } 85 ExpressionNode *set_extension( bool exten ) { extension = exten; return this; } 81 86 82 87 virtual void print( std::ostream &, int indent = 0) const = 0; … … 87 92 void printDesignation ( std::ostream &, int indent = 0) const; 88 93 private: 89 ExpressionNode *argName; 94 ExpressionNode *argName = 0; 95 bool extension = false; 96 }; 97 98 template< typename T > 99 struct maybeBuild_t<Expression, T> { 100 static inline Expression * doit( const T *orig ) { 101 if ( orig ) { 102 Expression *p = orig->build(); 103 p->set_extension( orig->get_extension() ); 104 return p; 105 } else { 106 return 0; 107 } // if 108 } 90 109 }; 91 110 … … 179 198 Cond, NCond, 180 199 // diadic 181 SizeOf, AlignOf, OffsetOf, Attr, CompLit,Plus, Minus, Mul, Div, Mod, Or, And,200 SizeOf, AlignOf, OffsetOf, Attr, Plus, Minus, Mul, Div, Mod, Or, And, 182 201 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 183 202 Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn, … … 185 204 // monadic 186 205 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress, 206 Ctor, Dtor, 187 207 }; 188 208 … … 265 285 virtual void printOneLine( std::ostream &, int indent = 0) const; 266 286 267 const std::list< std::string> &get_labels() const { return labels; };287 const std::list< Label > &get_labels() const { return labels; }; 268 288 void append_label( std::string *label ) { labels.push_back( *label ); delete label; } 269 289 private: 270 std::list< std::string> labels;290 std::list< Label > labels; 271 291 }; 272 292 … … 406 426 ExpressionNode *get_enumeratorValue() const { return enumeratorValue; } 407 427 428 bool get_extension() const { return extension; } 429 DeclarationNode *set_extension( bool exten ) { extension = exten; return this; } 430 408 431 DeclarationNode(); 409 432 ~DeclarationNode(); … … 421 444 bool hasEllipsis; 422 445 LinkageSpec::Type linkage; 446 bool extension = false; 423 447 424 448 static UniqueName anonymous; … … 457 481 void addDeclaration( DeclarationNode *newDecl ) { decl = newDecl; } 458 482 void setCatchRest( bool newVal ) { isCatchRest = newVal; } 483 484 bool get_extension() const { return extension; } 485 StatementNode *set_extension( bool exten ) { extension = exten; return this; } 459 486 460 487 std::string get_target() const; … … 476 503 DeclarationNode *decl; 477 504 bool isCatchRest; 505 bool extension = false; 478 506 }; // StatementNode 479 507 … … 505 533 ExpressionNode *output, *input; 506 534 ConstantNode *clobber; 507 std::list< std::string> gotolabels;535 std::list< Label > gotolabels; 508 536 }; 509 537 … … 524 552 InitializerNode *set_designators( ExpressionNode *des ) { designator = des; return this; } 525 553 ExpressionNode *get_designators() const { return designator; } 554 555 InitializerNode *set_maybeConstructed( bool value ) { maybeConstructed = value; return this; } 556 bool get_maybeConstructed() const { return maybeConstructed; } 526 557 527 558 InitializerNode *next_init() const { return kids; } … … 536 567 ExpressionNode *designator; // may be list 537 568 InitializerNode *kids; 569 bool maybeConstructed; 538 570 }; 539 571 … … 569 601 while ( cur ) { 570 602 try { 571 SynTreeType *result = dynamic_cast< SynTreeType *>( cur->build() ); 603 // SynTreeType *result = dynamic_cast< SynTreeType *>( maybeBuild<typename std::result_of<decltype(&NodeType::build)(NodeType)>::type>( cur ) ); 604 SynTreeType *result = dynamic_cast< SynTreeType *>( maybeBuild<typename std::pointer_traits<decltype(cur->build())>::element_type>( cur ) ); 572 605 if ( result ) { 573 606 *out++ = result; -
src/Parser/StatementNode.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // StatementNode.cc -- 7 // StatementNode.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Ju l 30 14:39:39 201513 // Update Count : 13 012 // Last Modified On : Thu Jun 9 14:18:46 2016 13 // Update Count : 132 14 14 // 15 15 … … 27 27 28 28 const char *StatementNode::StType[] = { 29 "Exp", "If", "Switch", "Case", "Default", "Choose", "Fallthru", 30 "While", "Do", "For", 29 "Exp", "If", "Switch", "Case", "Default", "Choose", "Fallthru", 30 "While", "Do", "For", 31 31 "Goto", "Continue", "Break", "Return", "Throw", 32 32 "Try", "Catch", "Finally", "Asm", … … 62 62 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block ) : type( t ), control( ctrl_label ), block( block ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) { 63 63 this->control = ( t == Default ) ? 0 : control; 64 } 64 } 65 65 66 66 StatementNode::StatementNode( Type t, string *target ) : type( t ), control( 0 ), block( 0 ), labels( 0 ), target( target ), decl( 0 ), isCatchRest ( false ) {} … … 74 74 75 75 StatementNode * StatementNode::newCatchStmt( DeclarationNode *d, StatementNode *s, bool catchRestP ) { 76 StatementNode *ret = new StatementNode( StatementNode::Catch, 0, s ); 76 StatementNode *ret = new StatementNode( StatementNode::Catch, 0, s ); 77 77 ret->addDeclaration( d ); 78 78 ret->setCatchRest( catchRestP ); … … 101 101 StatementNode *StatementNode::add_label( const std::string *l ) { 102 102 if ( l != 0 ) { 103 labels.push_front( *l ); 103 labels.push_front( *l ); 104 104 delete l; 105 105 } // if … … 156 156 control->print( os, indent ); 157 157 os << endl; 158 } else 158 } else 159 159 os << string( indent, ' ' ) << "Null Statement" << endl; 160 160 break; … … 177 177 if ( block ) { 178 178 os << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl; 179 block->printList( os, indent + 2 * ParseNode::indent_by ); 179 block->printList( os, indent + 2 * ParseNode::indent_by ); 180 180 } // if 181 181 if ( target ) { … … 222 222 branches.pop_front(); 223 223 } // if 224 return new IfStmt( labs, notZeroExpr( get_control()->build() ), thenb, elseb );224 return new IfStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), thenb, elseb ); 225 225 } 226 226 case While: 227 227 assert( branches.size() == 1 ); 228 return new WhileStmt( labs, notZeroExpr( get_control()->build() ), branches.front() );228 return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front() ); 229 229 case Do: 230 230 assert( branches.size() == 1 ); 231 return new WhileStmt( labs, notZeroExpr( get_control()->build() ), branches.front(), true );231 return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front(), true ); 232 232 case For: 233 233 { … … 244 244 Expression *cond = 0; 245 245 if ( ctl->get_condition() != 0 ) 246 cond = notZeroExpr( ctl->get_condition()->build() );246 cond = notZeroExpr( maybeBuild<Expression>(ctl->get_condition()) ); 247 247 248 248 Expression *incr = 0; 249 249 if ( ctl->get_change() != 0 ) 250 incr = ctl->get_change()->build();250 incr = maybeBuild<Expression>(ctl->get_change()); 251 251 252 252 return new ForStmt( labs, init, cond, incr, branches.front() ); 253 253 } 254 254 case Switch: 255 return new SwitchStmt( labs, get_control()->build(), branches );255 return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches ); 256 256 case Choose: 257 return new ChooseStmt( labs, get_control()->build(), branches );257 return new ChooseStmt( labs, maybeBuild<Expression>(get_control()), branches ); 258 258 case Fallthru: 259 259 return new FallthruStmt( labs ); 260 case Case: 261 return new CaseStmt( labs, get_control()->build(), branches );260 case Case: 261 return new CaseStmt( labs, maybeBuild<Expression>(get_control()), branches ); 262 262 case Default: 263 263 return new CaseStmt( labs, 0, branches, true ); … … 266 266 if ( get_target() == "" ) { // computed goto 267 267 assert( get_control() != 0 ); 268 return new BranchStmt( labs, get_control()->build(), BranchStmt::Goto );268 return new BranchStmt( labs, maybeBuild<Expression>(get_control()), BranchStmt::Goto ); 269 269 } // if 270 270 … … 394 394 os << string( indent + ParseNode::indent_by, ' ' ) << "Goto Labels:" << endl; 395 395 os << string( indent + 2 * ParseNode::indent_by, ' ' ); 396 for ( std::list< std::string>::const_iterator i = gotolabels.begin();; ) {396 for ( std::list<Label>::const_iterator i = gotolabels.begin();; ) { 397 397 os << *i; 398 398 i++; … … 426 426 } 427 427 428 Statement *NullStmtNode::build() const { 428 Statement *NullStmtNode::build() const { 429 429 return new NullStmt; 430 430 } -
src/Parser/TypeData.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeData.cc -- 7 // TypeData.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:12:51 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Mar 2 17:26:45201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Apr 06 16:57:53 2016 13 13 // Update Count : 49 14 14 // … … 449 449 for ( std::list< TypeDecl* >::iterator i = outputList.begin(); i != outputList.end(); ++i ) { 450 450 if ( (*i)->get_kind() == TypeDecl::Any ) { 451 // add assertion parameters to `type' tyvars in reverse order 452 // add dtor: void ^?{}(T *) 453 FunctionType *dtorType = new FunctionType( Type::Qualifiers(), false ); 454 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 455 (*i)->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, 0, false, false ) ); 456 457 // add copy ctor: void ?{}(T *, T) 458 FunctionType *copyCtorType = new FunctionType( Type::Qualifiers(), false ); 459 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 460 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); 461 (*i)->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, copyCtorType, 0, false, false ) ); 462 463 // add default ctor: void ?{}(T *) 464 FunctionType *ctorType = new FunctionType( Type::Qualifiers(), false ); 465 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 466 (*i)->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, 0, false, false ) ); 467 468 // add assignment operator: T * ?=?(T *, T) 451 469 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false ); 452 470 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); … … 902 920 if ( cur->get_enumeratorValue() != NULL ) { 903 921 ObjectDecl *member = dynamic_cast<ObjectDecl *>(*members); 904 member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ) ) );922 member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ), std::list< Expression * >() ) ); 905 923 } // if 906 924 } // for -
src/Parser/lex.cc
r1b5c81ed rf80e0218 1467 1467 * Created On : Sat Sep 22 08:58:10 2001 1468 1468 * Last Modified By : Peter A. Buhr 1469 * Last Modified On : Mon Mar 21 23:33:4620161470 * Update Count : 45 01469 * Last Modified On : Thu Jun 23 07:29:30 2016 1470 * Update Count : 457 1471 1471 */ 1472 1472 #line 20 "lex.ll" … … 1502 1502 1503 1503 void rm_underscore() { 1504 // remove underscores in numeric constant1505 int j= 0;1504 // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string. 1505 yyleng = 0; 1506 1506 for ( int i = 0; yytext[i] != '\0'; i += 1 ) { 1507 1507 if ( yytext[i] != '_' ) { 1508 yytext[ j] = yytext[i];1509 j+= 1;1508 yytext[yyleng] = yytext[i]; 1509 yyleng += 1; 1510 1510 } // if 1511 1511 } // for 1512 yyleng = j;1513 1512 yytext[yyleng] = '\0'; 1514 1513 } … … 1523 1522 // ' stop highlighting 1524 1523 // display/white-space characters 1525 // operators 1526 1527 1528 1529 1530 #line 1531 "Parser/lex.cc" 1524 // overloadable operators 1525 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@=" 1526 // operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over} 1527 1528 1529 1530 1531 #line 1532 "Parser/lex.cc" 1531 1532 1532 1533 #define INITIAL 0 … … 1720 1721 register int yy_act; 1721 1722 1722 #line 13 9"lex.ll"1723 #line 138 "lex.ll" 1723 1724 1724 1725 /* line directives */ 1725 #line 172 6"Parser/lex.cc"1726 #line 1727 "Parser/lex.cc" 1726 1727 1727 1728 if ( !(yy_init) ) … … 1820 1821 /* rule 1 can match eol */ 1821 1822 YY_RULE_SETUP 1822 #line 14 1"lex.ll"1823 #line 140 "lex.ll" 1823 1824 { 1824 1825 /* " stop highlighting */ … … 1847 1848 /* rule 2 can match eol */ 1848 1849 YY_RULE_SETUP 1849 #line 16 4"lex.ll"1850 #line 163 "lex.ll" 1850 1851 ; 1851 1852 YY_BREAK … … 1853 1854 case 3: 1854 1855 YY_RULE_SETUP 1855 #line 16 7"lex.ll"1856 #line 166 "lex.ll" 1856 1857 { BEGIN COMMENT; } 1857 1858 YY_BREAK … … 1859 1860 /* rule 4 can match eol */ 1860 1861 YY_RULE_SETUP 1862 #line 167 "lex.ll" 1863 ; 1864 YY_BREAK 1865 case 5: 1866 YY_RULE_SETUP 1861 1867 #line 168 "lex.ll" 1862 ;1863 YY_BREAK1864 case 5:1865 YY_RULE_SETUP1866 #line 169 "lex.ll"1867 1868 { BEGIN 0; } 1868 1869 YY_BREAK … … 1871 1872 /* rule 6 can match eol */ 1872 1873 YY_RULE_SETUP 1873 #line 17 2"lex.ll"1874 #line 171 "lex.ll" 1874 1875 ; 1875 1876 YY_BREAK … … 1877 1878 case 7: 1878 1879 YY_RULE_SETUP 1880 #line 174 "lex.ll" 1881 { WHITE_RETURN(' '); } 1882 YY_BREAK 1883 case 8: 1884 YY_RULE_SETUP 1879 1885 #line 175 "lex.ll" 1880 1886 { WHITE_RETURN(' '); } 1881 1887 YY_BREAK 1882 case 8:1883 YY_RULE_SETUP1884 #line 176 "lex.ll"1885 { WHITE_RETURN(' '); }1886 YY_BREAK1887 1888 case 9: 1888 1889 /* rule 9 can match eol */ 1889 1890 YY_RULE_SETUP 1890 #line 17 7"lex.ll"1891 #line 176 "lex.ll" 1891 1892 { NEWLINE_RETURN(); } 1892 1893 YY_BREAK … … 1894 1895 case 10: 1895 1896 YY_RULE_SETUP 1897 #line 179 "lex.ll" 1898 { KEYWORD_RETURN(ALIGNAS); } // C11 1899 YY_BREAK 1900 case 11: 1901 YY_RULE_SETUP 1896 1902 #line 180 "lex.ll" 1897 { KEYWORD_RETURN(ALIGN AS); } // C111898 YY_BREAK 1899 case 1 1:1903 { KEYWORD_RETURN(ALIGNOF); } // C11 1904 YY_BREAK 1905 case 12: 1900 1906 YY_RULE_SETUP 1901 1907 #line 181 "lex.ll" 1902 { KEYWORD_RETURN(ALIGNOF); } // C111903 YY_BREAK 1904 case 1 2:1908 { KEYWORD_RETURN(ALIGNOF); } // GCC 1909 YY_BREAK 1910 case 13: 1905 1911 YY_RULE_SETUP 1906 1912 #line 182 "lex.ll" 1907 1913 { KEYWORD_RETURN(ALIGNOF); } // GCC 1908 1914 YY_BREAK 1909 case 1 3:1915 case 14: 1910 1916 YY_RULE_SETUP 1911 1917 #line 183 "lex.ll" 1912 { KEYWORD_RETURN(A LIGNOF); } // GCC1913 YY_BREAK 1914 case 1 4:1918 { KEYWORD_RETURN(ASM); } 1919 YY_BREAK 1920 case 15: 1915 1921 YY_RULE_SETUP 1916 1922 #line 184 "lex.ll" 1917 { KEYWORD_RETURN(ASM); } 1918 YY_BREAK 1919 case 1 5:1923 { KEYWORD_RETURN(ASM); } // GCC 1924 YY_BREAK 1925 case 16: 1920 1926 YY_RULE_SETUP 1921 1927 #line 185 "lex.ll" 1922 1928 { KEYWORD_RETURN(ASM); } // GCC 1923 1929 YY_BREAK 1924 case 1 6:1930 case 17: 1925 1931 YY_RULE_SETUP 1926 1932 #line 186 "lex.ll" 1927 { KEYWORD_RETURN(A SM); } // GCC1928 YY_BREAK 1929 case 1 7:1933 { KEYWORD_RETURN(AT); } // CFA 1934 YY_BREAK 1935 case 18: 1930 1936 YY_RULE_SETUP 1931 1937 #line 187 "lex.ll" 1932 { KEYWORD_RETURN(AT ); } // CFA1933 YY_BREAK 1934 case 1 8:1938 { KEYWORD_RETURN(ATOMIC); } // C11 1939 YY_BREAK 1940 case 19: 1935 1941 YY_RULE_SETUP 1936 1942 #line 188 "lex.ll" 1937 { KEYWORD_RETURN(AT OMIC); } // C111938 YY_BREAK 1939 case 19:1943 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 1944 YY_BREAK 1945 case 20: 1940 1946 YY_RULE_SETUP 1941 1947 #line 189 "lex.ll" 1942 1948 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 1943 1949 YY_BREAK 1944 case 2 0:1950 case 21: 1945 1951 YY_RULE_SETUP 1946 1952 #line 190 "lex.ll" 1947 { KEYWORD_RETURN(A TTRIBUTE); } // GCC1948 YY_BREAK 1949 case 2 1:1953 { KEYWORD_RETURN(AUTO); } 1954 YY_BREAK 1955 case 22: 1950 1956 YY_RULE_SETUP 1951 1957 #line 191 "lex.ll" 1952 { KEYWORD_RETURN( AUTO); }1953 YY_BREAK 1954 case 2 2:1958 { KEYWORD_RETURN(BOOL); } // C99 1959 YY_BREAK 1960 case 23: 1955 1961 YY_RULE_SETUP 1956 1962 #line 192 "lex.ll" 1957 { KEYWORD_RETURN(B OOL); } // C991958 YY_BREAK 1959 case 2 3:1963 { KEYWORD_RETURN(BREAK); } 1964 YY_BREAK 1965 case 24: 1960 1966 YY_RULE_SETUP 1961 1967 #line 193 "lex.ll" 1962 { KEYWORD_RETURN( BREAK); }1963 YY_BREAK 1964 case 2 4:1968 { KEYWORD_RETURN(CASE); } 1969 YY_BREAK 1970 case 25: 1965 1971 YY_RULE_SETUP 1966 1972 #line 194 "lex.ll" 1967 { KEYWORD_RETURN(CA SE); }1968 YY_BREAK 1969 case 2 5:1973 { KEYWORD_RETURN(CATCH); } // CFA 1974 YY_BREAK 1975 case 26: 1970 1976 YY_RULE_SETUP 1971 1977 #line 195 "lex.ll" 1972 { KEYWORD_RETURN(CATCH ); }// CFA1973 YY_BREAK 1974 case 2 6:1978 { KEYWORD_RETURN(CATCHRESUME); } // CFA 1979 YY_BREAK 1980 case 27: 1975 1981 YY_RULE_SETUP 1976 1982 #line 196 "lex.ll" 1977 { KEYWORD_RETURN(C ATCHRESUME); } // CFA1978 YY_BREAK 1979 case 2 7:1983 { KEYWORD_RETURN(CHAR); } 1984 YY_BREAK 1985 case 28: 1980 1986 YY_RULE_SETUP 1981 1987 #line 197 "lex.ll" 1982 { KEYWORD_RETURN(CH AR); }1983 YY_BREAK 1984 case 2 8:1988 { KEYWORD_RETURN(CHOOSE); } // CFA 1989 YY_BREAK 1990 case 29: 1985 1991 YY_RULE_SETUP 1986 1992 #line 198 "lex.ll" 1987 { KEYWORD_RETURN(C HOOSE); } // CFA1988 YY_BREAK 1989 case 29:1993 { KEYWORD_RETURN(COMPLEX); } // C99 1994 YY_BREAK 1995 case 30: 1990 1996 YY_RULE_SETUP 1991 1997 #line 199 "lex.ll" 1992 { KEYWORD_RETURN(COMPLEX); } // C991993 YY_BREAK 1994 case 3 0:1998 { KEYWORD_RETURN(COMPLEX); } // GCC 1999 YY_BREAK 2000 case 31: 1995 2001 YY_RULE_SETUP 1996 2002 #line 200 "lex.ll" 1997 2003 { KEYWORD_RETURN(COMPLEX); } // GCC 1998 2004 YY_BREAK 1999 case 3 1:2005 case 32: 2000 2006 YY_RULE_SETUP 2001 2007 #line 201 "lex.ll" 2002 { KEYWORD_RETURN(CO MPLEX); } // GCC2003 YY_BREAK 2004 case 3 2:2008 { KEYWORD_RETURN(CONST); } 2009 YY_BREAK 2010 case 33: 2005 2011 YY_RULE_SETUP 2006 2012 #line 202 "lex.ll" 2007 { KEYWORD_RETURN(CONST); } 2008 YY_BREAK 2009 case 3 3:2013 { KEYWORD_RETURN(CONST); } // GCC 2014 YY_BREAK 2015 case 34: 2010 2016 YY_RULE_SETUP 2011 2017 #line 203 "lex.ll" 2012 2018 { KEYWORD_RETURN(CONST); } // GCC 2013 2019 YY_BREAK 2014 case 3 4:2020 case 35: 2015 2021 YY_RULE_SETUP 2016 2022 #line 204 "lex.ll" 2017 { KEYWORD_RETURN(CON ST); } // GCC2018 YY_BREAK 2019 case 3 5:2023 { KEYWORD_RETURN(CONTINUE); } 2024 YY_BREAK 2025 case 36: 2020 2026 YY_RULE_SETUP 2021 2027 #line 205 "lex.ll" 2022 { KEYWORD_RETURN( CONTINUE); }2023 YY_BREAK 2024 case 3 6:2028 { KEYWORD_RETURN(DEFAULT); } 2029 YY_BREAK 2030 case 37: 2025 2031 YY_RULE_SETUP 2026 2032 #line 206 "lex.ll" 2027 { KEYWORD_RETURN(D EFAULT); }2028 YY_BREAK 2029 case 3 7:2033 { KEYWORD_RETURN(DISABLE); } // CFA 2034 YY_BREAK 2035 case 38: 2030 2036 YY_RULE_SETUP 2031 2037 #line 207 "lex.ll" 2032 { KEYWORD_RETURN(D ISABLE); } // CFA2033 YY_BREAK 2034 case 3 8:2038 { KEYWORD_RETURN(DO); } 2039 YY_BREAK 2040 case 39: 2035 2041 YY_RULE_SETUP 2036 2042 #line 208 "lex.ll" 2037 { KEYWORD_RETURN(DO ); }2038 YY_BREAK 2039 case 39:2043 { KEYWORD_RETURN(DOUBLE); } 2044 YY_BREAK 2045 case 40: 2040 2046 YY_RULE_SETUP 2041 2047 #line 209 "lex.ll" 2042 { KEYWORD_RETURN(D OUBLE); }2043 YY_BREAK 2044 case 4 0:2048 { KEYWORD_RETURN(DTYPE); } // CFA 2049 YY_BREAK 2050 case 41: 2045 2051 YY_RULE_SETUP 2046 2052 #line 210 "lex.ll" 2047 { KEYWORD_RETURN( DTYPE); } // CFA2048 YY_BREAK 2049 case 4 1:2053 { KEYWORD_RETURN(ELSE); } 2054 YY_BREAK 2055 case 42: 2050 2056 YY_RULE_SETUP 2051 2057 #line 211 "lex.ll" 2052 { KEYWORD_RETURN(E LSE); }2053 YY_BREAK 2054 case 4 2:2058 { KEYWORD_RETURN(ENABLE); } // CFA 2059 YY_BREAK 2060 case 43: 2055 2061 YY_RULE_SETUP 2056 2062 #line 212 "lex.ll" 2057 { KEYWORD_RETURN(EN ABLE); } // CFA2058 YY_BREAK 2059 case 4 3:2063 { KEYWORD_RETURN(ENUM); } 2064 YY_BREAK 2065 case 44: 2060 2066 YY_RULE_SETUP 2061 2067 #line 213 "lex.ll" 2062 { KEYWORD_RETURN(E NUM); }2063 YY_BREAK 2064 case 4 4:2068 { KEYWORD_RETURN(EXTENSION); } // GCC 2069 YY_BREAK 2070 case 45: 2065 2071 YY_RULE_SETUP 2066 2072 #line 214 "lex.ll" 2067 { KEYWORD_RETURN(EXTE NSION); } // GCC2068 YY_BREAK 2069 case 4 5:2073 { KEYWORD_RETURN(EXTERN); } 2074 YY_BREAK 2075 case 46: 2070 2076 YY_RULE_SETUP 2071 2077 #line 215 "lex.ll" 2072 { KEYWORD_RETURN( EXTERN); }2073 YY_BREAK 2074 case 4 6:2078 { KEYWORD_RETURN(FALLTHRU); } // CFA 2079 YY_BREAK 2080 case 47: 2075 2081 YY_RULE_SETUP 2076 2082 #line 216 "lex.ll" 2077 { KEYWORD_RETURN(F ALLTHRU); } // CFA2078 YY_BREAK 2079 case 4 7:2083 { KEYWORD_RETURN(FINALLY); } // CFA 2084 YY_BREAK 2085 case 48: 2080 2086 YY_RULE_SETUP 2081 2087 #line 217 "lex.ll" 2082 { KEYWORD_RETURN(F INALLY); } // CFA2083 YY_BREAK 2084 case 4 8:2088 { KEYWORD_RETURN(FLOAT); } 2089 YY_BREAK 2090 case 49: 2085 2091 YY_RULE_SETUP 2086 2092 #line 218 "lex.ll" 2087 { KEYWORD_RETURN(FLOAT); } 2088 YY_BREAK 2089 case 49:2093 { KEYWORD_RETURN(FLOAT); } // GCC 2094 YY_BREAK 2095 case 50: 2090 2096 YY_RULE_SETUP 2091 2097 #line 219 "lex.ll" 2092 { KEYWORD_RETURN(F LOAT); } // GCC2093 YY_BREAK 2094 case 5 0:2098 { KEYWORD_RETURN(FOR); } 2099 YY_BREAK 2100 case 51: 2095 2101 YY_RULE_SETUP 2096 2102 #line 220 "lex.ll" 2097 { KEYWORD_RETURN(FOR ); }2098 YY_BREAK 2099 case 5 1:2103 { KEYWORD_RETURN(FORALL); } // CFA 2104 YY_BREAK 2105 case 52: 2100 2106 YY_RULE_SETUP 2101 2107 #line 221 "lex.ll" 2102 { KEYWORD_RETURN(FOR ALL); } // CFA2103 YY_BREAK 2104 case 5 2:2108 { KEYWORD_RETURN(FORTRAN); } 2109 YY_BREAK 2110 case 53: 2105 2111 YY_RULE_SETUP 2106 2112 #line 222 "lex.ll" 2107 { KEYWORD_RETURN(F ORTRAN); }2108 YY_BREAK 2109 case 5 3:2113 { KEYWORD_RETURN(FTYPE); } // CFA 2114 YY_BREAK 2115 case 54: 2110 2116 YY_RULE_SETUP 2111 2117 #line 223 "lex.ll" 2112 { KEYWORD_RETURN( FTYPE); } // CFA2113 YY_BREAK 2114 case 5 4:2118 { KEYWORD_RETURN(GENERIC); } // C11 2119 YY_BREAK 2120 case 55: 2115 2121 YY_RULE_SETUP 2116 2122 #line 224 "lex.ll" 2117 { KEYWORD_RETURN(G ENERIC); } // C112118 YY_BREAK 2119 case 5 5:2123 { KEYWORD_RETURN(GOTO); } 2124 YY_BREAK 2125 case 56: 2120 2126 YY_RULE_SETUP 2121 2127 #line 225 "lex.ll" 2122 { KEYWORD_RETURN( GOTO); }2123 YY_BREAK 2124 case 5 6:2128 { KEYWORD_RETURN(IF); } 2129 YY_BREAK 2130 case 57: 2125 2131 YY_RULE_SETUP 2126 2132 #line 226 "lex.ll" 2127 { KEYWORD_RETURN(I F); }2128 YY_BREAK 2129 case 5 7:2133 { KEYWORD_RETURN(IMAGINARY); } // C99 2134 YY_BREAK 2135 case 58: 2130 2136 YY_RULE_SETUP 2131 2137 #line 227 "lex.ll" 2132 { KEYWORD_RETURN(IMAGINARY); } // C992133 YY_BREAK 2134 case 5 8:2138 { KEYWORD_RETURN(IMAGINARY); } // GCC 2139 YY_BREAK 2140 case 59: 2135 2141 YY_RULE_SETUP 2136 2142 #line 228 "lex.ll" 2137 2143 { KEYWORD_RETURN(IMAGINARY); } // GCC 2138 2144 YY_BREAK 2139 case 59:2145 case 60: 2140 2146 YY_RULE_SETUP 2141 2147 #line 229 "lex.ll" 2142 { KEYWORD_RETURN(I MAGINARY); } // GCC2143 YY_BREAK 2144 case 6 0:2148 { KEYWORD_RETURN(INLINE); } // C99 2149 YY_BREAK 2150 case 61: 2145 2151 YY_RULE_SETUP 2146 2152 #line 230 "lex.ll" 2147 { KEYWORD_RETURN(INLINE); } // C992148 YY_BREAK 2149 case 6 1:2153 { KEYWORD_RETURN(INLINE); } // GCC 2154 YY_BREAK 2155 case 62: 2150 2156 YY_RULE_SETUP 2151 2157 #line 231 "lex.ll" 2152 2158 { KEYWORD_RETURN(INLINE); } // GCC 2153 2159 YY_BREAK 2154 case 6 2:2160 case 63: 2155 2161 YY_RULE_SETUP 2156 2162 #line 232 "lex.ll" 2157 { KEYWORD_RETURN(IN LINE); } // GCC2158 YY_BREAK 2159 case 6 3:2163 { KEYWORD_RETURN(INT); } 2164 YY_BREAK 2165 case 64: 2160 2166 YY_RULE_SETUP 2161 2167 #line 233 "lex.ll" 2162 { KEYWORD_RETURN(INT); } 2163 YY_BREAK 2164 case 6 4:2168 { KEYWORD_RETURN(INT); } // GCC 2169 YY_BREAK 2170 case 65: 2165 2171 YY_RULE_SETUP 2166 2172 #line 234 "lex.ll" 2167 { KEYWORD_RETURN( INT); } // GCC2168 YY_BREAK 2169 case 6 5:2173 { KEYWORD_RETURN(LABEL); } // GCC 2174 YY_BREAK 2175 case 66: 2170 2176 YY_RULE_SETUP 2171 2177 #line 235 "lex.ll" 2172 { KEYWORD_RETURN(L ABEL); } // GCC2173 YY_BREAK 2174 case 6 6:2178 { KEYWORD_RETURN(LONG); } 2179 YY_BREAK 2180 case 67: 2175 2181 YY_RULE_SETUP 2176 2182 #line 236 "lex.ll" 2177 { KEYWORD_RETURN(L ONG); }2178 YY_BREAK 2179 case 6 7:2183 { KEYWORD_RETURN(LVALUE); } // CFA 2184 YY_BREAK 2185 case 68: 2180 2186 YY_RULE_SETUP 2181 2187 #line 237 "lex.ll" 2182 { KEYWORD_RETURN( LVALUE); } // CFA2183 YY_BREAK 2184 case 6 8:2188 { KEYWORD_RETURN(NORETURN); } // C11 2189 YY_BREAK 2190 case 69: 2185 2191 YY_RULE_SETUP 2186 2192 #line 238 "lex.ll" 2187 { KEYWORD_RETURN( NORETURN); } // C112188 YY_BREAK 2189 case 69:2193 { KEYWORD_RETURN(OFFSETOF); } // GCC 2194 YY_BREAK 2195 case 70: 2190 2196 YY_RULE_SETUP 2191 2197 #line 239 "lex.ll" 2192 { KEYWORD_RETURN(O FFSETOF); } // GCC2193 YY_BREAK 2194 case 7 0:2198 { KEYWORD_RETURN(OTYPE); } // CFA 2199 YY_BREAK 2200 case 71: 2195 2201 YY_RULE_SETUP 2196 2202 #line 240 "lex.ll" 2197 { KEYWORD_RETURN( OTYPE); } // CFA2198 YY_BREAK 2199 case 7 1:2203 { KEYWORD_RETURN(REGISTER); } 2204 YY_BREAK 2205 case 72: 2200 2206 YY_RULE_SETUP 2201 2207 #line 241 "lex.ll" 2202 { KEYWORD_RETURN(RE GISTER); }2203 YY_BREAK 2204 case 7 2:2208 { KEYWORD_RETURN(RESTRICT); } // C99 2209 YY_BREAK 2210 case 73: 2205 2211 YY_RULE_SETUP 2206 2212 #line 242 "lex.ll" 2207 { KEYWORD_RETURN(RESTRICT); } // C992208 YY_BREAK 2209 case 7 3:2213 { KEYWORD_RETURN(RESTRICT); } // GCC 2214 YY_BREAK 2215 case 74: 2210 2216 YY_RULE_SETUP 2211 2217 #line 243 "lex.ll" 2212 2218 { KEYWORD_RETURN(RESTRICT); } // GCC 2213 2219 YY_BREAK 2214 case 7 4:2220 case 75: 2215 2221 YY_RULE_SETUP 2216 2222 #line 244 "lex.ll" 2217 { KEYWORD_RETURN(RE STRICT); } // GCC2218 YY_BREAK 2219 case 7 5:2223 { KEYWORD_RETURN(RETURN); } 2224 YY_BREAK 2225 case 76: 2220 2226 YY_RULE_SETUP 2221 2227 #line 245 "lex.ll" 2222 { KEYWORD_RETURN( RETURN); }2223 YY_BREAK 2224 case 7 6:2228 { KEYWORD_RETURN(SHORT); } 2229 YY_BREAK 2230 case 77: 2225 2231 YY_RULE_SETUP 2226 2232 #line 246 "lex.ll" 2227 { KEYWORD_RETURN(S HORT); }2228 YY_BREAK 2229 case 7 7:2233 { KEYWORD_RETURN(SIGNED); } 2234 YY_BREAK 2235 case 78: 2230 2236 YY_RULE_SETUP 2231 2237 #line 247 "lex.ll" 2232 { KEYWORD_RETURN(SIGNED); } 2233 YY_BREAK 2234 case 7 8:2238 { KEYWORD_RETURN(SIGNED); } // GCC 2239 YY_BREAK 2240 case 79: 2235 2241 YY_RULE_SETUP 2236 2242 #line 248 "lex.ll" 2237 2243 { KEYWORD_RETURN(SIGNED); } // GCC 2238 2244 YY_BREAK 2239 case 79:2245 case 80: 2240 2246 YY_RULE_SETUP 2241 2247 #line 249 "lex.ll" 2242 { KEYWORD_RETURN(SI GNED); } // GCC2243 YY_BREAK 2244 case 8 0:2248 { KEYWORD_RETURN(SIZEOF); } 2249 YY_BREAK 2250 case 81: 2245 2251 YY_RULE_SETUP 2246 2252 #line 250 "lex.ll" 2247 { KEYWORD_RETURN(S IZEOF); }2248 YY_BREAK 2249 case 8 1:2253 { KEYWORD_RETURN(STATIC); } 2254 YY_BREAK 2255 case 82: 2250 2256 YY_RULE_SETUP 2251 2257 #line 251 "lex.ll" 2252 { KEYWORD_RETURN(STATIC ); }2253 YY_BREAK 2254 case 8 2:2258 { KEYWORD_RETURN(STATICASSERT); } // C11 2259 YY_BREAK 2260 case 83: 2255 2261 YY_RULE_SETUP 2256 2262 #line 252 "lex.ll" 2257 { KEYWORD_RETURN(ST ATICASSERT); } // C112258 YY_BREAK 2259 case 8 3:2263 { KEYWORD_RETURN(STRUCT); } 2264 YY_BREAK 2265 case 84: 2260 2266 YY_RULE_SETUP 2261 2267 #line 253 "lex.ll" 2262 { KEYWORD_RETURN(S TRUCT); }2263 YY_BREAK 2264 case 8 4:2268 { KEYWORD_RETURN(SWITCH); } 2269 YY_BREAK 2270 case 85: 2265 2271 YY_RULE_SETUP 2266 2272 #line 254 "lex.ll" 2267 { KEYWORD_RETURN( SWITCH); }2268 YY_BREAK 2269 case 8 5:2273 { KEYWORD_RETURN(THREADLOCAL); } // C11 2274 YY_BREAK 2275 case 86: 2270 2276 YY_RULE_SETUP 2271 2277 #line 255 "lex.ll" 2272 { KEYWORD_RETURN(THR EADLOCAL); } // C112273 YY_BREAK 2274 case 8 6:2278 { KEYWORD_RETURN(THROW); } // CFA 2279 YY_BREAK 2280 case 87: 2275 2281 YY_RULE_SETUP 2276 2282 #line 256 "lex.ll" 2277 { KEYWORD_RETURN(THROW ); }// CFA2278 YY_BREAK 2279 case 8 7:2283 { KEYWORD_RETURN(THROWRESUME); } // CFA 2284 YY_BREAK 2285 case 88: 2280 2286 YY_RULE_SETUP 2281 2287 #line 257 "lex.ll" 2282 { KEYWORD_RETURN(T HROWRESUME); }// CFA2283 YY_BREAK 2284 case 8 8:2288 { KEYWORD_RETURN(TRAIT); } // CFA 2289 YY_BREAK 2290 case 89: 2285 2291 YY_RULE_SETUP 2286 2292 #line 258 "lex.ll" 2287 { KEYWORD_RETURN(TR AIT); } // CFA2288 YY_BREAK 2289 case 89:2293 { KEYWORD_RETURN(TRY); } // CFA 2294 YY_BREAK 2295 case 90: 2290 2296 YY_RULE_SETUP 2291 2297 #line 259 "lex.ll" 2292 { KEYWORD_RETURN(T RY); } // CFA2293 YY_BREAK 2294 case 9 0:2298 { KEYWORD_RETURN(TYPEDEF); } 2299 YY_BREAK 2300 case 91: 2295 2301 YY_RULE_SETUP 2296 2302 #line 260 "lex.ll" 2297 { KEYWORD_RETURN(TYPE DEF); }2298 YY_BREAK 2299 case 9 1:2303 { KEYWORD_RETURN(TYPEOF); } // GCC 2304 YY_BREAK 2305 case 92: 2300 2306 YY_RULE_SETUP 2301 2307 #line 261 "lex.ll" 2302 2308 { KEYWORD_RETURN(TYPEOF); } // GCC 2303 2309 YY_BREAK 2304 case 9 2:2310 case 93: 2305 2311 YY_RULE_SETUP 2306 2312 #line 262 "lex.ll" 2307 2313 { KEYWORD_RETURN(TYPEOF); } // GCC 2308 2314 YY_BREAK 2309 case 9 3:2315 case 94: 2310 2316 YY_RULE_SETUP 2311 2317 #line 263 "lex.ll" 2312 { KEYWORD_RETURN( TYPEOF); } // GCC2313 YY_BREAK 2314 case 9 4:2318 { KEYWORD_RETURN(UNION); } 2319 YY_BREAK 2320 case 95: 2315 2321 YY_RULE_SETUP 2316 2322 #line 264 "lex.ll" 2317 { KEYWORD_RETURN(UN ION); }2318 YY_BREAK 2319 case 9 5:2323 { KEYWORD_RETURN(UNSIGNED); } 2324 YY_BREAK 2325 case 96: 2320 2326 YY_RULE_SETUP 2321 2327 #line 265 "lex.ll" 2322 { KEYWORD_RETURN( UNSIGNED); }2323 YY_BREAK 2324 case 9 6:2328 { KEYWORD_RETURN(VALIST); } // GCC 2329 YY_BREAK 2330 case 97: 2325 2331 YY_RULE_SETUP 2326 2332 #line 266 "lex.ll" 2327 { KEYWORD_RETURN(V ALIST); } // GCC2328 YY_BREAK 2329 case 9 7:2333 { KEYWORD_RETURN(VOID); } 2334 YY_BREAK 2335 case 98: 2330 2336 YY_RULE_SETUP 2331 2337 #line 267 "lex.ll" 2332 { KEYWORD_RETURN(VO ID); }2333 YY_BREAK 2334 case 9 8:2338 { KEYWORD_RETURN(VOLATILE); } 2339 YY_BREAK 2340 case 99: 2335 2341 YY_RULE_SETUP 2336 2342 #line 268 "lex.ll" 2337 { KEYWORD_RETURN(VOLATILE); } 2338 YY_BREAK 2339 case 99:2343 { KEYWORD_RETURN(VOLATILE); } // GCC 2344 YY_BREAK 2345 case 100: 2340 2346 YY_RULE_SETUP 2341 2347 #line 269 "lex.ll" 2342 2348 { KEYWORD_RETURN(VOLATILE); } // GCC 2343 2349 YY_BREAK 2344 case 10 0:2350 case 101: 2345 2351 YY_RULE_SETUP 2346 2352 #line 270 "lex.ll" 2347 { KEYWORD_RETURN(VOLATILE); } // GCC2348 YY_BREAK2349 case 101:2350 YY_RULE_SETUP2351 #line 271 "lex.ll"2352 2353 { KEYWORD_RETURN(WHILE); } 2353 2354 YY_BREAK … … 2355 2356 case 102: 2356 2357 YY_RULE_SETUP 2358 #line 273 "lex.ll" 2359 { IDENTIFIER_RETURN(); } 2360 YY_BREAK 2361 case 103: 2362 YY_RULE_SETUP 2357 2363 #line 274 "lex.ll" 2364 { ATTRIBUTE_RETURN(); } 2365 YY_BREAK 2366 case 104: 2367 YY_RULE_SETUP 2368 #line 275 "lex.ll" 2369 { BEGIN BKQUOTE; } 2370 YY_BREAK 2371 case 105: 2372 YY_RULE_SETUP 2373 #line 276 "lex.ll" 2358 2374 { IDENTIFIER_RETURN(); } 2359 2375 YY_BREAK 2360 case 103: 2361 YY_RULE_SETUP 2362 #line 275 "lex.ll" 2363 { ATTRIBUTE_RETURN(); } 2364 YY_BREAK 2365 case 104: 2366 YY_RULE_SETUP 2367 #line 276 "lex.ll" 2368 { BEGIN BKQUOTE; } 2369 YY_BREAK 2370 case 105: 2376 case 106: 2371 2377 YY_RULE_SETUP 2372 2378 #line 277 "lex.ll" 2373 { IDENTIFIER_RETURN(); }2374 YY_BREAK2375 case 106:2376 YY_RULE_SETUP2377 #line 278 "lex.ll"2378 2379 { BEGIN 0; } 2379 2380 YY_BREAK … … 2381 2382 case 107: 2382 2383 YY_RULE_SETUP 2384 #line 280 "lex.ll" 2385 { NUMERIC_RETURN(ZERO); } // CFA 2386 YY_BREAK 2387 case 108: 2388 YY_RULE_SETUP 2383 2389 #line 281 "lex.ll" 2384 { NUMERIC_RETURN( ZERO); } // CFA2385 YY_BREAK 2386 case 10 8:2390 { NUMERIC_RETURN(ONE); } // CFA 2391 YY_BREAK 2392 case 109: 2387 2393 YY_RULE_SETUP 2388 2394 #line 282 "lex.ll" 2389 { NUMERIC_RETURN( ONE); } // CFA2390 YY_BREAK 2391 case 1 09:2395 { NUMERIC_RETURN(INTEGERconstant); } 2396 YY_BREAK 2397 case 110: 2392 2398 YY_RULE_SETUP 2393 2399 #line 283 "lex.ll" 2394 2400 { NUMERIC_RETURN(INTEGERconstant); } 2395 2401 YY_BREAK 2396 case 11 0:2402 case 111: 2397 2403 YY_RULE_SETUP 2398 2404 #line 284 "lex.ll" 2399 2405 { NUMERIC_RETURN(INTEGERconstant); } 2400 2406 YY_BREAK 2401 case 11 1:2407 case 112: 2402 2408 YY_RULE_SETUP 2403 2409 #line 285 "lex.ll" 2404 { NUMERIC_RETURN( INTEGERconstant); }2405 YY_BREAK 2406 case 11 2:2410 { NUMERIC_RETURN(FLOATINGconstant); } 2411 YY_BREAK 2412 case 113: 2407 2413 YY_RULE_SETUP 2408 2414 #line 286 "lex.ll" 2409 2415 { NUMERIC_RETURN(FLOATINGconstant); } 2410 2416 YY_BREAK 2411 case 113:2412 YY_RULE_SETUP2413 #line 287 "lex.ll"2414 { NUMERIC_RETURN(FLOATINGconstant); }2415 YY_BREAK2416 2417 /* character constant, allows empty value */ 2417 2418 case 114: 2418 2419 YY_RULE_SETUP 2420 #line 289 "lex.ll" 2421 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2422 YY_BREAK 2423 case 115: 2424 YY_RULE_SETUP 2419 2425 #line 290 "lex.ll" 2420 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }2421 YY_BREAK2422 case 115:2423 YY_RULE_SETUP2424 #line 291 "lex.ll"2425 2426 { *strtext += std::string( yytext ); } 2426 2427 YY_BREAK … … 2428 2429 /* rule 116 can match eol */ 2429 2430 YY_RULE_SETUP 2430 #line 29 2"lex.ll"2431 #line 291 "lex.ll" 2431 2432 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); } 2432 2433 YY_BREAK … … 2435 2436 case 117: 2436 2437 YY_RULE_SETUP 2438 #line 295 "lex.ll" 2439 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2440 YY_BREAK 2441 case 118: 2442 YY_RULE_SETUP 2437 2443 #line 296 "lex.ll" 2438 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }2439 YY_BREAK2440 case 118:2441 YY_RULE_SETUP2442 #line 297 "lex.ll"2443 2444 { *strtext += std::string( yytext ); } 2444 2445 YY_BREAK … … 2446 2447 /* rule 119 can match eol */ 2447 2448 YY_RULE_SETUP 2448 #line 29 8"lex.ll"2449 #line 297 "lex.ll" 2449 2450 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); } 2450 2451 YY_BREAK … … 2453 2454 case 120: 2454 2455 YY_RULE_SETUP 2455 #line 30 2"lex.ll"2456 #line 301 "lex.ll" 2456 2457 { rm_underscore(); *strtext += std::string( yytext ); } 2457 2458 YY_BREAK … … 2459 2460 /* rule 121 can match eol */ 2460 2461 YY_RULE_SETUP 2462 #line 302 "lex.ll" 2463 {} // continuation (ALSO HANDLED BY CPP) 2464 YY_BREAK 2465 case 122: 2466 YY_RULE_SETUP 2461 2467 #line 303 "lex.ll" 2462 {} // continuation (ALSO HANDLED BY CPP)2463 YY_BREAK2464 case 122:2465 YY_RULE_SETUP2466 #line 304 "lex.ll"2467 2468 { *strtext += std::string( yytext ); } // unknown escape character 2468 2469 YY_BREAK … … 2470 2471 case 123: 2471 2472 YY_RULE_SETUP 2473 #line 306 "lex.ll" 2474 { ASCIIOP_RETURN(); } 2475 YY_BREAK 2476 case 124: 2477 YY_RULE_SETUP 2472 2478 #line 307 "lex.ll" 2473 2479 { ASCIIOP_RETURN(); } 2474 2480 YY_BREAK 2475 case 12 4:2481 case 125: 2476 2482 YY_RULE_SETUP 2477 2483 #line 308 "lex.ll" 2478 2484 { ASCIIOP_RETURN(); } 2479 2485 YY_BREAK 2480 case 12 5:2486 case 126: 2481 2487 YY_RULE_SETUP 2482 2488 #line 309 "lex.ll" 2483 2489 { ASCIIOP_RETURN(); } 2484 2490 YY_BREAK 2485 case 12 6:2491 case 127: 2486 2492 YY_RULE_SETUP 2487 2493 #line 310 "lex.ll" 2488 2494 { ASCIIOP_RETURN(); } 2489 2495 YY_BREAK 2490 case 12 7:2496 case 128: 2491 2497 YY_RULE_SETUP 2492 2498 #line 311 "lex.ll" 2493 2499 { ASCIIOP_RETURN(); } 2494 2500 YY_BREAK 2495 case 12 8:2501 case 129: 2496 2502 YY_RULE_SETUP 2497 2503 #line 312 "lex.ll" 2504 { ASCIIOP_RETURN(); } // also operator 2505 YY_BREAK 2506 case 130: 2507 YY_RULE_SETUP 2508 #line 313 "lex.ll" 2498 2509 { ASCIIOP_RETURN(); } 2499 2510 YY_BREAK 2500 case 129: 2501 YY_RULE_SETUP 2502 #line 313 "lex.ll" 2503 { ASCIIOP_RETURN(); } // also operator 2504 YY_BREAK 2505 case 130: 2511 case 131: 2506 2512 YY_RULE_SETUP 2507 2513 #line 314 "lex.ll" 2508 2514 { ASCIIOP_RETURN(); } 2509 2515 YY_BREAK 2510 case 13 1:2516 case 132: 2511 2517 YY_RULE_SETUP 2512 2518 #line 315 "lex.ll" 2513 { ASCIIOP_RETURN(); } 2514 YY_BREAK 2515 case 13 2:2519 { ASCIIOP_RETURN(); } // also operator 2520 YY_BREAK 2521 case 133: 2516 2522 YY_RULE_SETUP 2517 2523 #line 316 "lex.ll" 2518 { ASCIIOP_RETURN(); } // also operator2519 YY_BREAK2520 case 133:2521 YY_RULE_SETUP2522 #line 317 "lex.ll"2523 2524 { NAMEDOP_RETURN(ELLIPSIS); } 2524 2525 YY_BREAK … … 2526 2527 case 134: 2527 2528 YY_RULE_SETUP 2529 #line 319 "lex.ll" 2530 { RETURN_VAL('['); } 2531 YY_BREAK 2532 case 135: 2533 YY_RULE_SETUP 2528 2534 #line 320 "lex.ll" 2529 { RETURN_VAL(' ['); }2530 YY_BREAK 2531 case 13 5:2535 { RETURN_VAL(']'); } 2536 YY_BREAK 2537 case 136: 2532 2538 YY_RULE_SETUP 2533 2539 #line 321 "lex.ll" 2534 { RETURN_VAL(' ]'); }2535 YY_BREAK 2536 case 13 6:2540 { RETURN_VAL('{'); } 2541 YY_BREAK 2542 case 137: 2537 2543 YY_RULE_SETUP 2538 2544 #line 322 "lex.ll" 2539 { RETURN_VAL('{'); }2540 YY_BREAK2541 case 137:2542 YY_RULE_SETUP2543 #line 323 "lex.ll"2544 2545 { RETURN_VAL('}'); } 2545 2546 YY_BREAK … … 2547 2548 case 138: 2548 2549 YY_RULE_SETUP 2550 #line 325 "lex.ll" 2551 { ASCIIOP_RETURN(); } 2552 YY_BREAK 2553 case 139: 2554 YY_RULE_SETUP 2549 2555 #line 326 "lex.ll" 2550 2556 { ASCIIOP_RETURN(); } 2551 2557 YY_BREAK 2552 case 1 39:2558 case 140: 2553 2559 YY_RULE_SETUP 2554 2560 #line 327 "lex.ll" 2555 2561 { ASCIIOP_RETURN(); } 2556 2562 YY_BREAK 2557 case 14 0:2563 case 141: 2558 2564 YY_RULE_SETUP 2559 2565 #line 328 "lex.ll" 2560 2566 { ASCIIOP_RETURN(); } 2561 2567 YY_BREAK 2562 case 14 1:2568 case 142: 2563 2569 YY_RULE_SETUP 2564 2570 #line 329 "lex.ll" 2565 2571 { ASCIIOP_RETURN(); } 2566 2572 YY_BREAK 2567 case 14 2:2573 case 143: 2568 2574 YY_RULE_SETUP 2569 2575 #line 330 "lex.ll" 2570 2576 { ASCIIOP_RETURN(); } 2571 2577 YY_BREAK 2572 case 14 3:2578 case 144: 2573 2579 YY_RULE_SETUP 2574 2580 #line 331 "lex.ll" 2575 2581 { ASCIIOP_RETURN(); } 2576 2582 YY_BREAK 2577 case 14 4:2583 case 145: 2578 2584 YY_RULE_SETUP 2579 2585 #line 332 "lex.ll" 2580 2586 { ASCIIOP_RETURN(); } 2581 2587 YY_BREAK 2582 case 14 5:2588 case 146: 2583 2589 YY_RULE_SETUP 2584 2590 #line 333 "lex.ll" 2585 2591 { ASCIIOP_RETURN(); } 2586 2592 YY_BREAK 2587 case 14 6:2593 case 147: 2588 2594 YY_RULE_SETUP 2589 2595 #line 334 "lex.ll" 2590 2596 { ASCIIOP_RETURN(); } 2591 2597 YY_BREAK 2592 case 14 7:2598 case 148: 2593 2599 YY_RULE_SETUP 2594 2600 #line 335 "lex.ll" 2595 2601 { ASCIIOP_RETURN(); } 2596 2602 YY_BREAK 2597 case 14 8:2603 case 149: 2598 2604 YY_RULE_SETUP 2599 2605 #line 336 "lex.ll" 2600 2606 { ASCIIOP_RETURN(); } 2601 2607 YY_BREAK 2602 case 1 49:2608 case 150: 2603 2609 YY_RULE_SETUP 2604 2610 #line 337 "lex.ll" 2605 2611 { ASCIIOP_RETURN(); } 2606 2612 YY_BREAK 2607 case 15 0:2613 case 151: 2608 2614 YY_RULE_SETUP 2609 2615 #line 338 "lex.ll" 2610 2616 { ASCIIOP_RETURN(); } 2611 2617 YY_BREAK 2612 case 151:2613 YY_RULE_SETUP2614 #line 339 "lex.ll"2615 { ASCIIOP_RETURN(); }2616 YY_BREAK2617 2618 case 152: 2618 2619 YY_RULE_SETUP 2620 #line 340 "lex.ll" 2621 { NAMEDOP_RETURN(ICR); } 2622 YY_BREAK 2623 case 153: 2624 YY_RULE_SETUP 2619 2625 #line 341 "lex.ll" 2620 { NAMEDOP_RETURN( ICR); }2621 YY_BREAK 2622 case 15 3:2626 { NAMEDOP_RETURN(DECR); } 2627 YY_BREAK 2628 case 154: 2623 2629 YY_RULE_SETUP 2624 2630 #line 342 "lex.ll" 2625 { NAMEDOP_RETURN( DECR); }2626 YY_BREAK 2627 case 15 4:2631 { NAMEDOP_RETURN(EQ); } 2632 YY_BREAK 2633 case 155: 2628 2634 YY_RULE_SETUP 2629 2635 #line 343 "lex.ll" 2630 { NAMEDOP_RETURN( EQ); }2631 YY_BREAK 2632 case 15 5:2636 { NAMEDOP_RETURN(NE); } 2637 YY_BREAK 2638 case 156: 2633 2639 YY_RULE_SETUP 2634 2640 #line 344 "lex.ll" 2635 { NAMEDOP_RETURN( NE); }2636 YY_BREAK 2637 case 15 6:2641 { NAMEDOP_RETURN(LS); } 2642 YY_BREAK 2643 case 157: 2638 2644 YY_RULE_SETUP 2639 2645 #line 345 "lex.ll" 2640 { NAMEDOP_RETURN( LS); }2641 YY_BREAK 2642 case 15 7:2646 { NAMEDOP_RETURN(RS); } 2647 YY_BREAK 2648 case 158: 2643 2649 YY_RULE_SETUP 2644 2650 #line 346 "lex.ll" 2645 { NAMEDOP_RETURN( RS); }2646 YY_BREAK 2647 case 15 8:2651 { NAMEDOP_RETURN(LE); } 2652 YY_BREAK 2653 case 159: 2648 2654 YY_RULE_SETUP 2649 2655 #line 347 "lex.ll" 2650 { NAMEDOP_RETURN( LE); }2651 YY_BREAK 2652 case 1 59:2656 { NAMEDOP_RETURN(GE); } 2657 YY_BREAK 2658 case 160: 2653 2659 YY_RULE_SETUP 2654 2660 #line 348 "lex.ll" 2655 { NAMEDOP_RETURN( GE); }2656 YY_BREAK 2657 case 16 0:2661 { NAMEDOP_RETURN(ANDAND); } 2662 YY_BREAK 2663 case 161: 2658 2664 YY_RULE_SETUP 2659 2665 #line 349 "lex.ll" 2660 { NAMEDOP_RETURN( ANDAND); }2661 YY_BREAK 2662 case 16 1:2666 { NAMEDOP_RETURN(OROR); } 2667 YY_BREAK 2668 case 162: 2663 2669 YY_RULE_SETUP 2664 2670 #line 350 "lex.ll" 2665 { NAMEDOP_RETURN( OROR); }2666 YY_BREAK 2667 case 16 2:2671 { NAMEDOP_RETURN(ARROW); } 2672 YY_BREAK 2673 case 163: 2668 2674 YY_RULE_SETUP 2669 2675 #line 351 "lex.ll" 2670 { NAMEDOP_RETURN( ARROW); }2671 YY_BREAK 2672 case 16 3:2676 { NAMEDOP_RETURN(PLUSassign); } 2677 YY_BREAK 2678 case 164: 2673 2679 YY_RULE_SETUP 2674 2680 #line 352 "lex.ll" 2675 { NAMEDOP_RETURN( PLUSassign); }2676 YY_BREAK 2677 case 16 4:2681 { NAMEDOP_RETURN(MINUSassign); } 2682 YY_BREAK 2683 case 165: 2678 2684 YY_RULE_SETUP 2679 2685 #line 353 "lex.ll" 2680 { NAMEDOP_RETURN(M INUSassign); }2681 YY_BREAK 2682 case 16 5:2686 { NAMEDOP_RETURN(MULTassign); } 2687 YY_BREAK 2688 case 166: 2683 2689 YY_RULE_SETUP 2684 2690 #line 354 "lex.ll" 2685 { NAMEDOP_RETURN( MULTassign); }2686 YY_BREAK 2687 case 16 6:2691 { NAMEDOP_RETURN(DIVassign); } 2692 YY_BREAK 2693 case 167: 2688 2694 YY_RULE_SETUP 2689 2695 #line 355 "lex.ll" 2690 { NAMEDOP_RETURN( DIVassign); }2691 YY_BREAK 2692 case 16 7:2696 { NAMEDOP_RETURN(MODassign); } 2697 YY_BREAK 2698 case 168: 2693 2699 YY_RULE_SETUP 2694 2700 #line 356 "lex.ll" 2695 { NAMEDOP_RETURN( MODassign); }2696 YY_BREAK 2697 case 16 8:2701 { NAMEDOP_RETURN(ANDassign); } 2702 YY_BREAK 2703 case 169: 2698 2704 YY_RULE_SETUP 2699 2705 #line 357 "lex.ll" 2700 { NAMEDOP_RETURN( ANDassign); }2701 YY_BREAK 2702 case 1 69:2706 { NAMEDOP_RETURN(ORassign); } 2707 YY_BREAK 2708 case 170: 2703 2709 YY_RULE_SETUP 2704 2710 #line 358 "lex.ll" 2705 { NAMEDOP_RETURN( ORassign); }2706 YY_BREAK 2707 case 17 0:2711 { NAMEDOP_RETURN(ERassign); } 2712 YY_BREAK 2713 case 171: 2708 2714 YY_RULE_SETUP 2709 2715 #line 359 "lex.ll" 2710 { NAMEDOP_RETURN( ERassign); }2711 YY_BREAK 2712 case 17 1:2716 { NAMEDOP_RETURN(LSassign); } 2717 YY_BREAK 2718 case 172: 2713 2719 YY_RULE_SETUP 2714 2720 #line 360 "lex.ll" 2715 { NAMEDOP_RETURN(LSassign); }2716 YY_BREAK2717 case 172:2718 YY_RULE_SETUP2719 #line 361 "lex.ll"2720 2721 { NAMEDOP_RETURN(RSassign); } 2721 2722 YY_BREAK 2722 2723 case 173: 2723 2724 YY_RULE_SETUP 2724 #line 36 3"lex.ll"2725 #line 362 "lex.ll" 2725 2726 { NAMEDOP_RETURN(ATassign); } 2726 2727 YY_BREAK … … 2728 2729 case 174: 2729 2730 YY_RULE_SETUP 2731 #line 365 "lex.ll" 2732 { IDENTIFIER_RETURN(); } // unary 2733 YY_BREAK 2734 case 175: 2735 YY_RULE_SETUP 2730 2736 #line 366 "lex.ll" 2731 { IDENTIFIER_RETURN(); } // unary2732 YY_BREAK 2733 case 17 5:2737 { IDENTIFIER_RETURN(); } 2738 YY_BREAK 2739 case 176: 2734 2740 YY_RULE_SETUP 2735 2741 #line 367 "lex.ll" 2736 2742 { IDENTIFIER_RETURN(); } 2737 2743 YY_BREAK 2738 case 17 6:2744 case 177: 2739 2745 YY_RULE_SETUP 2740 2746 #line 368 "lex.ll" 2741 { IDENTIFIER_RETURN(); }2742 YY_BREAK2743 case 177:2744 YY_RULE_SETUP2745 #line 369 "lex.ll"2746 2747 { IDENTIFIER_RETURN(); } // binary 2747 2748 YY_BREAK … … 2774 2775 case 178: 2775 2776 YY_RULE_SETUP 2776 #line 39 6"lex.ll"2777 #line 395 "lex.ll" 2777 2778 { 2778 2779 // 1 or 2 character unary operator ? … … 2789 2790 case 179: 2790 2791 YY_RULE_SETUP 2791 #line 40 8"lex.ll"2792 #line 407 "lex.ll" 2792 2793 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2793 2794 YY_BREAK 2794 2795 case 180: 2795 2796 YY_RULE_SETUP 2796 #line 4 10"lex.ll"2797 #line 409 "lex.ll" 2797 2798 ECHO; 2798 2799 YY_BREAK 2799 #line 280 0"Parser/lex.cc"2800 #line 2801 "Parser/lex.cc" 2800 2801 case YY_STATE_EOF(INITIAL): 2801 2802 case YY_STATE_EOF(COMMENT): … … 3772 3773 #define YYTABLES_NAME "yytables" 3773 3774 3774 #line 4 10"lex.ll"3775 #line 409 "lex.ll" 3775 3776 3776 3777 -
src/Parser/lex.ll
r1b5c81ed rf80e0218 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Mon Mar 21 23:33:46201613 * Update Count : 45 012 * Last Modified On : Thu Jun 23 07:29:30 2016 13 * Update Count : 457 14 14 */ 15 15 … … 49 49 50 50 void rm_underscore() { 51 // remove underscores in numeric constant52 int j= 0;51 // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string. 52 yyleng = 0; 53 53 for ( int i = 0; yytext[i] != '\0'; i += 1 ) { 54 54 if ( yytext[i] != '_' ) { 55 yytext[ j] = yytext[i];56 j+= 1;55 yytext[yyleng] = yytext[i]; 56 yyleng += 1; 57 57 } // if 58 58 } // for 59 yyleng = j;60 59 yytext[yyleng] = '\0'; 61 60 } … … 121 120 h_white [ ]|{h_tab} 122 121 123 // o perators122 // overloadable operators 124 123 op_unary_only "~"|"!" 125 124 op_unary_binary "+"|"-"|"*" … … 129 128 op_binary_only "/"|"%"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>=" 130 129 op_binary_over {op_unary_binary}|{op_binary_only} 131 op_binary_not_over "?"|"->"|"&&"|"||"132 operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}130 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@=" 131 // operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over} 133 132 134 133 %x COMMENT … … 274 273 {identifier} { IDENTIFIER_RETURN(); } 275 274 {attr_identifier} { ATTRIBUTE_RETURN(); } 276 "`" { BEGIN BKQUOTE; }275 "`" { BEGIN BKQUOTE; } 277 276 <BKQUOTE>{identifier} { IDENTIFIER_RETURN(); } 278 277 <BKQUOTE>"`" { BEGIN 0; } -
src/Parser/parser.cc
r1b5c81ed rf80e0218 67 67 68 68 /* Line 268 of yacc.c */ 69 #line 4 4"parser.yy"69 #line 42 "parser.yy" 70 70 71 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 342 342 343 343 /* Line 293 of yacc.c */ 344 #line 11 2"parser.yy"344 #line 110 "parser.yy" 345 345 346 346 Token tok; … … 588 588 589 589 /* YYFINAL -- State number of the termination state. */ 590 #define YYFINAL 2 49590 #define YYFINAL 252 591 591 /* YYLAST -- Last index in YYTABLE. */ 592 #define YYLAST 1 1449592 #define YYLAST 12094 593 593 594 594 /* YYNTOKENS -- Number of terminals. */ 595 595 #define YYNTOKENS 133 596 596 /* YYNNTS -- Number of nonterminals. */ 597 #define YYNNTS 24 0597 #define YYNNTS 241 598 598 /* YYNRULES -- Number of rules. */ 599 #define YYNRULES 75 4599 #define YYNRULES 755 600 600 /* YYNRULES -- Number of states. */ 601 #define YYNSTATES 158 1601 #define YYNSTATES 1580 602 602 603 603 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 614 614 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 615 615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 616 2, 2, 2, 1 18, 2, 2, 2, 125, 120, 2,617 109, 110, 11 9, 121, 116, 122, 113, 124, 2, 2,616 2, 2, 2, 122, 2, 2, 2, 125, 119, 2, 617 109, 110, 118, 120, 116, 121, 113, 124, 2, 2, 618 618 2, 2, 2, 2, 2, 2, 2, 2, 117, 132, 619 619 126, 131, 127, 130, 2, 2, 2, 2, 2, 2, … … 660 660 87, 90, 98, 103, 105, 109, 110, 112, 116, 124, 661 661 134, 136, 140, 142, 146, 154, 158, 166, 168, 170, 662 172, 175, 178, 181, 184, 187, 190, 19 3, 198, 205,663 20 7, 212, 217, 220, 225, 228, 230, 232, 234, 236,664 23 8, 243, 248, 250, 254, 258, 262, 264, 268, 272,665 27 4, 278, 282, 284, 288, 292, 296, 300, 302, 306,666 3 10, 312, 316, 318, 322, 324, 328, 330, 334, 336,667 3 40, 342, 348, 353, 359, 361, 363, 367, 371, 374,668 37 5, 377, 380, 386, 393, 401, 403, 407, 409, 411,669 41 3, 415, 417, 419, 421, 423, 425, 427, 429, 433,670 43 4, 436, 438, 440, 442, 444, 446, 448, 450, 452,671 45 9, 464, 467, 475, 477, 481, 483, 486, 488, 491,672 49 3, 496, 499, 505, 513, 519, 529, 535, 545, 547,673 5 51, 553, 555, 559, 563, 566, 568, 571, 574, 575,674 57 7, 580, 584, 585, 587, 590, 594, 598, 603, 604,675 60 6, 608, 611, 617, 625, 632, 639, 644, 648, 653,676 65 6, 660, 663, 667, 671, 675, 679, 685, 689, 693,677 69 8, 700, 706, 713, 719, 726, 736, 747, 757, 768,678 7 71, 773, 776, 779, 782, 784, 791, 800, 811, 824,679 8 39, 840, 842, 843, 845, 847, 851, 856, 864, 865,680 86 7, 871, 873, 877, 879, 881, 883, 887, 889, 891,681 89 3, 897, 898, 900, 904, 909, 911, 915, 917, 919,682 9 23, 927, 931, 935, 939, 942, 946, 953, 957, 961,683 96 6, 968, 971, 974, 978, 984, 993, 1001, 1009, 1015,684 10 25, 1028, 1031, 1037, 1041, 1047, 1052, 1056, 1061, 1066,685 10 74, 1078, 1082, 1086, 1090, 1095, 1102, 1104, 1106, 1108,686 11 10, 1112, 1114, 1116, 1118, 1119, 1121, 1123, 1126, 1128,687 11 30, 1132, 1134, 1136, 1138, 1140, 1141, 1147, 1149, 1152,688 115 6, 1158, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175,689 117 7, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195,690 119 7, 1199, 1201, 1203, 1205, 1207, 1210, 1213, 1217, 1221,691 122 3, 1227, 1229, 1232, 1235, 1238, 1243, 1248, 1253, 1258,692 12 60, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 1283, 1286,693 12 90, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 1311, 1318,694 13 26, 1329, 1332, 1335, 1337, 1340, 1343, 1347, 1350, 1354,695 135 6, 1359, 1363, 1366, 1369, 1374, 1375, 1377, 1380, 1383,696 138 5, 1386, 1388, 1391, 1394, 1400, 1403, 1404, 1412, 1415,697 14 20, 1421, 1424, 1425, 1427, 1429, 1431, 1437, 1443, 1449,698 14 51, 1457, 1463, 1473, 1475, 1481, 1482, 1484, 1486, 1492,699 149 4, 1496, 1502, 1508, 1510, 1514, 1518, 1523, 1525, 1527,700 152 9, 1531, 1534, 1536, 1540, 1544, 1546, 1549, 1551, 1555,701 155 7, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575,702 157 7, 1580, 1582, 1584, 1586, 1589, 1590, 1593, 1596, 1598,703 1 603, 1604, 1606, 1609, 1613, 1618, 1621, 1624, 1626, 1629,704 16 31, 1634, 1640, 1646, 1654, 1661, 1663, 1666, 1669, 1673,705 167 5, 1678, 1681, 1686, 1689, 1694, 1695, 1700, 1703, 1705,706 170 7, 1709, 1710, 1713, 1719, 1725, 1739, 1741, 1743, 1747,707 17 51, 1754, 1758, 1762, 1765, 1770, 1772, 1779, 1789, 1790,708 1 802, 1804, 1808, 1812, 1816, 1818, 1820, 1826, 1829, 1835,709 183 6, 1838, 1840, 1844, 1845, 1847, 1849, 1851, 1853, 1854,710 18 61, 1864, 1866, 1869, 1874, 1877, 1881, 1885, 1889, 1894,711 1 900, 1906, 1912, 1919, 1921, 1923, 1925, 1929, 1930, 1936,712 193 7, 1939, 1941, 1944, 1951, 1953, 1957, 1958, 1960, 1965,713 196 7, 1969, 1971, 1973, 1976, 1978, 1981, 1984, 1986, 1990,714 199 3, 1997, 2001, 2004, 2009, 2014, 2018, 2027, 2031, 2034,715 203 6, 2039, 2046, 2055, 2059, 2062, 2066, 2070, 2075, 2080,716 208 4, 2086, 2088, 2090, 2095, 2102, 2106, 2109, 2113, 2117,717 21 22, 2127, 2131, 2134, 2136, 2139, 2142, 2144, 2148, 2151,718 215 5, 2159, 2162, 2167, 2172, 2176, 2183, 2192, 2196, 2199,719 2 201, 2204, 2207, 2210, 2214, 2218, 2221, 2226, 2231, 2235,720 22 42, 2251, 2255, 2258, 2260, 2263, 2266, 2268, 2270, 2273,721 227 7, 2281, 2284, 2289, 2296, 2305, 2307, 2310, 2313, 2315,722 231 8, 2321, 2325, 2329, 2331, 2336, 2341, 2345, 2351, 2360,723 236 4, 2367, 2371, 2373, 2379, 2385, 2392, 2399, 2401, 2404,724 240 7, 2409, 2412, 2415, 2419, 2423, 2425, 2430, 2435, 2439,725 24 45, 2454, 2458, 2460, 2463, 2465, 2468, 2475, 2481, 2488,726 24 96, 2504, 2506, 2509, 2512, 2514, 2517, 2520, 2524, 2528,727 25 30, 2535, 2540, 2544, 2553, 2557, 2559, 2561, 2564, 2566,728 256 8, 2571, 2575, 2578, 2582, 2585, 2589, 2593, 2596, 2601,729 260 5, 2608, 2612, 2615, 2620, 2624, 2627, 2634, 2641, 2648,730 26 56, 2658, 2661, 2663, 2665, 2667, 2670, 2674, 2677, 2681,731 268 4, 2688, 2692, 2697, 2700, 2704, 2709, 2712, 2718, 2724,732 27 31, 2738, 2739, 2741, 2742662 172, 175, 178, 181, 184, 187, 190, 195, 202, 204, 663 209, 214, 217, 222, 224, 226, 228, 230, 232, 234, 664 236, 238, 243, 248, 250, 254, 258, 262, 264, 268, 665 272, 274, 278, 282, 284, 288, 292, 296, 300, 302, 666 306, 310, 312, 316, 318, 322, 324, 328, 330, 334, 667 336, 340, 342, 348, 353, 359, 361, 363, 367, 371, 668 374, 375, 377, 380, 386, 393, 401, 403, 407, 409, 669 411, 413, 415, 417, 419, 421, 423, 425, 427, 429, 670 433, 434, 436, 438, 440, 442, 444, 446, 448, 450, 671 452, 459, 464, 467, 475, 477, 481, 483, 486, 488, 672 491, 493, 496, 499, 505, 513, 519, 529, 535, 545, 673 547, 551, 553, 555, 559, 563, 566, 568, 571, 574, 674 575, 577, 580, 584, 585, 587, 590, 594, 598, 603, 675 604, 606, 608, 611, 617, 625, 632, 639, 644, 648, 676 653, 656, 660, 663, 667, 671, 675, 679, 685, 689, 677 693, 698, 700, 706, 713, 719, 726, 736, 747, 757, 678 768, 771, 773, 776, 779, 782, 784, 791, 800, 811, 679 824, 839, 840, 842, 843, 845, 847, 851, 856, 864, 680 865, 867, 871, 873, 877, 879, 881, 883, 887, 889, 681 891, 893, 897, 898, 900, 904, 909, 911, 915, 917, 682 919, 923, 927, 931, 935, 939, 942, 946, 953, 957, 683 961, 966, 968, 971, 974, 978, 984, 993, 1001, 1009, 684 1015, 1025, 1028, 1031, 1037, 1041, 1047, 1052, 1056, 1061, 685 1066, 1074, 1078, 1082, 1086, 1090, 1095, 1102, 1104, 1106, 686 1108, 1110, 1112, 1114, 1116, 1118, 1119, 1121, 1123, 1126, 687 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1141, 1147, 1149, 688 1152, 1156, 1158, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 689 1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 690 1195, 1197, 1199, 1201, 1203, 1205, 1207, 1210, 1213, 1217, 691 1221, 1223, 1227, 1229, 1232, 1235, 1238, 1243, 1248, 1253, 692 1258, 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 1283, 693 1286, 1290, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 1311, 694 1318, 1326, 1329, 1332, 1335, 1337, 1340, 1343, 1347, 1350, 695 1354, 1356, 1359, 1363, 1366, 1369, 1374, 1375, 1377, 1380, 696 1383, 1385, 1386, 1388, 1391, 1394, 1400, 1403, 1404, 1412, 697 1415, 1420, 1421, 1424, 1425, 1427, 1429, 1431, 1437, 1443, 698 1449, 1451, 1457, 1463, 1473, 1475, 1481, 1482, 1484, 1486, 699 1492, 1494, 1496, 1502, 1508, 1510, 1514, 1518, 1523, 1525, 700 1527, 1529, 1531, 1534, 1536, 1540, 1544, 1546, 1549, 1551, 701 1555, 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 702 1575, 1577, 1580, 1582, 1584, 1586, 1589, 1590, 1593, 1596, 703 1598, 1603, 1604, 1606, 1609, 1613, 1618, 1621, 1624, 1626, 704 1629, 1631, 1634, 1640, 1646, 1654, 1661, 1663, 1666, 1669, 705 1673, 1675, 1678, 1681, 1686, 1689, 1694, 1695, 1700, 1703, 706 1705, 1707, 1709, 1710, 1713, 1719, 1725, 1739, 1741, 1743, 707 1747, 1751, 1754, 1758, 1762, 1765, 1770, 1772, 1779, 1789, 708 1790, 1802, 1804, 1808, 1812, 1816, 1818, 1820, 1826, 1829, 709 1835, 1836, 1838, 1840, 1844, 1845, 1847, 1849, 1851, 1853, 710 1854, 1861, 1864, 1866, 1869, 1874, 1877, 1881, 1885, 1889, 711 1894, 1900, 1906, 1912, 1919, 1921, 1923, 1925, 1929, 1930, 712 1936, 1937, 1939, 1941, 1944, 1951, 1953, 1957, 1958, 1960, 713 1965, 1967, 1969, 1971, 1973, 1976, 1978, 1981, 1984, 1986, 714 1990, 1993, 1997, 2001, 2004, 2009, 2014, 2018, 2027, 2031, 715 2034, 2036, 2039, 2046, 2055, 2059, 2062, 2066, 2070, 2075, 716 2080, 2084, 2086, 2088, 2090, 2095, 2102, 2106, 2109, 2113, 717 2117, 2122, 2127, 2131, 2134, 2136, 2139, 2142, 2144, 2148, 718 2151, 2155, 2159, 2162, 2167, 2172, 2176, 2183, 2192, 2196, 719 2199, 2201, 2204, 2207, 2210, 2214, 2218, 2221, 2226, 2231, 720 2235, 2242, 2251, 2255, 2258, 2260, 2263, 2266, 2268, 2270, 721 2273, 2277, 2281, 2284, 2289, 2296, 2305, 2307, 2310, 2313, 722 2315, 2318, 2321, 2325, 2329, 2331, 2336, 2341, 2345, 2351, 723 2360, 2364, 2367, 2371, 2373, 2379, 2385, 2392, 2399, 2401, 724 2404, 2407, 2409, 2412, 2415, 2419, 2423, 2425, 2430, 2435, 725 2439, 2445, 2454, 2458, 2460, 2463, 2465, 2468, 2475, 2481, 726 2488, 2496, 2504, 2506, 2509, 2512, 2514, 2517, 2520, 2524, 727 2528, 2530, 2535, 2540, 2544, 2553, 2557, 2559, 2561, 2564, 728 2566, 2568, 2571, 2575, 2578, 2582, 2585, 2589, 2593, 2596, 729 2601, 2605, 2608, 2612, 2615, 2620, 2624, 2627, 2634, 2641, 730 2648, 2656, 2658, 2661, 2663, 2665, 2667, 2670, 2674, 2677, 731 2681, 2684, 2688, 2692, 2697, 2700, 2704, 2709, 2712, 2718, 732 2724, 2731, 2738, 2739, 2741, 2742 733 733 }; 734 734 … … 736 736 static const yytype_int16 yyrhs[] = 737 737 { 738 30 1, 0, -1, -1, -1, 79, -1, 80, -1, 81,738 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 739 739 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 740 740 -1, 72, -1, 140, -1, 83, -1, 84, -1, 82, 741 -1, 141, 82, -1, 72, -1, 140, -1, 109, 16 8,742 110, -1, 109, 17 2, 110, -1, 142, -1, 143, 111,743 134, 16 3, 135, 112, -1, 143, 109, 144, 110, -1,741 -1, 141, 82, -1, 72, -1, 140, -1, 109, 169, 742 110, -1, 109, 173, 110, -1, 142, -1, 143, 111, 743 134, 164, 135, 112, -1, 143, 109, 144, 110, -1, 744 744 143, 113, 139, -1, 143, 113, 111, 134, 146, 135, 745 745 112, -1, 143, 85, 139, -1, 143, 85, 111, 134, 746 746 146, 135, 112, -1, 143, 86, -1, 143, 87, -1, 747 109, 27 4, 110, 114, 278, 371, 115, -1, 143, 114,747 109, 275, 110, 114, 279, 372, 115, -1, 143, 114, 748 748 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 749 16 3, -1, 139, 117, 163, -1, 111, 134, 163, 135,750 112, 117, 16 3, -1, 111, 134, 163, 116, 166, 135,751 112, 117, 16 3, -1, 147, -1, 146, 116, 147, -1,749 164, -1, 139, 117, 164, -1, 111, 134, 164, 135, 750 112, 117, 164, -1, 111, 134, 164, 116, 167, 135, 751 112, 117, 164, -1, 147, -1, 146, 116, 147, -1, 752 752 139, -1, 139, 113, 147, -1, 139, 113, 111, 134, 753 753 146, 135, 112, -1, 139, 85, 147, -1, 139, 85, 754 754 111, 134, 146, 135, 112, -1, 143, -1, 136, -1, 755 141, -1, 86, 148, -1, 87, 148, -1, 40, 150,756 -1, 149, 150, -1, 118, 150, -1, 119, 150, -1,757 37, 1 48, -1, 37, 109, 274, 110, -1, 38, 109,758 274, 116, 139, 110, -1, 76, -1, 76, 109, 275,759 1 10, -1, 76, 109, 145, 110, -1, 66, 148, -1,760 66, 109, 274, 110, -1, 94, 139, -1, 120, -1,761 121, -1, 122, -1, 123, -1, 148, -1, 109, 27 4,762 110, 15 0, -1, 109, 274, 110, 165, -1, 150, -1,763 15 1, 119, 150, -1, 151, 124, 150, -1, 151, 125,764 15 0, -1, 151, -1, 152, 121, 151, -1, 152, 122,765 15 1, -1, 152, -1, 153, 88, 152, -1, 153, 89,766 15 2, -1, 153, -1, 154, 126, 153, -1, 154, 127,767 15 3, -1, 154, 90, 153, -1, 154, 91, 153, -1,768 15 4, -1, 155, 92, 154, -1, 155, 93, 154, -1,769 15 5, -1, 156, 120, 155, -1, 156, -1, 157, 128,770 15 6, -1, 157, -1, 158, 129, 157, -1, 158, -1,771 1 59, 94, 158, -1, 159, -1, 160, 95, 159, -1,772 16 0, -1, 160, 130, 168, 117, 161, -1, 160, 130,773 117, 16 1, -1, 160, 130, 168, 117, 165, -1, 161,774 -1, 16 1, -1, 148, 131, 163, -1, 148, 167, 163,775 -1, 16 5, 372, -1, -1, 163, -1, 111, 112, -1,776 111, 134, 16 3, 135, 112, -1, 111, 134, 116, 166,777 135, 112, -1, 111, 134, 16 3, 116, 166, 135, 112,778 -1, 16 4, -1, 166, 116, 164, -1, 97, -1, 98,755 141, -1, 40, 151, -1, 149, 151, -1, 150, 151, 756 -1, 86, 148, -1, 87, 148, -1, 37, 148, -1, 757 37, 109, 275, 110, -1, 38, 109, 275, 116, 139, 758 110, -1, 76, -1, 76, 109, 276, 110, -1, 76, 759 109, 145, 110, -1, 66, 148, -1, 66, 109, 275, 760 110, -1, 118, -1, 119, -1, 94, -1, 120, -1, 761 121, -1, 122, -1, 123, -1, 148, -1, 109, 275, 762 110, 151, -1, 109, 275, 110, 166, -1, 151, -1, 763 152, 118, 151, -1, 152, 124, 151, -1, 152, 125, 764 151, -1, 152, -1, 153, 120, 152, -1, 153, 121, 765 152, -1, 153, -1, 154, 88, 153, -1, 154, 89, 766 153, -1, 154, -1, 155, 126, 154, -1, 155, 127, 767 154, -1, 155, 90, 154, -1, 155, 91, 154, -1, 768 155, -1, 156, 92, 155, -1, 156, 93, 155, -1, 769 156, -1, 157, 119, 156, -1, 157, -1, 158, 128, 770 157, -1, 158, -1, 159, 129, 158, -1, 159, -1, 771 160, 94, 159, -1, 160, -1, 161, 95, 160, -1, 772 161, -1, 161, 130, 169, 117, 162, -1, 161, 130, 773 117, 162, -1, 161, 130, 169, 117, 166, -1, 162, 774 -1, 162, -1, 148, 131, 164, -1, 148, 168, 164, 775 -1, 166, 373, -1, -1, 164, -1, 111, 112, -1, 776 111, 134, 164, 135, 112, -1, 111, 134, 116, 167, 777 135, 112, -1, 111, 134, 164, 116, 167, 135, 112, 778 -1, 165, -1, 167, 116, 165, -1, 97, -1, 98, 779 779 -1, 99, -1, 100, -1, 101, -1, 102, -1, 103, 780 -1, 104, -1, 105, -1, 106, -1, 16 3, -1, 168,781 116, 16 3, -1, -1, 168, -1, 171, -1, 172, -1,782 17 6, -1, 177, -1, 189, -1, 191, -1, 192, -1,783 19 7, -1, 128, 143, 114, 144, 115, 132, -1, 139,784 117, 31 1, 170, -1, 114, 115, -1, 114, 134, 134,785 20 8, 173, 135, 115, -1, 174, -1, 173, 134, 174,786 -1, 21 1, -1, 40, 211, -1, 307, -1, 170, 135,787 -1, 17 0, -1, 175, 170, -1, 169, 132, -1, 41,788 109, 16 8, 110, 170, -1, 41, 109, 168, 110, 170,789 42, 17 0, -1, 43, 109, 168, 110, 182, -1, 43,790 109, 16 8, 110, 114, 134, 204, 183, 115, -1, 53,791 109, 16 8, 110, 182, -1, 53, 109, 168, 110, 114,792 134, 20 4, 185, 115, -1, 162, -1, 162, 96, 162,793 -1, 3 09, -1, 178, -1, 179, 116, 178, -1, 44,794 1 79, 117, -1, 45, 117, -1, 180, -1, 181, 180,795 -1, 18 1, 170, -1, -1, 184, -1, 181, 175, -1,796 18 4, 181, 175, -1, -1, 186, -1, 181, 188, -1,797 18 1, 175, 187, -1, 186, 181, 188, -1, 186, 181,798 17 5, 187, -1, -1, 188, -1, 56, -1, 56, 132,799 -1, 47, 109, 16 8, 110, 170, -1, 46, 170, 47,800 109, 16 8, 110, 132, -1, 48, 109, 134, 190, 110,801 17 0, -1, 169, 135, 132, 169, 132, 169, -1, 211,802 1 69, 132, 169, -1, 51, 139, 132, -1, 51, 119,803 16 8, 132, -1, 50, 132, -1, 50, 139, 132, -1,804 49, 132, -1, 49, 139, 132, -1, 52, 169, 132,805 -1, 61, 16 4, 132, -1, 62, 164, 132, -1, 62,806 16 4, 63, 163, 132, -1, 57, 172, 193, -1, 57,807 17 2, 195, -1, 57, 172, 193, 195, -1, 194, -1,808 58, 109, 96, 110, 17 2, -1, 194, 58, 109, 96,809 110, 17 2, -1, 59, 109, 96, 110, 172, -1, 194,810 59, 109, 96, 110, 17 2, -1, 58, 109, 134, 134,811 19 6, 135, 110, 172, 135, -1, 194, 58, 109, 134,812 134, 19 6, 135, 110, 172, 135, -1, 59, 109, 134,813 134, 19 6, 135, 110, 172, 135, -1, 194, 59, 109,814 134, 134, 19 6, 135, 110, 172, 135, -1, 60, 172,815 -1, 22 4, -1, 224, 308, -1, 224, 356, -1, 365,816 139, -1, 36 5, -1, 64, 198, 109, 141, 110, 132,817 -1, 64, 19 8, 109, 141, 117, 199, 110, 132, -1,818 64, 19 8, 109, 141, 117, 199, 117, 199, 110, 132,819 -1, 64, 19 8, 109, 141, 117, 199, 117, 199, 117,820 20 2, 110, 132, -1, 64, 198, 51, 109, 141, 117,821 117, 199, 117, 202, 117, 203, 110, 132, -1, -1,822 11, -1, -1, 20 0, -1, 201, -1, 200, 116, 201,823 -1, 141, 109, 16 2, 110, -1, 111, 162, 112, 141,824 109, 16 2, 110, -1, -1, 141, -1, 202, 116, 141,825 -1, 139, -1, 20 3, 116, 139, -1, 135, -1, 205,826 -1, 21 1, -1, 205, 134, 211, -1, 135, -1, 207,827 -1, 22 1, -1, 207, 134, 221, -1, -1, 209, -1,828 29, 21 0, 132, -1, 209, 29, 210, 132, -1, 273,829 -1, 21 0, 116, 273, -1, 212, -1, 221, -1, 213,830 135, 132, -1, 21 8, 135, 132, -1, 215, 135, 132,831 -1, 29 2, 135, 132, -1, 295, 135, 132, -1, 214,832 27 6, -1, 230, 214, 276, -1, 213, 135, 116, 134,833 27 1, 276, -1, 366, 271, 310, -1, 369, 271, 310,834 -1, 22 6, 369, 271, 310, -1, 216, -1, 226, 216,835 -1, 23 0, 216, -1, 230, 226, 216, -1, 215, 135,836 116, 134, 27 1, -1, 111, 112, 271, 109, 134, 259,837 135, 110, -1, 3 69, 271, 109, 134, 259, 135, 110,838 -1, 21 7, 271, 109, 134, 259, 135, 110, -1, 111,839 134, 26 1, 135, 112, -1, 111, 134, 261, 135, 116,840 134, 26 2, 135, 112, -1, 3, 214, -1, 3, 216,841 -1, 21 8, 135, 116, 134, 139, -1, 3, 224, 308,842 -1, 2 19, 135, 116, 134, 308, -1, 226, 3, 224,843 30 8, -1, 224, 3, 308, -1, 224, 3, 226, 308,844 -1, 3, 139, 131, 16 3, -1, 220, 135, 116, 134,845 139, 131, 16 3, -1, 222, 135, 132, -1, 219, 135,846 132, -1, 22 0, 135, 132, -1, 239, 135, 132, -1,847 22 3, 308, 310, 276, -1, 222, 116, 311, 308, 310,848 27 6, -1, 235, -1, 239, -1, 241, -1, 282, -1,849 23 6, -1, 240, -1, 242, -1, 283, -1, -1, 226,850 -1, 22 7, -1, 226, 227, -1, 228, -1, 313, -1,780 -1, 104, -1, 105, -1, 106, -1, 164, -1, 169, 781 116, 164, -1, -1, 169, -1, 172, -1, 173, -1, 782 177, -1, 178, -1, 190, -1, 192, -1, 193, -1, 783 198, -1, 128, 143, 114, 144, 115, 132, -1, 72, 784 117, 312, 171, -1, 114, 115, -1, 114, 134, 134, 785 209, 174, 135, 115, -1, 175, -1, 174, 134, 175, 786 -1, 212, -1, 40, 212, -1, 308, -1, 171, 135, 787 -1, 171, -1, 176, 171, -1, 170, 132, -1, 41, 788 109, 169, 110, 171, -1, 41, 109, 169, 110, 171, 789 42, 171, -1, 43, 109, 169, 110, 183, -1, 43, 790 109, 169, 110, 114, 134, 205, 184, 115, -1, 53, 791 109, 169, 110, 183, -1, 53, 109, 169, 110, 114, 792 134, 205, 186, 115, -1, 163, -1, 163, 96, 163, 793 -1, 310, -1, 179, -1, 180, 116, 179, -1, 44, 794 180, 117, -1, 45, 117, -1, 181, -1, 182, 181, 795 -1, 182, 171, -1, -1, 185, -1, 182, 176, -1, 796 185, 182, 176, -1, -1, 187, -1, 182, 189, -1, 797 182, 176, 188, -1, 187, 182, 189, -1, 187, 182, 798 176, 188, -1, -1, 189, -1, 56, -1, 56, 132, 799 -1, 47, 109, 169, 110, 171, -1, 46, 171, 47, 800 109, 169, 110, 132, -1, 48, 109, 134, 191, 110, 801 171, -1, 170, 135, 132, 170, 132, 170, -1, 212, 802 170, 132, 170, -1, 51, 72, 132, -1, 51, 118, 803 169, 132, -1, 50, 132, -1, 50, 72, 132, -1, 804 49, 132, -1, 49, 72, 132, -1, 52, 170, 132, 805 -1, 61, 165, 132, -1, 62, 165, 132, -1, 62, 806 165, 63, 164, 132, -1, 57, 173, 194, -1, 57, 807 173, 196, -1, 57, 173, 194, 196, -1, 195, -1, 808 58, 109, 96, 110, 173, -1, 195, 58, 109, 96, 809 110, 173, -1, 59, 109, 96, 110, 173, -1, 195, 810 59, 109, 96, 110, 173, -1, 58, 109, 134, 134, 811 197, 135, 110, 173, 135, -1, 195, 58, 109, 134, 812 134, 197, 135, 110, 173, 135, -1, 59, 109, 134, 813 134, 197, 135, 110, 173, 135, -1, 195, 59, 109, 814 134, 134, 197, 135, 110, 173, 135, -1, 60, 173, 815 -1, 225, -1, 225, 309, -1, 225, 357, -1, 366, 816 139, -1, 366, -1, 64, 199, 109, 141, 110, 132, 817 -1, 64, 199, 109, 141, 117, 200, 110, 132, -1, 818 64, 199, 109, 141, 117, 200, 117, 200, 110, 132, 819 -1, 64, 199, 109, 141, 117, 200, 117, 200, 117, 820 203, 110, 132, -1, 64, 199, 51, 109, 141, 117, 821 117, 200, 117, 203, 117, 204, 110, 132, -1, -1, 822 11, -1, -1, 201, -1, 202, -1, 201, 116, 202, 823 -1, 141, 109, 163, 110, -1, 111, 163, 112, 141, 824 109, 163, 110, -1, -1, 141, -1, 203, 116, 141, 825 -1, 139, -1, 204, 116, 139, -1, 135, -1, 206, 826 -1, 212, -1, 206, 134, 212, -1, 135, -1, 208, 827 -1, 222, -1, 208, 134, 222, -1, -1, 210, -1, 828 29, 211, 132, -1, 210, 29, 211, 132, -1, 274, 829 -1, 211, 116, 274, -1, 213, -1, 222, -1, 214, 830 135, 132, -1, 219, 135, 132, -1, 216, 135, 132, 831 -1, 293, 135, 132, -1, 296, 135, 132, -1, 215, 832 277, -1, 231, 215, 277, -1, 214, 135, 116, 134, 833 272, 277, -1, 367, 272, 311, -1, 370, 272, 311, 834 -1, 227, 370, 272, 311, -1, 217, -1, 227, 217, 835 -1, 231, 217, -1, 231, 227, 217, -1, 216, 135, 836 116, 134, 272, -1, 111, 112, 272, 109, 134, 260, 837 135, 110, -1, 370, 272, 109, 134, 260, 135, 110, 838 -1, 218, 272, 109, 134, 260, 135, 110, -1, 111, 839 134, 262, 135, 112, -1, 111, 134, 262, 135, 116, 840 134, 263, 135, 112, -1, 3, 215, -1, 3, 217, 841 -1, 219, 135, 116, 134, 139, -1, 3, 225, 309, 842 -1, 220, 135, 116, 134, 309, -1, 227, 3, 225, 843 309, -1, 225, 3, 309, -1, 225, 3, 227, 309, 844 -1, 3, 139, 131, 164, -1, 221, 135, 116, 134, 845 139, 131, 164, -1, 223, 135, 132, -1, 220, 135, 846 132, -1, 221, 135, 132, -1, 240, 135, 132, -1, 847 224, 309, 311, 277, -1, 223, 116, 312, 309, 311, 848 277, -1, 236, -1, 240, -1, 242, -1, 283, -1, 849 237, -1, 241, -1, 243, -1, 284, -1, -1, 227, 850 -1, 228, -1, 227, 228, -1, 229, -1, 314, -1, 851 851 10, -1, 12, -1, 11, -1, 14, -1, 67, -1, 852 -1, 13, 109, 2 29, 285, 110, -1, 231, -1, 226,853 23 1, -1, 230, 226, 231, -1, 232, -1, 231, 232,854 -1, 23 3, -1, 5, -1, 7, -1, 4, -1, 6,852 -1, 13, 109, 230, 286, 110, -1, 232, -1, 227, 853 232, -1, 231, 227, 232, -1, 233, -1, 232, 233, 854 -1, 234, -1, 5, -1, 7, -1, 4, -1, 6, 855 855 -1, 8, -1, 9, -1, 69, -1, 71, -1, 16, 856 856 -1, 21, -1, 20, -1, 18, -1, 19, -1, 17, 857 857 -1, 22, -1, 23, -1, 15, -1, 25, -1, 26, 858 -1, 27, -1, 24, -1, 23 6, -1, 230, 236, -1,859 23 5, 232, -1, 235, 232, 226, -1, 235, 232, 236,860 -1, 23 7, -1, 225, 238, 225, -1, 234, -1, 226,861 23 4, -1, 237, 227, -1, 237, 234, -1, 28, 109,862 27 5, 110, -1, 28, 109, 168, 110, -1, 78, 109,863 27 5, 110, -1, 78, 109, 168, 110, -1, 240, -1,864 23 0, 240, -1, 239, 232, -1, 239, 232, 226, -1,865 24 3, -1, 226, 243, -1, 240, 227, -1, 242, -1,866 23 0, 242, -1, 241, 232, -1, 241, 232, 226, -1,867 74, -1, 22 6, 74, -1, 242, 227, -1, 244, -1,868 25 5, -1, 246, 114, 247, 115, -1, 246, 273, -1,869 -1, 24 6, 273, 245, 114, 247, 115, -1, 246, 109,870 29 1, 110, 114, 247, 115, -1, 246, 284, -1, 31,871 31 1, -1, 32, 311, -1, 248, -1, 247, 248, -1,872 2 49, 132, -1, 40, 249, 132, -1, 250, 132, -1,873 40, 25 0, 132, -1, 365, -1, 365, 273, -1, 249,874 116, 27 3, -1, 249, 116, -1, 224, 251, -1, 250,875 116, 31 1, 251, -1, -1, 253, -1, 317, 252, -1,876 33 0, 252, -1, 356, -1, -1, 253, -1, 117, 162,877 -1, 30, 31 1, -1, 254, 114, 257, 371, 115, -1,878 25 4, 273, -1, -1, 254, 273, 256, 114, 257, 371,879 115, -1, 27 3, 258, -1, 257, 116, 273, 258, -1,880 -1, 131, 16 2, -1, -1, 260, -1, 262, -1, 261,881 -1, 26 1, 135, 116, 134, 262, -1, 262, 135, 116,882 134, 96, -1, 26 1, 135, 116, 134, 96, -1, 266,883 -1, 26 2, 135, 116, 134, 266, -1, 261, 135, 116,884 134, 26 6, -1, 261, 135, 116, 134, 262, 135, 116,885 134, 26 6, -1, 267, -1, 262, 135, 116, 134, 267,886 -1, -1, 26 4, -1, 265, -1, 265, 135, 116, 134,887 96, -1, 2 69, -1, 268, -1, 265, 135, 116, 134,888 2 69, -1, 265, 135, 116, 134, 268, -1, 268, -1,889 36 1, 271, 372, -1, 369, 271, 372, -1, 226, 369,890 27 1, 372, -1, 216, -1, 269, -1, 361, -1, 369,891 -1, 22 6, 369, -1, 370, -1, 223, 335, 372, -1,892 22 3, 339, 372, -1, 223, -1, 223, 350, -1, 139,893 -1, 27 0, 116, 139, -1, 137, -1, 74, -1, 75,858 -1, 27, -1, 24, -1, 237, -1, 231, 237, -1, 859 236, 233, -1, 236, 233, 227, -1, 236, 233, 237, 860 -1, 238, -1, 226, 239, 226, -1, 235, -1, 227, 861 235, -1, 238, 228, -1, 238, 235, -1, 28, 109, 862 276, 110, -1, 28, 109, 169, 110, -1, 78, 109, 863 276, 110, -1, 78, 109, 169, 110, -1, 241, -1, 864 231, 241, -1, 240, 233, -1, 240, 233, 227, -1, 865 244, -1, 227, 244, -1, 241, 228, -1, 243, -1, 866 231, 243, -1, 242, 233, -1, 242, 233, 227, -1, 867 74, -1, 227, 74, -1, 243, 228, -1, 245, -1, 868 256, -1, 247, 114, 248, 115, -1, 247, 274, -1, 869 -1, 247, 274, 246, 114, 248, 115, -1, 247, 109, 870 292, 110, 114, 248, 115, -1, 247, 285, -1, 31, 871 312, -1, 32, 312, -1, 249, -1, 248, 249, -1, 872 250, 132, -1, 40, 250, 132, -1, 251, 132, -1, 873 40, 251, 132, -1, 366, -1, 366, 274, -1, 250, 874 116, 274, -1, 250, 116, -1, 225, 252, -1, 251, 875 116, 312, 252, -1, -1, 254, -1, 318, 253, -1, 876 331, 253, -1, 357, -1, -1, 254, -1, 117, 163, 877 -1, 30, 312, -1, 255, 114, 258, 372, 115, -1, 878 255, 274, -1, -1, 255, 274, 257, 114, 258, 372, 879 115, -1, 274, 259, -1, 258, 116, 274, 259, -1, 880 -1, 131, 163, -1, -1, 261, -1, 263, -1, 262, 881 -1, 262, 135, 116, 134, 263, -1, 263, 135, 116, 882 134, 96, -1, 262, 135, 116, 134, 96, -1, 267, 883 -1, 263, 135, 116, 134, 267, -1, 262, 135, 116, 884 134, 267, -1, 262, 135, 116, 134, 263, 135, 116, 885 134, 267, -1, 268, -1, 263, 135, 116, 134, 268, 886 -1, -1, 265, -1, 266, -1, 266, 135, 116, 134, 887 96, -1, 270, -1, 269, -1, 266, 135, 116, 134, 888 270, -1, 266, 135, 116, 134, 269, -1, 269, -1, 889 362, 272, 373, -1, 370, 272, 373, -1, 227, 370, 890 272, 373, -1, 217, -1, 270, -1, 362, -1, 370, 891 -1, 227, 370, -1, 371, -1, 224, 336, 373, -1, 892 224, 340, 373, -1, 224, -1, 224, 351, -1, 139, 893 -1, 271, 116, 139, -1, 137, -1, 74, -1, 75, 894 894 -1, 138, -1, 74, -1, 75, -1, 139, -1, 74, 895 -1, 75, -1, 36 5, -1, 224, -1, 224, 356, -1,896 36 5, -1, 370, -1, 224, -1, 224, 344, -1, -1,897 131, 27 7, -1, 107, 277, -1, 163, -1, 114, 278,898 37 1, 115, -1, -1, 277, -1, 279, 277, -1, 278,899 116, 27 7, -1, 278, 116, 279, 277, -1, 280, 117,900 -1, 27 3, 117, -1, 281, -1, 280, 281, -1, 80,901 -1, 113, 27 3, -1, 111, 134, 163, 135, 112, -1,902 111, 134, 3 09, 135, 112, -1, 111, 134, 162, 96,903 16 2, 135, 112, -1, 113, 111, 134, 146, 135, 112,904 -1, 28 3, -1, 230, 283, -1, 282, 232, -1, 282,905 23 2, 226, -1, 284, -1, 226, 284, -1, 283, 227,906 -1, 75, 109, 29 1, 110, -1, 286, 372, -1, 285,907 116, 28 6, 372, -1, -1, 288, 273, 287, 289, -1,908 22 4, 335, -1, 33, -1, 35, -1, 34, -1, -1,909 2 89, 290, -1, 129, 273, 109, 291, 110, -1, 129,910 114, 134, 29 7, 115, -1, 129, 109, 134, 285, 135,911 110, 114, 134, 29 7, 115, 109, 291, 110, -1, 275,912 -1, 16 3, -1, 291, 116, 275, -1, 291, 116, 163,913 -1, 33, 29 3, -1, 231, 33, 293, -1, 292, 116,914 29 3, -1, 294, 289, -1, 294, 289, 131, 275, -1,915 27 3, -1, 272, 109, 134, 285, 135, 110, -1, 36,916 27 3, 109, 134, 285, 135, 110, 114, 115, -1, -1,917 36, 27 3, 109, 134, 285, 135, 110, 114, 296, 297,918 115, -1, 29 8, -1, 297, 134, 298, -1, 299, 135,919 132, -1, 30 0, 135, 132, -1, 214, -1, 216, -1,920 299, 135, 116, 134, 271, -1, 224, 308, -1, 300,921 135, 116, 134, 30 8, -1, -1, 302, -1, 304, -1,922 30 2, 134, 304, -1, -1, 302, -1, 211, -1, 306,923 -1, 19 7, -1, -1, 5, 82, 305, 114, 303, 115,924 -1, 40, 30 4, -1, 307, -1, 322, 172, -1, 326,925 134, 20 6, 172, -1, 215, 172, -1, 223, 322, 172,926 -1, 22 6, 322, 172, -1, 230, 322, 172, -1, 230,927 22 6, 322, 172, -1, 223, 326, 134, 206, 172, -1,928 22 6, 326, 134, 206, 172, -1, 230, 326, 134, 206,929 17 2, -1, 230, 226, 326, 134, 206, 172, -1, 317,930 -1, 3 22, -1, 330, -1, 162, 123, 162, -1, -1,931 64, 109, 141, 110, 31 1, -1, -1, 312, -1, 313,932 -1, 31 2, 313, -1, 39, 109, 109, 314, 110, 110,933 -1, 31 5, -1, 314, 116, 315, -1, -1, 316, -1,934 31 6, 109, 169, 110, -1, 271, -1, 233, -1, 234,935 -1, 22 7, -1, 318, 311, -1, 319, -1, 320, 311,936 -1, 32 1, 311, -1, 137, -1, 109, 318, 110, -1,937 1 19, 317, -1, 119, 226, 317, -1, 109, 319, 110,938 -1, 31 8, 348, -1, 109, 319, 110, 348, -1, 109,939 32 0, 110, 349, -1, 109, 320, 110, -1, 109, 319,940 110, 109, 134, 26 3, 135, 110, -1, 109, 321, 110,941 -1, 32 3, 311, -1, 324, -1, 325, 311, -1, 318,942 109, 134, 26 3, 135, 110, -1, 109, 324, 110, 109,943 134, 26 3, 135, 110, -1, 109, 323, 110, -1, 119,944 32 2, -1, 119, 226, 322, -1, 109, 324, 110, -1,945 109, 32 4, 110, 348, -1, 109, 325, 110, 349, -1,946 109, 32 5, 110, -1, 327, -1, 328, -1, 329, -1,947 31 8, 109, 270, 110, -1, 109, 328, 110, 109, 270,948 110, -1, 109, 32 7, 110, -1, 119, 326, -1, 119,949 22 6, 326, -1, 109, 328, 110, -1, 109, 328, 110,950 34 8, -1, 109, 329, 110, 349, -1, 109, 329, 110,951 -1, 33 1, 311, -1, 332, -1, 333, 311, -1, 334,952 31 1, -1, 340, -1, 109, 331, 110, -1, 119, 330,953 -1, 1 19, 226, 330, -1, 109, 332, 110, -1, 331,954 34 8, -1, 109, 332, 110, 348, -1, 109, 333, 110,955 3 49, -1, 109, 333, 110, -1, 331, 109, 134, 263,956 135, 110, -1, 109, 33 2, 110, 109, 134, 263, 135,957 110, -1, 109, 33 4, 110, -1, 318, 311, -1, 336,958 -1, 33 7, 311, -1, 338, 311, -1, 119, 335, -1,959 1 19, 226, 335, -1, 109, 336, 110, -1, 318, 354,960 -1, 109, 33 6, 110, 348, -1, 109, 337, 110, 349,961 -1, 109, 33 7, 110, -1, 318, 109, 134, 263, 135,962 110, -1, 109, 33 6, 110, 109, 134, 263, 135, 110,963 -1, 109, 33 8, 110, -1, 340, 311, -1, 341, -1,964 34 2, 311, -1, 343, 311, -1, 74, -1, 75, -1,965 1 19, 339, -1, 119, 226, 339, -1, 109, 341, 110,966 -1, 34 0, 354, -1, 109, 341, 110, 354, -1, 340,967 109, 134, 26 3, 135, 110, -1, 109, 341, 110, 109,968 134, 26 3, 135, 110, -1, 345, -1, 346, 311, -1,969 34 7, 311, -1, 119, -1, 119, 226, -1, 119, 344,970 -1, 1 19, 226, 344, -1, 109, 345, 110, -1, 348,971 -1, 109, 34 5, 110, 348, -1, 109, 346, 110, 349,972 -1, 109, 34 6, 110, -1, 109, 134, 263, 135, 110,973 -1, 109, 34 5, 110, 109, 134, 263, 135, 110, -1,974 109, 34 7, 110, -1, 111, 112, -1, 111, 112, 349,975 -1, 3 49, -1, 111, 134, 163, 135, 112, -1, 111,976 134, 11 9, 135, 112, -1, 349, 111, 134, 163, 135,977 112, -1, 3 49, 111, 134, 119, 135, 112, -1, 351,978 -1, 35 2, 311, -1, 353, 311, -1, 119, -1, 119,979 22 6, -1, 119, 350, -1, 119, 226, 350, -1, 109,980 35 1, 110, -1, 354, -1, 109, 351, 110, 354, -1,981 109, 35 2, 110, 349, -1, 109, 352, 110, -1, 109,982 134, 26 3, 135, 110, -1, 109, 351, 110, 109, 134,983 26 3, 135, 110, -1, 109, 353, 110, -1, 355, -1,984 35 5, 349, -1, 349, -1, 111, 112, -1, 111, 134,985 22 6, 119, 135, 112, -1, 111, 134, 226, 135, 112,986 -1, 111, 134, 22 6, 163, 135, 112, -1, 111, 134,987 7, 22 5, 163, 135, 112, -1, 111, 134, 226, 7,988 16 3, 135, 112, -1, 357, -1, 358, 311, -1, 359,989 31 1, -1, 119, -1, 119, 226, -1, 119, 356, -1,990 1 19, 226, 356, -1, 109, 357, 110, -1, 348, -1,991 109, 35 7, 110, 348, -1, 109, 358, 110, 349, -1,992 109, 35 8, 110, -1, 109, 357, 110, 109, 134, 263,993 135, 110, -1, 109, 3 59, 110, -1, 361, -1, 369,994 -1, 22 6, 369, -1, 362, -1, 363, -1, 119, 224,995 -1, 22 6, 119, 224, -1, 119, 370, -1, 226, 119,996 37 0, -1, 119, 360, -1, 226, 119, 360, -1, 111,997 112, 22 4, -1, 364, 224, -1, 111, 112, 349, 224,998 -1, 36 4, 349, 224, -1, 349, 224, -1, 111, 112,999 36 2, -1, 364, 362, -1, 111, 112, 349, 362, -1,1000 36 4, 349, 362, -1, 349, 362, -1, 111, 134, 226,1001 11 9, 135, 112, -1, 111, 134, 226, 163, 135, 112,1002 -1, 111, 134, 23 0, 163, 135, 112, -1, 111, 134,1003 23 0, 226, 163, 135, 112, -1, 369, -1, 226, 369,1004 -1, 36 6, -1, 367, -1, 368, -1, 119, 224, -1,1005 22 6, 119, 224, -1, 119, 370, -1, 226, 119, 370,1006 -1, 1 19, 365, -1, 226, 119, 365, -1, 111, 112,1007 22 4, -1, 111, 112, 349, 224, -1, 349, 224, -1,1008 111, 112, 36 7, -1, 111, 112, 349, 367, -1, 349,1009 36 7, -1, 111, 134, 262, 135, 112, -1, 111, 112,1010 109, 2 59, 110, -1, 369, 109, 134, 259, 135, 110,1011 -1, 21 7, 109, 134, 259, 135, 110, -1, -1, 116,1012 -1, -1, 131, 16 3, -1895 -1, 75, -1, 366, -1, 225, -1, 225, 357, -1, 896 366, -1, 371, -1, 225, -1, 225, 345, -1, -1, 897 131, 278, -1, 107, 278, -1, 164, -1, 114, 279, 898 372, 115, -1, -1, 278, -1, 280, 278, -1, 279, 899 116, 278, -1, 279, 116, 280, 278, -1, 281, 117, 900 -1, 274, 117, -1, 282, -1, 281, 282, -1, 80, 901 -1, 113, 274, -1, 111, 134, 164, 135, 112, -1, 902 111, 134, 310, 135, 112, -1, 111, 134, 163, 96, 903 163, 135, 112, -1, 113, 111, 134, 146, 135, 112, 904 -1, 284, -1, 231, 284, -1, 283, 233, -1, 283, 905 233, 227, -1, 285, -1, 227, 285, -1, 284, 228, 906 -1, 75, 109, 292, 110, -1, 287, 373, -1, 286, 907 116, 287, 373, -1, -1, 289, 274, 288, 290, -1, 908 225, 336, -1, 33, -1, 35, -1, 34, -1, -1, 909 290, 291, -1, 129, 274, 109, 292, 110, -1, 129, 910 114, 134, 298, 115, -1, 129, 109, 134, 286, 135, 911 110, 114, 134, 298, 115, 109, 292, 110, -1, 276, 912 -1, 164, -1, 292, 116, 276, -1, 292, 116, 164, 913 -1, 33, 294, -1, 232, 33, 294, -1, 293, 116, 914 294, -1, 295, 290, -1, 295, 290, 131, 276, -1, 915 274, -1, 273, 109, 134, 286, 135, 110, -1, 36, 916 274, 109, 134, 286, 135, 110, 114, 115, -1, -1, 917 36, 274, 109, 134, 286, 135, 110, 114, 297, 298, 918 115, -1, 299, -1, 298, 134, 299, -1, 300, 135, 919 132, -1, 301, 135, 132, -1, 215, -1, 217, -1, 920 300, 135, 116, 134, 272, -1, 225, 309, -1, 301, 921 135, 116, 134, 309, -1, -1, 303, -1, 305, -1, 922 303, 134, 305, -1, -1, 303, -1, 212, -1, 307, 923 -1, 198, -1, -1, 5, 82, 306, 114, 304, 115, 924 -1, 40, 305, -1, 308, -1, 323, 173, -1, 327, 925 134, 207, 173, -1, 216, 173, -1, 224, 323, 173, 926 -1, 227, 323, 173, -1, 231, 323, 173, -1, 231, 927 227, 323, 173, -1, 224, 327, 134, 207, 173, -1, 928 227, 327, 134, 207, 173, -1, 231, 327, 134, 207, 929 173, -1, 231, 227, 327, 134, 207, 173, -1, 318, 930 -1, 331, -1, 323, -1, 163, 123, 163, -1, -1, 931 64, 109, 141, 110, 312, -1, -1, 313, -1, 314, 932 -1, 313, 314, -1, 39, 109, 109, 315, 110, 110, 933 -1, 316, -1, 315, 116, 316, -1, -1, 317, -1, 934 317, 109, 170, 110, -1, 272, -1, 234, -1, 235, 935 -1, 228, -1, 319, 312, -1, 320, -1, 321, 312, 936 -1, 322, 312, -1, 137, -1, 109, 319, 110, -1, 937 149, 318, -1, 149, 227, 318, -1, 109, 320, 110, 938 -1, 319, 349, -1, 109, 320, 110, 349, -1, 109, 939 321, 110, 350, -1, 109, 321, 110, -1, 109, 320, 940 110, 109, 134, 264, 135, 110, -1, 109, 322, 110, 941 -1, 324, 312, -1, 325, -1, 326, 312, -1, 319, 942 109, 134, 264, 135, 110, -1, 109, 325, 110, 109, 943 134, 264, 135, 110, -1, 109, 324, 110, -1, 149, 944 323, -1, 149, 227, 323, -1, 109, 325, 110, -1, 945 109, 325, 110, 349, -1, 109, 326, 110, 350, -1, 946 109, 326, 110, -1, 328, -1, 329, -1, 330, -1, 947 319, 109, 271, 110, -1, 109, 329, 110, 109, 271, 948 110, -1, 109, 328, 110, -1, 149, 327, -1, 149, 949 227, 327, -1, 109, 329, 110, -1, 109, 329, 110, 950 349, -1, 109, 330, 110, 350, -1, 109, 330, 110, 951 -1, 332, 312, -1, 333, -1, 334, 312, -1, 335, 952 312, -1, 341, -1, 109, 332, 110, -1, 149, 331, 953 -1, 149, 227, 331, -1, 109, 333, 110, -1, 332, 954 349, -1, 109, 333, 110, 349, -1, 109, 334, 110, 955 350, -1, 109, 334, 110, -1, 332, 109, 134, 264, 956 135, 110, -1, 109, 333, 110, 109, 134, 264, 135, 957 110, -1, 109, 335, 110, -1, 319, 312, -1, 337, 958 -1, 338, 312, -1, 339, 312, -1, 149, 336, -1, 959 149, 227, 336, -1, 109, 337, 110, -1, 319, 355, 960 -1, 109, 337, 110, 349, -1, 109, 338, 110, 350, 961 -1, 109, 338, 110, -1, 319, 109, 134, 264, 135, 962 110, -1, 109, 337, 110, 109, 134, 264, 135, 110, 963 -1, 109, 339, 110, -1, 341, 312, -1, 342, -1, 964 343, 312, -1, 344, 312, -1, 74, -1, 75, -1, 965 149, 340, -1, 149, 227, 340, -1, 109, 342, 110, 966 -1, 341, 355, -1, 109, 342, 110, 355, -1, 341, 967 109, 134, 264, 135, 110, -1, 109, 342, 110, 109, 968 134, 264, 135, 110, -1, 346, -1, 347, 312, -1, 969 348, 312, -1, 149, -1, 149, 227, -1, 149, 345, 970 -1, 149, 227, 345, -1, 109, 346, 110, -1, 349, 971 -1, 109, 346, 110, 349, -1, 109, 347, 110, 350, 972 -1, 109, 347, 110, -1, 109, 134, 264, 135, 110, 973 -1, 109, 346, 110, 109, 134, 264, 135, 110, -1, 974 109, 348, 110, -1, 111, 112, -1, 111, 112, 350, 975 -1, 350, -1, 111, 134, 164, 135, 112, -1, 111, 976 134, 118, 135, 112, -1, 350, 111, 134, 164, 135, 977 112, -1, 350, 111, 134, 118, 135, 112, -1, 352, 978 -1, 353, 312, -1, 354, 312, -1, 149, -1, 149, 979 227, -1, 149, 351, -1, 149, 227, 351, -1, 109, 980 352, 110, -1, 355, -1, 109, 352, 110, 355, -1, 981 109, 353, 110, 350, -1, 109, 353, 110, -1, 109, 982 134, 264, 135, 110, -1, 109, 352, 110, 109, 134, 983 264, 135, 110, -1, 109, 354, 110, -1, 356, -1, 984 356, 350, -1, 350, -1, 111, 112, -1, 111, 134, 985 227, 118, 135, 112, -1, 111, 134, 227, 135, 112, 986 -1, 111, 134, 227, 164, 135, 112, -1, 111, 134, 987 7, 226, 164, 135, 112, -1, 111, 134, 227, 7, 988 164, 135, 112, -1, 358, -1, 359, 312, -1, 360, 989 312, -1, 149, -1, 149, 227, -1, 149, 357, -1, 990 149, 227, 357, -1, 109, 358, 110, -1, 349, -1, 991 109, 358, 110, 349, -1, 109, 359, 110, 350, -1, 992 109, 359, 110, -1, 109, 358, 110, 109, 134, 264, 993 135, 110, -1, 109, 360, 110, -1, 362, -1, 370, 994 -1, 227, 370, -1, 363, -1, 364, -1, 149, 225, 995 -1, 227, 149, 225, -1, 149, 371, -1, 227, 149, 996 371, -1, 149, 361, -1, 227, 149, 361, -1, 111, 997 112, 225, -1, 365, 225, -1, 111, 112, 350, 225, 998 -1, 365, 350, 225, -1, 350, 225, -1, 111, 112, 999 363, -1, 365, 363, -1, 111, 112, 350, 363, -1, 1000 365, 350, 363, -1, 350, 363, -1, 111, 134, 227, 1001 118, 135, 112, -1, 111, 134, 227, 164, 135, 112, 1002 -1, 111, 134, 231, 164, 135, 112, -1, 111, 134, 1003 231, 227, 164, 135, 112, -1, 370, -1, 227, 370, 1004 -1, 367, -1, 368, -1, 369, -1, 149, 225, -1, 1005 227, 149, 225, -1, 149, 371, -1, 227, 149, 371, 1006 -1, 149, 366, -1, 227, 149, 366, -1, 111, 112, 1007 225, -1, 111, 112, 350, 225, -1, 350, 225, -1, 1008 111, 112, 368, -1, 111, 112, 350, 368, -1, 350, 1009 368, -1, 111, 134, 263, 135, 112, -1, 111, 112, 1010 109, 260, 110, -1, 370, 109, 134, 260, 135, 110, 1011 -1, 218, 109, 134, 260, 135, 110, -1, -1, 116, 1012 -1, -1, 131, 164, -1 1013 1013 }; 1014 1014 … … 1016 1016 static const yytype_uint16 yyrline[] = 1017 1017 { 1018 0, 29 2, 292, 298, 307, 308, 309, 313, 314, 315,1019 31 9, 320, 324, 325, 329, 330, 334, 335, 341, 343,1020 34 5, 347, 352, 353, 359, 363, 365, 366, 368, 369,1021 3 71, 373, 375, 383, 384, 390, 391, 392, 397, 399,1022 40 4, 405, 409, 413, 415, 417, 419, 424, 427, 429,1023 4 31, 433, 435, 437, 439, 441, 447, 449, 451, 453,1024 45 5, 457, 459, 461, 463, 468, 469, 470, 471, 475,1025 47 6, 478, 483, 484, 486, 488, 493, 494, 496, 501,1026 50 2, 504, 509, 510, 512, 514, 516, 521, 522, 524,1027 52 9, 530, 535, 536, 541, 542, 547, 548, 553, 554,1028 55 9, 560, 562, 564, 569, 574, 575, 577, 579, 585,1029 58 6, 592, 594, 596, 598, 603, 604, 609, 610, 611,1030 61 2, 613, 614, 615, 616, 617, 618, 622, 623, 629,1031 63 0, 636, 637, 638, 639, 640, 641, 642, 643, 644,1032 6 53, 660, 662, 672, 673, 678, 680, 682, 684, 688,1033 6 89, 694, 699, 702, 704, 706, 711, 713, 721, 722,1034 72 4, 728, 729, 734, 735, 740, 741, 745, 750, 751,1035 75 5, 757, 763, 764, 768, 770, 772, 774, 780, 781,1036 78 5, 786, 790, 792, 794, 799, 801, 806, 808, 812,1037 815, 81 9, 822, 826, 828, 832, 834, 841, 843, 845,1038 8 54, 856, 858, 860, 862, 867, 869, 871, 873, 878,1039 8 91, 892, 897, 899, 904, 908, 910, 912, 914, 916,1040 9 22, 923, 929, 930, 934, 935, 940, 942, 948, 949,1041 95 1, 956, 958, 965, 967, 971, 972, 977, 979, 983,1042 98 4, 988, 990, 994, 995, 999, 1000, 1004, 1005, 1020,1043 102 1, 1022, 1023, 1024, 1028, 1033, 1040, 1050, 1055, 1060,1044 106 8, 1073, 1078, 1083, 1088, 1096, 1118, 1123, 1130, 1132,1045 113 9, 1144, 1149, 1160, 1165, 1170, 1175, 1180, 1189, 1194,1046 1 202, 1203, 1204, 1205, 1211, 1216, 1224, 1225, 1226, 1227,1047 123 1, 1232, 1233, 1234, 1239, 1240, 1249, 1250, 1255, 1256,1048 12 61, 1263, 1265, 1267, 1269, 1272, 1271, 1283, 1284, 1286,1049 12 96, 1297, 1302, 1306, 1308, 1310, 1312, 1314, 1316, 1318,1050 132 0, 1325, 1327, 1329, 1331, 1333, 1335, 1337, 1339, 1341,1051 134 3, 1345, 1347, 1349, 1355, 1356, 1358, 1360, 1362, 1367,1052 13 68, 1374, 1375, 1377, 1379, 1384, 1386, 1388, 1390, 1395,1053 139 6, 1398, 1400, 1405, 1406, 1408, 1413, 1414, 1416, 1418,1054 142 3, 1425, 1427, 1432, 1433, 1437, 1439, 1445, 1444, 1448,1055 145 0, 1455, 1457, 1462, 1464, 1469, 1470, 1472, 1473, 1478,1056 14 79, 1481, 1483, 1488, 1490, 1496, 1497, 1499, 1502, 1505,1057 15 10, 1511, 1516, 1521, 1525, 1527, 1533, 1532, 1539, 1541,1058 154 7, 1548, 1556, 1557, 1561, 1562, 1563, 1565, 1567, 1574,1059 157 5, 1577, 1579, 1584, 1585, 1591, 1592, 1596, 1597, 1602,1060 160 3, 1604, 1606, 1614, 1615, 1617, 1620, 1622, 1626, 1627,1061 16 28, 1630, 1632, 1636, 1641, 1649, 1650, 1659, 1661, 1666,1062 166 7, 1668, 1672, 1673, 1674, 1678, 1679, 1680, 1684, 1685,1063 168 6, 1691, 1692, 1693, 1694, 1700, 1701, 1703, 1708, 1709,1064 171 4, 1715, 1716, 1717, 1718, 1733, 1734, 1739, 1740, 1748,1065 175 0, 1752, 1755, 1757, 1759, 1782, 1783, 1785, 1787, 1792,1066 179 3, 1795, 1800, 1805, 1806, 1812, 1811, 1815, 1819, 1821,1067 182 3, 1829, 1830, 1835, 1840, 1842, 1847, 1849, 1850, 1852,1068 185 7, 1859, 1861, 1866, 1868, 1873, 1878, 1886, 1892, 1891,1069 1 905, 1906, 1911, 1912, 1916, 1921, 1926, 1934, 1939, 1950,1070 195 1, 1962, 1963, 1969, 1970, 1974, 1975, 1976, 1979, 1978,1071 198 9, 1994, 1999, 2005, 2014, 2020, 2026, 2032, 2038, 2046,1072 205 2, 2060, 2066, 2075, 2076, 2077, 2081, 2085, 2087, 2092,1073 209 3, 2097, 2098, 2103, 2109, 2110, 2113, 2115, 2116, 2120,1074 212 1, 2122, 2123, 2157, 2159, 2160, 2162, 2167, 2172, 2177,1075 21 79, 2181, 2186, 2188, 2190, 2192, 2197, 2199, 2209, 2211,1076 221 2, 2217, 2219, 2221, 2226, 2228, 2230, 2235, 2237, 2239,1077 224 8, 2249, 2250, 2254, 2256, 2258, 2263, 2265, 2267, 2272,1078 227 4, 2276, 2291, 2293, 2294, 2296, 2301, 2302, 2307, 2309,1079 231 1, 2316, 2318, 2320, 2322, 2327, 2329, 2331, 2341, 2343,1080 234 4, 2346, 2351, 2353, 2355, 2360, 2362, 2364, 2366, 2371,1081 237 3, 2375, 2406, 2408, 2409, 2411, 2416, 2421, 2429, 2431,1082 243 3, 2438, 2440, 2445, 2447, 2461, 2462, 2464, 2469, 2471,1083 247 3, 2475, 2477, 2482, 2483, 2485, 2487, 2492, 2494, 2496,1084 2 502, 2504, 2506, 2510, 2512, 2514, 2516, 2530, 2531, 2533,1085 253 8, 2540, 2542, 2544, 2546, 2551, 2552, 2554, 2556, 2561,1086 256 3, 2565, 2571, 2572, 2574, 2583, 2586, 2588, 2591, 2593,1087 259 5, 2608, 2609, 2611, 2616, 2618, 2620, 2622, 2624, 2629,1088 263 0, 2632, 2634, 2639, 2641, 2649, 2650, 2651, 2656, 2657,1089 266 1, 2663, 2665, 2667, 2669, 2671, 2678, 2680, 2682, 2684,1090 268 6, 2688, 2690, 2692, 2694, 2696, 2701, 2703, 2705, 2710,1091 27 36, 2737, 2739, 2743, 2744, 2748, 2750, 2752, 2754, 2756,1092 275 8, 2765, 2767, 2769, 2771, 2773, 2775, 2780, 2785, 2787,1093 27 89, 2807, 2809, 2814, 28151018 0, 290, 290, 296, 305, 306, 307, 311, 312, 313, 1019 317, 318, 322, 323, 327, 328, 332, 333, 339, 341, 1020 343, 345, 350, 351, 357, 361, 363, 364, 366, 367, 1021 369, 371, 373, 381, 382, 388, 389, 390, 395, 397, 1022 402, 403, 407, 411, 413, 415, 417, 422, 425, 427, 1023 429, 431, 436, 438, 440, 442, 444, 446, 448, 450, 1024 452, 454, 456, 463, 464, 466, 470, 471, 472, 473, 1025 477, 478, 480, 485, 486, 488, 490, 495, 496, 498, 1026 503, 504, 506, 511, 512, 514, 516, 518, 523, 524, 1027 526, 531, 532, 537, 538, 543, 544, 549, 550, 555, 1028 556, 561, 562, 564, 566, 571, 576, 577, 579, 581, 1029 587, 588, 594, 596, 598, 600, 605, 606, 611, 612, 1030 613, 614, 615, 616, 617, 618, 619, 620, 624, 625, 1031 631, 632, 638, 639, 640, 641, 642, 643, 644, 645, 1032 646, 656, 663, 665, 675, 676, 681, 683, 685, 687, 1033 691, 692, 697, 702, 705, 707, 709, 714, 716, 724, 1034 725, 727, 731, 732, 737, 738, 743, 744, 748, 753, 1035 754, 758, 760, 766, 767, 771, 773, 775, 777, 783, 1036 784, 788, 789, 793, 795, 797, 802, 804, 809, 811, 1037 815, 818, 822, 825, 829, 831, 835, 837, 844, 846, 1038 848, 857, 859, 861, 863, 865, 870, 872, 874, 876, 1039 881, 894, 895, 900, 902, 907, 911, 913, 915, 917, 1040 919, 925, 926, 932, 933, 937, 938, 943, 945, 951, 1041 952, 954, 959, 961, 968, 970, 974, 975, 980, 982, 1042 986, 987, 991, 993, 997, 998, 1002, 1003, 1007, 1008, 1043 1023, 1024, 1025, 1026, 1027, 1031, 1036, 1043, 1053, 1058, 1044 1063, 1071, 1076, 1081, 1086, 1091, 1099, 1121, 1126, 1133, 1045 1135, 1142, 1147, 1152, 1163, 1168, 1173, 1178, 1183, 1192, 1046 1197, 1205, 1206, 1207, 1208, 1214, 1219, 1227, 1228, 1229, 1047 1230, 1234, 1235, 1236, 1237, 1242, 1243, 1252, 1253, 1258, 1048 1259, 1264, 1266, 1268, 1270, 1272, 1275, 1274, 1286, 1287, 1049 1289, 1299, 1300, 1305, 1309, 1311, 1313, 1315, 1317, 1319, 1050 1321, 1323, 1328, 1330, 1332, 1334, 1336, 1338, 1340, 1342, 1051 1344, 1346, 1348, 1350, 1352, 1358, 1359, 1361, 1363, 1365, 1052 1370, 1371, 1377, 1378, 1380, 1382, 1387, 1389, 1391, 1393, 1053 1398, 1399, 1401, 1403, 1408, 1409, 1411, 1416, 1417, 1419, 1054 1421, 1426, 1428, 1430, 1435, 1436, 1440, 1442, 1448, 1447, 1055 1451, 1453, 1458, 1460, 1465, 1467, 1472, 1473, 1475, 1476, 1056 1481, 1482, 1484, 1486, 1491, 1493, 1499, 1500, 1502, 1505, 1057 1508, 1513, 1514, 1519, 1524, 1528, 1530, 1536, 1535, 1542, 1058 1544, 1550, 1551, 1559, 1560, 1564, 1565, 1566, 1568, 1570, 1059 1577, 1578, 1580, 1582, 1587, 1588, 1594, 1595, 1599, 1600, 1060 1605, 1606, 1607, 1609, 1617, 1618, 1620, 1623, 1625, 1629, 1061 1630, 1631, 1633, 1635, 1639, 1644, 1652, 1653, 1662, 1664, 1062 1669, 1670, 1671, 1675, 1676, 1677, 1681, 1682, 1683, 1687, 1063 1688, 1689, 1694, 1695, 1696, 1697, 1703, 1704, 1706, 1711, 1064 1712, 1717, 1718, 1719, 1720, 1721, 1736, 1737, 1742, 1743, 1065 1751, 1753, 1755, 1758, 1760, 1762, 1785, 1786, 1788, 1790, 1066 1795, 1796, 1798, 1803, 1808, 1809, 1815, 1814, 1818, 1822, 1067 1824, 1826, 1832, 1833, 1838, 1843, 1845, 1850, 1852, 1853, 1068 1855, 1860, 1862, 1864, 1869, 1871, 1876, 1881, 1889, 1895, 1069 1894, 1908, 1909, 1914, 1915, 1919, 1924, 1929, 1937, 1942, 1070 1953, 1954, 1965, 1966, 1972, 1973, 1977, 1978, 1979, 1982, 1071 1981, 1992, 1997, 2003, 2009, 2018, 2024, 2030, 2036, 2042, 1072 2050, 2056, 2064, 2070, 2079, 2080, 2081, 2085, 2089, 2091, 1073 2096, 2097, 2101, 2102, 2107, 2113, 2114, 2117, 2119, 2120, 1074 2124, 2125, 2126, 2127, 2161, 2163, 2164, 2166, 2171, 2176, 1075 2181, 2183, 2185, 2190, 2192, 2194, 2196, 2201, 2203, 2212, 1076 2214, 2215, 2220, 2222, 2224, 2229, 2231, 2233, 2238, 2240, 1077 2242, 2251, 2252, 2253, 2257, 2259, 2261, 2266, 2268, 2270, 1078 2275, 2277, 2279, 2294, 2296, 2297, 2299, 2304, 2305, 2310, 1079 2312, 2314, 2319, 2321, 2323, 2325, 2330, 2332, 2334, 2344, 1080 2346, 2347, 2349, 2354, 2356, 2358, 2363, 2365, 2367, 2369, 1081 2374, 2376, 2378, 2409, 2411, 2412, 2414, 2419, 2424, 2432, 1082 2434, 2436, 2441, 2443, 2448, 2450, 2464, 2465, 2467, 2472, 1083 2474, 2476, 2478, 2480, 2485, 2486, 2488, 2490, 2495, 2497, 1084 2499, 2505, 2507, 2509, 2513, 2515, 2517, 2519, 2533, 2534, 1085 2536, 2541, 2543, 2545, 2547, 2549, 2554, 2555, 2557, 2559, 1086 2564, 2566, 2568, 2574, 2575, 2577, 2586, 2589, 2591, 2594, 1087 2596, 2598, 2611, 2612, 2614, 2619, 2621, 2623, 2625, 2627, 1088 2632, 2633, 2635, 2637, 2642, 2644, 2652, 2653, 2654, 2659, 1089 2660, 2664, 2666, 2668, 2670, 2672, 2674, 2681, 2683, 2685, 1090 2687, 2689, 2691, 2693, 2695, 2697, 2699, 2704, 2706, 2708, 1091 2713, 2739, 2740, 2742, 2746, 2747, 2751, 2753, 2755, 2757, 1092 2759, 2761, 2768, 2770, 2772, 2774, 2776, 2778, 2783, 2788, 1093 2790, 2792, 2810, 2812, 2817, 2818 1094 1094 }; 1095 1095 #endif … … 1117 1117 "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign", 1118 1118 "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", 1119 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "' !'",1120 "' *'", "'&'", "'+'", "'-'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",1119 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "'*'", 1120 "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", 1121 1121 "'|'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant", 1122 1122 "identifier", "no_01_identifier", "no_attr_identifier", "zero_one", 1123 1123 "string_literal_list", "primary_expression", "postfix_expression", 1124 1124 "argument_expression_list", "argument_expression", "field_list", "field", 1125 "unary_expression", " unary_operator", "cast_expression",1126 " multiplicative_expression", "additive_expression", "shift_expression",1127 " relational_expression", "equality_expression", "AND_expression",1128 " exclusive_OR_expression", "inclusive_OR_expression",1125 "unary_expression", "ptrref_operator", "unary_operator", 1126 "cast_expression", "multiplicative_expression", "additive_expression", 1127 "shift_expression", "relational_expression", "equality_expression", 1128 "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression", 1129 1129 "logical_AND_expression", "logical_OR_expression", 1130 1130 "conditional_expression", "constant_expression", "assignment_expression", … … 1185 1185 "function_ptr", "function_array", "old_function_declarator", 1186 1186 "old_function_no_ptr", "old_function_ptr", "old_function_array", 1187 " type_redeclarator", "paren_type", "type_ptr", "type_array",1187 "variable_type_redeclarator", "paren_type", "type_ptr", "type_array", 1188 1188 "type_function", "identifier_parameter_declarator", 1189 1189 "identifier_parameter_ptr", "identifier_parameter_array", … … 1224 1224 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1225 1225 355, 356, 357, 358, 359, 360, 361, 362, 363, 40, 1226 41, 91, 93, 46, 123, 125, 44, 58, 33, 42,1227 38, 43, 45, 126, 47, 37, 60, 62, 94, 124,1226 41, 91, 93, 46, 123, 125, 44, 58, 42, 38, 1227 43, 45, 33, 126, 47, 37, 60, 62, 94, 124, 1228 1228 63, 61, 59 1229 1229 }; … … 1239 1239 146, 146, 147, 147, 147, 147, 147, 148, 148, 148, 1240 1240 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 1241 148, 148, 148, 14 8, 148, 149, 149, 149, 149, 150,1242 15 0, 150, 151, 151, 151, 151, 152, 152, 152, 153,1243 15 3, 153, 154, 154, 154, 154, 154, 155, 155, 155,1244 156, 15 6, 157, 157, 158, 158, 159, 159, 160, 160,1245 161, 16 1, 161, 161, 162, 163, 163, 163, 163, 164,1246 16 4, 165, 165, 165, 165, 166, 166, 167, 167, 167,1247 16 7, 167, 167, 167, 167, 167, 167, 168, 168, 169,1248 1 69, 170, 170, 170, 170, 170, 170, 170, 170, 170,1249 171, 172, 17 2, 173, 173, 174, 174, 174, 174, 175,1250 17 5, 176, 177, 177, 177, 177, 177, 177, 178, 178,1251 17 8, 179, 179, 180, 180, 181, 181, 182, 183, 183,1252 184, 18 4, 185, 185, 186, 186, 186, 186, 187, 187,1253 188, 18 8, 189, 189, 189, 190, 190, 191, 191, 191,1254 19 1, 191, 191, 191, 191, 191, 191, 192, 192, 192,1255 193, 19 3, 193, 193, 193, 194, 194, 194, 194, 195,1256 196, 19 6, 196, 196, 196, 197, 197, 197, 197, 197,1257 198, 19 8, 199, 199, 200, 200, 201, 201, 202, 202,1258 20 2, 203, 203, 204, 204, 205, 205, 206, 206, 207,1259 20 7, 208, 208, 209, 209, 210, 210, 211, 211, 212,1260 21 2, 212, 212, 212, 213, 213, 213, 214, 214, 214,1261 215, 21 5, 215, 215, 215, 216, 216, 216, 217, 217,1262 218, 21 8, 218, 219, 219, 219, 219, 219, 220, 220,1263 221, 22 1, 221, 221, 222, 222, 223, 223, 223, 223,1264 224, 22 4, 224, 224, 225, 225, 226, 226, 227, 227,1265 228, 22 8, 228, 228, 228, 229, 228, 230, 230, 230,1266 231, 23 1, 232, 233, 233, 233, 233, 233, 233, 233,1267 23 3, 234, 234, 234, 234, 234, 234, 234, 234, 234,1268 23 4, 234, 234, 234, 235, 235, 235, 235, 235, 236,1269 23 6, 237, 237, 237, 237, 238, 238, 238, 238, 239,1270 2 39, 239, 239, 240, 240, 240, 241, 241, 241, 241,1271 242, 24 2, 242, 243, 243, 244, 244, 245, 244, 244,1272 24 4, 246, 246, 247, 247, 248, 248, 248, 248, 249,1273 2 49, 249, 249, 250, 250, 251, 251, 251, 251, 251,1274 252, 25 2, 253, 254, 255, 255, 256, 255, 257, 257,1275 258, 25 8, 259, 259, 260, 260, 260, 260, 260, 261,1276 26 1, 261, 261, 262, 262, 263, 263, 264, 264, 265,1277 26 5, 265, 265, 266, 266, 266, 266, 266, 267, 267,1278 26 7, 267, 267, 268, 268, 269, 269, 270, 270, 271,1279 27 1, 271, 272, 272, 272, 273, 273, 273, 274, 274,1280 27 4, 275, 275, 275, 275, 276, 276, 276, 277, 277,1281 278, 27 8, 278, 278, 278, 279, 279, 280, 280, 281,1282 28 1, 281, 281, 281, 281, 282, 282, 282, 282, 283,1283 28 3, 283, 284, 285, 285, 287, 286, 286, 288, 288,1284 28 8, 289, 289, 290, 290, 290, 291, 291, 291, 291,1285 292, 29 2, 292, 293, 293, 294, 294, 295, 296, 295,1286 29 7, 297, 298, 298, 299, 299, 299, 300, 300, 301,1287 30 1, 302, 302, 303, 303, 304, 304, 304, 305, 304,1288 30 4, 306, 306, 306, 307, 307, 307, 307, 307, 307,1289 30 7, 307, 307, 308, 308, 308, 309, 310, 310, 311,1290 31 1, 312, 312, 313, 314, 314, 315, 315, 315, 316,1291 31 6, 316, 316, 317, 317, 317, 317, 318, 318, 319,1292 3 19, 319, 320, 320, 320, 320, 321, 321, 322, 322,1293 32 2, 323, 323, 323, 324, 324, 324, 325, 325, 325,1294 326, 32 6, 326, 327, 327, 327, 328, 328, 328, 329,1295 3 29, 329, 330, 330, 330, 330, 331, 331, 332, 332,1296 33 2, 333, 333, 333, 333, 334, 334, 334, 335, 335,1297 33 5, 335, 336, 336, 336, 337, 337, 337, 337, 338,1298 33 8, 338, 339, 339, 339, 339, 340, 340, 341, 341,1299 34 1, 342, 342, 343, 343, 344, 344, 344, 345, 345,1300 34 5, 345, 345, 346, 346, 346, 346, 347, 347, 347,1301 348, 34 8, 348, 349, 349, 349, 349, 350, 350, 350,1302 351, 35 1, 351, 351, 351, 352, 352, 352, 352, 353,1303 35 3, 353, 354, 354, 354, 355, 355, 355, 355, 355,1304 35 5, 356, 356, 356, 357, 357, 357, 357, 357, 358,1305 35 8, 358, 358, 359, 359, 360, 360, 360, 361, 361,1306 362, 36 2, 362, 362, 362, 362, 363, 363, 363, 363,1307 36 3, 363, 363, 363, 363, 363, 364, 364, 364, 364,1308 365, 36 5, 365, 366, 366, 367, 367, 367, 367, 367,1309 36 7, 368, 368, 368, 368, 368, 368, 369, 370, 370,1310 37 0, 371, 371, 372, 3721241 148, 148, 148, 149, 149, 149, 150, 150, 150, 150, 1242 151, 151, 151, 152, 152, 152, 152, 153, 153, 153, 1243 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 1244 156, 157, 157, 158, 158, 159, 159, 160, 160, 161, 1245 161, 162, 162, 162, 162, 163, 164, 164, 164, 164, 1246 165, 165, 166, 166, 166, 166, 167, 167, 168, 168, 1247 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 1248 170, 170, 171, 171, 171, 171, 171, 171, 171, 171, 1249 171, 172, 173, 173, 174, 174, 175, 175, 175, 175, 1250 176, 176, 177, 178, 178, 178, 178, 178, 178, 179, 1251 179, 179, 180, 180, 181, 181, 182, 182, 183, 184, 1252 184, 185, 185, 186, 186, 187, 187, 187, 187, 188, 1253 188, 189, 189, 190, 190, 190, 191, 191, 192, 192, 1254 192, 192, 192, 192, 192, 192, 192, 192, 193, 193, 1255 193, 194, 194, 194, 194, 194, 195, 195, 195, 195, 1256 196, 197, 197, 197, 197, 197, 198, 198, 198, 198, 1257 198, 199, 199, 200, 200, 201, 201, 202, 202, 203, 1258 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, 1259 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 1260 213, 213, 213, 213, 213, 214, 214, 214, 215, 215, 1261 215, 216, 216, 216, 216, 216, 217, 217, 217, 218, 1262 218, 219, 219, 219, 220, 220, 220, 220, 220, 221, 1263 221, 222, 222, 222, 222, 223, 223, 224, 224, 224, 1264 224, 225, 225, 225, 225, 226, 226, 227, 227, 228, 1265 228, 229, 229, 229, 229, 229, 230, 229, 231, 231, 1266 231, 232, 232, 233, 234, 234, 234, 234, 234, 234, 1267 234, 234, 235, 235, 235, 235, 235, 235, 235, 235, 1268 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 1269 237, 237, 238, 238, 238, 238, 239, 239, 239, 239, 1270 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 1271 242, 243, 243, 243, 244, 244, 245, 245, 246, 245, 1272 245, 245, 247, 247, 248, 248, 249, 249, 249, 249, 1273 250, 250, 250, 250, 251, 251, 252, 252, 252, 252, 1274 252, 253, 253, 254, 255, 256, 256, 257, 256, 258, 1275 258, 259, 259, 260, 260, 261, 261, 261, 261, 261, 1276 262, 262, 262, 262, 263, 263, 264, 264, 265, 265, 1277 266, 266, 266, 266, 267, 267, 267, 267, 267, 268, 1278 268, 268, 268, 268, 269, 269, 270, 270, 271, 271, 1279 272, 272, 272, 273, 273, 273, 274, 274, 274, 275, 1280 275, 275, 276, 276, 276, 276, 277, 277, 277, 278, 1281 278, 279, 279, 279, 279, 279, 280, 280, 281, 281, 1282 282, 282, 282, 282, 282, 282, 283, 283, 283, 283, 1283 284, 284, 284, 285, 286, 286, 288, 287, 287, 289, 1284 289, 289, 290, 290, 291, 291, 291, 292, 292, 292, 1285 292, 293, 293, 293, 294, 294, 295, 295, 296, 297, 1286 296, 298, 298, 299, 299, 300, 300, 300, 301, 301, 1287 302, 302, 303, 303, 304, 304, 305, 305, 305, 306, 1288 305, 305, 307, 307, 307, 308, 308, 308, 308, 308, 1289 308, 308, 308, 308, 309, 309, 309, 310, 311, 311, 1290 312, 312, 313, 313, 314, 315, 315, 316, 316, 316, 1291 317, 317, 317, 317, 318, 318, 318, 318, 319, 319, 1292 320, 320, 320, 321, 321, 321, 321, 322, 322, 323, 1293 323, 323, 324, 324, 324, 325, 325, 325, 326, 326, 1294 326, 327, 327, 327, 328, 328, 328, 329, 329, 329, 1295 330, 330, 330, 331, 331, 331, 331, 332, 332, 333, 1296 333, 333, 334, 334, 334, 334, 335, 335, 335, 336, 1297 336, 336, 336, 337, 337, 337, 338, 338, 338, 338, 1298 339, 339, 339, 340, 340, 340, 340, 341, 341, 342, 1299 342, 342, 343, 343, 344, 344, 345, 345, 345, 346, 1300 346, 346, 346, 346, 347, 347, 347, 347, 348, 348, 1301 348, 349, 349, 349, 350, 350, 350, 350, 351, 351, 1302 351, 352, 352, 352, 352, 352, 353, 353, 353, 353, 1303 354, 354, 354, 355, 355, 355, 356, 356, 356, 356, 1304 356, 356, 357, 357, 357, 358, 358, 358, 358, 358, 1305 359, 359, 359, 359, 360, 360, 361, 361, 361, 362, 1306 362, 363, 363, 363, 363, 363, 363, 364, 364, 364, 1307 364, 364, 364, 364, 364, 364, 364, 365, 365, 365, 1308 365, 366, 366, 366, 367, 367, 368, 368, 368, 368, 1309 368, 368, 369, 369, 369, 369, 369, 369, 370, 371, 1310 371, 371, 372, 372, 373, 373 1311 1311 }; 1312 1312 … … 1319 1319 2, 7, 4, 1, 3, 0, 1, 3, 7, 9, 1320 1320 1, 3, 1, 3, 7, 3, 7, 1, 1, 1, 1321 2, 2, 2, 2, 2, 2, 2, 4, 6, 1,1322 4, 4, 2, 4, 2, 1, 1, 1, 1, 1,1323 4, 4, 1, 3, 3, 3, 1, 3, 3, 1,1324 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,1325 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,1326 1, 5, 4, 5, 1, 1, 3, 3, 2, 0,1327 1, 2, 5, 6, 7, 1, 3, 1, 1, 1,1328 1, 1, 1, 1, 1, 1, 1, 1, 3, 0,1329 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,1330 4, 2, 7, 1, 3, 1, 2, 1, 2, 1,1331 2, 2, 5, 7, 5, 9, 5, 9, 1, 3,1332 1, 1, 3, 3, 2, 1, 2, 2, 0, 1,1333 2, 3, 0, 1, 2, 3, 3, 4, 0, 1,1334 1, 2, 5, 7, 6, 6, 4, 3, 4, 2,1335 3, 2, 3, 3, 3, 3, 5, 3, 3, 4,1336 1, 5, 6, 5, 6, 9, 10, 9, 10, 2,1337 1, 2, 2, 2, 1, 6, 8, 10, 12, 14,1338 0, 1, 0, 1, 1, 3, 4, 7, 0, 1,1339 3, 1, 3, 1, 1, 1, 3, 1, 1, 1,1340 3, 0, 1, 3, 4, 1, 3, 1, 1, 3,1341 3, 3, 3, 3, 2, 3, 6, 3, 3, 4,1342 1, 2, 2, 3, 5, 8, 7, 7, 5, 9,1343 2, 2, 5, 3, 5, 4, 3, 4, 4, 7,1344 3, 3, 3, 3, 4, 6, 1, 1, 1, 1,1345 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,1346 1, 1, 1, 1, 1, 0, 5, 1, 2, 3,1347 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,1321 2, 2, 2, 2, 2, 2, 4, 6, 1, 4, 1322 4, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1323 1, 4, 4, 1, 3, 3, 3, 1, 3, 3, 1324 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1325 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1326 3, 1, 5, 4, 5, 1, 1, 3, 3, 2, 1327 0, 1, 2, 5, 6, 7, 1, 3, 1, 1, 1328 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1329 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1330 6, 4, 2, 7, 1, 3, 1, 2, 1, 2, 1331 1, 2, 2, 5, 7, 5, 9, 5, 9, 1, 1332 3, 1, 1, 3, 3, 2, 1, 2, 2, 0, 1333 1, 2, 3, 0, 1, 2, 3, 3, 4, 0, 1334 1, 1, 2, 5, 7, 6, 6, 4, 3, 4, 1335 2, 3, 2, 3, 3, 3, 3, 5, 3, 3, 1336 4, 1, 5, 6, 5, 6, 9, 10, 9, 10, 1337 2, 1, 2, 2, 2, 1, 6, 8, 10, 12, 1338 14, 0, 1, 0, 1, 1, 3, 4, 7, 0, 1339 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1340 1, 3, 0, 1, 3, 4, 1, 3, 1, 1, 1341 3, 3, 3, 3, 3, 2, 3, 6, 3, 3, 1342 4, 1, 2, 2, 3, 5, 8, 7, 7, 5, 1343 9, 2, 2, 5, 3, 5, 4, 3, 4, 4, 1344 7, 3, 3, 3, 3, 4, 6, 1, 1, 1, 1345 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1346 1, 1, 1, 1, 1, 1, 0, 5, 1, 2, 1347 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1348 1348 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1349 1, 1, 1, 1, 1, 2, 2, 3, 3, 1,1350 3, 1, 2, 2, 2, 4, 4, 4, 4, 1,1351 2, 2, 3, 1, 2, 2, 1, 2, 2, 3,1352 1, 2, 2, 1, 1, 4, 2, 0, 6, 7,1353 2, 2, 2, 1, 2, 2, 3, 2, 3, 1,1354 2, 3, 2, 2, 4, 0, 1, 2, 2, 1,1355 0, 1, 2, 2, 5, 2, 0, 7, 2, 4,1356 0, 2, 0, 1, 1, 1, 5, 5, 5, 1,1357 5, 5, 9, 1, 5, 0, 1, 1, 5, 1,1358 1, 5, 5, 1, 3, 3, 4, 1, 1, 1,1359 1, 2, 1, 3, 3, 1, 2, 1, 3, 1,1349 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 1350 1, 3, 1, 2, 2, 2, 4, 4, 4, 4, 1351 1, 2, 2, 3, 1, 2, 2, 1, 2, 2, 1352 3, 1, 2, 2, 1, 1, 4, 2, 0, 6, 1353 7, 2, 2, 2, 1, 2, 2, 3, 2, 3, 1354 1, 2, 3, 2, 2, 4, 0, 1, 2, 2, 1355 1, 0, 1, 2, 2, 5, 2, 0, 7, 2, 1356 4, 0, 2, 0, 1, 1, 1, 5, 5, 5, 1357 1, 5, 5, 9, 1, 5, 0, 1, 1, 5, 1358 1, 1, 5, 5, 1, 3, 3, 4, 1, 1, 1359 1, 1, 2, 1, 3, 3, 1, 2, 1, 3, 1360 1360 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1361 2, 1, 1, 1, 2, 0, 2, 2, 1, 4,1362 0, 1, 2, 3, 4, 2, 2, 1, 2, 1,1363 2, 5, 5, 7, 6, 1, 2, 2, 3, 1,1364 2, 2, 4, 2, 4, 0, 4, 2, 1, 1,1365 1, 0, 2, 5, 5, 13, 1, 1, 3, 3,1366 2, 3, 3, 2, 4, 1, 6, 9, 0, 11,1367 1, 3, 3, 3, 1, 1, 5, 2, 5, 0,1368 1, 1, 3, 0, 1, 1, 1, 1, 0, 6,1369 2, 1, 2, 4, 2, 3, 3, 3, 4, 5,1370 5, 5, 6, 1, 1, 1, 3, 0, 5, 0,1371 1, 1, 2, 6, 1, 3, 0, 1, 4, 1,1372 1, 1, 1, 2, 1, 2, 2, 1, 3, 2,1373 3, 3, 2, 4, 4, 3, 8, 3, 2, 1,1374 2, 6, 8, 3, 2, 3, 3, 4, 4, 3,1375 1, 1, 1, 4, 6, 3, 2, 3, 3, 4,1376 4, 3, 2, 1, 2, 2, 1, 3, 2, 3,1377 3, 2, 4, 4, 3, 6, 8, 3, 2, 1,1378 2, 2, 2, 3, 3, 2, 4, 4, 3, 6,1379 8, 3, 2, 1, 2, 2, 1, 1, 2, 3,1380 3, 2, 4, 6, 8, 1, 2, 2, 1, 2,1381 2, 3, 3, 1, 4, 4, 3, 5, 8, 3,1382 2, 3, 1, 5, 5, 6, 6, 1, 2, 2,1383 1, 2, 2, 3, 3, 1, 4, 4, 3, 5,1384 8, 3, 1, 2, 1, 2, 6, 5, 6, 7,1385 7, 1, 2, 2, 1, 2, 2, 3, 3, 1,1386 4, 4, 3, 8, 3, 1, 1, 2, 1, 1,1387 2, 3, 2, 3, 2, 3, 3, 2, 4, 3,1388 2, 3, 2, 4, 3, 2, 6, 6, 6, 7,1389 1, 2, 1, 1, 1, 2, 3, 2, 3, 2,1390 3, 3, 4, 2, 3, 4, 2, 5, 5, 6,1391 6, 0, 1, 0, 21361 1, 2, 1, 1, 1, 2, 0, 2, 2, 1, 1362 4, 0, 1, 2, 3, 4, 2, 2, 1, 2, 1363 1, 2, 5, 5, 7, 6, 1, 2, 2, 3, 1364 1, 2, 2, 4, 2, 4, 0, 4, 2, 1, 1365 1, 1, 0, 2, 5, 5, 13, 1, 1, 3, 1366 3, 2, 3, 3, 2, 4, 1, 6, 9, 0, 1367 11, 1, 3, 3, 3, 1, 1, 5, 2, 5, 1368 0, 1, 1, 3, 0, 1, 1, 1, 1, 0, 1369 6, 2, 1, 2, 4, 2, 3, 3, 3, 4, 1370 5, 5, 5, 6, 1, 1, 1, 3, 0, 5, 1371 0, 1, 1, 2, 6, 1, 3, 0, 1, 4, 1372 1, 1, 1, 1, 2, 1, 2, 2, 1, 3, 1373 2, 3, 3, 2, 4, 4, 3, 8, 3, 2, 1374 1, 2, 6, 8, 3, 2, 3, 3, 4, 4, 1375 3, 1, 1, 1, 4, 6, 3, 2, 3, 3, 1376 4, 4, 3, 2, 1, 2, 2, 1, 3, 2, 1377 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1378 1, 2, 2, 2, 3, 3, 2, 4, 4, 3, 1379 6, 8, 3, 2, 1, 2, 2, 1, 1, 2, 1380 3, 3, 2, 4, 6, 8, 1, 2, 2, 1, 1381 2, 2, 3, 3, 1, 4, 4, 3, 5, 8, 1382 3, 2, 3, 1, 5, 5, 6, 6, 1, 2, 1383 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1384 5, 8, 3, 1, 2, 1, 2, 6, 5, 6, 1385 7, 7, 1, 2, 2, 1, 2, 2, 3, 3, 1386 1, 4, 4, 3, 8, 3, 1, 1, 2, 1, 1387 1, 2, 3, 2, 3, 2, 3, 3, 2, 4, 1388 3, 2, 3, 2, 4, 3, 2, 6, 6, 6, 1389 7, 1, 2, 1, 1, 1, 2, 3, 2, 3, 1390 2, 3, 3, 4, 2, 3, 4, 2, 5, 5, 1391 6, 6, 0, 1, 0, 2 1392 1392 }; 1393 1393 … … 1397 1397 static const yytype_uint16 yydefact[] = 1398 1398 { 1399 29 4, 294, 315, 313, 316, 314, 317, 318, 300, 302,1400 30 1, 0, 303, 329, 321, 326, 324, 325, 323, 322,1401 32 7, 328, 333, 330, 331, 332, 549, 549, 549, 0,1402 0, 0, 29 4, 220, 304, 319, 320, 7, 360, 0,1403 8, 14, 15, 0, 2, 294, 567, 9, 527, 525,1404 2 47, 3, 455, 3, 260, 0, 3, 3, 3, 248,1405 3, 0, 0, 0, 295, 296, 298, 294, 307, 310,1406 312, 341, 286, 334, 339, 287, 349, 288, 356, 353,1407 363, 0, 0, 364, 289, 475, 479, 3, 3,0,1408 2, 521, 526, 531, 299, 0, 0, 549, 579, 549,1409 2, 590, 591, 592, 294, 0, 733, 734, 0, 12,1410 294, 0, 13, 270, 271, 0, 295, 290, 291, 292,1411 29 3, 528, 305, 393, 550, 551, 371, 372, 12, 446,1412 447, 11, 442, 445, 0, 505, 500, 491, 446, 447,1413 0, 0, 530, 221, 0, 294, 0, 0, 0, 0,1414 0, 0, 0, 0, 294, 294, 2, 0, 735, 295,1415 584, 596, 739, 732, 730, 737, 0, 0, 0, 254,1416 2, 0, 534, 440, 441, 439, 0, 0,0, 0,1417 549, 0, 636, 637, 0, 0, 547, 543, 549, 564,1418 54 9, 549, 544, 2, 545, 549, 603, 549, 549, 606,1419 0, 0, 0, 294, 294, 313, 361, 2, 294, 261,1420 297, 308, 342, 354, 480, 0, 2, 0, 455, 262,1421 295, 335, 350, 357, 476, 0, 2, 0, 311, 336,1422 343, 344, 0, 351, 355, 358, 362, 447, 294, 294,1423 366, 370, 0, 395, 477, 481, 0, 0, 0, 1,1424 294, 2, 532, 578, 580, 294, 2, 743, 295, 746,1425 547, 547, 295, 0, 0, 0, 273, 549, 544, 2,1426 294, 0, 0, 294, 552, 2, 503, 2, 556, 0,1427 0, 0, 0, 0, 0, 18, 59, 4, 5, 6,1428 16, 0, 0, 0, 294, 2, 0, 294, 65, 66,1429 6 7, 68, 48, 19, 49, 22, 47, 69, 0, 72,1430 7 6, 79, 82, 87, 90, 92, 94, 96, 98, 100,1431 10 5, 497, 753, 453, 496, 0, 451, 452, 0, 568,1432 5 83, 586, 589, 595, 598, 601, 360, 0, 2, 741,1433 0, 294, 744, 2, 294, 3, 427, 0, 435, 295,1434 294, 307, 334, 287, 349, 356, 3, 3, 409, 413,1435 4 23, 428, 475, 294, 429, 708, 709, 294, 430, 432,1436 294, 2, 585, 597, 731, 2, 2, 249, 2, 460,1437 0, 458, 457, 456, 141, 2, 2, 251, 2,2,1438 250, 2, 281, 2, 282, 0, 280, 0, 0, 0,1439 0, 0, 0, 0, 0, 0, 569, 608, 0, 455,1440 2, 563, 572, 662, 565, 566, 535, 294, 2, 602,1441 611, 604, 605, 0, 276, 294, 294, 340, 295, 0,1442 29 5, 0, 294, 736, 740, 738, 536, 294, 547, 255,1443 263, 309, 0, 2, 537, 294, 501, 337, 338, 283,1444 3 52, 359, 0, 294, 2, 385, 294, 373, 0, 0,1445 379, 730, 0, 751, 400, 0, 478, 502, 252, 253,1446 522, 294, 437, 0, 294, 237, 0, 2, 239, 0,1447 2 95, 0, 257, 2, 258, 278, 0, 0, 2, 294,1448 547, 294, 488, 490, 489, 0, 0, 753, 0, 294,1449 0, 29 4, 492, 294, 562, 560, 561, 559, 0, 554,1450 557, 0, 0, 294, 56, 294, 69, 52, 294, 62,1451 29 4, 294, 50, 51, 64, 2, 127, 0, 0, 449,1452 0, 448, 111, 294, 54, 55, 17, 0, 29, 30,1453 35, 2, 0, 35, 117, 118, 119, 120, 121, 122,1454 12 3, 124, 125, 126, 0, 0, 53, 0, 0, 0,1399 295, 295, 316, 314, 317, 315, 318, 319, 301, 303, 1400 302, 0, 304, 330, 322, 327, 325, 326, 324, 323, 1401 328, 329, 334, 331, 332, 333, 550, 550, 550, 0, 1402 0, 0, 295, 221, 305, 320, 321, 7, 361, 0, 1403 8, 14, 15, 65, 0, 2, 63, 64, 568, 9, 1404 295, 528, 526, 248, 3, 456, 3, 261, 0, 3, 1405 3, 3, 249, 3, 0, 0, 0, 296, 297, 299, 1406 295, 308, 311, 313, 342, 287, 335, 340, 288, 350, 1407 289, 357, 354, 364, 0, 0, 365, 290, 476, 480, 1408 3, 3, 0, 2, 522, 527, 532, 300, 0, 0, 1409 550, 580, 550, 2, 591, 592, 593, 295, 0, 734, 1410 735, 0, 12, 0, 13, 295, 271, 272, 0, 296, 1411 291, 292, 293, 294, 529, 306, 394, 551, 552, 372, 1412 373, 12, 447, 448, 11, 443, 446, 0, 506, 501, 1413 492, 447, 448, 0, 0, 531, 222, 0, 295, 0, 1414 0, 0, 0, 0, 0, 0, 0, 295, 295, 2, 1415 0, 736, 296, 585, 597, 740, 733, 731, 738, 0, 1416 0, 0, 255, 2, 0, 535, 441, 442, 440, 0, 1417 0, 0, 0, 550, 0, 637, 638, 0, 0, 548, 1418 544, 550, 565, 550, 550, 546, 2, 545, 550, 604, 1419 550, 550, 607, 0, 0, 0, 295, 295, 314, 362, 1420 2, 295, 262, 298, 309, 343, 355, 481, 0, 2, 1421 0, 456, 263, 296, 336, 351, 358, 477, 0, 2, 1422 0, 312, 337, 344, 345, 0, 352, 356, 359, 363, 1423 448, 295, 295, 367, 371, 0, 396, 478, 482, 0, 1424 0, 0, 1, 295, 2, 533, 579, 581, 295, 2, 1425 744, 296, 747, 548, 548, 0, 296, 0, 0, 274, 1426 550, 546, 2, 295, 0, 0, 295, 553, 2, 504, 1427 2, 557, 0, 0, 0, 0, 0, 0, 18, 58, 1428 4, 5, 6, 16, 0, 0, 295, 2, 66, 67, 1429 68, 69, 48, 19, 49, 22, 47, 70, 295, 0, 1430 73, 77, 80, 83, 88, 91, 93, 95, 97, 99, 1431 101, 106, 498, 754, 454, 497, 0, 452, 453, 0, 1432 569, 584, 587, 590, 596, 599, 602, 361, 0, 2, 1433 742, 0, 295, 745, 2, 63, 295, 3, 428, 0, 1434 436, 296, 295, 308, 335, 288, 350, 357, 3, 3, 1435 410, 414, 424, 429, 476, 295, 430, 709, 710, 295, 1436 431, 433, 295, 2, 586, 598, 732, 2, 2, 250, 1437 2, 461, 0, 459, 458, 457, 142, 2, 2, 252, 1438 2, 2, 251, 2, 282, 2, 283, 0, 281, 0, 1439 0, 0, 0, 0, 0, 0, 0, 0, 570, 609, 1440 0, 456, 2, 564, 573, 663, 566, 567, 536, 295, 1441 2, 603, 612, 605, 606, 0, 277, 295, 295, 341, 1442 296, 0, 296, 0, 295, 737, 741, 739, 537, 295, 1443 548, 256, 264, 310, 0, 2, 538, 295, 502, 338, 1444 339, 284, 353, 360, 0, 295, 2, 386, 295, 374, 1445 0, 0, 380, 731, 0, 752, 401, 0, 479, 503, 1446 253, 254, 523, 295, 438, 0, 295, 238, 0, 2, 1447 240, 0, 296, 0, 258, 2, 259, 279, 0, 0, 1448 2, 295, 548, 295, 489, 491, 490, 0, 0, 754, 1449 0, 295, 0, 295, 493, 295, 563, 561, 562, 560, 1450 0, 555, 558, 0, 0, 295, 55, 295, 70, 50, 1451 295, 61, 295, 295, 53, 54, 2, 128, 0, 0, 1452 450, 0, 449, 112, 295, 17, 0, 29, 30, 35, 1453 2, 0, 35, 118, 119, 120, 121, 122, 123, 124, 1454 125, 126, 127, 0, 0, 51, 52, 0, 0, 0, 1455 1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456 0, 0, 0, 0, 0, 0, 0, 108, 2, 648, 1457 454, 645, 549, 549, 653, 482, 294, 2, 587, 588, 1458 0, 599, 600, 0, 2, 742, 745, 111, 294, 2, 1459 294, 0, 710, 295, 714, 705, 706, 712, 0, 2, 1460 2, 670, 549, 753, 619, 549, 549, 753, 549, 633, 1461 549, 549, 684, 436, 667, 549, 549, 675, 682, 294, 1462 431, 295, 0, 0, 294, 720, 295, 725, 753, 717, 1463 294, 722, 753, 294, 294, 294, 0, 111, 0, 18, 1464 5, 2, 0, 19, 0, 461, 751, 0, 0, 467, 1465 241, 0, 294, 0, 0, 0, 547, 571, 575, 577, 1466 607, 610, 614, 617, 570, 609, 0, 284, 660, 0, 1467 294, 277, 0, 0, 0, 0, 275, 2, 0, 259, 1468 538, 294, 0, 0, 0, 0, 294, 294, 0, 0, 1469 694, 383, 386, 390, 549, 390, 699, 389, 691, 549, 1470 549, 365, 374, 382, 375, 549, 377, 380, 294, 752, 1471 0, 0, 398, 0, 295, 3, 416, 3, 420, 419, 1472 593, 0, 533, 294, 3, 3, 294, 435, 295, 3, 1473 429, 430, 2, 0, 0, 0, 487, 306, 294, 483, 1474 485, 3, 2, 2, 0, 504, 3, 0, 556, 129, 1475 0, 0, 222, 0, 0, 0, 2, 0, 0, 36, 1476 0, 0, 111, 294, 20, 0, 21, 0, 694, 450, 1477 0, 109, 3, 2, 27, 2, 0, 33, 0, 2, 1478 25, 0, 106, 107, 73, 74, 75, 77, 78, 80, 1479 81, 85, 86, 83, 84, 88, 89, 91, 93, 95, 1480 97, 99, 0, 0, 754, 294, 0, 0, 0, 649, 1481 650, 646, 647, 499, 498, 294, 0, 3, 294, 716, 1482 294, 721, 295, 294, 294, 294, 664, 707, 663, 2, 1483 294, 0, 0, 0, 0, 0, 0, 0, 0, 685, 1484 0, 671, 622, 638, 672, 2, 618, 625, 433, 620, 1485 621, 434, 2, 632, 641, 634, 635, 668, 669, 683, 1486 711, 715, 713, 753, 268, 2, 747, 2, 424, 719, 1487 724, 425, 0, 403, 3, 3, 3, 3, 455, 3, 1488 0, 2, 470, 466, 752, 0, 462, 469, 2, 465, 1489 468, 0, 294, 242, 264, 3, 272, 274, 0, 455, 1490 2, 573, 574, 2, 612, 613, 0, 661, 539, 3, 1491 346, 345, 348, 347, 294, 540, 0, 541, 294, 376, 1492 378, 2, 0, 0, 0, 0, 104, 392, 695, 696, 1493 387, 391, 388, 692, 693, 381, 385, 294, 400, 394, 1494 401, 751, 0, 0, 438, 240, 0, 0, 3, 2, 1495 670, 431, 0, 529, 0, 753, 491, 0, 294, 294, 1496 294, 0, 553, 555, 130, 0, 0, 215, 0, 0, 1497 0, 223, 224, 57, 0, 63, 294, 0, 61, 60, 1498 0, 128, 695, 460, 70, 71, 110, 115, 3, 109, 1499 0, 0, 0, 24, 35, 3, 0, 32, 102, 0, 1500 3, 652, 656, 659, 651, 3, 594, 3, 718, 723, 1501 2, 294, 3, 3, 295, 0, 3, 624, 628, 631, 1502 640, 674, 678, 681, 294, 3, 623, 639, 673, 294, 1503 294, 426, 294, 294, 748, 0, 0, 0, 0, 256, 1504 0, 104, 0, 3, 3, 0, 463, 0, 459, 0, 1505 0, 245, 294, 0, 0, 129, 0, 0, 0, 0, 1506 0, 129, 0, 0, 109, 109, 2, 0, 0, 0, 1507 3, 131, 132, 2, 143, 133, 134, 135, 136, 137, 1508 138, 145, 147, 0, 0, 0, 285, 294, 294, 549, 1509 0, 542, 294, 111, 698, 702, 704, 697, 384, 368, 1510 399, 0, 581, 2, 666, 665, 0, 671, 2, 484, 1511 486, 506, 3, 514, 515, 0, 2, 510, 3, 3, 1512 0, 0, 558, 222, 0, 0, 0, 222, 0, 0, 1513 3, 37, 751, 109, 0, 3, 663, 42, 3, 40, 1514 3, 34, 0, 3, 101, 103, 0, 2, 654, 655, 1515 0, 0, 294, 0, 0, 0, 3, 640, 0, 2, 1516 626, 627, 2, 642, 2, 676, 677, 0, 0, 3, 1517 0, 3, 3, 3, 3, 411, 410, 414, 2, 2, 1518 750, 749, 112, 0, 0, 0, 0, 3, 464, 3, 1519 0, 243, 146, 3, 295, 294, 0, 0, 0, 0, 1520 2, 191, 0, 189, 0, 0, 0, 0, 0, 0, 1521 0, 0, 111, 0, 549, 151, 148, 294, 0, 0, 1522 267, 279, 3, 3, 548, 615, 369, 2, 700, 701, 1523 397, 294, 266, 294, 0, 517, 494, 294, 0, 0, 1524 493, 508, 0, 0, 0, 216, 0, 225, 58, 109, 1525 0, 0, 116, 113, 0, 0, 0, 0, 0, 0, 1526 23, 0, 657, 294, 582, 265, 726, 727, 728, 0, 1527 679, 294, 294, 294, 3, 3, 0, 687, 0, 0, 1528 0, 0, 294, 294, 3, 546, 471, 472, 0, 0, 1529 246, 295, 0, 0, 0, 0, 294, 192, 190, 0, 1530 187, 193, 0, 0, 0, 0, 197, 200, 198, 194, 1531 0, 195, 35, 129, 144, 142, 244, 0, 0, 294, 1532 418, 422, 421, 0, 511, 2, 512, 2, 513, 507, 1533 294, 228, 0, 226, 0, 228, 3, 663, 31, 114, 1534 2, 45, 2, 43, 41, 28, 112, 26, 3, 729, 1535 3, 3, 3, 0, 0, 686, 688, 629, 643, 269, 1536 2, 408, 3, 407, 0, 474, 471, 129, 0, 0, 1537 129, 3, 0, 129, 188, 0, 2, 2, 209, 199, 1538 0, 0, 0, 0, 140, 576, 616, 3, 2, 0, 1539 0, 2, 229, 0, 0, 217, 0, 0, 0, 0, 1540 0, 0, 0, 0, 0, 689, 690, 294, 0, 473, 1541 152, 0, 0, 2, 165, 129, 154, 0, 182, 0, 1542 129, 0, 2, 156, 0, 2, 0, 2, 2, 2, 1543 196, 32, 0, 294, 516, 518, 509, 0, 0, 0, 1544 0, 114, 38, 3, 3, 658, 630, 644, 680, 412, 1545 129, 158, 161, 0, 160, 164, 3, 167, 166, 0, 1546 129, 184, 129, 3, 0, 294, 0, 294, 0, 2, 1547 0, 2, 139, 703, 2, 230, 231, 0, 227, 218, 1548 0, 0, 0, 153, 0, 0, 163, 233, 168, 2, 1549 235, 183, 0, 186, 172, 201, 3, 210, 214, 203, 1550 3, 0, 294, 0, 294, 0, 0, 0, 39, 46, 1551 44, 159, 162, 129, 0, 169, 294, 129, 129, 0, 1552 173, 0, 0, 694, 211, 212, 213, 0, 202, 3, 1553 204, 3, 294, 219, 232, 149, 170, 155, 129, 236, 1554 185, 180, 178, 174, 157, 129, 0, 695, 0, 0, 1555 0, 0, 150, 171, 181, 175, 179, 178, 176, 3, 1556 3, 0, 0, 495, 177, 205, 207, 3, 3, 206, 1557 208 1456 0, 0, 0, 0, 0, 0, 0, 109, 2, 649, 1457 455, 646, 550, 550, 654, 483, 295, 2, 588, 589, 1458 0, 600, 601, 0, 2, 743, 746, 112, 295, 0, 1459 2, 711, 296, 715, 706, 707, 713, 0, 2, 2, 1460 671, 550, 754, 620, 550, 550, 754, 550, 634, 550, 1461 550, 685, 437, 668, 550, 550, 676, 683, 295, 432, 1462 296, 0, 0, 295, 721, 296, 726, 754, 718, 295, 1463 723, 754, 295, 295, 295, 0, 112, 0, 18, 5, 1464 2, 0, 19, 0, 462, 752, 0, 0, 468, 242, 1465 0, 295, 0, 0, 0, 548, 572, 576, 578, 608, 1466 611, 615, 618, 571, 610, 0, 285, 661, 0, 295, 1467 278, 0, 0, 0, 0, 276, 2, 0, 260, 539, 1468 295, 0, 0, 0, 0, 295, 295, 0, 0, 695, 1469 384, 387, 391, 550, 391, 700, 390, 692, 550, 550, 1470 366, 375, 383, 376, 550, 378, 381, 295, 753, 0, 1471 0, 399, 0, 296, 3, 417, 3, 421, 420, 594, 1472 0, 534, 295, 63, 3, 295, 436, 296, 3, 430, 1473 431, 2, 0, 0, 0, 488, 307, 295, 484, 486, 1474 3, 2, 2, 0, 505, 3, 0, 557, 130, 0, 1475 0, 223, 0, 0, 0, 2, 0, 0, 36, 0, 1476 0, 112, 295, 20, 0, 21, 0, 695, 451, 0, 1477 110, 3, 2, 27, 2, 0, 33, 0, 2, 25, 1478 0, 107, 108, 74, 75, 76, 78, 79, 81, 82, 1479 86, 87, 84, 85, 89, 90, 92, 94, 96, 98, 1480 100, 0, 0, 755, 295, 0, 0, 0, 650, 651, 1481 647, 648, 500, 499, 295, 0, 295, 717, 295, 722, 1482 296, 295, 665, 295, 295, 708, 664, 2, 295, 0, 1483 0, 0, 0, 0, 0, 0, 0, 686, 0, 672, 1484 623, 639, 673, 2, 619, 626, 434, 621, 622, 435, 1485 2, 633, 642, 635, 636, 669, 670, 684, 712, 716, 1486 714, 754, 269, 2, 748, 2, 425, 720, 725, 426, 1487 0, 404, 3, 3, 3, 3, 456, 3, 0, 2, 1488 471, 467, 753, 0, 463, 470, 2, 466, 469, 0, 1489 295, 243, 265, 3, 273, 275, 0, 456, 2, 574, 1490 575, 2, 613, 614, 0, 662, 540, 3, 347, 346, 1491 349, 348, 295, 541, 0, 542, 295, 377, 379, 2, 1492 0, 0, 0, 0, 105, 393, 696, 697, 388, 392, 1493 389, 693, 694, 382, 386, 295, 401, 395, 402, 752, 1494 0, 0, 439, 241, 0, 0, 3, 2, 671, 432, 1495 0, 530, 0, 754, 492, 0, 295, 295, 295, 0, 1496 554, 556, 131, 0, 0, 216, 0, 0, 0, 224, 1497 225, 56, 0, 62, 295, 0, 60, 59, 0, 129, 1498 696, 461, 71, 72, 111, 116, 3, 110, 0, 0, 1499 0, 24, 35, 3, 0, 32, 103, 0, 3, 653, 1500 657, 660, 652, 3, 595, 3, 719, 724, 2, 63, 1501 295, 3, 3, 296, 0, 3, 625, 629, 632, 641, 1502 675, 679, 682, 295, 3, 624, 640, 674, 295, 295, 1503 427, 295, 295, 749, 0, 0, 0, 0, 257, 0, 1504 105, 0, 3, 3, 0, 464, 0, 460, 0, 0, 1505 246, 295, 0, 0, 130, 0, 0, 0, 0, 0, 1506 130, 0, 0, 110, 110, 18, 2, 0, 0, 3, 1507 132, 133, 2, 144, 134, 135, 136, 137, 138, 139, 1508 146, 148, 0, 0, 0, 286, 295, 295, 550, 0, 1509 543, 295, 112, 699, 703, 705, 698, 385, 369, 400, 1510 0, 582, 2, 667, 666, 0, 672, 2, 485, 487, 1511 507, 3, 515, 516, 0, 2, 511, 3, 3, 0, 1512 0, 559, 223, 0, 0, 0, 223, 0, 0, 3, 1513 37, 752, 110, 0, 3, 664, 42, 3, 40, 3, 1514 34, 0, 3, 102, 104, 0, 2, 655, 656, 0, 1515 0, 295, 0, 0, 0, 3, 641, 0, 2, 627, 1516 628, 2, 643, 2, 677, 678, 0, 0, 63, 0, 1517 3, 3, 3, 3, 412, 411, 415, 2, 2, 751, 1518 750, 113, 0, 0, 0, 0, 3, 465, 3, 0, 1519 244, 147, 3, 296, 295, 0, 0, 0, 0, 2, 1520 0, 192, 0, 190, 0, 0, 0, 0, 0, 0, 1521 0, 550, 112, 0, 152, 149, 295, 0, 0, 268, 1522 280, 3, 3, 549, 616, 370, 2, 701, 702, 398, 1523 295, 267, 295, 0, 518, 495, 295, 0, 0, 494, 1524 509, 0, 0, 0, 217, 0, 226, 57, 110, 0, 1525 0, 117, 114, 0, 0, 0, 0, 0, 0, 23, 1526 0, 658, 295, 583, 266, 727, 728, 729, 0, 680, 1527 295, 295, 295, 3, 3, 0, 688, 0, 0, 0, 1528 0, 295, 295, 3, 547, 472, 473, 0, 0, 247, 1529 296, 0, 0, 0, 0, 295, 193, 191, 188, 0, 1530 194, 0, 0, 0, 0, 198, 201, 199, 195, 0, 1531 196, 130, 35, 145, 143, 245, 0, 0, 295, 419, 1532 423, 422, 0, 512, 2, 513, 2, 514, 508, 295, 1533 229, 0, 227, 0, 229, 3, 664, 31, 115, 2, 1534 45, 2, 43, 41, 28, 113, 26, 3, 730, 3, 1535 3, 3, 0, 0, 687, 689, 630, 644, 270, 2, 1536 409, 3, 408, 0, 475, 472, 130, 0, 0, 130, 1537 3, 0, 130, 189, 0, 2, 2, 210, 200, 0, 1538 0, 0, 141, 0, 577, 617, 3, 2, 0, 0, 1539 2, 230, 0, 0, 218, 0, 0, 0, 0, 0, 1540 0, 0, 0, 0, 690, 691, 295, 0, 474, 153, 1541 0, 0, 2, 166, 130, 155, 0, 183, 0, 130, 1542 0, 2, 157, 0, 2, 0, 2, 2, 2, 197, 1543 32, 0, 295, 517, 519, 510, 0, 0, 0, 0, 1544 115, 38, 3, 3, 659, 631, 645, 681, 413, 130, 1545 159, 162, 0, 161, 165, 3, 168, 167, 0, 130, 1546 185, 130, 3, 0, 295, 0, 295, 0, 2, 0, 1547 2, 140, 704, 2, 231, 232, 0, 228, 219, 0, 1548 0, 0, 154, 0, 0, 164, 234, 169, 2, 236, 1549 184, 0, 187, 173, 202, 3, 211, 215, 204, 3, 1550 0, 295, 0, 295, 0, 0, 0, 39, 46, 44, 1551 160, 163, 130, 0, 170, 295, 130, 130, 0, 174, 1552 0, 0, 695, 212, 213, 214, 0, 203, 3, 205, 1553 3, 295, 220, 233, 150, 171, 156, 130, 237, 186, 1554 181, 179, 175, 158, 130, 0, 696, 0, 0, 0, 1555 0, 151, 172, 182, 176, 180, 179, 177, 3, 3, 1556 0, 0, 496, 178, 206, 208, 3, 3, 207, 209 1558 1557 }; 1559 1558 … … 1561 1560 static const yytype_int16 yydefgoto[] = 1562 1561 { 1563 -1, 840, 475, 302, 46, 132, 133, 303, 304, 305, 1564 306, 786, 787, 1148, 1149, 307, 308, 309, 310, 311, 1565 312, 313, 314, 315, 316, 317, 318, 319, 320, 1052, 1566 526, 997, 322, 998, 555, 974, 1079, 1545, 1081, 1082, 1567 1083, 1084, 1546, 1085, 1086, 1462, 1463, 1424, 1425, 1426, 1568 1524, 1525, 1529, 1530, 1565, 1566, 1087, 1382, 1088, 1089, 1569 1316, 1317, 1318, 1506, 1090, 144, 980, 981, 982, 1403, 1570 1487, 1498, 1499, 476, 477, 902, 903, 1060, 49, 50, 1571 51, 52, 53, 346, 157, 56, 57, 58, 59, 60, 1572 348, 62, 63, 262, 65, 66, 273, 350, 351, 69, 1573 70, 71, 72, 117, 74, 203, 353, 118, 77, 119, 1574 79, 80, 462, 81, 456, 457, 458, 459, 701, 940, 1575 702, 82, 83, 465, 463, 722, 882, 883, 356, 357, 1576 725, 726, 727, 358, 359, 360, 361, 473, 340, 134, 1577 135, 530, 324, 169, 655, 656, 657, 658, 659, 84, 1578 120, 86, 496, 497, 966, 498, 276, 502, 325, 87, 1579 136, 137, 88, 1340, 1126, 1127, 1128, 1129, 89, 90, 1580 743, 91, 272, 92, 93, 186, 1054, 689, 411, 124, 1581 94, 508, 509, 510, 187, 267, 189, 190, 191, 268, 1582 97, 98, 99, 100, 101, 102, 103, 194, 195, 196, 1583 197, 198, 852, 614, 615, 616, 617, 199, 619, 620, 1584 621, 580, 581, 582, 583, 706, 104, 623, 624, 625, 1585 626, 627, 628, 939, 708, 709, 710, 604, 364, 365, 1586 366, 367, 326, 163, 106, 107, 108, 369, 720, 577 1562 -1, 838, 477, 302, 48, 135, 136, 303, 304, 305, 1563 306, 785, 786, 1147, 1148, 307, 382, 309, 310, 311, 1564 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 1565 1051, 527, 995, 323, 996, 554, 972, 1078, 1544, 1080, 1566 1081, 1082, 1083, 1545, 1084, 1085, 1461, 1462, 1423, 1424, 1567 1425, 1523, 1524, 1528, 1529, 1564, 1565, 1086, 1381, 1087, 1568 1088, 1315, 1316, 1317, 1505, 1089, 147, 978, 979, 980, 1569 1402, 1486, 1497, 1498, 478, 479, 900, 901, 1059, 52, 1570 53, 54, 55, 56, 348, 160, 59, 60, 61, 62, 1571 63, 350, 65, 66, 266, 68, 69, 276, 352, 353, 1572 72, 73, 74, 75, 120, 77, 206, 355, 121, 80, 1573 122, 82, 83, 464, 84, 458, 459, 460, 461, 700, 1574 938, 701, 85, 86, 467, 465, 721, 880, 881, 358, 1575 359, 724, 725, 726, 360, 361, 362, 363, 475, 341, 1576 137, 138, 531, 325, 172, 654, 655, 656, 657, 658, 1577 87, 123, 89, 498, 499, 964, 500, 279, 504, 326, 1578 90, 139, 140, 91, 1339, 1125, 1126, 1127, 1128, 92, 1579 93, 742, 94, 275, 95, 96, 189, 1053, 688, 413, 1580 127, 97, 510, 511, 512, 190, 270, 192, 193, 194, 1581 271, 100, 101, 102, 103, 104, 105, 106, 197, 198, 1582 199, 200, 201, 850, 613, 614, 615, 616, 202, 618, 1583 619, 620, 580, 581, 582, 583, 705, 107, 622, 623, 1584 624, 625, 626, 627, 937, 707, 708, 709, 603, 366, 1585 367, 368, 369, 327, 166, 109, 110, 111, 371, 719, 1586 577 1587 1587 }; 1588 1588 1589 1589 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1590 1590 STATE-NUM. */ 1591 #define YYPACT_NINF -13 321591 #define YYPACT_NINF -1355 1592 1592 static const yytype_int16 yypact[] = 1593 1593 { 1594 3506, 8076, -1332, 12, -1332, -1332, -1332, -1332, -1332, -1332, 1595 -1332, 61, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1596 -1332, -1332, -1332, -1332, -1332, -1332, 102, 102, 102, 1011, 1597 1062, 86, 5961, 228, -1332, -1332, -1332, -1332, -1332, 138, 1598 -1332, -1332, -1332, 684, 144, 9470, -1332, -1332, -1332, -1332, 1599 -1332, -1332, 190, 182, -1332, 1658, -1332, -1332, -1332, -1332, 1600 201, 1834, 303, 32, 4928, -1332, -1332, 9508, 1650, -1332, 1601 -1332, -1332, 615, 401, 4443, 184, 589, 615, 1225, -1332, 1602 -1332, 848, 938, -1332, 615, 1259, -1332, 301, -1332, 486, 1603 503, -1332, -1332, -1332, -1332, 316, 182, 102, -1332, 102, 1604 -1332, -1332, -1332, -1332, 9240, 1658, -1332, -1332, 1658, -1332, 1605 9354, 391, -1332, -1332, -1332, 1948, 9876, -1332, 810, 810, 1606 810, -1332, -1332, -1332, 102, -1332, -1332, -1332, 426, 447, 1607 456, -1332, -1332, -1332, 477, -1332, -1332, -1332, -1332, -1332, 1608 485, 495, -1332, -1332, 36, 8974, 2459, 272, 545, 579, 1609 623, 632, 671, 733, 8777, 7372, 596, 719, -1332, 9546, 1610 -1332, -1332, -1332, -1332, 739, -1332, 209, 3245, 3245, -1332, 1611 760, 213, -1332, -1332, -1332, -1332, 770, 237, 353, 362, 1612 102, 755, -1332, -1332, 1834, 1803, 846, -1332, 70, -1332, 1613 102, 102, 182, -1332, -1332, 98, -1332, 102, 102, -1332, 1614 2479, 820, 843, 810, 5405, -1332, -1332, 844, 9470, -1332, 1615 -1332, 615, -1332, -1332, -1332, 182, -1332, 1658, 190, -1332, 1616 7926, -1332, 810, 810, 810, 182, -1332, 1011, -1332, 2880, 1617 -1332, -1332, 827, 810, -1332, 810, -1332, 138, 8974, 8891, 1618 857, -1332, 1062, 864, 810, -1332, 1011, 870, 879, -1332, 1619 5961, 735, -1332, -1332, -1332, 9437, -1332, -1332, 3894, -1332, 1620 846, 69, 9876, 6310, 1948, 2479, -1332, 114, -1332, -1332, 1621 9354, 1658, 875, 11374, -1332, -1332, 546, -1332, 11116, 886, 1622 926, 10861, 905, 10919, 10938, -1332, 919, -1332, -1332, -1332, 1623 -1332, 10996, 10996, 735, 8632, 928, 10919, 9088, -1332, -1332, 1624 -1332, -1332, -1332, -1332, 949, -1332, 840, 2531, 10919, -1332, 1625 516, 336, 425, 270, 704, 934, 936, 960, 997, 52, 1626 -1332, -1332, 974, 356, -1332, 290, -1332, -1332, 2459, -1332, 1627 -1332, 600, 996, -1332, 701, 996, 1007, 138, -1332, -1332, 1628 1010, 9240, -1332, 1018, 8746, -1332, -1332, 1849, 1084, 8347, 1629 5405, 615, -1332, 615, 810, 810, -1332, -1332, -1332, -1332, 1630 -1332, -1332, 810, 9914, 1658, -1332, -1332, 9987, 1975, -1332, 1631 9012, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1030, 3059, 1632 10919, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1633 -1332, -1332, -1332, -1332, -1332, 1948, -1332, 773, 1012, 1034, 1634 1040, 889, 1045, 1051, 1053, 1803, -1332, -1332, 1063, 190, 1635 1064, -1332, -1332, 1066, -1332, -1332, -1332, 9437, -1332, -1332, 1636 -1332, -1332, -1332, 2479, -1332, 8974, 8974, -1332, 810, 1948, 1637 6923, 1658, 8420, -1332, -1332, -1332, -1332, 9437, 69, -1332, 1638 -1332, 615, 182, -1332, -1332, 9437, -1332, 3625, -1332, -1332, 1639 810, 810, 464, 10025, 1068, 907, 9695, -1332, 437, 475, 1640 1062, -1332, 1067, 1069, 1047, 1070, 810, -1332, -1332, -1332, 1641 -1332, 10283, -1332, 522, 6793, -1332, 182, 1074, -1332, 1948, 1642 11198, 6368, -1332, -1332, -1332, -1332, 939, 2479, -1332, 8493, 1643 846, 5374, -1332, -1332, -1332, 828, 610, 974, 1062, 11374, 1644 861, 9354, -1332, 11374, -1332, -1332, -1332, -1332, 618, -1332, 1645 1073, 926, 326, 8632, -1332, 10025, -1332, -1332, 8632, -1332, 1646 8860, 8632, -1332, -1332, -1332, 1077, -1332, 619, 1082, 630, 1647 1087, -1332, 5066, 7012, -1332, -1332, -1332, 47, -1332, -1332, 1648 10784, -1332, 474, 10784, -1332, -1332, -1332, -1332, -1332, -1332, 1649 -1332, -1332, -1332, -1332, 6310, 6310, -1332, 10919, 10919, 10919, 1650 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 1651 10919, 10919, 10919, 10919, 10919, 4001, 6310, -1332, 356, 777, 1652 -1332, -1332, 102, 102, -1332, -1332, 8974, -1332, -1332, 1066, 1653 735, -1332, 1066, 10842, -1332, -1332, -1332, 6075, 7012, 1086, 1654 9202, 1093, -1332, 10055, -1332, -1332, 739, -1332, 1094, 690, 1655 1096, 1090, 157, 974, -1332, 102, 102, 974, 166, -1332, 1656 102, 102, 1066, -1332, -1332, 102, 102, -1332, 996, 10137, 1657 1658, 11343, 372, 531, 10137, -1332, 6678, -1332, 974, -1332, 1658 9914, -1332, 285, 8042, 8042, 8042, 1658, -1332, 5183, 1085, 1659 453, 1030, 955, 1095, 1097, -1332, 1099, 3245, 590, -1332, 1660 1182, 1658, 8042, 735, 1948, 735, 846, 706, 996, -1332, 1661 -1332, 806, 996, -1332, -1332, -1332, 926, -1332, 996, 182, 1662 10283, -1332, 647, 1107, 688, 1108, -1332, 1109, 182, -1332, 1663 -1332, 9437, 182, 1105, 497, 502, 10167, 7492, 1400, 10919, 1664 1678, -1332, -1332, 1103, 62, 1103, -1332, -1332, -1332, 102, 1665 102, -1332, -1332, 1062, -1332, 102, -1332, -1332, 8891, 1062, 1666 1110, 10919, -1332, 1062, 11343, -1332, -1332, 1113, -1332, -1332, 1667 -1332, 735, -1332, 11271, 10919, -1332, 8042, 718, 8347, -1332, 1668 -1332, 739, 1114, 1115, 828, 2655, -1332, -1332, 11374, -1332, 1669 -1332, 1116, -1332, -1332, 1122, -1332, 1116, 1123, 11116, 6310, 1670 163, 1092, 54, 1131, 1128, 1135, 928, 1130, 1138, -1332, 1671 1140, 1141, 9733, 7132, -1332, 6310, -1332, 630, 1274, -1332, 1672 5523, 6310, 1139, -1332, -1332, 1030, 695, -1332, 6310, -1332, 1673 -1332, 741, -1332, -1332, -1332, -1332, -1332, 516, 516, 336, 1674 336, 425, 425, 425, 425, 270, 270, 704, 934, 936, 1675 960, 997, 10919, 754, -1332, 10283, 1150, 1151, 1153, 777, 1676 -1332, -1332, -1332, -1332, -1332, 10283, 748, 10919, 8042, -1332, 1677 9914, -1332, 7612, 9316, 9126, 7372, -1332, -1332, -1332, 690, 1678 10283, 950, 1164, 1165, 1171, 1172, 1179, 1180, 1181, -1332, 1679 3591, 1090, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1680 -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1066, 1681 -1332, -1332, -1332, 974, -1332, -1332, -1332, -1332, -1332, -1332, 1682 -1332, -1332, 1183, -1332, 1184, 1187, -1332, -1332, 190, 1139, 1683 5183, -1332, -1332, -1332, 3059, 1185, -1332, -1332, -1332, -1332, 1684 -1332, 1062, 6532, 1270, -1332, -1332, -1332, -1332, 1173, 190, 1685 -1332, -1332, 1066, -1332, -1332, 1066, 152, 1066, -1332, -1332, 1686 -1332, -1332, -1332, -1332, 9584, -1332, 182, -1332, 8891, -1332, 1687 -1332, 1193, 795, 1199, 1200, 1204, -1332, -1332, 1678, -1332, 1688 -1332, -1332, -1332, -1332, -1332, -1332, 907, 9763, 1047, -1332, 1689 -1332, 1069, 1205, 1201, -1332, -1332, 1206, 1207, -1332, 718, 1690 1989, -1332, 634, -1332, 2655, 974, -1332, 1211, 11374, 10205, 1691 8974, 1214, -1332, -1332, 1212, 1217, 1213, -1332, 10919, 229, 1692 205, 1215, -1332, 1202, 735, 1202, 7012, 6310, -1332, -1332, 1693 1202, -1332, 1274, 3059, -1332, -1332, -1332, -1332, 1220, 6310, 1694 1228, 735, 5183, -1332, 10784, -1332, 735, -1332, -1332, 6310, 1695 -1332, 863, 996, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1696 1030, 8746, -1332, -1332, 7732, 1219, -1332, 876, 996, -1332, 1697 883, 896, 996, -1332, 810, 4775, -1332, -1332, -1332, 10283, 1698 10283, -1332, 8420, 8420, -1332, 1221, 1226, 1233, 1235, -1332, 1699 1234, 643, 137, 1139, -1332, 735, -1332, 3245, -1332, 6310, 1700 517, -1332, 6892, 1245, 1249, 10726, 1253, 1258, 330, 380, 1701 387, 6310, 1265, 182, 6310, 6310, 1256, 294, 1269, 1250, 1702 -1332, -1332, -1332, 1277, -1332, -1332, -1332, -1332, -1332, -1332, 1703 -1332, -1332, -1332, 1062, 1285, 6310, -1332, 10283, 10283, 102, 1704 1287, -1332, 9845, 9622, 932, 996, -1332, -1332, -1332, -1332, 1705 -1332, 1286, -1332, -1332, -1332, -1332, 1293, 1989, -1332, -1332, 1706 1275, -1332, 1116, -1332, -1332, 1948, 1290, -1332, -1332, -1332, 1707 749, 1292, -1332, 54, 1295, 10919, 1279, 54, 54, 1305, 1708 1301, -1332, 1099, 6310, 1308, 1220, 605, 89, 1306, -1332, 1709 1301, -1332, 1312, 1306, -1332, -1332, 1317, -1332, -1332, 1066, 1710 1319, 1322, 7252, 1323, 1325, 1326, -1332, -1332, 1329, -1332, 1711 -1332, 1066, -1332, -1332, -1332, -1332, 1066, 6310, 6310, 10919, 1712 1330, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1713 -1332, -1332, -1332, 10919, 10919, 1332, 1335, 1306, -1332, -1332, 1714 1062, -1332, -1332, -1332, 7853, 10205, 6310, 6310, 1394, 6310, 1715 -1332, -1332, 1321, -1332, 1324, 6310, 1327, 1331, 6310, 1013, 1716 1333, 97, 8265, 1262, 102, -1332, -1332, 6532, 1334, 537, 1717 -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1066, 1718 -1332, 10544, -1332, 8493, 1345, -1332, -1332, 10205, 562, 563, 1719 -1332, 1343, 1344, 926, 1352, -1332, 450, -1332, -1332, 6310, 1720 1355, 1349, -1332, -1332, 1356, 543, 613, 735, 1357, 1358, 1721 -1332, 1361, -1332, 10283, -1332, -1332, -1332, -1332, -1332, 1365, 1722 -1332, 10283, 10283, 10283, -1332, -1332, 1367, -1332, 1368, 1371, 1723 1372, 668, 8115, 8231, -1332, -1332, 457, -1332, 1376, 1378, 1724 -1332, 8566, 750, 782, 1387, 793, 6762, -1332, -1332, 598, 1725 -1332, -1332, 803, 1388, 1393, 182, 1445, 882, -1332, -1332, 1726 6310, -1332, 10784, 10726, -1332, -1332, -1332, 1396, 1404, 10283, 1727 -1332, -1332, -1332, 1401, -1332, -1332, -1332, -1332, -1332, -1332, 1728 10205, 926, 254, -1332, 1384, 926, 1220, 366, -1332, -1332, 1729 -1332, -1332, -1332, -1332, -1332, -1332, 1405, -1332, -1332, -1332, 1730 -1332, -1332, -1332, 1406, 1409, -1332, -1332, -1332, -1332, -1332, 1731 -1332, -1332, 1414, -1332, 1413, -1332, -1332, 10726, 84, 6310, 1732 10726, -1332, 1417, 6310, -1332, 99, 1433, 1434, -1332, -1332, 1733 1422, 1425, 1408, 852, -1332, -1332, -1332, -1332, -1332, 1658, 1734 1948, 1421, 949, 918, 10919, -1332, 832, 1426, 6310, 735, 1735 735, 1427, 1431, 1440, 1441, -1332, -1332, 8420, 1428, -1332, 1736 1501, 10919, 1437, -1332, -1332, 10637, -1332, 845, -1332, 1424, 1737 10726, 1436, -1332, -1332, 1460, -1332, 1461, -1332, 1476, 1481, 1738 -1332, 1446, 1471, 10205, -1332, -1332, -1332, 926, 735, 1472, 1739 1452, 1468, -1332, 1306, 1306, -1332, -1332, -1332, -1332, -1332, 1740 10726, 295, -1332, 940, -1332, -1332, 5671, -1332, -1332, 1454, 1741 6310, -1332, 6310, 5671, 182, 10025, 182, 10025, 1478, -1332, 1742 1482, -1332, -1332, -1332, 1480, 949, -1332, 850, -1332, -1332, 1743 6310, 1479, 1487, -1332, 10919, 10919, -1332, -1332, 1054, 123, 1744 -1332, -1332, 1465, -1332, 1054, -1332, -1332, 1818, 735, -1332, 1745 -1332, 182, 10025, 182, 10025, 1492, 1474, 735, -1332, -1332, 1746 -1332, -1332, -1332, 10637, 1488, 1054, 6242, 6310, 10548, 1495, 1747 1054, 1502, 1818, 2347, -1332, -1332, -1332, 1505, -1332, -1332, 1748 -1332, -1332, 8974, -1332, -1332, -1332, 10415, -1332, 10637, -1332, 1749 -1332, 1484, 10322, -1332, -1332, 10548, 182, 2347, 182, 1509, 1750 1510, 853, -1332, 10415, -1332, -1332, -1332, 10322, -1332, -1332, 1751 -1332, 182, 182, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1752 -1332 1594 6526, 10132, -1355, -28, -1355, -1355, -1355, -1355, -1355, -1355, 1595 -1355, 11, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1596 -1355, -1355, -1355, -1355, -1355, -1355, 124, 124, 124, 1122, 1597 1178, 105, 7752, 206, -1355, -1355, -1355, -1355, -1355, 125, 1598 -1355, -1355, -1355, -1355, 698, 190, -1355, -1355, -1355, -1355, 1599 9742, -1355, -1355, -1355, -1355, 293, 199, -1355, 1161, -1355, 1600 -1355, -1355, -1355, 216, 2006, 341, 106, 7869, -1355, -1355, 1601 9852, 758, -1355, -1355, -1355, 704, 346, 7545, 680, 713, 1602 704, 967, -1355, -1355, 498, 800, -1355, 704, 1060, -1355, 1603 248, -1355, 421, 449, -1355, -1355, -1355, -1355, 290, 199, 1604 124, -1355, 124, -1355, -1355, -1355, -1355, 10443, 1161, -1355, 1605 -1355, 1161, -1355, 279, -1355, 10553, -1355, -1355, 2175, 10583, 1606 -1355, 774, 774, 774, -1355, -1355, -1355, 124, -1355, -1355, 1607 -1355, 350, 392, 395, -1355, -1355, -1355, 403, -1355, -1355, 1608 -1355, -1355, -1355, 439, 468, -1355, -1355, 66, 9208, 3295, 1609 571, 369, 448, 481, 484, 491, 516, 10022, 7154, 536, 1610 559, -1355, 9882, -1355, -1355, -1355, -1355, 562, -1355, 184, 1611 3734, 3734, -1355, 579, 187, -1355, -1355, -1355, -1355, 597, 1612 328, 353, 423, 124, 608, -1355, -1355, 2006, 2873, 686, 1613 -1355, 61, -1355, 124, 124, 199, -1355, -1355, 96, -1355, 1614 124, 124, -1355, 3264, 646, 699, 774, 7305, -1355, -1355, 1615 733, 9742, -1355, -1355, 704, -1355, -1355, -1355, 199, -1355, 1616 1161, 293, -1355, 8102, -1355, 774, 774, 774, 199, -1355, 1617 1122, -1355, 5636, -1355, -1355, 724, 774, -1355, 774, -1355, 1618 125, 9208, 10303, 751, -1355, 1178, 766, 774, -1355, 1122, 1619 767, 775, -1355, 7752, 512, -1355, -1355, -1355, 9671, -1355, 1620 -1355, 10973, -1355, 686, 134, 4776, 10583, 2175, 3264, -1355, 1621 153, -1355, -1355, 10553, 1161, 778, 7900, -1355, -1355, 361, 1622 -1355, 11792, 829, 859, 4180, 841, 11595, 11653, -1355, 852, 1623 -1355, -1355, -1355, -1355, 11672, 11672, 8980, 854, -1355, -1355, 1624 -1355, -1355, -1355, -1355, 912, -1355, 878, 2284, 9322, 11595, 1625 -1355, 629, 677, 734, 265, 760, 882, 884, 890, 928, 1626 13, -1355, -1355, 895, 936, -1355, 57, -1355, -1355, 3295, 1627 -1355, -1355, 410, 929, -1355, 621, 929, 953, 125, -1355, 1628 -1355, 960, 10443, -1355, 963, 971, 9436, -1355, -1355, 1106, 1629 1778, 8566, 7305, 704, -1355, 704, 774, 774, -1355, -1355, 1630 -1355, -1355, -1355, -1355, 774, 10443, 1161, -1355, -1355, 10693, 1631 1309, -1355, 10413, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1632 998, 3508, 11595, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1633 -1355, -1355, -1355, -1355, -1355, -1355, -1355, 2175, -1355, 793, 1634 1004, 1008, 1011, 926, 1015, 1019, 1023, 2873, -1355, -1355, 1635 1032, 293, 1065, -1355, -1355, 1068, -1355, -1355, -1355, 9671, 1636 -1355, -1355, -1355, -1355, -1355, 3264, -1355, 9208, 9208, -1355, 1637 774, 2175, 7425, 1161, 8682, -1355, -1355, -1355, -1355, 9671, 1638 134, -1355, -1355, 704, 199, -1355, -1355, 9671, -1355, 7188, 1639 -1355, -1355, 774, 774, 550, 10723, 1071, 1646, 4966, -1355, 1640 435, 455, 1178, -1355, 1077, 1033, 1061, 1081, 774, -1355, 1641 -1355, -1355, -1355, 11011, -1355, 705, 7065, -1355, 199, 1085, 1642 -1355, 2175, 11874, 6076, -1355, -1355, -1355, -1355, 939, 3264, 1643 -1355, 8798, 686, 7635, -1355, -1355, -1355, 1254, 709, 895, 1644 1178, 7900, 685, 10553, -1355, 7900, -1355, -1355, -1355, -1355, 1645 769, -1355, 1093, 859, 494, 8980, -1355, 10723, -1355, -1355, 1646 8980, -1355, 9094, 8980, -1355, -1355, 1096, -1355, 781, 1103, 1647 1017, 1104, -1355, 3922, 6360, -1355, 553, -1355, -1355, 11518, 1648 -1355, 618, 11518, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1649 -1355, -1355, -1355, 4776, 4776, -1355, -1355, 11595, 11595, 11595, 1650 11595, 11595, 11595, 11595, 11595, 11595, 11595, 11595, 11595, 11595, 1651 11595, 11595, 11595, 11595, 11595, 3966, 4776, -1355, 936, 1162, 1652 -1355, -1355, 124, 124, -1355, -1355, 9208, -1355, -1355, 1068, 1653 512, -1355, 1068, 11576, -1355, -1355, -1355, 4432, 6360, 1105, 1654 1107, -1355, 10583, -1355, -1355, 562, -1355, 1108, 1721, 1109, 1655 2038, 284, 895, -1355, 124, 124, 895, 308, -1355, 124, 1656 124, 1068, -1355, -1355, 124, 124, -1355, 929, 10833, 1161, 1657 12019, 503, 537, 10833, -1355, 10973, -1355, 895, -1355, 10443, 1658 -1355, 239, 8218, 8218, 8218, 1161, -1355, 4062, 1099, 177, 1659 998, 367, 1110, 1113, -1355, 1118, 3734, 565, -1355, 1194, 1660 1161, 8218, 512, 2175, 512, 686, 727, 929, -1355, -1355, 1661 752, 929, -1355, -1355, -1355, 859, -1355, 929, 199, 11011, 1662 -1355, 801, 1115, 813, 1130, -1355, 1129, 199, -1355, -1355, 1663 9671, 199, 1133, 506, 530, 10693, 7274, 1915, 11595, 2471, 1664 -1355, -1355, 1126, 82, 1126, -1355, -1355, -1355, 124, 124, 1665 -1355, -1355, 1178, -1355, 124, -1355, -1355, 10303, 1178, 1134, 1666 11595, -1355, 1178, 12019, -1355, -1355, 1138, -1355, -1355, -1355, 1667 512, -1355, 11947, 971, -1355, 8218, 1021, 8566, -1355, -1355, 1668 562, 1142, 1143, 1254, 3424, -1355, -1355, 7900, -1355, -1355, 1669 1147, -1355, -1355, 1155, -1355, 1147, 1157, 11792, 4776, 34, 1670 1136, 168, 1159, 1156, 1164, 854, 1160, 1169, -1355, 1172, 1671 1173, 5598, 6914, -1355, 4776, -1355, 1017, 1789, -1355, 5215, 1672 4776, 1168, -1355, -1355, 998, 814, -1355, 4776, -1355, -1355, 1673 893, -1355, -1355, -1355, -1355, -1355, 629, 629, 677, 677, 1674 734, 734, 734, 734, 265, 265, 760, 882, 884, 890, 1675 928, 11595, 927, -1355, 11011, 1175, 1177, 1180, 1162, -1355, 1676 -1355, -1355, -1355, -1355, 11011, 818, 8218, -1355, 10443, -1355, 1677 7394, 9550, -1355, 10413, 7154, -1355, -1355, 1721, 11011, 969, 1678 1183, 1185, 1187, 1189, 1191, 1192, 1193, -1355, 4666, 2038, 1679 -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1680 -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1068, -1355, -1355, 1681 -1355, 895, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1682 1199, -1355, 1202, 1203, -1355, -1355, 293, 1168, 4062, -1355, 1683 -1355, -1355, 3508, 1200, -1355, -1355, -1355, -1355, -1355, 1178, 1684 6657, 1259, -1355, -1355, -1355, -1355, 1186, 293, -1355, -1355, 1685 1068, -1355, -1355, 1068, 73, 1068, -1355, -1355, -1355, -1355, 1686 -1355, -1355, 9992, -1355, 199, -1355, 10303, -1355, -1355, 1204, 1687 942, 1208, 1209, 1211, -1355, -1355, 2471, -1355, -1355, -1355, 1688 -1355, -1355, -1355, -1355, 1646, 10162, 1061, -1355, -1355, 1033, 1689 1213, 1188, -1355, -1355, 1212, 1215, -1355, 1021, 1927, -1355, 1690 567, -1355, 3424, 895, -1355, 1219, 7900, 10863, 9208, 1221, 1691 -1355, -1355, 1216, 1223, 1217, -1355, 11595, 122, 20, 1224, 1692 -1355, 1228, 512, 1228, 6360, 4776, -1355, -1355, 1228, -1355, 1693 1789, 3508, -1355, -1355, -1355, -1355, 1229, 4776, 1237, 512, 1694 4062, -1355, 11518, -1355, 512, -1355, -1355, 4776, -1355, 759, 1695 929, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 998, 971, 1696 9436, -1355, -1355, 7514, 1225, -1355, 816, 929, -1355, 860, 1697 874, 929, -1355, 774, 5096, -1355, -1355, -1355, 11011, 11011, 1698 -1355, 8682, 8682, -1355, 1234, 1239, 1246, 1258, -1355, 1262, 1699 602, 133, 1168, -1355, 512, -1355, 3734, -1355, 4776, 540, 1700 -1355, 6787, 1267, 1270, 11460, 1271, 1278, 50, 78, 53, 1701 4776, 1279, 199, 4776, 4776, 1277, 1283, 399, 1266, -1355, 1702 -1355, -1355, 1256, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1703 -1355, -1355, 1178, 1290, 4776, -1355, 11011, 11011, 124, 1291, 1704 -1355, 10272, 3922, 877, 929, -1355, -1355, -1355, -1355, -1355, 1705 1288, -1355, -1355, -1355, -1355, 1295, 1927, -1355, -1355, 1280, 1706 -1355, 1147, -1355, -1355, 2175, 1292, -1355, -1355, -1355, 827, 1707 1294, -1355, 168, 1298, 11595, 1274, 168, 168, 1303, 1304, 1708 -1355, 1118, 4776, 1302, 1229, 750, 131, 1306, -1355, 1304, 1709 -1355, 1311, 1306, -1355, -1355, 1314, -1355, -1355, 1068, 1317, 1710 1322, 7034, 1321, 1323, 1324, -1355, -1355, 1328, -1355, -1355, 1711 1068, -1355, -1355, -1355, -1355, 1068, 4776, 4776, 971, 1329, 1712 -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1713 -1355, -1355, 11595, 11595, 1331, 1332, 1306, -1355, -1355, 1178, 1714 -1355, -1355, -1355, 5878, 10863, 4776, 4776, 1387, 4776, -1355, 1715 1316, -1355, 1319, -1355, 1320, 4776, 1325, 4776, 1035, 1326, 1716 64, 124, 9704, 973, -1355, -1355, 6657, 1334, 542, -1355, 1717 -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1068, -1355, 1718 11278, -1355, 8798, 1336, -1355, -1355, 10863, 543, 587, -1355, 1719 1338, 1337, 859, 1346, -1355, 370, -1355, -1355, 4776, 1347, 1720 1348, -1355, -1355, 1349, 650, 721, 512, 1355, 1356, -1355, 1721 1357, -1355, 11011, -1355, -1355, -1355, -1355, -1355, 1361, -1355, 1722 11011, 11011, 11011, -1355, -1355, 1363, -1355, 1366, 1370, 1371, 1723 667, 8334, 8450, -1355, -1355, 490, -1355, 1375, 1380, -1355, 1724 8914, 832, 839, 1373, 844, 6216, -1355, -1355, -1355, 588, 1725 -1355, 866, 1384, 1385, 199, 1435, 1031, -1355, -1355, 4776, 1726 -1355, 11460, 11518, -1355, -1355, -1355, 1390, 1392, 11011, -1355, 1727 -1355, -1355, 1391, -1355, -1355, -1355, -1355, -1355, -1355, 10863, 1728 859, 253, -1355, 1376, 859, 1229, 337, -1355, -1355, -1355, 1729 -1355, -1355, -1355, -1355, -1355, 1393, -1355, -1355, -1355, -1355, 1730 -1355, -1355, 1395, 1402, -1355, -1355, -1355, -1355, -1355, -1355, 1731 -1355, 1405, -1355, 1404, -1355, -1355, 11460, 155, 4776, 11460, 1732 -1355, 1409, 4776, -1355, 195, 1424, 1425, -1355, -1355, 1417, 1733 1418, 1396, -1355, 1037, -1355, -1355, -1355, -1355, 1161, 2175, 1734 1414, 912, 1038, 11595, -1355, 886, 1421, 4776, 512, 512, 1735 1426, 1428, 1432, 1433, -1355, -1355, 8682, 1419, -1355, 1502, 1736 11595, 1430, -1355, -1355, 11371, -1355, 888, -1355, 1413, 11460, 1737 1416, -1355, -1355, 1440, -1355, 1444, -1355, 1459, 1461, -1355, 1738 1427, 1448, 10863, -1355, -1355, -1355, 859, 512, 1450, 1436, 1739 1445, -1355, 1306, 1306, -1355, -1355, -1355, -1355, -1355, 11460, 1740 340, -1355, 1042, -1355, -1355, 5372, -1355, -1355, 1438, 4776, 1741 -1355, 4776, 5372, 199, 10723, 199, 10723, 1455, -1355, 1457, 1742 -1355, -1355, -1355, 1458, 912, -1355, 901, -1355, -1355, 4776, 1743 1460, 1462, -1355, 11595, 11595, -1355, -1355, 1120, 121, -1355, 1744 -1355, 1451, -1355, 1120, -1355, -1355, 2159, 512, -1355, -1355, 1745 199, 10723, 199, 10723, 1467, 1452, 512, -1355, -1355, -1355, 1746 -1355, -1355, 11371, 1470, 1120, 7986, 4776, 11282, 1472, 1120, 1747 1479, 2159, 2686, -1355, -1355, -1355, 1482, -1355, -1355, -1355, 1748 -1355, 9208, -1355, -1355, -1355, 11149, -1355, 11371, -1355, -1355, 1749 1463, 11056, -1355, -1355, 11282, 199, 2686, 199, 1483, 1489, 1750 913, -1355, 11149, -1355, -1355, -1355, 11056, -1355, -1355, -1355, 1751 199, 199, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355 1753 1752 }; 1754 1753 … … 1756 1755 static const yytype_int16 yypgoto[] = 1757 1756 { 1758 -1332, 4383, 1919, -1332, 1457, -1332, 41, 0, -257, -1332, 1759 544, -527, -514, -956, -190, 3713, -1332, 1485, 580, 585, 1760 548, 602, 1055, 1052, 1056, 1059, 1061, -1332, -217, -341, 1761 5350, -699, -697, -922, -1332, -83, -701, -678, -1332, 561, 1762 -1332, 399, -1087, -1332, -1332, 141, -1332, -1329, -838, 252, 1763 -1332, -1332, -1332, -1332, 71, -1078, -1332, -1332, -1332, -1332, 1764 -1332, -1332, 325, -1308, 57, -1332, -297, -1332, 504, 305, 1765 -1332, 173, -1332, -305, -1332, -1332, -1332, 558, -799, -1332, 1766 -1332, 11, -1027, 151, 658, -1332, -1332, -1332, -52, -1332, 1767 117, 913, -200, 1494, 4071, -1332, -1332, 19, 107, 365, 1768 -232, 1565, -1332, 2150, -1332, -1332, 134, 2571, -1332, 3063, 1769 1550, -1332, -1332, -1332, -643, -431, 1210, 1216, 707, 947, 1770 188, -1332, -1332, -1332, 945, 723, -404, -1332, -520, -362, 1771 293, -1332, -1332, -990, -995, 965, 1194, 1083, 304, -1332, 1772 150, 317, -75, -197, -129, 679, 781, -1332, 1020, -1332, 1773 3338, 1566, -427, 948, -1332, -1332, 710, -1332, -230, -1332, 1774 -89, -1332, -1332, -1332, -1266, 433, -1332, -1332, -1332, 1195, 1775 -1332, 22, -1332, -1332, -865, -105, -1331, -98, 1750, -1332, 1776 2253, -1332, 929, -1332, -168, 288, -180, -179, -173, 2, 1777 -34, -29, -28, 687, 75, 77, 92, -161, -162, -153, 1778 -151, -148, -320, -530, -516, -495, -552, -307, -529, -1332, 1779 -1332, -506, 1106, 1117, 1121, 2218, 5180, -562, -569, -544, 1780 -538, -550, -1332, -429, -691, -685, -671, -611, -246, -241, 1781 -1332, -1332, 1149, 273, -84, -1332, 3714, 76, -612, -441 1757 -1355, 4671, 3340, -1355, -29, -1355, 1206, 889, -259, -1355, 1758 526, -532, -488, -865, -161, 3194, 0, -1355, 549, 606, 1759 623, 581, 600, 1034, 1041, 1036, 1040, 1043, -1355, 464, 1760 -283, 5428, -920, -733, -959, -1355, -190, -730, 365, -1355, 1761 1538, -1355, 379, -1141, -1355, -1355, 112, -1355, -1341, -609, 1762 225, -1355, -1355, -1355, -1355, 48, -1087, -1355, -1355, -1355, 1763 -1355, -1355, -1355, 300, -1335, 81, -1355, -312, -1355, 479, 1764 274, -1355, 149, -1355, -359, -1355, -1355, -1355, 531, -852, 1765 -1355, -1355, 8, -988, 376, 2486, -1355, -1355, -1355, -81, 1766 -1355, 99, 1389, -187, 1960, 4204, -1355, -1355, 52, 394, 1767 1565, -246, 1300, -1355, 1933, -1355, -1355, 110, 2272, -1355, 1768 2685, 1719, -1355, -1355, -1355, -675, -409, 1170, 1171, 683, 1769 924, 329, -1355, -1355, -1355, 907, 692, -78, -1355, -241, 1770 -263, 674, -1355, -1355, -862, -881, -184, 26, 1049, 86, 1771 -1355, 983, -133, -208, -209, -150, 651, 749, -1355, 987, 1772 -1355, 2825, 209, -478, 902, -1355, -1355, 684, -1355, -230, 1773 -1355, 35, -1355, -1355, -1355, -1207, 404, -1355, -1355, -1355, 1774 1165, -1355, 44, -1355, -1355, -853, -110, -1354, -104, 3033, 1775 -1355, 4412, -1355, 896, -1355, -135, 59, -173, -172, -171, 1776 7, -42, -41, -40, 1597, 25, 28, 46, -130, -170, 1777 -169, -165, -156, -307, -519, -494, -484, -542, -299, -546, 1778 -1355, -1355, -514, 1076, 1082, 1088, 1849, 5102, -569, -582, 1779 -552, -545, -556, -1355, -356, -684, -672, -664, -598, -210, 1780 -201, -1355, -1355, -10, 5, -71, -1355, 4129, 37, -610, 1781 -23 1782 1782 }; 1783 1783 … … 1785 1785 positive, shift that token. If negative, reduce the rule which 1786 1786 number is the opposite. If YYTABLE_NINF, syntax error. */ 1787 #define YYTABLE_NINF -52 51787 #define YYTABLE_NINF -526 1788 1788 static const yytype_int16 yytable[] = 1789 1789 { 1790 47, 112, 96, 427, 398, 399, 768, 933, 452, 148, 1791 266, 400, 113, 934, 149, 150, 791, 406, 871, 67, 1792 259, 439, 401, 512, 407, 712, 707, 935, 613, 112, 1793 112, 402, 47, 403, 96, 1203, 404, 1092, 382, 383, 1794 846, 618, 111, 47, 895, 47, 505, 160, 1187, 854, 1795 1153, 67, 1185, 1186, 142, 47, 749, 48, 975, 853, 1796 201, 47, 857, 192, 47, 847, 215, 47, 864, 225, 1797 342, 848, 751, 820, 1401, 947, 756, 1145, 218, 842, 1798 845, 112, 112, 995, 398, 399, 933, 279, 409, 48, 1799 1464, 400, 934, 843, 121, 424, 1468, 406, 605, 1197, 1800 779, 31, 401, 1091, 407, 47, 935, 68, 47, 31, 1801 202, 402, 679, 403, 844, 47, 404, 61, 151, 109, 1802 152, 165, 637, 884, 884, 884, 641, 739, 1421, 1422, 1803 41, 42, 688, 408, 75, 153, 290, 31, 446, 68, 1804 692, 31, 884, 1421, 1422, 280, 47, 574, 160, 61, 1805 148, 54, 114, 31, 47, 149, 150, 467, 783, 47, 1806 1320, 372, 482, 484, 1464, 978, 75, -234, -234, 1510, 1807 122, 211, 858, 410, 1265, 746, 861, 1484, 483, 251, 1808 140, 410, 575, 54, 47, 47, 165, 160, 2, 205, 1809 4, 5, 6, 7, 1468, 141, 31, 878, 1423, 1468, 1810 47, 881, 1266, 478, 1539, 31, 1541, 418, 47, 410, 1811 160, 527, 677, 1432, 842, 209, 884, 47, 219, 1468, 1812 47, 327, 442, 488, 1080, 410, 1468, 112, 843, 1321, 1813 148, 240, 243, 1193, 536, 149, 150, 674, -234, 143, 1814 886, 887, 112, 740, 675, 536, 112, 145, 1187, 844, 1815 47, 112, 96, 35, 760, 36, 154, 596, 905, 151, 1816 1194, 152, 1099, 1202, 47, 47, 855, 160, 610, 67, 1817 846, 47, 470, 105, 105, 862, 153, 610, 47, 1203, 1818 976, 885, 885, 885, 435, 1102, 342, 703, 95, 1038, 1819 666, 857, 472, 112, 705, 847, 170, 167, 1187, 1037, 1820 885, 848, 1185, 1186, 618, 105, 200, 48, 884, 842, 1821 1025, 536, 1155, 1014, 327, 1136, -3, 180, 681, 674, 1822 95, 168, 1137, 843, 686, 376, 675, 441, 47, 386, 1823 372, 147, 958, 95, 524, 739, 536, 1346, 1135, 1111, 1824 105, 377, 682, 684, 844, 387, 435, 47, 47, 188, 1825 683, 685, 95, 389, 605, 95, 831, 68, 937, 176, 1826 564, 565, 1092, 1404, 47, 478, 285, 61, 47, 390, 1827 1217, 440, 479, 165, 885, 1220, 1221, 41, 42, 653, 1828 950, 251, 329, 605, 75, 478, 926, 1208, 605, 75, 1829 846, 1494, 464, 478, 483, 47, 566, 567, 854, 880, 1830 585, 54, 109, 521, -290, 47, 586, 372, 536, 260, 1831 871, 739, 261, 41, 42, 847, 576, 246, 1194, 916, 1832 607, 848, 1187, 47, 1017, 251, 755, 1459, 1091, 47, 1833 527, 47, 1041, 228, 95, 527, 761, 229, 527, 1203, 1834 233, 1552, 235, 762, 1262, 770, 1203, 95, 342, 244, 1835 1553, 740, 109, 1453, 1454, 47, 211, 560, 561, 109, 1836 112, 1563, 1211, 41, 42, 578, 885, 410, 1567, 391, 1837 41, 42, 397, 188, 112, 579, -112, 1568, 393, 47, 1838 1173, 1175, 936, 1408, 874, 392, 249, 47, 875, 372, 1839 1151, 47, 813, 96, 394, 47, 95, -112, 112, 1203, 1840 112, 327, 327, -520, 936, 979, 1215, 1383, 95, 1107, 1841 67, 824, 1213, 562, 563, 111, 712, 707, 398, 399, 1842 653, 438, 263, 105, 1119, 400, 505, 740, 896, 654, 1843 1261, 1036, 406, -469, 479, -10, 401, 112, 95, 407, 1844 653, 1122, 112, 653, 618, 402, 109, 403, 48, 1080, 1845 404, 75, 486, 713, 479, 1038, -443, 41, 42, 907, 1846 1344, 767, 479, 1107, -469, -444, -469, 1345, 909, 714, 1847 -469, 75, -112, -112, 693, 490, 228, 327, 784, 75, 1848 586, 767, 507, 790, 767, 789, 275, 211, -112, 1019, 1849 112, 715, -291, 831, 277, 1008, 327, 47, 68, 8, 1850 9, 10, 11, 12, 278, 1381, 737, 716, 61, 47, 1851 717, 47, 342, 713, 172, 109, 95, 833, 715, 2, 1852 205, 4, 5, 6, 7, 75, 41, 42, 31, 929, 1853 47, 472, 730, 1200, 930, 557, 612, 1134, 731, 478, 1854 558, 559, 54, 876, 1036, 1394, 47, 877, 750, 1201, 1855 754, 176, 112, 1200, 1350, 330, 34, 252, 55, 55, 1856 1523, 47, 327, 112, 47, 112, 1528, 1500, 638, 1326, 1857 897, 712, 642, 1051, 1500, 500, 607, 501, 1335, 1337, 1858 1184, 955, 1431, 831, 35, 109, 36, 1548, 342, 331, 1859 55, 1049, 1555, 188, 1336, 1338, 41, 42, 47, 1420, 1860 47, 898, 1428, 652, 906, 872, 908, 899, 370, 587, 1861 607, 410, 1096, 112, 775, -112, 228, -112, 233, 112, 1862 747, -112, 55, 112, 1352, 55, 748, 1549, 757, 774, 1863 1384, 112, 161, 332, 758, 775, -112, -112, 441, 777, 1864 1130, 410, 333, 704, 47, 47, 876, 1467, 193, 778, 1865 1118, 216, 1471, 416, 226, -105, 37, 920, 47, -105, 1866 40, 936, 37, 775, 105, 1056, 40, 41, 42, 1502, 1867 674, 1503, 954, 41, 42, 605, 436, 675, 703, 95, 1868 1369, 334, 1493, 612, 1370, 705, 444, 8, 9, 10, 1869 11, 12, 1154, 43, 1254, 1393, 568, 569, 922, 839, 1870 739, 610, 892, 146, 775, 1003, 228, 109, 479, 611, 1871 590, 1004, 410, 347, 737, 910, 31, 410, 41, 42, 1872 8, 9, 10, 11, 12, 75, 1550, 959, 371, 610, 1873 763, 211, 764, 161, 1177, 765, 1252, 960, 771, 47, 1874 1256, 933, 1051, 335, 34, 211, 373, 934, 375, 31, 1875 479, 47, 1294, 1295, 833, 528, 1007, 1004, 1016, 1250, 1876 1377, 935, 831, 945, 731, 586, 775, 75, 1562, 948, 1877 775, 1009, 161, 464, 1562, 384, 979, 34, 55, 388, 1878 979, 979, 251, 329, 410, 1562, 578, 396, 410, 1562, 1879 737, 941, 1378, 941, 653, 161, 579, 841, 775, 612, 1880 37, 112, 653, 1380, 40, 329, 410, 443, 55, 775, 1881 408, 41, 42, 1385, 115, 913, 740, 410, 936, 775, 1882 109, 67, 138, 237, 47, 537, 538, 539, 1198, 425, 1883 1372, 41, 42, 109, 873, 138, 139, 744, 47, 211, 1884 1390, 1391, 1450, 1078, 41, 42, 47, 745, 1447, 540, 1885 888, 541, 426, 542, 543, 1469, 431, 238, 158, 449, 1886 1516, 775, 239, 1573, 47, 904, 1517, 1441, 1004, 586, 1887 752, -367, 1157, 919, 410, 753, 936, 936, -396, 37, 1888 1123, 182, 183, 40, 112, 1169, 932, 410, 704, 491, 1889 41, 42, 1172, 653, 610, 511, 1342, 740, 418, 670, 1890 410, 112, 468, 690, 653, 1174, 112, 610, 290, 68, 1891 109, 469, 138, 139, 515, 373, 698, 257, 410, 61, 1892 1245, 41, 42, 158, 699, 1139, 700, 109, 520, 138, 1893 139, 536, 841, 612, 1447, 1448, 75, 732, 41, 42, 1894 532, 1237, 1147, 410, 654, 767, 327, 1147, 488, 329, 1895 410, 1061, 242, 54, 570, 112, 1495, 1496, 323, 855, 1896 329, 610, 507, 1449, 571, 653, 891, 339, 112, 112, 1897 112, 1313, 1314, 1315, 528, 1351, 1353, 1354, 1535, 528, 1898 1461, 1205, 528, 128, 1402, 129, 130, 131, 1402, 572, 1899 347, 573, 373, 112, 41, 42, 1147, 872, 1421, 1422, 1900 8, 9, 10, 11, 12, 576, 1078, 338, 1010, 1212, 1901 1214, 1216, 801, 802, 803, 804, -440, 429, 1015, 594, 1902 1124, 433, 667, 1302, 1303, 47, 1305, 841, 1107, 31, 1903 597, 441, 1309, 1026, 109, 1312, 138, 139, 342, 612, 1904 797, 798, 647, 654, 668, 41, 42, 799, 800, 55, 1905 669, 323, 455, 1521, 1461, 671, 37, 34, 182, 183, 1906 40, 672, 37, 673, 182, 183, 40, 41, 42, 68, 1907 805, 806, 676, 41, 42, 105, 678, 256, 721, 479, 1908 696, 718, 759, 433, 723, 719, 495, 936, -238, 772, 1909 1485, 347, 776, 609, 162, 610, 75, 780, 834, 609, 1910 112, 610, -12, 611, 936, 836, 838, 529, 849, 611, 1911 158, 901, -13, 54, 893, 894, 218, 921, 923, 928, 1912 699, 924, 47, -417, 977, 949, 704, 653, -292, -524, 1913 963, 970, 748, 972, 704, 8, 9, 10, 11, 12, 1914 918, 983, 105, 1061, 984, 985, 67, 987, 988, 925, 1915 989, 990, 612, 927, 595, 999, 347, 602, 1123, 162, 1916 1011, 1012, -293, 1013, 31, 112, 112, 112, 1078, 8, 1917 9, 10, 11, 12, 1027, 1028, 635, 936, 936, 737, 1918 639, 1029, 1030, 339, 8, 9, 10, 11, 12, 1031, 1919 1032, 1033, 34, 1044, -405, 1445, 1427, -404, 31, 1093, 1920 1058, 347, 347, 347, 1095, 1103, 1147, 1147, 1147, 1104, 1921 1105, 211, 1561, 31, 1106, 1112, 993, 1113, 1114, 1115, 1922 347, 1121, 653, 653, 1131, 1205, 34, 1132, 775, 1167, 1923 1133, 1138, 1182, 1183, 68, 105, 1143, 1188, 323, 323, 1924 1146, 34, 1189, 1190, 61, 1191, 1192, 537, 538, 539, 1925 1300, 1123, 398, 399, 1206, 209, 219, 434, 1207, 400, 1926 737, 75, 1209, 767, 1078, 406, 455, 1210, 1222, 455, 1927 401, 540, 407, 541, 1218, 542, 1322, 653, 54, 402, 1928 653, 403, 1225, 777, 404, 410, 1224, 115, 460, 674, 1929 1232, 1233, -3, 778, 347, 1230, 675, 1235, 1124, 47, 1930 47, 1240, 1534, 1242, 500, 1246, 1251, 1253, 441, 112, 1931 112, 1255, 495, 68, 323, 1258, 495, 1259, 1078, 434, 1932 1263, 1078, 1267, 479, 1270, 653, 529, 1272, 529, 1274, 1933 653, 529, 1275, 323, 529, 1276, 728, 1277, 1278, 1280, 1934 75, 1304, 1287, 531, 1296, 339, 162, 1297, 112, 1325, 1935 1147, 1147, 440, 1307, 1123, 1333, 1308, 54, 1339, 1310, 1936 653, 1341, 1343, 1311, 1348, 1319, 1078, 1347, 1349, 1355, 1937 1356, 1078, 37, 1357, 182, 183, 40, 1359, 105, 1365, 1938 1366, 1367, 1368, 41, 42, 1205, 347, 1101, 1375, 1486, 1939 1376, 1124, 1205, 347, 64, 116, 1379, 1386, 148, 323, 1940 105, 1078, 1387, 149, 150, 1315, 1395, 47, 112, 698, 1941 829, 410, 175, 602, 1396, 1398, 1405, 112, 1415, 700, 1942 105, 1416, 1408, 653, -406, 1419, 64, 1430, 653, 1434, 1943 1436, 1438, 47, 47, 1439, 160, 1446, 1455, 1451, 159, 1944 1440, 1456, 870, 1460, 1370, 1205, 653, 602, 653, 1536, 1945 1457, 1458, 653, 879, 1465, 653, 1470, 47, 1544, 372, 1946 55, 220, 175, 653, 1078, 175, 1358, 653, 1472, 1078, 1947 1474, 1476, 1478, 68, 1360, 1361, 1362, 1480, 1482, 105, 1948 68, 1483, 1488, 479, 1489, 1490, 1501, 1078, 1511, 1078, 1949 479, 1519, 1513, 1078, 1124, 1515, 1078, 1527, 258, 1520, 1950 75, 1542, 460, 1547, 1078, 460, 1543, 75, 1078, 339, 1951 1554, 175, 1556, 105, 213, 1558, 1564, 54, 327, 1571, 1952 1572, 1223, 1397, 808, 54, 807, 1324, 55, 809, 212, 1953 214, 455, 810, 68, 1219, 811, 1522, 1433, 1574, 231, 1954 328, 1389, 1257, 479, 347, 728, 1504, 241, 258, 349, 1955 1406, 1229, 942, 1108, 2, 205, 4, 5, 6, 7, 1956 75, 495, 531, 694, 531, 729, 213, 531, 951, 695, 1957 531, 1110, 1142, 826, 175, 1057, 1120, 54, 900, 405, 1958 1334, 212, 214, 227, 816, 339, 742, 973, 8, 9, 1959 10, 11, 12, 0, 423, 817, 965, 428, 430, 818, 1960 347, 347, 159, 1444, 0, 0, 0, 0, 0, 213, 1961 0, 0, 0, 0, 0, 0, 105, 31, 0, 35, 1962 55, 36, 0, 447, 212, 214, 0, 450, 175, 451, 1963 37, 0, 173, 174, 40, 175, 0, 0, 466, 105, 1964 0, 41, 42, 1018, 64, 34, 105, 829, 0, 480, 1965 37, 0, 182, 183, 40, 0, 0, 0, 0, 487, 1966 0, 41, 42, 0, 0, 0, 0, 430, 517, 0, 1967 213, 0, 0, 0, 0, 0, 123, 126, 127, 0, 1968 728, 534, 535, 0, 0, 212, 214, 698, 0, 410, 1969 728, 0, 0, 556, 0, 0, 0, 700, 0, 105, 1970 0, 0, 0, 0, 175, 728, 0, 0, 213, 0, 1971 0, 0, 213, 8, 9, 10, 11, 12, 0, 0, 1972 486, 175, 0, 212, 214, 175, 0, 212, 214, 535, 1973 0, 0, 0, 0, 0, 258, 0, 829, 603, 0, 1974 0, 455, 31, 506, 631, 0, 0, 253, 0, 254, 1975 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, 1976 455, 636, 55, 55, 258, 535, 0, 460, 0, 0, 1977 34, 0, 0, 0, 729, 37, 1388, 182, 183, 40, 1978 0, 495, 1125, 323, 0, 55, 41, 42, 175, 0, 1979 37, 0, 182, 183, 40, 0, 0, 0, 0, 213, 1980 0, 41, 42, 0, 0, 55, 37, 0, 182, 183, 1981 40, 480, 184, 0, 212, 214, 0, 41, 42, 0, 1982 0, 37, 185, 173, 174, 40, 349, 1532, 0, 410, 1983 395, 480, 41, 42, 870, 0, 0, 1533, 0, 480, 1984 414, 415, 0, 184, 0, 419, 0, 421, 422, 0, 1985 347, 347, 0, 185, 0, 0, 0, 0, 371, 55, 1986 0, 0, 0, 0, 55, 724, 0, 0, 430, 0, 1987 166, 0, 171, 0, 0, 177, 178, 179, 0, 181, 1988 213, 0, 0, 738, 0, 64, 0, 0, 0, 0, 1989 0, 0, 0, 430, 232, 212, 214, 430, 55, 8, 1990 9, 10, 11, 12, 728, 728, 247, 248, 0, 729, 1991 0, 0, 212, 0, 0, 455, 829, 0, 0, 729, 1992 37, 0, 182, 183, 40, 0, 258, 349, 31, 0, 1993 213, 41, 42, 0, 729, 1505, 0, 1509, 0, 0, 1994 0, 0, 794, 795, 796, 212, 214, 37, 0, 173, 1995 174, 40, 0, 0, 175, 0, 34, 264, 41, 42, 1996 0, 0, 728, 728, 0, 0, 0, 265, 0, 0, 1997 0, 0, 1538, 819, 1540, 347, 0, 460, 0, 0, 1998 0, 0, 0, 0, 375, 535, 0, 175, 0, 0, 1999 0, 636, 832, 0, 603, 0, 460, 0, 959, 0, 2000 610, 55, 0, 175, 0, 851, 0, 0, 960, 0, 2001 0, 0, 0, 0, 0, 0, 0, 1569, 175, 1570, 2002 0, 0, 0, 603, 55, 0, 0, 0, 603, 0, 2003 0, 55, 1577, 1578, 636, 339, 0, 349, 349, 349, 1790 50, 115, 151, 152, 153, 108, 108, 99, 269, 116, 1791 790, 454, 441, 931, 400, 401, 402, 403, 404, 429, 1792 384, 385, 405, 750, 514, 932, 844, 755, 973, 178, 1793 869, 406, 50, 933, 767, 507, 262, 108, 1144, 99, 1794 165, 852, 945, 612, 149, 893, 993, 1091, 1090, 711, 1795 50, 617, 70, 408, 124, 855, 845, 163, 409, 98, 1796 678, 862, 843, 846, 188, 819, 1463, 211, 851, 154, 1797 50, 195, 155, 1202, 218, 108, 145, 228, 221, 178, 1798 687, 51, 178, 1467, 70, 411, 343, 168, 691, 840, 1799 156, 98, 931, 426, 400, 401, 402, 403, 404, 64, 1800 31, 706, 405, 150, 932, 165, 528, 115, 574, 98, 1801 78, 406, 933, 51, 841, 115, 535, 282, 268, 273, 1802 125, 31, 1210, 191, 842, 1214, 98, 1319, 178, 98, 1803 1135, 64, 1400, 408, 204, 31, 604, 1136, 409, 1152, 1804 1463, 1509, 78, 575, 179, 151, 152, 153, 308, 149, 1805 1212, 974, 168, 1219, 1220, 535, 163, 115, 346, 484, 1806 486, 1186, 211, 31, 636, -235, -235, 585, 640, 374, 1807 254, 1215, 412, 586, 778, 283, 1538, 480, 1540, 1184, 1808 1185, 1467, 1211, 1098, 205, 328, 1467, 188, 188, 1196, 1809 745, 178, 31, 412, 263, 163, 1320, 264, 410, 1420, 1810 1421, 436, 676, 268, 535, 420, 1467, 412, 98, 1201, 1811 1213, 50, 154, 1467, 144, 155, 1264, 146, 163, 682, 1812 684, 98, 1261, 211, 840, 151, 152, 153, 738, 1192, 1813 444, 1134, 462, 156, 148, 1483, -235, 681, 683, 1420, 1814 1421, 308, 115, 485, 1265, 178, 399, 191, 437, 841, 1815 293, 1101, 178, 50, 759, 844, 1193, -470, 108, 842, 1816 99, 273, 490, 436, 412, 448, 273, 268, 268, 1422, 1817 98, 596, 673, 115, 1154, 163, 217, 674, 328, 976, 1818 1037, 739, 98, 855, 469, 845, 532, 665, -470, 727, 1819 -470, 1024, 846, 244, -470, 754, 308, 472, 165, 1345, 1820 378, 343, 157, 388, 1012, 70, 440, 1036, 308, 1431, 1821 437, 617, 98, 173, 769, 680, 379, 1202, 840, 389, 1822 178, 685, 702, 31, 579, 528, 488, 704, 217, 149, 1823 528, 924, 183, 528, 51, 535, 374, 178, 480, 1110, 1824 1216, 178, 115, 841, 203, 168, 346, 31, 485, -291, 1825 610, 628, 64, 842, 673, 564, 565, 481, 480, 674, 1826 492, 1186, 1403, 78, 249, 633, 480, 509, 78, 633, 1827 576, 217, 115, 1091, 1090, 844, 57, 117, 823, 883, 1828 883, 883, 762, 606, 763, 812, 1551, 764, 98, 852, 1829 770, 566, 567, 853, 71, 609, 829, 268, 883, 254, 1830 170, 882, 882, 882, 178, 845, 1562, 188, 57, 611, 1831 265, 1186, 846, 1566, 374, 935, 914, 860, 604, 609, 1832 882, 252, 869, 604, 171, 268, 71, 308, 308, 1184, 1833 1185, 268, 217, 738, 633, 179, 1493, 948, 878, 112, 1834 1552, 141, 142, 212, 391, 462, 222, -113, 462, -521, 1835 41, 42, 637, 1382, 1407, 115, 641, 699, 115, -10, 1836 392, 214, 343, 1193, 328, 328, 191, 1567, -113, 393, 1837 217, 288, 883, 1172, 1174, 217, 748, 1202, 889, 331, 1838 1343, 268, 41, 42, 1202, 394, 739, 1344, 1121, 268, 1839 502, 633, 503, 50, 882, 727, 374, 744, 108, 728, 1840 99, -444, 977, 115, -445, 532, 894, 532, 523, 738, 1841 532, 507, 278, 532, 1150, 308, 703, 115, 481, 587, 1842 308, 412, 308, 308, 400, 401, 402, 403, 404, 78, 1843 777, 1260, 405, 115, 346, 1186, 711, 1202, 481, 395, 1844 328, 406, 1035, 1452, 1453, 70, 481, 1037, 280, 78, 1845 617, 712, 98, 905, 1458, 396, 611, 78, 332, 328, 1846 217, 907, 739, 883, 408, 884, 885, 713, 178, 409, 1847 112, 714, 141, 240, 51, 1380, 535, 281, 579, 579, 1848 1106, 41, 42, 903, 112, 882, 308, 715, 706, 856, 1849 736, 333, 64, 859, 334, 41, 42, 633, 346, 442, 1850 178, 335, 628, 78, 760, -113, -113, 241, 610, 480, 1851 610, 761, 242, 1499, 876, 872, 178, 443, 879, 873, 1852 1499, -113, 712, 328, 343, 112, 336, 1017, 633, 57, 1853 727, 178, 829, 633, 1106, 628, 41, 42, 927, 633, 1854 727, 217, 633, 633, 633, 895, 714, 71, 372, 874, 1855 831, 953, 1430, 875, 727, 1035, 1199, 956, 1199, 1334, 1856 692, 633, 928, 268, 782, 870, 586, 839, 373, 611, 1857 606, 377, 1200, 1548, 1325, 1335, 896, 1048, 651, 874, 1858 254, 330, 897, 1117, 2, 208, 4, 5, 6, 7, 1859 112, 217, 711, 1133, 386, 115, 346, 699, 1095, 699, 1860 343, 41, 42, 1336, 774, 728, 390, 462, 2, 208, 1861 4, 5, 6, 7, -106, 871, -292, 115, -106, 1337, 1862 1383, 829, 112, 8, 9, 10, 11, 12, 178, 788, 1863 590, 886, 412, 41, 42, 633, 958, 628, 1129, 1501, 1864 398, 1502, 1055, 744, 744, 214, 902, 557, 1015, 35, 1865 410, 36, 31, 558, 559, 427, 930, 112, 703, 141, 1866 142, 1349, 2, 208, 4, 5, 6, 7, 41, 42, 1867 37, 115, 346, 35, 40, 36, 777, 777, 1183, 1368, 1868 34, 41, 42, 1369, 8, 9, 10, 11, 12, 481, 1869 1393, 230, 43, 112, 751, 736, 1549, 560, 561, 752, 1870 78, 673, 839, 611, 41, 42, 674, 44, 428, 702, 1871 604, 217, -3, 31, 704, 729, 46, 47, 579, 746, 1872 1251, 730, 562, 563, 1255, 747, 633, 35, 633, 36, 1873 1020, 481, 1351, 633, 346, 519, 908, 610, 412, 217, 1874 728, 34, 78, 509, 217, 433, 1176, 931, 1040, 610, 1875 728, 1253, 568, 569, 727, 727, 451, 555, 556, 932, 1876 -113, 911, -113, 412, 728, -368, -113, 933, 1156, 57, 1877 412, 736, 112, 977, 141, 142, 214, 977, 977, 756, 1878 -397, -113, -113, 41, 42, 757, 831, 71, 1522, 49, 1879 114, 773, 493, 178, 1527, 555, 839, 774, 738, 470, 1880 308, 829, 254, 330, 412, 108, 1197, 471, 611, 1293, 1881 1294, 918, 727, 727, 245, 1547, 462, 774, 114, 114, 1882 1554, 49, 633, 920, 1001, 1168, 115, 412, 1014, 774, 1883 1002, 555, 217, 49, 730, 462, 699, 1249, 513, 49, 1884 1118, 293, 1376, 586, 699, 115, 217, 49, 774, 1377, 1885 517, 739, 70, 49, 1379, 774, 49, 958, 958, 49, 1886 774, 522, 744, 536, 537, 538, 533, 115, 308, 1171, 1887 -293, 609, 108, 114, 114, 1122, 1384, 8, 9, 10, 1888 11, 12, 774, 1173, 346, 609, 1236, 539, 412, 540, 1889 777, 541, 542, 1341, 535, 703, 1449, 49, 1468, 64, 1890 49, 570, 1446, 703, 774, 328, 31, 49, 1005, 1002, 1891 78, 1515, 571, 143, 1244, 1301, 1302, 1516, 1304, 572, 1892 346, 611, 573, 1572, 443, 1309, 576, 1311, 1371, 586, 1893 43, 939, 739, 939, 34, 420, 669, 412, 49, 217, 1894 339, 633, 633, 774, 1007, 578, 49, 412, 490, 330, 1895 412, 49, 330, 412, 46, 47, 1330, 870, 536, 537, 1896 538, 308, -441, -294, 728, 728, 108, 243, 246, 594, 1897 8, 9, 10, 11, 12, 597, 49, 49, 853, 330, 1898 609, 1401, 539, -3, 540, 1401, 541, 1322, 727, 1389, 1899 1390, 462, 49, 1312, 1313, 1314, 727, 727, 727, 31, 1900 49, 115, 633, 1350, 1352, 1353, 793, 794, 795, 49, 1901 646, 43, 49, 1204, 666, 43, 958, 214, 667, 114, 1902 1448, 668, 728, 728, 268, 670, 776, 34, 412, 671, 1903 957, 214, 609, 672, 114, 46, 47, 1460, 114, 46, 1904 47, 675, 49, 114, 727, 800, 801, 802, 803, 718, 1905 1534, 343, 1440, 1002, 1446, 1447, 49, 49, 1494, 1495, 1906 481, 346, 934, 49, 1420, 1421, 796, 797, 804, 805, 1907 49, 78, 8, 9, 10, 11, 12, 677, 37, 259, 1908 176, 177, 40, 695, 934, 798, 799, 1484, 1426, 41, 1909 42, 717, 720, 178, 131, 722, 132, 133, 134, -239, 1910 1106, 31, 758, 273, 115, 41, 42, 113, 771, 108, 1911 1520, 1460, 221, 775, 779, 373, -12, 832, 49, 833, 1912 836, 847, 115, 899, 214, 919, 308, -13, 466, 34, 1913 891, 108, 217, 37, 892, 176, 177, 40, 49, 49, 1914 921, 922, 633, 698, 41, 42, 115, 926, -418, 947, 1915 112, 108, 141, 142, 1122, 49, 43, -525, 961, 49, 1916 736, 41, 42, 747, 968, 1079, 1331, 970, 975, 981, 1917 652, 578, 982, 412, 983, 1006, 57, 985, 70, 986, 1918 46, 47, 987, 988, 997, 1009, 49, 1010, 1092, 1444, 1919 1011, 633, 633, 1026, 71, 1027, 49, 1028, 728, 1029, 1920 273, 1030, 1031, 1032, 1112, 308, 728, 728, 728, 1043, 1921 108, 1560, -406, -405, 49, 1057, 1102, 1094, 1103, 1104, 1922 49, 1105, 49, 1111, 1113, 64, 37, 1114, 992, 1120, 1923 40, 1130, 774, 1131, 1132, 1166, 78, 41, 42, 115, 1924 1137, 736, 991, 1123, 108, 1142, 49, 1122, 43, 1145, 1925 1187, 114, 1050, 917, 728, 1188, 1189, 1204, 400, 401, 1926 402, 403, 404, 743, 653, 114, 405, 215, 1190, 178, 1927 49, -3, 46, 47, 1191, 406, 1205, 234, 49, 1206, 1928 1208, 37, 49, 176, 177, 40, 49, 1209, 1217, 114, 1929 118, 114, 41, 42, 1221, 1222, 1533, 408, 1224, 268, 1930 1229, 1234, 409, 1239, 481, 1241, 1254, 1245, 1250, 502, 1931 1252, 652, 217, 1257, 1262, 78, 633, 443, 377, 215, 1932 1258, 673, 1266, 1269, 1271, 114, 674, 1273, 652, 1207, 1933 114, 652, 1274, 1275, 1303, 1276, 1277, 57, 1279, 161, 1934 934, 1286, 115, 1295, 1296, 716, 1332, 108, 1306, 1324, 1935 1122, 1307, 1308, 1338, 1340, 71, 1342, 1310, 1318, 1346, 1936 474, 1348, 215, 1347, 1507, 115, 1507, 1354, 1355, 1356, 1937 108, 1153, 115, 1358, 115, 1364, 115, 108, 1365, 114, 1938 1366, 1367, 1378, 749, 1443, 753, 49, 1374, 1008, 151, 1939 152, 153, 1375, 1385, 1386, 1314, 260, 49, 1013, 49, 1940 1394, 1507, 1395, 1507, 161, 1397, 1532, 1414, 1404, 217, 1941 1407, 115, 1025, 115, 1415, -407, 1418, 1204, 49, 1429, 1942 1433, 1435, 1050, 215, 1204, 115, 1437, 1438, 1439, 1445, 1943 108, 1532, 1532, 1450, 49, 1369, 1454, 324, 1455, 163, 1944 114, 308, 1456, 1457, 1459, 1469, 340, 1464, 1471, 49, 1945 1473, 114, 49, 114, 1475, 1477, 1532, 1479, 1482, 1481, 1946 1487, 215, 1489, 374, 481, 1510, 215, 1512, 1488, 555, 1947 1500, 481, 1518, 1514, 1519, 78, 1541, 1204, 328, 212, 1948 222, 508, 78, 1526, 1542, 1546, 49, 1553, 49, 1555, 1949 488, 1079, 1557, 1570, 175, 1563, 431, 214, 934, 1571, 1950 435, 114, 57, 1223, 806, 1323, 1521, 114, 808, 1432, 1951 519, 114, 807, 809, 1573, 1388, 1256, 810, 1405, 114, 1952 71, 1503, 1123, 1228, 481, 693, 694, 1107, 940, 949, 1953 324, 457, 49, 49, 890, 78, 231, 255, 1109, 825, 1954 232, 1056, 1141, 236, 898, 238, 49, 164, 1119, 963, 1955 1333, 215, 247, 971, 815, 0, 934, 934, 741, 0, 1956 816, 196, 435, 0, 219, 497, 817, 229, 0, 0, 1957 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 1958 0, 57, 113, 0, 0, 530, 1392, 0, 0, 0, 1959 0, 0, 0, 0, 443, 943, 0, 161, 0, 71, 1960 0, 946, 0, 0, 0, 466, 0, 0, 0, 0, 1961 0, 0, 1181, 1182, 0, 1123, 0, 0, 37, 0, 1962 185, 186, 40, 0, 0, 0, 49, 0, 766, 41, 1963 42, 595, 215, 418, 0, 601, 0, 0, 49, 0, 1964 43, 1419, 783, 0, 1427, 766, 164, 789, 766, 215, 1965 0, 0, 0, 0, 634, 697, 438, 412, 638, 375, 1966 0, 340, 0, 698, 46, 47, 446, 0, 0, 0, 1967 1231, 1232, 0, 0, 0, 0, 0, 0, 0, 231, 1968 0, 652, 215, 0, 0, 164, 216, 0, 114, 1466, 1969 0, 0, 0, 37, 1470, 0, 474, 40, 0, 8, 1970 9, 10, 11, 12, 41, 42, 0, 0, 164, 0, 1971 0, 49, 0, 0, 0, 43, 324, 324, 1123, 0, 1972 445, 0, 0, 0, 1492, 49, 0, 0, 31, 0, 1973 837, 0, 609, 49, 529, 0, 0, 0, 216, 46, 1974 47, 57, 0, 0, 457, 0, 0, 457, 57, 0, 1975 37, 49, 185, 186, 40, 0, 34, 0, 0, 71, 1976 0, 41, 42, 0, 0, 118, 71, 934, 904, 0, 1977 906, 114, 43, 0, 0, 653, 0, 0, 0, 0, 1978 652, 216, 1060, 43, 934, 0, 0, 608, 114, 609, 1979 497, 652, 324, 114, 497, 0, 46, 47, 776, 0, 1980 412, 57, 215, 0, 530, 0, 530, 46, 47, 530, 1981 1561, 324, 530, 0, 0, 0, 1561, 0, 231, 71, 1982 236, 0, 340, 0, 0, 0, 375, 1561, 0, 0, 1983 215, 1561, 0, 76, 0, 215, 952, 8, 9, 10, 1984 11, 12, 216, 114, 0, 0, 1357, 0, 0, 0, 1985 0, 0, 0, 0, 1359, 1360, 1361, 934, 934, 0, 1986 67, 119, 0, 0, 0, 76, 31, 0, 0, 0, 1987 0, 0, 0, 0, 653, 324, 0, 0, 0, 0, 1988 216, 114, 689, 0, 0, 216, 827, 37, 0, 185, 1989 186, 40, 67, 0, 34, 0, 0, 0, 41, 42, 1990 0, 0, 1396, 224, 375, 0, 0, 0, 231, 43, 1991 162, 0, 0, 49, 0, 0, 731, 868, 0, 0, 1992 0, 43, 601, 215, 697, 0, 412, 0, 877, 0, 1993 223, 0, 0, 46, 47, 0, 957, 215, 609, 0, 1994 414, 0, 0, 0, 0, 46, 47, 422, 8, 9, 1995 10, 11, 12, 529, 0, 0, 0, 508, 529, 0, 1996 0, 529, 0, 0, 0, 0, 0, 261, 0, 0, 1997 216, 0, 0, 0, 0, 1060, 0, 31, 37, 0, 1998 185, 186, 40, 0, 340, 0, 0, 0, 114, 41, 1999 42, 354, 0, 0, 0, 0, 0, 0, 0, 0, 2000 43, 0, 0, 0, 0, 34, 457, 0, 0, 329, 2001 37, 49, 185, 186, 40, 187, 0, 261, 351, 414, 2002 0, 41, 42, 0, 46, 47, 0, 0, 0, 0, 2003 215, 0, 43, 0, 0, 0, 497, 0, 0, 0, 2004 0, 0, 0, 0, 0, 0, 0, 608, 407, 609, 2005 0, 216, 0, 114, 114, 114, 46, 47, 0, 0, 2006 340, 0, 0, 425, 0, 450, 430, 432, 0, 0, 2007 0, 162, 0, 584, 0, 0, 0, 0, 0, 0, 2008 0, 588, 1299, 0, 591, 0, 76, 0, 1138, 0, 2009 0, 76, 449, 0, 0, 0, 452, 0, 453, 0, 2010 0, 216, 0, 0, 0, 1146, 0, 468, 766, 0, 2011 1146, 652, 0, 67, 0, 0, 916, 1016, 482, 0, 2012 0, 0, 827, 0, 0, 923, 0, 0, 489, 925, 2013 0, 37, 0, 185, 186, 40, 432, 0, 0, 0, 2014 0, 0, 41, 42, 0, 0, 0, 37, 414, 185, 2015 186, 40, 422, 43, 0, 0, 0, 0, 41, 42, 2016 1146, 0, 0, 0, 0, 0, 0, 0, 1531, 43, 2017 412, 0, 79, 0, 0, 0, 0, 46, 47, 0, 2018 0, 0, 0, 0, 267, 224, 0, 49, 49, 0, 2019 0, 0, 0, 46, 47, 0, 0, 114, 114, 0, 2020 0, 0, 261, 0, 79, 0, 602, 0, 0, 0, 2021 0, 827, 630, 0, 0, 457, 0, 0, 0, 0, 2022 0, 216, 0, 215, 0, 635, 0, 0, 0, 635, 2023 0, 0, 261, 0, 457, 0, 114, 414, 0, 0, 2024 0, 0, 225, 0, 0, 0, 0, 0, 0, 216, 2025 0, 0, 76, 0, 216, 497, 1124, 324, 0, 0, 2026 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 2027 0, 0, 76, 0, 0, 0, 0, 0, 0, 482, 2028 76, 543, 544, 545, 546, 547, 548, 549, 550, 551, 2029 552, 0, 0, 0, 351, 49, 114, 0, 0, 482, 2030 0, 0, 0, 0, 0, 114, 354, 482, 0, 868, 2031 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 2032 49, 49, 0, 0, 354, 0, 76, 584, 584, 0, 2033 356, 0, 0, 723, 0, 0, 432, 0, 0, 0, 2034 0, 0, 216, 0, 0, 49, 0, 0, 0, 0, 2035 0, 737, 0, 67, 0, 0, 216, 0, 0, 0, 2036 0, 432, 1100, 0, 0, 432, 0, 354, 0, 0, 2037 1146, 1146, 1146, 0, 0, 0, 0, 0, 0, 0, 2038 0, 8, 9, 10, 11, 12, 58, 58, 0, 0, 2039 457, 827, 0, 261, 351, 0, 0, 0, 0, 0, 2040 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 2041 31, 0, 0, 0, 0, 909, 0, 0, 58, 912, 2042 0, 0, 0, 0, 0, 79, 0, 0, 766, 0, 2043 79, 354, 0, 0, 0, 0, 0, 0, 34, 818, 2044 0, 0, 0, 37, 0, 185, 186, 40, 0, 216, 2045 0, 0, 414, 58, 41, 42, 58, 635, 830, 0, 2046 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 2047 849, 0, 0, 0, 0, 354, 354, 354, 0, 0, 2048 697, 0, 412, 0, 0, 0, 0, 0, 602, 46, 2049 47, 0, 0, 602, 354, 0, 0, 0, 0, 635, 2050 215, 0, 351, 351, 351, 0, 0, 0, 0, 0, 2051 1218, 340, 354, 0, 1146, 1146, 0, 0, 0, 0, 2052 0, 351, 0, 76, 225, 0, 0, 0, 0, 354, 2053 0, 0, 0, 0, 0, 1124, 0, 0, 0, 723, 2054 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 2055 482, 0, 0, 1485, 0, 261, 737, 0, 0, 936, 2056 0, 0, 0, 0, 0, 76, 0, 584, 354, 0, 2004 2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2005 73, 0, 0, 213, 0, 0, 349, 0, 0, 0, 2006 1125, 0, 0, 0, 0, 0, 0, 0, 212, 214, 2007 0, 0, 0, 0, 724, 0, 0, 0, 0, 0, 2008 0, 213, 73, 0, 55, 480, 213, 0, 0, 0, 2009 258, 738, 0, 0, 938, 0, 212, 214, 0, 0, 2010 0, 212, 214, 0, 0, 0, 1331, 0, 0, 0, 2011 0, 0, 0, 0, 0, 175, 0, 221, 0, 535, 2012 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 2013 349, 0, 0, 729, 729, 0, 0, 0, 728, 964, 2014 0, 0, 430, 0, 0, 0, 728, 728, 728, 0, 2015 0, 460, 0, 1125, 0, 0, 0, 0, 0, 0, 2016 0, 0, 0, 601, 608, 994, 258, 738, 0, 0, 2017 0, 0, 992, 0, 213, 632, 633, 0, 0, 125, 2018 125, 125, 0, 0, 0, 0, 0, 0, 213, 212, 2019 214, 729, 729, 0, 728, 0, 0, 0, 0, 0, 2020 0, 0, 0, 212, 214, 352, 0, 0, 0, 724, 2021 0, 0, 535, 0, 0, 0, 0, 0, 0, 724, 2022 0, 0, 349, 506, 636, 0, 0, 1024, 636, 832, 2023 0, 0, 821, 822, 724, 0, 0, 0, 0, 0, 2024 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, 2025 125, 0, 125, 0, 0, 0, 1125, 8, 9, 10, 2026 11, 12, 856, 0, 0, 859, 860, 0, 863, 0, 2027 865, 866, 0, 0, 0, 867, 868, 274, 0, 448, 2028 0, 175, 213, 0, 0, 0, 31, 0, 1507, 0, 2029 1507, 0, 0, 0, 0, 0, 64, 212, 214, 0, 2030 73, 0, 0, 0, 0, 73, 412, 0, 0, 0, 2031 0, 0, 0, 420, 34, 0, 0, 0, 636, 37, 2032 0, 182, 183, 40, 0, 1507, 0, 1507, 0, 0, 2033 41, 42, 0, 125, 0, 1332, 0, 0, 0, 0, 2034 0, 125, 0, 125, 125, 0, 0, 0, 125, 0, 2035 125, 125, 0, 0, 1117, 323, 1532, 0, 410, 943, 2036 944, 0, 430, 116, 0, 946, 1533, 729, 0, 8, 2037 9, 10, 11, 12, 0, 729, 729, 729, 0, 0, 2038 349, 0, 0, 0, 0, 412, 0, 0, 0, 8, 2039 9, 10, 11, 12, 0, 0, 0, 0, 31, 0, 2040 221, 0, 0, 0, 0, 0, 535, 0, 0, 0, 2041 0, 0, 0, 0, 0, 603, 0, 0, 31, 0, 2042 125, 0, 0, 729, 0, 0, 34, 0, 428, 0, 2043 0, 37, 0, 724, 724, 40, 349, 349, 0, 0, 2044 0, 584, 41, 42, 0, 0, 34, 517, 0, 588, 2045 0, 37, 591, 182, 183, 40, 1204, 0, 0, 0, 2046 0, 0, 41, 42, 0, 0, 0, 73, 43, 0, 2047 0, 76, 0, 0, 213, 0, 0, 0, 146, 0, 2048 0, 0, 352, 0, 0, 0, 0, 73, 264, 212, 2049 214, 724, 724, 0, 0, 73, 0, 636, 265, 0, 2050 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 2051 0, 0, 0, 0, 0, 412, 0, 0, 0, 420, 2052 0, 352, 0, 0, 1508, 0, 1508, 0, 544, 545, 2053 546, 547, 548, 549, 550, 551, 552, 553, 222, 352, 2054 0, 73, 0, 0, 952, 0, 953, 0, 0, 0, 2055 0, 0, 0, 956, 957, 0, 738, 0, 962, 0, 2056 0, 1508, 554, 1508, 535, 8, 9, 10, 11, 12, 2057 967, 0, 0, 0, 0, 971, 0, 0, 0, 175, 2058 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 2059 0, 0, 0, 0, 31, 0, 0, 0, 0, 1301, 2060 0, 1000, 0, 0, 412, 0, 0, 0, 0, 0, 2061 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 2062 0, 64, 34, 0, 0, 0, 354, 37, 0, 0, 2063 0, 40, 0, 0, 0, 724, 0, 738, 41, 42, 2064 0, 116, 0, 0, 0, 0, 601, 0, 352, 0, 2065 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 2066 0, 0, 0, 0, 744, 0, 0, 724, 0, 212, 2067 214, 0, 0, 0, 745, 724, 724, 724, 0, 0, 2068 0, 0, 0, 0, 0, 0, 349, 349, 0, 0, 2069 0, 0, 0, 352, 352, 352, 584, 584, 0, 0, 2070 1204, 0, 0, 1045, 1046, 1047, 1048, 0, 1050, 0, 2071 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 2072 0, 76, 0, 724, 1094, 0, 76, 0, 0, 0, 2073 352, 0, 0, 0, 116, 125, 125, 0, 1100, 0, 2074 0, 73, 0, 0, 0, 0, 0, 352, 0, 1234, 2075 0, 213, 0, 0, 0, 0, 175, 0, 0, 0, 2076 0, 0, 0, 0, 0, 125, 212, 214, 125, 125, 2077 0, 125, 0, 125, 125, 0, 0, 1116, 125, 125, 2078 0, 0, 0, 73, 0, 911, 352, 0, 0, 914, 2058 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 2059 0, 79, 482, 0, 0, 351, 8, 9, 10, 11, 2060 12, 0, 0, 0, 962, 354, 356, 432, 0, 58, 2061 0, 79, 0, 1535, 0, 0, 0, 81, 0, 79, 2062 0, 0, 1543, 0, 0, 31, 0, 0, 1124, 0, 2063 0, 261, 737, 0, 0, 0, 0, 990, 0, 58, 2064 0, 0, 216, 0, 0, 356, 0, 354, 0, 0, 2065 0, 0, 0, 34, 0, 226, 0, 354, 37, 354, 2066 185, 186, 40, 356, 224, 79, 0, 354, 0, 41, 2067 42, 354, 0, 0, 723, 0, 0, 0, 0, 414, 2068 43, 0, 0, 0, 723, 0, 351, 0, 635, 0, 2069 0, 1023, 0, 635, 830, 1531, 0, 412, 723, 0, 2070 0, 0, 0, 0, 46, 47, 356, 0, 1034, 0, 2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2072 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 2073 0, 1124, 0, 76, 0, 0, 0, 0, 0, 0, 2074 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 2075 0, 0, 1387, 0, 0, 0, 0, 88, 1157, 0, 2076 67, 0, 0, 1506, 0, 1506, 0, 0, 0, 0, 2077 356, 0, 0, 0, 0, 1169, 0, 0, 0, 0, 2078 0, 0, 635, 8, 9, 10, 11, 12, 0, 0, 2079 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 2080 1506, 0, 1506, 0, 0, 0, 0, 0, 0, 0, 2081 0, 0, 31, 0, 356, 356, 356, 354, 1116, 0, 2082 349, 0, 216, 0, 0, 0, 432, 119, 0, 0, 2083 324, 0, 0, 356, 0, 0, 0, 0, 81, 0, 2084 34, 0, 0, 81, 351, 37, 0, 185, 186, 40, 2085 0, 356, 1237, 0, 0, 0, 41, 42, 0, 0, 2086 0, 0, 79, 0, 0, 0, 0, 43, 356, 0, 2087 0, 354, 354, 0, 354, 354, 0, 0, 0, 58, 2088 602, 0, 187, 364, 0, 0, 0, 0, 0, 0, 2089 0, 46, 47, 430, 76, 0, 0, 0, 723, 723, 2090 0, 351, 351, 0, 79, 0, 0, 356, 0, 0, 2091 0, 1504, 0, 1508, 0, 0, 0, 0, 0, 216, 2092 349, 1203, 0, 0, 0, 0, 0, 0, 0, 354, 2093 354, 0, 0, 0, 0, 0, 0, 226, 0, 0, 2094 0, 0, 0, 0, 356, 0, 0, 0, 1537, 0, 2095 1539, 0, 0, 0, 0, 0, 723, 723, 0, 126, 2096 129, 130, 635, 0, 0, 0, 0, 0, 0, 0, 2097 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 2098 0, 0, 0, 88, 349, 0, 356, 0, 0, 0, 2099 0, 0, 0, 1568, 354, 1569, 356, 0, 356, 0, 2100 0, 0, 0, 225, 81, 0, 356, 0, 1576, 1577, 2101 356, 0, 0, 0, 0, 0, 0, 0, 0, 357, 2102 0, 737, 0, 0, 81, 0, 0, 0, 349, 349, 2103 349, 0, 81, 256, 0, 257, 0, 224, 0, 0, 2104 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 2105 0, 0, 0, 0, 0, 0, 0, 0, 357, 76, 2106 0, 0, 0, 0, 1300, 0, 0, 0, 0, 0, 2107 0, 0, 79, 354, 0, 354, 357, 227, 81, 0, 2108 0, 0, 261, 0, 0, 0, 67, 0, 0, 0, 2109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2110 723, 0, 737, 0, 0, 354, 119, 0, 0, 0, 2111 0, 0, 0, 354, 354, 354, 397, 0, 0, 357, 2112 0, 349, 0, 0, 354, 354, 416, 417, 0, 0, 2113 0, 421, 723, 423, 424, 0, 0, 0, 76, 0, 2114 723, 723, 723, 0, 88, 0, 0, 0, 0, 0, 2115 0, 351, 351, 0, 0, 0, 356, 0, 0, 364, 2116 0, 354, 0, 0, 88, 1203, 0, 0, 0, 0, 2117 0, 0, 88, 0, 8, 9, 10, 11, 12, 0, 2118 0, 0, 0, 357, 0, 0, 0, 0, 723, 0, 2119 0, 0, 0, 0, 0, 0, 0, 0, 364, 119, 2120 0, 0, 0, 31, 0, 8, 9, 10, 11, 12, 2121 356, 356, 349, 356, 356, 0, 364, 0, 88, 0, 2122 349, 0, 0, 0, 0, 0, 0, 357, 357, 357, 2123 0, 34, 0, 79, 31, 0, 37, 0, 185, 186, 2124 40, 0, 0, 0, 0, 0, 357, 41, 42, 354, 2125 0, 0, 0, 0, 0, 0, 0, 0, 43, 364, 2126 0, 0, 34, 0, 357, 0, 0, 37, 356, 356, 2127 0, 40, 0, 267, 0, 81, 351, 0, 41, 42, 2128 0, 357, 46, 47, 0, 0, 58, 0, 0, 43, 2129 0, 0, 0, 0, 169, 0, 174, 0, 76, 180, 2130 181, 182, 119, 184, 44, 76, 0, 0, 0, 0, 2131 0, 0, 0, 46, 47, 0, 0, 81, 235, 0, 2132 357, 0, 0, 364, 0, 1203, 0, 0, 0, 0, 2133 250, 251, 1203, 356, 8, 9, 10, 11, 12, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2135 0, 0, 0, 58, 0, 0, 0, 357, 76, 0, 2136 0, 0, 0, 31, 0, 0, 0, 364, 364, 364, 2137 349, 0, 0, 0, 0, 0, 225, 0, 516, 0, 2138 518, 521, 0, 0, 0, 1203, 364, 0, 524, 525, 2139 0, 34, 1556, 0, 0, 0, 37, 0, 79, 357, 2140 40, 0, 518, 518, 364, 0, 0, 41, 42, 357, 2141 0, 357, 356, 0, 356, 88, 226, 0, 43, 357, 2142 0, 364, 0, 357, 0, 0, 0, 349, 349, 0, 2143 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 2144 518, 0, 46, 47, 356, 284, 285, 58, 286, 0, 2145 0, 0, 356, 356, 356, 0, 0, 88, 0, 0, 2146 364, 0, 0, 356, 356, 0, 0, 0, 0, 0, 2147 0, 0, 0, 0, 287, 0, 518, 79, 0, 0, 2148 648, 0, 141, 142, 289, 81, 0, 290, 649, 292, 2149 293, 41, 42, 0, 294, 295, 0, 364, 0, 0, 2150 356, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2151 0, 0, 0, 0, 0, 820, 821, 296, 0, 650, 2152 0, 651, 381, 0, 0, 0, 46, 47, 298, 299, 2153 300, 301, 0, 0, 0, 0, 0, 0, 0, 364, 2154 0, 0, 0, 0, 854, 0, 0, 857, 858, 364, 2155 861, 364, 863, 864, 0, 0, 227, 865, 866, 364, 2156 0, 0, 0, 364, 0, 0, 0, 0, 0, 357, 2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158 0, 0, 0, 0, 0, 599, 0, 607, 356, 58, 2159 58, 0, 0, 0, 0, 0, 0, 0, 631, 632, 2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2161 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 2162 0, 0, 0, 357, 357, 88, 357, 357, 0, 0, 2163 0, 0, 58, 0, 0, 0, 0, 79, 0, 0, 2164 0, 941, 942, 0, 79, 0, 81, 944, 0, 0, 2165 0, 518, 518, 518, 518, 518, 518, 518, 518, 518, 2166 518, 518, 518, 518, 518, 518, 518, 518, 518, 0, 2167 0, 284, 285, 0, 286, 0, 0, 349, 349, 0, 2168 0, 357, 357, 0, 0, 0, 58, 0, 0, 0, 2169 0, 58, 0, 0, 0, 0, 0, 79, 0, 0, 2170 287, 0, 0, 0, 0, 0, 288, 0, 0, 364, 2171 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2172 294, 295, 0, 0, 0, 58, 0, 0, 43, 0, 2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2174 0, 0, 0, 296, 0, 380, 357, 0, 381, 0, 2175 0, 0, 46, 47, 298, 299, 300, 301, 0, 0, 2176 0, 0, 0, 364, 364, 0, 364, 364, 0, 0, 2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2178 0, 0, 0, 0, 0, 0, 88, 0, 0, 226, 2179 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 2180 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, 2181 0, 81, 0, 0, 518, 0, 0, 0, 0, 0, 2182 0, 364, 364, 0, 0, 357, 0, 357, 58, 0, 2183 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2184 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2185 -295, 58, 26, 27, 28, 0, 0, 357, 58, 0, 2186 0, 31, 0, 0, 0, 357, 357, 357, 0, 0, 2187 0, 0, 0, 518, 0, 0, 357, 357, 0, 0, 2188 0, 0, 0, 0, 0, 0, 364, 0, 0, 34, 2189 81, 0, 0, 0, 0, 0, 38, 39, 0, 0, 2190 -295, 0, 0, 284, 285, 518, 286, 0, 0, 0, 2191 0, 58, 0, 357, 0, 0, 43, 0, 0, 0, 2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 2193 0, 642, 287, 339, 0, 0, 0, 0, 288, 0, 2194 46, 47, 289, 0, 0, 290, 291, 292, 293, 41, 2195 42, 88, 294, 295, 0, 0, 0, 0, 0, 0, 2196 43, 0, 0, 0, 950, 364, 951, 364, 0, 0, 2197 0, 0, 0, 954, 955, 296, 0, 380, 960, 0, 2198 0, 0, 0, 811, 46, 47, 298, 299, 300, 301, 2199 965, 0, 0, 0, 0, 969, 0, 364, 0, 284, 2200 285, 357, 286, 0, 0, 364, 364, 364, 0, 0, 2201 0, 0, 0, 0, 0, 0, 364, 364, 0, 0, 2202 0, 998, 0, 0, 0, 0, 0, 0, 287, 0, 2203 88, 1233, 0, 0, 288, 0, 0, 0, 289, 0, 2204 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2205 81, 0, 0, 364, 0, 0, 43, 81, 0, 0, 2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2207 518, 296, 0, 380, 0, 0, 0, 0, 780, 167, 2208 46, 47, 298, 299, 300, 301, 0, 0, 0, 0, 2209 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 2210 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, 2211 81, 0, 0, 0, 518, 0, 0, 284, 285, 0, 2212 286, 0, 1044, 1045, 1046, 1047, 0, 1049, 0, 0, 2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2214 0, 364, 0, 1093, 167, 0, 287, 0, 274, 0, 2215 0, 0, 288, 0, 1321, 518, 289, 1099, 0, 290, 2216 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2217 0, 213, 0, 0, 43, 0, 0, 167, 0, 0, 2218 0, 233, 0, 237, 0, 239, 0, 370, 0, 515, 2219 88, 376, 248, 0, 0, 0, 1115, 88, 46, 47, 2220 298, 299, 300, 301, 0, 0, 0, 0, 0, 0, 2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 213, 0, 237, 239, 248, 518, 0, 2223 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, 2224 167, 0, 0, 1151, 0, 0, 0, 0, 1155, 0, 2225 88, 0, 220, 1159, 0, 1160, 0, 0, 0, 1162, 2226 0, 1163, 1164, 0, 0, 1167, 213, 0, 0, 0, 2227 167, 463, 0, 0, 1179, 0, 0, 0, 0, 0, 2228 0, 0, 0, 0, 0, 0, 518, 518, 0, 0, 2229 0, 0, 1194, 1195, 0, 376, 0, 0, 0, 0, 2230 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 2232 0, 0, 1227, 0, 0, 463, 0, 213, 0, 237, 2233 239, 248, 0, 0, 0, 0, 0, 167, 128, 128, 2234 128, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2235 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2236 -295, 1243, 26, 27, 28, 213, 0, 1247, 1248, 0, 2237 213, 31, 0, 0, 0, 605, 0, 0, 0, 1259, 2238 629, 0, 0, 0, 1263, 506, 0, 1267, 0, 1268, 2239 0, 0, 1270, 0, 0, 0, 0, 0, 0, 34, 2240 0, 0, 0, 0, 37, 1278, 337, 338, 40, 0, 2241 -295, 0, 128, 0, 128, 41, 42, 0, 1285, 0, 2242 1287, 1288, 1289, 1290, 0, 0, 43, 0, 0, 0, 2243 0, 0, 0, 213, 0, 0, 1297, 0, 1298, 277, 2244 0, 642, 174, 339, 0, 0, 0, 0, 0, 0, 2245 46, 47, 0, 0, 0, 213, 167, 167, 0, 0, 2246 237, 239, 0, 370, 0, 0, 0, 0, 248, 0, 2247 0, 1326, 1327, 0, 0, 0, 0, 0, 0, 0, 2248 0, 0, 0, 0, 463, 0, 0, 463, 0, 0, 2249 0, 0, 0, 0, 0, 128, 0, 518, 0, 0, 2250 0, 0, 0, 128, 0, 128, 128, 0, 0, 0, 2251 128, 213, 128, 128, 518, 0, 0, 0, 0, 0, 2252 740, 0, 0, 1362, 1363, 0, 0, 0, 0, 213, 2253 0, 0, 167, 1373, 213, 0, 213, 0, 0, 0, 2254 0, 0, 0, 0, 463, 0, 463, 0, 0, 463, 2255 0, 167, 463, 213, 0, 0, 213, 213, 0, 0, 2256 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 2257 0, 0, 213, 1033, 0, 0, 8, 9, 10, 11, 2258 12, 0, 128, 0, 0, 1406, 213, 518, 518, 0, 2259 0, 0, 0, 213, 0, 0, 0, 1410, 0, 1411, 2260 1412, 1413, 0, 284, 285, 31, 286, 0, 0, 0, 2261 0, 1417, 0, 0, 0, 167, 158, 0, 0, 0, 2262 1428, 0, 0, 0, 0, 0, 0, 370, 0, 0, 2263 0, 835, 287, 34, 0, 0, 1441, 0, 288, 0, 2264 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2265 42, 0, 294, 295, 0, 0, 0, 605, 0, 0, 2266 43, 0, 605, 0, 253, 0, 0, 0, 0, 0, 2267 0, 370, 370, 370, 258, 296, 0, 380, 0, 0, 2268 0, 0, 0, 0, 345, 47, 298, 299, 300, 301, 2269 370, 0, 1490, 1491, 0, 0, 0, 0, 0, 0, 2270 0, 0, 0, 0, 0, 1496, 213, 0, 0, 0, 2271 0, 0, 1496, 284, 285, 0, 286, 0, 0, 0, 2272 0, 0, 0, 0, 0, 740, 0, 0, 0, 0, 2273 158, 0, 0, 0, 213, 0, 0, 0, 0, 213, 2274 0, 0, 287, 0, 387, 1530, 463, 0, 288, 1536, 2275 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2276 42, 0, 294, 295, 370, 0, 959, 419, 0, 0, 2277 43, 0, 0, 0, 0, 0, 0, 0, 1558, 0, 2278 1559, 434, 0, 0, 0, 296, 0, 380, 0, 0, 2279 439, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2280 447, 740, 0, 0, 0, 0, 0, 0, 1574, 1575, 2281 0, 0, 0, 0, 0, 0, 1578, 1579, 0, 0, 2282 0, 0, 0, 0, 0, 473, 0, 213, 0, 0, 2283 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2284 0, 213, 0, 491, 0, 0, 0, 0, 0, 501, 2285 0, 505, 0, 0, 0, 370, 0, 0, 0, 629, 2286 0, 506, 0, 370, 0, 0, 0, 0, 534, 0, 2287 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2288 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2289 22, 23, 24, 25, 128, 128, 26, 27, 28, 0, 2290 0, 0, 0, 0, 0, 31, 455, 0, 0, 0, 2291 593, 0, 0, 0, 0, 598, 0, 0, 0, 0, 2292 0, 0, 213, 128, 0, 0, 128, 128, 0, 128, 2293 0, 128, 128, 34, 213, 0, 128, 128, 0, 0, 2294 38, 39, 0, 0, 643, 0, 0, 0, 644, 645, 2295 0, 647, 0, 213, 0, 463, 0, 0, 659, 660, 2296 43, 661, 662, 0, 663, 0, 664, 0, 0, 0, 2297 0, 0, 0, 0, 463, 0, 0, 456, 0, 0, 2298 0, 710, 0, 593, 46, 47, 0, 0, 0, 0, 2299 0, 679, 0, 0, 0, 0, 0, 167, 0, 0, 2300 0, 0, 0, 1177, 0, 0, 8, 9, 10, 11, 2301 12, 0, 0, 370, 0, 128, 690, 0, 0, 0, 2302 128, 128, 0, 0, 0, 0, 128, 696, 0, 0, 2303 0, 0, 0, 284, 285, 31, 286, 0, 0, 0, 2304 213, 0, 0, 0, 0, 0, 0, 0, 0, 605, 2305 732, 0, 0, 0, 0, 0, 735, 0, 0, 0, 2306 0, 473, 287, 34, 0, 0, 213, 0, 288, 0, 2307 370, 370, 289, 0, 0, 290, 291, 292, 293, 41, 2308 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2309 43, 0, 0, 0, 213, 0, 0, 772, 0, 0, 2310 0, 0, 0, 0, 0, 296, 0, 380, 0, 0, 2311 0, 787, 0, 0, 1178, 47, 298, 299, 300, 301, 2312 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 2313 463, 0, 0, 0, 0, 0, 0, 0, 213, 0, 2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 814, 2315 0, 0, 284, 285, 0, 286, 0, 0, 824, 342, 2316 365, 0, 0, 0, 0, 826, 0, 0, 0, 0, 2317 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 2318 848, 287, 0, 0, 0, 0, 0, 288, 0, 0, 2319 740, 289, 0, 415, 290, 291, 292, 293, 41, 42, 2320 415, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322 213, 888, 0, 0, 296, 0, 380, 0, 0, 991, 2323 0, 0, 220, 46, 47, 298, 299, 300, 301, 0, 2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2325 0, 0, 0, 0, 0, 0, 0, 834, 0, 0, 2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2327 0, 740, 415, 0, 0, 1, 2, 208, 4, 5, 2328 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2329 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2330 -295, 0, 26, 27, 28, 29, 0, 213, 30, 0, 2331 0, 31, 253, 0, 0, 0, 0, 0, 0, 0, 2332 370, 370, 966, 967, 0, 0, 415, 0, 0, 220, 2333 0, 0, 0, 0, 415, 589, 984, 415, 592, 34, 2334 0, 35, 0, 36, 0, 0, 38, 39, 365, 0, 2335 -295, 0, 621, 999, 0, 1000, 0, 0, 0, 1004, 2336 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2337 0, 639, 0, 0, 342, 0, 0, 0, 0, 0, 2338 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 2339 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 2340 0, 415, 0, 0, 213, 415, 0, 0, 0, 0, 2341 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 1038, 0, 0, 0, 0, 0, 2343 0, 1039, 0, 0, 0, 0, 365, 0, 0, 0, 2344 0, 0, 0, 0, 1041, 370, 1042, 0, 0, 0, 2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 2346 1054, 0, 0, 0, 0, 0, 0, 1058, 0, 0, 2347 0, 0, 0, 0, 0, 0, 322, 0, 0, 1096, 2348 0, 0, 1097, 0, 0, 0, 347, 0, 0, 0, 2349 415, 0, 0, 365, 0, 0, 0, 0, 383, 383, 2350 598, 0, 0, 463, 0, 463, 0, 0, 8, 9, 2351 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2352 20, 21, 22, 23, 24, 25, -295, 0, 26, 27, 2353 28, 0, 415, 128, 0, 342, 365, 31, 0, 0, 2354 463, 0, 463, 0, 0, 0, 8, 9, 10, 11, 2355 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2356 22, 23, 24, 25, -295, 34, 0, 0, 0, 322, 2357 167, 0, 38, 39, 0, 31, -295, 0, 0, 0, 2358 415, 415, 0, 0, 0, 0, 0, 0, 0, 1161, 2359 0, 0, 43, 487, 0, 0, 0, 0, 0, 828, 2360 365, 0, 0, 34, 0, 0, 0, 0, 0, 339, 2361 621, 0, 621, 621, -295, 0, 46, 47, 0, 621, 2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 867, 2363 365, 0, 0, 0, 0, 365, 0, 0, 0, 0, 2364 0, 0, 0, 0, 365, 365, 365, 534, 0, 0, 2365 0, 0, 0, 1226, 0, 0, 0, 0, 0, 0, 2366 213, 0, 0, 365, 0, 0, 0, 0, 415, 910, 2367 0, 0, 415, 913, 0, 0, 0, 0, 0, 915, 2368 0, 0, 0, 1240, 0, 0, 0, 0, 1242, 0, 2369 0, 0, 0, 0, 0, 0, 1246, 342, 365, 415, 2370 0, 415, 0, 0, 0, 415, 0, 0, 0, 383, 2371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2372 0, 0, 0, 0, 0, 0, 0, 1272, 0, 0, 2373 0, 0, 0, 0, 0, 0, 0, 365, 621, 1280, 2374 0, 0, 1281, 0, 1282, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 0, 1291, 1292, 2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2377 0, 0, 0, 342, 365, 0, 0, 0, 415, 415, 2378 1305, 207, 2, 208, 4, 5, 6, 7, 8, 9, 2379 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2380 20, 21, 22, 23, 24, 25, 0, 1328, 26, 27, 2381 28, 734, 0, 0, 0, 0, 0, 31, 0, 0, 2382 415, 0, 0, 0, 0, 0, 0, 0, 365, 0, 2383 0, 0, 0, 0, 0, 828, 365, 0, 0, 621, 2384 0, 621, 0, 0, 0, 34, 0, 35, 0, 36, 2385 768, 621, 209, 39, 0, 0, 0, 0, 0, 0, 2386 0, 0, 781, 0, 0, 0, 0, 768, 0, 0, 2387 768, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2388 0, 791, 792, 0, 0, 0, 0, 0, 0, 210, 2389 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, 2390 0, 0, 0, 0, 813, 1398, 0, 1399, 0, 0, 2391 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 2392 1408, 347, 1409, 0, 828, 0, 781, 0, 0, 0, 2393 0, 0, 415, 0, 0, 0, 0, 0, 415, 0, 2394 1416, 0, 0, 0, 0, 0, 415, 0, 0, 0, 2395 0, 0, 0, 0, 0, 0, 1434, 1436, 0, 621, 2396 621, 0, 0, 0, 0, 0, 0, 0, 1442, 0, 2397 0, 1246, 0, 0, 0, 887, 0, 0, 0, 0, 2398 0, 0, 0, 0, 383, 0, 365, 0, 0, 0, 2399 0, 0, 415, 1465, 0, 0, 0, 0, 0, 0, 2400 0, 0, 1472, 0, 0, 1474, 0, 1476, 1478, 1480, 2401 0, 415, 1158, 284, 285, 0, 286, 0, 0, 0, 2402 0, 0, 365, 0, 347, 0, 0, 0, 415, 1170, 2403 0, 621, 621, 1175, 0, 0, 0, 0, 0, 0, 2404 0, 0, 287, 365, 365, 0, 0, 0, 288, 1511, 2405 0, 1513, 289, 0, 1246, 290, 291, 292, 293, 41, 2406 42, 0, 294, 295, 0, 0, 0, 0, 0, 1525, 2407 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 0, 0, 0, 296, 0, 380, 0, 0, 2409 0, 0, 0, 0, 733, 47, 298, 299, 300, 301, 2410 781, 0, 989, 0, 828, 415, 1238, 0, 994, 0, 2411 0, 0, 0, 0, 0, 1003, 0, 0, 621, 1, 2412 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2413 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2414 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2415 0, 0, 30, 284, 285, 31, 286, 0, 1021, 1022, 2416 0, 0, 347, 365, 0, 0, 0, 0, 0, 0, 2417 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 2418 0, 0, 287, 34, 0, 35, 0, 36, 288, 0, 2419 38, 39, 289, 0, 0, 290, 291, 292, 293, 41, 2420 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2421 43, 0, 0, 0, 0, 0, 1052, 0, 0, 0, 2422 383, 0, 0, 0, 342, 296, 0, 1076, 0, 0, 2423 0, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2424 0, 0, 0, 0, 365, 0, 0, 0, -130, 0, 2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2426 0, 0, 0, 0, 2, 208, 4, 5, 6, 7, 2079 2427 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2080 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2081 0, 349, 0, 0, 0, 0, 0, 1144, 0, 31, 2082 0, 222, 412, 352, 1152, 0, 0, 0, 0, 1156, 2083 0, 0, 0, 0, 1160, 0, 1161, 116, 0, 0, 2084 1163, 1164, 1165, 0, 0, 1168, 0, 34, 0, 0, 2085 0, 0, 0, 0, 1180, 0, 0, 125, -294, 0, 2086 1204, 0, 125, 125, 0, 352, 0, 1204, 125, 0, 2087 0, 0, 1195, 1196, 1323, 352, 0, 0, 352, 0, 2088 0, 0, 0, 221, 0, 352, 0, 0, 76, 0, 2089 352, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 2090 0, 0, 1228, 354, 0, 0, 0, 0, 76, 0, 2091 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 2092 1204, 0, 0, 0, 0, 0, 0, 1557, 0, 0, 2093 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 2094 0, 1244, 354, 0, 0, 0, 0, 1248, 1249, 0, 2095 0, 0, 73, 0, 0, 0, 0, 0, 0, 1260, 2096 354, 0, 76, 78, 1264, 0, 0, 1268, 0, 1269, 2097 0, 0, 1271, 0, 0, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 2099 0, 0, 0, 0, 0, 78, 281, 282, 1286, 283, 2100 1288, 1289, 1290, 1291, 354, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 1298, 0, 1299, 0, 2102 0, 0, 171, 0, 0, 284, 0, 0, 0, 0, 2103 223, 649, 0, 138, 139, 286, 352, 0, 287, 650, 2104 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2105 412, 1327, 1328, 293, 0, 0, 0, 0, 0, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 294, 354, 2107 651, 0, 652, 379, 0, 0, 0, 296, 380, 298, 2108 299, 300, 301, 0, 0, 0, 0, 0, 0, 352, 2109 352, 0, 352, 352, 0, 0, 0, 0, 0, 0, 2110 0, 0, 0, 1363, 1364, 0, 0, 0, 0, 0, 2111 0, 0, 73, 1374, 354, 354, 354, 0, 355, 0, 2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 2113 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2114 0, 0, 0, 0, 0, 1170, 0, 352, 352, 0, 2115 0, 354, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 76, 0, 0, 1407, 0, 0, 354, 0, 2117 0, 0, 0, 0, 0, 0, 0, 1411, 0, 1412, 2118 1413, 1414, 281, 282, 0, 283, 0, 0, 0, 0, 2119 0, 1418, 0, 0, 0, 0, 0, 0, 0, 0, 2120 1429, 0, 0, 0, 76, 0, 0, 354, 0, 0, 2121 0, 284, 352, 78, 0, 0, 1442, 285, 78, 0, 2122 0, 286, 1238, 0, 287, 288, 289, 290, 41, 42, 2123 0, 291, 292, 0, 0, 0, 0, 0, 85, 293, 2124 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 2125 0, 0, 125, 0, 294, 221, 378, 0, 0, 379, 2126 0, 0, 0, 296, 380, 298, 299, 300, 301, 0, 2127 85, 0, 1491, 1492, 0, 0, 0, 73, 0, 0, 2128 0, 0, 0, 0, 0, 1497, 354, 0, 0, 0, 2129 0, 352, 1497, 352, 0, 0, 354, 0, 0, 354, 2130 0, 0, 0, 0, 222, 224, 354, 0, 0, 0, 2131 0, 354, 0, 223, 0, 0, 0, 0, 0, 0, 2132 0, 0, 0, 352, 0, 1531, 0, 0, 0, 1537, 2133 0, 352, 352, 352, 0, 0, 0, 0, 0, 0, 2134 0, 0, 352, 352, 0, 0, 0, 0, 0, 0, 2135 0, 0, 0, 0, 0, 0, 73, 0, 1559, 0, 2136 1560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2137 0, 0, 0, 76, 0, 0, 0, 125, 0, 352, 2138 78, 0, 0, 0, 0, 0, 0, 0, 1575, 1576, 2139 0, 0, 0, 362, 0, 355, 1579, 1580, 0, 0, 2140 78, 0, 0, 0, 0, 0, -519, 0, 78, 1, 2428 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2429 26, 27, 28, 365, 365, 0, 322, 284, 285, 31, 2430 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 383, 2432 0, 0, 0, 0, 0, 994, 287, 34, 1149, 35, 2433 768, 36, 288, 0, 38, 39, 289, 0, 0, 290, 2434 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2435 0, 1165, 0, 0, 43, 0, 0, 0, 0, 0, 2436 0, 0, 1180, 0, 0, 0, 0, 0, 0, 296, 2437 0, 344, 0, 0, 0, 0, 780, 0, 345, 47, 2438 298, 299, 300, 301, 383, 0, 1198, 0, 0, 0, 2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2440 0, 994, 994, 0, 0, 0, 0, 0, 0, 0, 2441 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 2442 0, 0, 1230, 0, 0, 0, -520, 0, 0, 1, 2141 2443 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2142 2444 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2143 22, 23, 24, 25, 355, 0, 26, 27, 28, 29,2445 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2144 2446 0, 0, 30, 0, 0, 31, 32, 0, 0, 0, 2145 0, 0, 355, 0, 78, 0, 0, 354, 0, 0,2146 0, 0, 0, 0, 0, 0, 0, 352, 0, 0,2447 994, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 2147 2449 33, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2148 38, 39, 40, 0, 0, 0, 0, 0, 85, 41, 2149 42, 0, 0, 85, 0, 0, 355, 0, 1034, 0, 2150 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2151 354, 354, 0, 354, 354, 43, 73, 44, 0, 0, 2152 0, 0, 0, 73, 0, 45, 0, 0, 281, 282, 2153 31, 283, 0, 76, 0, 8, 9, 10, 11, 12, 2154 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2155 23, 24, 25, -295, 0, 0, 0, 284, 34, 0, 2156 0, 355, 0, 285, 31, 0, 0, 286, 354, 354, 2157 287, 288, 289, 290, 41, 42, 73, 291, 292, 0, 2158 0, 0, 0, 0, 0, 293, 0, 0, 224, 0, 2159 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 2160 294, 0, 378, -295, 0, 0, 355, 355, 355, 296, 2161 827, 298, 299, 300, 301, 0, 0, 0, 0, 0, 2162 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2163 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2164 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 2165 0, 0, 0, 0, 78, 85, 0, 0, 0, 164, 2166 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2167 362, 0, 0, 0, 0, 85, 222, 0, 217, 0, 2168 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 0, 78, 0, 76, 355, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 2171 0, 0, 354, 0, 354, 0, 0, 0, 0, 0, 2172 0, 0, 0, 0, 164, 0, 0, 362, 0, 85, 2173 271, 0, 0, 0, 0, 0, 355, 0, 0, 0, 2174 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 2175 0, 0, 354, 354, 354, 0, 0, 0, 0, 164, 2176 0, 0, 0, 354, 354, 0, 0, 0, 0, 368, 2177 0, 362, 0, 374, 0, 0, 0, 76, 355, 0, 2178 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 2179 0, 355, 0, 0, 0, 0, 223, 0, 355, 0, 2180 354, 0, 0, 355, 8, 9, 10, 11, 12, 13, 2181 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2182 24, 25, 164, 0, 26, 27, 28, 0, 0, 0, 2183 0, 0, 0, 31, 217, 0, 362, 0, 0, 0, 2450 38, 39, 40, 0, 1283, 1284, 0, 0, 415, 41, 2451 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2452 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2453 0, 0, 0, 415, 415, 44, 0, 45, 0, 0, 2454 0, 0, 0, 0, 46, 47, 0, 0, 0, 0, 2455 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 2456 1, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2457 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2458 21, 22, 23, 24, 25, 0, 994, 26, 27, 28, 2459 29, 0, 0, 30, 284, 285, 31, 1061, 1062, 0, 2460 1063, 0, 0, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 2461 1071, 0, 0, 0, 1072, 0, 0, 0, 1073, 1074, 2462 0, 33, 0, 287, 34, 0, 35, 0, 36, 1075, 2463 0, 38, 39, 289, 0, 0, 290, 291, 292, 293, 2464 41, 42, 0, 294, 295, 0, 0, 1391, 0, 0, 2465 768, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2466 0, 0, 0, 0, 0, 0, 296, 0, 1076, 0, 2467 0, 173, 0, 0, 0, 46, 47, 298, 299, 300, 2468 301, 0, 0, 0, 0, 1077, 0, 0, 0, -130, 2469 1, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2470 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2471 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2472 29, 0, 0, 30, 284, 285, 31, 286, 0, 0, 2473 0, 0, 0, 0, 0, 1451, 0, 0, 0, 0, 2184 2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2185 0, 0, 164, 461, 0, 0, 0, 0, 0, 0, 2186 0, 34, 0, 0, 0, 78, 0, 0, 206, 39, 2187 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 2188 0, 362, 362, 362, 164, 0, 0, 0, 354, 0, 2189 0, 0, 0, 0, 514, 0, 516, 519, 0, 0, 2190 362, 0, 0, 0, 522, 523, 0, 0, 461, 516, 2191 516, 164, 0, 270, 0, 0, 0, 0, 362, 0, 2192 0, 516, 0, 0, 0, 0, 0, 0, 0, 85, 2193 0, 0, 0, 0, 0, 362, 0, 76, 281, 282, 2194 0, 283, 0, 0, 76, 0, 0, 0, 0, 355, 2195 0, 0, 0, 0, 0, 0, 0, 516, 606, 0, 2196 0, 0, 0, 630, 0, 0, 0, 284, 0, 0, 2197 0, 85, 0, 285, 362, 0, 0, 286, 0, 0, 2198 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2199 0, 0, 0, 516, 0, 293, 0, 76, 0, 0, 2200 0, 0, 355, 355, 0, 355, 355, 0, 0, 0, 2201 294, 362, 378, 0, 0, 0, 0, 0, 812, 296, 2202 380, 298, 299, 300, 301, 78, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 210, 0, 0, 0, 164, 2204 164, 0, 0, 0, 0, 230, 368, 234, 0, 236, 2205 0, 0, 0, 362, 0, 0, 245, 0, 0, 0, 2206 355, 355, 0, 362, 0, 0, 362, 461, 0, 0, 2207 461, 224, 0, 362, 0, 0, 0, 0, 362, 0, 2208 0, 0, 0, 0, 0, 0, 0, 210, 0, 234, 2209 236, 245, 0, 0, 0, 0, 0, 0, 0, 0, 2210 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 2211 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 2212 0, 0, 0, 0, 0, 355, 0, 461, 0, 461, 2213 210, 0, 461, 0, 164, 461, 0, 0, 0, 0, 2214 85, 0, 0, 0, 0, 0, 0, 368, 0, 0, 2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2216 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 2217 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 2218 516, 516, 516, 516, 516, 516, 516, 516, 0, 0, 2219 78, 210, 0, 234, 236, 245, 0, 0, 0, 0, 2220 164, 0, 0, 0, 355, 0, 355, 0, 0, 0, 2221 0, 0, 368, 516, 606, 0, 0, 837, 0, 0, 2222 0, 0, 0, 0, 362, 0, 0, 0, 0, 210, 2223 0, 0, 0, 210, 0, 0, 355, 0, 0, 0, 2224 0, 0, 0, 606, 355, 355, 355, 0, 606, 504, 2225 0, 0, 0, 0, 0, 355, 355, 368, 368, 368, 2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 2227 0, 0, 0, 0, 0, 0, 368, 362, 362, 0, 2228 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 2229 0, 0, 355, 0, 0, 0, 0, 0, 0, 210, 2230 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2231 0, 741, 516, 0, 0, 0, 0, 0, 0, 0, 2232 210, 0, 0, 0, 0, 234, 236, 155, 0, 0, 2233 0, 0, 461, 245, 516, 362, 362, 0, 0, 0, 2234 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2235 368, 0, 961, 8, 9, 10, 11, 12, 13, 14, 2236 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2237 25, 0, 0, 250, 0, 0, 210, 0, 0, 0, 2238 355, 0, 31, 255, 0, 0, 0, 741, 0, 0, 2239 0, 0, 0, 516, 210, 0, 0, 0, 0, 210, 2240 362, 210, 0, 0, 0, 0, 0, 0, 0, 0, 2241 34, 0, 0, 0, 0, 0, 0, 0, 210, 0, 2242 0, 210, 210, 0, 0, 516, 0, 0, 0, 78, 2243 0, 0, 0, 0, 0, 0, 78, 210, 0, 155, 2244 516, 0, 368, 224, 0, 0, 630, 0, 0, 368, 2245 0, 210, 0, 385, 0, 0, 0, 0, 210, 0, 2246 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 2247 0, 0, 0, 0, 0, 0, 417, 0, 0, 362, 2248 0, 362, 0, 0, 0, 0, 0, 0, 0, 78, 2249 432, 0, 0, 0, 0, 0, 0, 0, 0, 437, 2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 2251 0, 362, 0, 0, 0, 0, 0, 0, 0, 362, 2252 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 2253 362, 362, 0, 0, 471, 0, 0, 0, 0, 481, 2254 0, 0, 461, 0, 85, 0, 0, 0, 0, 0, 2255 0, 0, 489, 0, 0, 0, 0, 0, 499, 0, 2256 503, 461, 0, 0, 0, 0, 0, 362, 0, 0, 2257 0, 0, 0, 0, 210, 0, 0, 0, 533, 0, 2258 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 2259 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 2260 368, 0, 210, 0, 0, 0, 0, 210, 0, 0, 2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2262 0, 593, 516, 0, 0, 0, 598, 0, 0, 0, 2263 0, 0, 0, 0, 516, 606, 0, 0, 0, 0, 2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2265 0, 0, 0, 0, 644, 362, 368, 368, 645, 646, 2266 0, 648, 0, 0, 0, 0, 0, 0, 660, 661, 2267 0, 662, 663, 0, 664, 516, 665, 0, 0, 0, 2268 0, 0, 1178, 0, 0, 8, 9, 10, 11, 12, 2269 0, 0, 0, 593, 0, 210, 0, 0, 0, 0, 2270 0, 680, 0, 0, 85, 0, 0, 0, 0, 210, 2271 0, 85, 281, 282, 31, 283, 461, 0, 0, 0, 2272 0, 0, 0, 0, 0, 0, 691, 0, 0, 504, 2273 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 2274 0, 284, 34, 0, 0, 0, 0, 285, 516, 0, 2275 0, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2276 733, 291, 292, 0, 85, 0, 736, 0, 0, 293, 2277 0, 471, 0, 0, 0, 0, 741, 0, 0, 0, 2278 0, 0, 0, 0, 294, 0, 378, 0, 0, 0, 2279 210, 0, 516, 296, 1179, 298, 299, 300, 301, 0, 2280 0, 0, 0, 210, 0, 0, 516, 516, 773, 0, 2281 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 2282 0, 0, 210, 0, 788, 0, 0, 0, 0, 0, 2283 0, 204, 2, 205, 4, 5, 6, 7, 8, 9, 2284 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2285 20, 21, 22, 23, 24, 25, 0, 741, 26, 27, 2286 28, 815, 0, 0, 0, 0, 0, 31, 0, 0, 2287 825, 0, 0, 0, 0, 0, 0, 828, 0, 0, 2288 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, 2289 0, 0, 0, 850, 0, 34, 0, 35, 0, 36, 2290 37, 0, 206, 39, 40, 0, 368, 368, 0, 210, 2291 0, 41, 42, 0, 0, 217, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 890, 210, 0, 43, 0, 207, 2294 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 2297 835, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2298 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2299 22, 23, 24, 25, -294, 210, 26, 27, 28, 0, 2300 0, 0, 0, 0, 0, 31, 210, 0, 0, 0, 2301 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2302 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2303 0, 368, 0, 34, 516, 968, 969, 0, 0, 0, 2304 38, 39, 0, 0, -294, 0, 0, 0, 0, 986, 2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2306 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 2307 0, 0, 1006, 0, 0, 643, 0, 338, 0, 0, 2308 0, 0, 0, 0, 0, 110, 0, 0, 210, 461, 2309 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 2310 0, 0, 0, 0, 0, 0, 0, 516, 516, 0, 2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2312 281, 282, 0, 283, 0, 0, 461, 0, 461, 0, 2313 0, 0, 0, 0, 0, 0, 0, 0, 1039, 0, 2314 0, 0, 0, 0, 0, 1040, 0, 0, 0, 284, 2315 0, 0, 0, 0, 0, 285, 164, 0, 1042, 286, 2316 1043, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2317 292, 0, 0, 0, 1055, 210, 0, 293, 0, 0, 2318 0, 1059, 0, 0, 0, 0, 0, 0, 0, 0, 2319 0, 0, 294, 1097, 378, 0, 1098, 0, 0, 781, 2320 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2321 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2323 0, 0, 0, 0, 341, 363, 0, 0, 0, 0, 2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2326 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 2327 0, 0, 210, 0, 0, 413, 0, 1, 2, 3, 2475 0, 0, 0, 287, 34, 0, 35, 0, 36, 288, 2476 0, 38, 39, 289, 0, 0, 290, 291, 292, 293, 2477 41, 42, 0, 294, 295, 0, 0, 0, 0, 0, 2478 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2479 0, 0, 0, 0, 0, 0, 296, 0, 45, 0, 2480 0, 0, 0, 0, 0, 46, 47, 298, 299, 300, 2481 301, 0, 0, 0, 0, 0, 0, 1517, 2, 208, 2328 2482 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2329 2483 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2330 24, 25, 0, 1162, 26, 27, 28, 29, 0, 0, 2331 30, 0, 0, 31, 32, 8, 9, 10, 11, 12, 2484 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2485 0, 284, 285, 31, 286, 0, 0, 0, 0, 0, 2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 2487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2488 287, 34, 0, 35, 0, 36, 288, 0, 38, 39, 2489 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2490 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2492 0, 0, 0, 296, 0, 929, 0, 0, 0, 0, 2493 780, 0, 345, 47, 298, 299, 300, 301, 2, 208, 2494 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2495 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2496 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2497 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2332 2498 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2333 23, 24, 25, 0, 0, 26, 27, 28, 33, 0, 2334 0, 34, 0, 35, 31, 36, 37, 413, 38, 39, 2335 40, 0, 0, 0, 0, 0, 0, 41, 42, 533, 2336 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, 2499 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2500 287, 34, 0, 35, 31, 36, 288, 0, 38, 39, 2501 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2502 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2503 0, 0, 34, 0, 0, 0, 0, 112, 0, 38, 2504 39, 0, 0, 296, 0, 929, 0, 0, 41, 42, 2505 780, 0, 46, 47, 298, 299, 300, 301, 2, 208, 2506 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2507 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2508 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2509 0, 284, 285, 31, 286, 0, 0, 0, 8, 9, 2510 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2511 20, 21, 22, 23, 24, 25, -296, 0, 0, 0, 2512 287, 34, 0, 35, 0, 36, 288, 31, 38, 39, 2513 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2514 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2515 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2516 0, 0, 0, 296, 0, 344, -296, 0, 0, 0, 2517 0, 0, 345, 47, 298, 299, 300, 301, 2, 208, 2518 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2519 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2520 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2521 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2522 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2523 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2524 287, 34, 0, 35, 31, 36, 288, 0, 38, 39, 2525 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2526 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2337 2527 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2338 39, 0, 0, 43, 0, 44, 0, 0, 0, -523, 2339 0, 0, 0, 45, 0, 321, 1241, 0, 0, 0, 2340 0, 1243, 0, 413, 0, 345, 0, 0, 0, 1247, 2341 0, 413, 589, 0, 413, 592, 0, 381, 381, 0, 2342 0, 0, 0, 0, 363, 0, 0, 0, 622, 0, 2528 39, 0, 0, 296, 0, 929, 0, 0, 0, 0, 2529 0, 0, 345, 47, 298, 299, 300, 301, 2, 208, 2530 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2531 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2532 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2533 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2534 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2535 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2536 287, 34, 0, 35, 31, 36, 288, 0, 209, 39, 2537 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2538 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2539 0, 0, 34, 0, 0, 0, 0, 0, 0, 209, 2540 39, 0, 0, 296, 0, 1018, 0, 0, 0, 0, 2541 0, 0, 1019, 47, 298, 299, 300, 301, 2, 208, 2542 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2543 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2544 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2545 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2546 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2547 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 2548 287, 34, 0, 35, 31, 36, 288, 0, 209, 39, 2549 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2550 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2551 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 296, 0, 380, 0, 0, 0, 0, 2553 0, 0, 46, 47, 298, 299, 300, 301, 1, 2, 2554 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2555 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2556 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2557 0, 30, 0, 0, 31, 32, 0, 0, 0, 0, 2343 2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344 1273, 0, 0, 0, 0, 0, 0, 640, 0, 0, 2345 341, 0, 1281, 0, 0, 1282, 0, 1283, 0, 0, 2346 281, 282, 0, 283, 0, 0, 0, 0, 0, 0, 2347 0, 1292, 1293, 0, 0, 0, 0, 413, 0, 0, 2348 0, 413, 0, 0, 0, 0, 0, 0, 321, 284, 2349 0, 0, 0, 1306, 0, 285, 0, 0, 0, 286, 2350 0, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2351 292, 0, 363, 485, 0, 0, 0, 293, 0, 0, 2352 1329, 0, 0, 0, 0, 0, 0, 0, 210, 0, 2353 0, 0, 294, 0, 378, 413, 0, 993, 0, 0, 2354 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2560 0, 0, 34, 0, 35, 0, 36, 37, 0, 38, 2561 39, 40, 0, 0, 0, 0, 0, 0, 41, 42, 2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2355 2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356 0, 0, 0, 0, 0, 0, 413, 0, 0, 363, 2357 0, 0, 0, 0, 1, 2, 205, 4, 5, 6, 2358 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2359 17, 18, 19, 20, 21, 22, 23, 24, 25, -294, 2360 0, 26, 27, 28, 29, 0, 0, 30, 0, 413, 2361 31, 0, 341, 363, 0, 0, 0, 0, 1399, 0, 2362 1400, 0, 0, 0, 0, 0, 0, 0, 0, 381, 2363 0, 0, 0, 1409, 0, 1410, 0, 0, 34, 0, 2364 35, 0, 36, 0, 0, 38, 39, 0, 0, -294, 2365 0, 0, 0, 1417, 0, 0, 0, 0, 413, 413, 2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435, 2367 1437, 0, 0, 0, 0, 0, 0, 830, 363, 0, 2368 363, 1443, 44, 0, 1247, 0, 0, 0, 0, 622, 2369 110, 622, 622, 0, 0, 0, 0, 0, 622, 0, 2370 0, 0, 0, 0, 0, 0, 1466, 0, 869, 363, 2371 0, 0, 0, 0, 363, 1473, 0, 0, 1475, 0, 2372 1477, 1479, 1481, 363, 363, 363, 0, 0, 0, 0, 2373 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 2374 0, 0, 363, 0, 0, 0, 0, 413, 912, 0, 2375 0, 413, 915, 0, 0, 0, 0, 0, 917, 0, 2376 0, 0, 1512, 0, 1514, 0, 0, 1247, 0, 0, 2377 769, 0, 0, 0, 0, 0, 341, 363, 413, 0, 2378 413, 0, 1526, 782, 413, 0, 0, 0, 0, 0, 2379 769, 0, 0, 769, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 792, 793, 0, 0, 0, 0, 2381 0, 0, 0, 0, 0, 0, 363, 622, 0, 0, 2382 0, 0, 0, 0, 0, 0, 814, 0, 0, 0, 2383 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 2384 0, 0, 0, 345, 0, 0, 0, 0, 782, 0, 2385 0, 0, 341, 363, 0, 0, 0, 413, 413, 0, 2386 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 2387 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2388 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2389 0, 26, 27, 28, 29, 0, 0, 30, 889, 413, 2390 31, 32, 0, 0, 0, 0, 0, 381, 363, 0, 2391 0, 0, 0, 0, 830, 363, 0, 0, 0, 622, 2392 0, 622, 0, 0, 0, 33, 0, 0, 34, 0, 2393 35, 622, 36, 37, 0, 38, 39, 40, 0, 0, 2394 0, 0, 0, 0, 41, 42, 0, 345, 0, 0, 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2397 43, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2398 45, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2399 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2400 23, 24, 25, -294, 830, 26, 27, 28, 0, 0, 2401 0, 0, 413, 0, 31, 0, 0, 0, 413, 0, 2402 0, 0, 0, 782, 0, 991, 413, 0, 0, 0, 2403 0, 996, 0, 0, 0, 0, 0, 0, 1005, 622, 2404 622, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2405 337, 40, 0, -294, 0, 0, 0, 0, 41, 42, 2406 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2407 0, 0, 413, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 1022, 1023, 643, 345, 338, 0, 0, 0, 2409 0, 413, 1159, 0, 634, 0, 0, 0, 0, 0, 2410 345, 363, 0, 0, 0, 0, 0, 413, 1171, 0, 2411 622, 622, 1176, 0, 0, 0, 0, 0, 0, 0, 2412 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2414 1053, 0, 0, 0, 381, 1, 2, 205, 4, 5, 2564 0, 0, 0, 0, 44, 0, 45, 0, 0, 0, 2565 -524, 0, 0, 46, 47, 1, 2, 3, 4, 5, 2415 2566 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2416 2567 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2417 2568 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2418 0, 31, 0, 830, 413, 1239, 0, 0, 0, 0, 2419 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2421 0, 35, 0, 36, 0, 0, 38, 39, 0, 0, 2422 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2423 0, 0, 0, 0, 0, 0, 1140, 1141, 0, 0, 2424 0, 0, 363, 381, 0, 0, 0, 281, 282, 996, 2425 283, 0, 1150, 44, 769, 0, 0, 0, 0, 0, 2426 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 1166, 0, 284, 0, 0, 0, 2428 0, 0, 285, 0, 0, 1181, 286, 0, 0, 287, 2429 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2430 0, 0, 341, 0, 293, 281, 282, 381, 283, 1199, 2431 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2432 0, 378, 0, 363, 996, 996, 0, 0, 296, 380, 2433 298, 299, 300, 301, 284, 0, 0, 0, 0, 0, 2434 285, 0, 0, 0, 286, 1231, 0, 287, 288, 289, 2435 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2436 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2437 0, 0, 363, 363, 0, 0, 0, 294, 0, 378, 2438 0, 0, 0, 0, 0, 0, 296, 734, 298, 299, 2439 300, 301, 0, 996, 0, 0, 0, 0, 0, 0, 2569 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 2440 2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2441 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 2442 0, 0, 0, 0, 0, 0, 0, 1284, 1285, 0, 2443 0, 0, 0, 0, 0, 1, 2, 205, 4, 5, 2444 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2445 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2446 0, 0, 26, 27, 28, 29, 0, 0, 30, 281, 2447 282, 31, 1062, 1063, 0, 1064, 0, 0, 1065, 1066, 2448 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 0, 1073, 2449 0, 0, 0, 1074, 1075, 0, 33, 363, 284, 34, 2450 0, 35, 0, 36, 649, 0, 38, 39, 286, 996, 2451 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2452 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2571 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 2572 0, 35, 0, 36, 37, 0, 38, 39, 40, 0, 2573 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2574 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2453 2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454 0, 294, 0, 1076, 0, 0, 170, 0, 0, 0, 2455 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 2456 1077, 0, 0, 0, -129, 0, 0, 0, 0, 0, 2457 1392, 0, 769, 0, 0, 0, 0, 0, 0, 0, 2458 0, 0, 0, 0, 0, 0, 0, 413, 8, 9, 2459 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2460 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2461 28, 0, 413, 413, 0, 0, 0, 31, 0, 0, 2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2463 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 2464 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2465 0, 0, 206, 39, 0, 0, 0, 0, 1452, 0, 2466 0, 0, 0, 0, 0, 1, 2, 205, 4, 5, 2467 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2468 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2469 0, 0, 26, 27, 28, 29, 0, 629, 30, 281, 2470 282, 31, 283, 8, 9, 10, 11, 12, 13, 14, 2471 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2472 25, 0, 0, 26, 27, 28, 0, 0, 284, 34, 2473 0, 35, 31, 36, 285, 0, 38, 39, 286, 0, 2474 1518, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2475 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2476 34, 0, 0, 0, 0, 109, 0, 38, 39, 0, 2477 0, 294, 0, 1076, 0, 0, 41, 42, 0, 0, 2478 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 2479 0, 0, 321, 0, -129, 1, 2, 205, 4, 5, 2480 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2481 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2482 0, 0, 26, 27, 28, 29, 0, 0, 30, 281, 2483 282, 31, 283, 8, 9, 10, 11, 12, 13, 14, 2484 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2485 25, 0, 0, 26, 27, 28, 0, 0, 284, 34, 2486 0, 35, 31, 36, 285, 0, 38, 39, 286, 0, 2487 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2488 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2489 34, 0, 0, 0, 0, 0, 0, 206, 39, 0, 2490 0, 294, 0, 44, 0, 0, 0, 0, 0, 0, 2491 296, 297, 298, 299, 300, 301, 2, 205, 4, 5, 2492 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2493 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2494 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2495 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2497 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2498 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2499 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2500 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2502 0, 294, 0, 343, 0, 0, 0, 0, 781, 0, 2503 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2504 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2505 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2506 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2507 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2510 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2511 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2512 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2514 0, 294, 0, 931, 0, 0, 0, 0, 781, 0, 2515 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2516 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2517 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2518 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2519 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2521 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2522 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2523 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2524 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2526 0, 294, 0, 931, 0, 0, 0, 0, 781, 0, 2527 296, 600, 298, 299, 300, 301, 2, 205, 4, 5, 2528 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2529 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2530 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2531 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2533 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2534 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2535 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2536 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2538 0, 294, 0, 343, 0, 0, 0, 0, 0, 0, 2539 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2540 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2541 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2542 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2543 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2546 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2547 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2548 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 294, 0, 931, 0, 0, 0, 0, 0, 0, 2551 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2552 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2553 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2554 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2555 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2558 0, 35, 0, 36, 285, 0, 206, 39, 286, 0, 2559 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2560 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 294, 0, 1020, 0, 0, 0, 0, 0, 0, 2563 296, 1021, 298, 299, 300, 301, 2, 205, 4, 5, 2564 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2565 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2566 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2567 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2570 0, 35, 0, 36, 285, 0, 206, 39, 286, 0, 2571 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2572 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 294, 0, 378, 0, 0, 0, 0, 0, 0, 2575 296, 380, 298, 299, 300, 301, 204, 2, 205, 4, 2576 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2577 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2578 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2579 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2576 0, 44, 0, 45, 0, 0, 0, 0, 0, 0, 2577 46, 47, 207, 2, 208, 4, 5, 6, 7, 8, 2578 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2579 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2580 27, 28, 0, 0, 0, 0, 0, 0, 31, 0, 2581 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2582 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2583 26, 27, 28, 494, 495, 496, 34, 0, 35, 31, 2584 36, 37, 0, 209, 39, 40, 0, 0, 0, 0, 2585 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 43, 0, 0, 0, 34, 0, 0, 2587 0, 0, 0, 0, 38, 39, 0, 0, 44, 0, 2588 210, 0, 0, 0, 0, 0, 0, 46, 47, 1, 2589 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2590 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2591 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2592 0, 0, 30, 0, 0, 31, 0, 0, 0, 0, 2580 2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2581 2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582 34, 0, 35, 0, 36, 0, 0, 206, 39, 0, 2583 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2584 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2585 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2586 0, 0, 0, 0, 207, 31, 0, 0, 0, 0, 2587 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 2595 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2596 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 2588 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2590 206, 39, 40, 0, 0, 0, 0, 0, 0, 41, 2591 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 0, 0, 0, 0, 43, 0, 207, 0, 0, 2594 0, 0, 0, 0, 0, 208, 2, 205, 4, 5, 2598 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2599 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 2600 0, 0, 0, 0, 46, 47, 2, 208, 4, 5, 2595 2601 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2596 2602 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2597 2603 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2598 0, 31, 0, 0, 0, 0, 8, 9, 10, 11, 2599 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2600 22, 23, 24, 25, 0, 0, 26, 27, 28, 34, 2601 0, 35, 0, 36, 0, 31, 38, 39, 0, 2, 2602 205, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2603 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2604 23, 24, 25, 34, 0, 26, 27, 28, 109, 0, 2605 38, 39, -402, 687, 31, 0, 0, 0, 0, 41, 2606 42, 634, 0, 0, 0, 0, 0, 0, 0, 0, 2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2608 0, 0, 34, 0, 35, 0, 36, 44, 0, 38, 2609 39, 0, 0, 0, 0, 110, 0, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 1371, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 687, 0, 0, 0, 2613 0, 0, 0, 0, 634, 2, 205, 4, 5, 6, 2614 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2615 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2616 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2617 31, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2618 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2619 23, 24, 25, -294, 0, 26, 27, 28, 34, 0, 2620 35, 0, 36, 0, 31, 38, 39, 0, 0, 0, 2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2622 0, 0, 0, 0, 0, 0, 0, 1373, 0, 0, 2623 0, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2624 337, 40, 687, -294, 0, 0, 0, 0, 41, 42, 2625 634, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2626 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2627 21, 22, 23, 24, 25, 0, 338, 26, 27, 28, 2628 0, 0, 0, 0, 110, 0, 31, 0, 0, 0, 2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2631 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2632 0, 206, 39, 0, 2, 205, 4, 5, 6, 7, 2633 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2634 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2635 26, 27, 28, 0, 0, 0, 0, 0, 269, 31, 2636 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2639 0, 36, 0, 0, 38, 39, 0, 2, 205, 4, 2640 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2641 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2642 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2643 0, 687, 31, 0, 0, 0, 0, 0, 0, 634, 2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2647 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2648 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2649 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2650 0, 0, 0, 0, 599, 31, 0, 0, 0, 0, 2651 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2653 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2654 206, 39, 8, 9, 10, 11, 12, 13, 14, 15, 2655 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2656 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2657 282, 31, 283, 0, 0, 0, 0, 207, 0, 0, 2658 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 2659 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2660 0, 0, 0, 0, 285, 0, 38, 39, 286, 0, 2661 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2662 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2664 0, 294, 0, 525, 0, 0, 170, 0, 0, 0, 2665 296, 297, 298, 299, 300, 301, 8, 9, 10, 11, 2666 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2667 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2668 0, 0, 0, 281, 282, 31, 283, 8, 9, 10, 2669 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2670 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2671 0, 0, 284, 34, 0, 0, 31, 0, 285, 0, 2672 38, 39, 286, 0, 0, 287, 288, 289, 290, 41, 2673 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2674 293, 0, 0, 0, 34, 0, 0, 0, 0, 37, 2675 0, 336, 337, 40, 0, 294, 0, 599, -3, 0, 2676 41, 42, 0, 0, 296, 600, 298, 299, 300, 301, 2677 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2678 18, 19, 20, 21, 22, 23, 24, 25, 338, 0, 2679 26, 27, 28, 0, 0, 0, 110, 281, 282, 31, 2680 283, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2681 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2682 0, 26, 27, 28, 0, 0, 284, 34, 0, 0, 2683 31, 453, 649, 0, 38, 39, 286, 0, 0, 287, 2684 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2685 0, 0, 0, 0, 293, 0, 0, 0, 34, 0, 2686 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2687 -35, 766, 0, 0, 0, 0, 0, 0, 296, 297, 2688 298, 299, 300, 301, 8, 9, 10, 11, 12, 13, 2689 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2690 24, 25, 454, 0, 26, 27, 28, 0, 0, 0, 2691 110, 281, 282, 31, 283, 0, 0, 0, 0, 0, 2692 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2693 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2694 284, 34, 26, 27, 28, 0, 285, 0, 38, 39, 2695 286, 31, 0, 287, 288, 289, 290, 41, 42, 0, 2696 291, 292, 0, 0, 0, 0, 0, 0, 293, 0, 2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2698 0, 0, 0, 294, 0, 295, 38, 39, 0, 0, 2699 0, 0, 296, 297, 298, 299, 300, 301, 8, 9, 2700 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2701 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2702 28, 643, 0, 338, 0, 281, 282, 31, 283, 0, 2703 0, 110, 0, 0, 0, 0, 8, 9, 10, 11, 2704 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2705 22, 23, 24, 25, 284, 34, 26, 27, 28, 0, 2706 285, 0, 38, 39, 286, 31, 0, 287, 288, 289, 2707 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2708 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2709 0, 0, 0, 34, 0, 0, 0, 294, 0, 156, 2710 38, 39, 0, 0, 0, 0, 296, 297, 298, 299, 2711 300, 301, 8, 9, 10, 11, 12, 13, 14, 15, 2712 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2713 0, 0, 26, 27, 28, 643, 0, 338, 0, 281, 2714 282, 31, 283, 0, 0, 634, 0, 0, 0, 0, 2715 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2716 18, 19, 20, 21, 22, 23, 24, 25, 284, 34, 2717 26, 27, 28, 0, 285, 0, 38, 39, 286, 31, 2718 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2719 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2720 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2721 0, 294, 0, 599, 38, 39, 0, 0, 0, 0, 2722 296, 600, 298, 299, 300, 301, 8, 9, 10, 11, 2723 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2724 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2725 0, 256, 0, 281, 282, 31, 283, 0, 0, 110, 2726 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2727 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2728 24, 25, 284, 34, 26, 27, 28, 0, 285, 0, 2729 38, 39, 286, 31, 0, 287, 288, 289, 290, 41, 2730 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2731 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732 0, 34, 0, 0, 0, 294, 0, 378, 38, 39, 2733 0, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2734 474, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2735 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2736 21, 22, 23, 24, 25, 156, 0, 26, 27, 28, 2737 0, 0, 0, 110, 0, 0, 31, 0, 0, 0, 2738 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2739 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2740 26, 27, 28, 0, 34, 0, 35, 0, 36, 31, 2741 0, 38, 39, 0, 0, 0, 0, 0, 8, 9, 2742 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2743 20, 21, 22, 23, 24, 25, 0, 34, 26, 27, 2744 28, 0, 37, 0, 38, 39, 40, 31, 0, 0, 2745 0, -3, 0, 41, 42, 0, 8, 9, 10, 11, 2746 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2747 22, 23, 24, 25, 0, 34, 26, 27, 28, 43, 2748 37, 156, 38, 39, 40, 31, 0, 0, 0, 45, 2749 0, 41, 42, 0, 8, 9, 10, 11, 12, 13, 2750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2751 24, 25, 0, 34, 26, 27, 28, 43, 37, 44, 2752 206, 39, 40, 31, 0, 0, 0, 45, 0, 41, 2753 42, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2754 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2755 -294, 34, 26, 27, 28, 43, 37, 269, 336, 337, 2756 40, 31, 0, 0, 0, 208, 0, 41, 42, 0, 2604 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2757 2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2758 2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2759 0, 0, 0, 643, 0, 338, 38, 39, 0, 0, 2760 -294, 0, 0, 634, 0, 8, 9, 10, 11, 12, 2761 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2762 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2763 0, 643, 0, 338, 31, 453, 0, 0, 0, 0, 2764 0, 634, 0, 8, 9, 10, 11, 12, 13, 14, 2765 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2766 25, -294, 34, 26, 27, 28, 0, 0, 0, 38, 2767 39, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2768 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2769 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2770 34, 0, 31, 453, 0, 0, 454, 38, 39, 0, 2771 711, -294, 0, 0, 110, 0, 0, 0, 0, 0, 2607 0, 35, 0, 36, 37, 0, 209, 39, 40, 0, 2608 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2609 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2772 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2774 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 2775 0, 0, 110, 0, 0, 8, 9, 10, 11, 12, 2776 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2777 23, 24, 25, 0, 454, 26, 27, 28, 1109, 0, 2778 0, 0, 110, 0, 31, 453, 8, 9, 10, 11, 2779 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2780 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2781 0, 0, 34, 0, 0, 31, 0, 0, 0, 38, 2782 39, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2783 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2784 24, 25, 0, 34, 26, 27, 28, 0, 0, 0, 2785 206, 39, 0, 31, 0, 0, 454, 0, 0, 0, 2786 1236, 0, 0, 0, 110, 0, 0, 0, 0, 0, 2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2788 0, 34, 0, 0, 0, 0, 0, 269, 38, 39, 2789 0, 0, 0, 0, 0, 270, 0, 8, 9, 10, 2790 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2791 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2792 0, 0, 0, 0, 0, 256, 31, 0, 0, 0, 2793 0, 0, 0, 634, 0, 8, 9, 10, 11, 12, 2794 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2795 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2796 0, 38, 39, 0, 31, 8, 9, 10, 11, 12, 2797 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2798 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2799 0, 0, 34, 0, 31, 0, 0, 0, 338, 38, 2800 39, 0, 0, 0, 0, 0, 634, 0, 0, 0, 2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802 0, 0, 34, 0, 0, 0, 0, 0, 0, 206, 2803 39, 0, 0, 0, 0, 0, 454, 0, 0, 0, 2804 0, 0, 0, 0, 110, 0, 0, 8, 9, 10, 2805 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2806 21, 22, 23, 24, 25, 0, 269, 26, 27, 28, 2807 0, 0, 0, 0, 629, 0, 31, 8, 9, 10, 2808 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2809 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2810 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 2811 0, 38, 39, 0, 0, 8, 9, 10, 11, 12, 2812 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2813 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2814 0, 38, 39, 0, 31, 0, 0, 0, 599, 0, 2815 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2817 0, 0, 34, 0, 0, 0, 0, 0, 338, 38, 2818 39, 0, 0, 0, 0, 0, 110, 2, 205, 4, 2819 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2820 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2821 25, 0, 0, 26, 27, 28, 44, 0, 0, 0, 2822 0, 0, 31, 0, 110, 0, 0, 0, 0, 0, 2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2825 34, 0, 35, 0, 36, 0, 0, 38, 39, 281, 2826 282, 0, 283, 1063, 0, 1064, 0, 0, 1065, 1066, 2827 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 1551, 1073, 2828 0, 0, 0, 1074, 1075, 0, 33, 0, 284, 0, 2829 0, 0, 0, -415, 649, 0, 0, 0, 286, 0, 2830 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2831 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2833 0, 294, 0, 378, 0, 0, 170, 0, 0, 0, 2834 296, 380, 298, 299, 300, 301, 0, 0, 0, 0, 2835 1077, 0, 281, 282, -129, 283, 1063, 0, 1064, 0, 2836 0, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 0, 2837 0, 0, 1073, 0, 0, 0, 1074, 1075, 0, 33, 2838 0, 284, 0, 0, 0, 0, 0, 649, 0, 0, 2839 0, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2840 0, 291, 292, 0, 0, 0, 0, 0, 0, 293, 2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 0, 0, 294, 0, 378, 0, 0, 170, 2843 0, 0, 0, 296, 380, 298, 299, 300, 301, 0, 2844 0, 0, 0, 1077, 0, 0, 0, -129, 2, 205, 2845 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2846 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2847 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2848 0, 0, 0, 31, 0, 281, 282, 0, 283, 1063, 2849 0, 1064, 1421, 1422, 1065, 1066, 1067, 1068, 1069, 1070, 2850 1071, 1072, 0, 0, 1551, 1073, 0, 0, 0, 1074, 2851 1075, 34, 33, 35, 284, 36, 0, 0, 38, 39, 2852 649, 0, 0, 0, 286, 0, 0, 287, 288, 289, 2853 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2854 1330, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2855 0, 0, 0, 0, 0, 0, 0, 294, 0, 378, 2856 0, 0, 170, 0, 0, 0, 296, 380, 298, 299, 2857 300, 301, 0, 0, 281, 282, 1077, 283, 1063, 0, 2858 1064, 1421, 1422, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 2859 1072, 0, 0, 0, 1073, 0, 0, 0, 1074, 1075, 2860 0, 33, 0, 284, 0, 0, 0, 0, 0, 649, 2861 0, 0, 0, 286, 0, 0, 287, 288, 289, 290, 2862 41, 42, 0, 291, 292, 0, 0, 0, 0, 0, 2863 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2864 0, 0, 0, 0, 0, 0, 294, 0, 378, 0, 2865 0, 170, 0, 0, 0, 296, 380, 298, 299, 300, 2866 301, 0, 0, 281, 282, 1077, 283, 1063, 0, 1064, 2867 0, 0, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 2868 0, 0, 0, 1073, 0, 0, 0, 1074, 1075, 0, 2869 33, 0, 284, 0, 0, 0, 0, 0, 649, 0, 2870 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2871 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2872 293, 281, 282, 0, 283, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 294, 0, 378, 0, 0, 2874 170, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2875 284, 0, 0, 0, 1077, 0, 649, 0, 0, 0, 2876 286, 0, 0, 287, 288, 289, 290, 41, 42, 0, 2877 291, 292, 0, 0, 0, 0, 0, 0, 293, 281, 2878 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 2879 0, 0, 0, 294, 0, 785, 0, 0, 281, 282, 2880 0, 283, 296, 380, 298, 299, 300, 301, 284, 0, 2881 0, 0, 0, 0, 285, 0, 0, 0, 286, 0, 2882 0, 287, 288, 289, 290, 41, 42, 284, 291, 292, 2883 0, 0, 0, 285, 0, 0, 293, 286, 0, 0, 2884 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2885 0, 294, 0, 378, 0, 293, 281, 282, 0, 283, 2886 296, 827, 298, 299, 300, 301, 0, 0, 0, 0, 2887 513, 0, 0, 0, 0, 281, 282, 0, 283, 296, 2888 380, 298, 299, 300, 301, 284, 0, 0, 0, 0, 2889 0, 285, 0, 0, 0, 286, 0, 0, 287, 288, 2890 289, 290, 41, 42, 284, 291, 292, 0, 0, 0, 2891 285, 0, 0, 293, 286, 0, 0, 287, 288, 289, 2892 290, 41, 42, 0, 291, 292, 0, 0, 294, 0, 2893 0, 0, 293, 281, 282, 0, 283, 296, 380, 298, 2894 299, 300, 301, 0, 0, 0, 0, 518, 0, 0, 2895 0, 0, 0, 0, 0, 0, 296, 380, 298, 299, 2896 300, 301, 284, 0, 0, 0, 0, 0, 285, 0, 2897 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2898 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2899 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2900 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 2901 0, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2902 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2903 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2904 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 2905 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2908 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2909 173, 174, 40, 0, 0, 0, 0, 0, 0, 41, 2910 42, 204, 2, 205, 4, 5, 6, 7, 8, 9, 2611 0, 44, 0, 210, 0, 0, 0, 0, 0, 0, 2612 46, 47, 2, 208, 4, 5, 6, 7, 8, 9, 2911 2613 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2912 2614 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, … … 2915 2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2916 2618 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2917 0, 0, 206, 39, 474, 2, 205, 4, 5, 6, 2619 0, 0, 38, 39, 0, 0, 0, 0, 0, 0, 2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2621 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2622 0, 0, 0, 0, 0, 0, 0, 0, -403, 686, 2623 0, 0, 0, 0, 0, 0, 46, 47, 2, 208, 2624 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2625 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2626 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2627 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2630 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2633 1370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2634 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 2635 0, 0, 46, 47, 2, 208, 4, 5, 6, 7, 2636 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2637 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2638 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2642 0, 36, 0, 0, 38, 39, 0, 0, 0, 0, 2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 43, 0, 1372, 0, 0, 0, 2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646 0, 686, 0, 0, 0, 0, 0, 0, 46, 47, 2647 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2648 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2649 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2650 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2653 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2654 209, 39, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2656 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2657 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 2658 0, 0, 0, 0, 46, 47, 2, 208, 4, 5, 2659 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2660 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2661 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2662 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2665 0, 35, 0, 36, 0, 0, 38, 39, 0, 0, 2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2667 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2669 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 2670 46, 47, 2, 208, 4, 5, 6, 7, 8, 9, 2671 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2672 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2673 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2676 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2677 0, 0, 38, 39, 0, 0, 0, 0, 0, 0, 2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2679 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 600, 2681 0, 0, 0, 0, 0, 0, 46, 47, 2, 208, 2682 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2683 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2684 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2685 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2688 0, 34, 0, 35, 0, 36, 0, 0, 209, 39, 2689 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2690 18, 19, 20, 21, 22, 23, 24, 25, 43, 0, 2691 26, 27, 28, 0, 0, 0, 0, 284, 285, 31, 2692 286, 0, 0, 0, 0, 210, 0, 0, 0, 0, 2693 0, 0, 46, 47, 0, 0, 0, 0, 0, 0, 2694 0, 0, 0, 0, 0, 0, 287, 34, 0, 0, 2695 0, 0, 288, 0, 38, 39, 289, 0, 0, 290, 2696 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2697 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2699 0, 526, 0, 0, 173, 0, 0, 0, 46, 47, 2700 298, 299, 300, 301, 8, 9, 10, 11, 12, 13, 2701 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2702 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2703 0, 284, 285, 31, 286, 0, 0, 0, 0, 0, 2704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2706 287, 34, 0, 0, 0, 0, 648, 0, 38, 39, 2707 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2708 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2710 0, 0, 0, 296, -35, 765, 0, 0, 0, 0, 2711 0, 0, 46, 47, 298, 299, 300, 301, 8, 9, 2712 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2713 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2714 28, 0, 0, 0, 0, 284, 285, 31, 286, 0, 2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2717 0, 0, 0, 0, 287, 34, 0, 0, 0, 0, 2718 288, 0, 38, 39, 289, 0, 0, 290, 291, 292, 2719 293, 41, 42, 0, 294, 295, 0, 0, 0, 0, 2720 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2721 0, 0, 0, 0, 0, 0, 0, 296, 0, 297, 2722 0, 0, 0, 0, 0, 0, 46, 47, 298, 299, 2723 300, 301, 8, 9, 10, 11, 12, 13, 14, 15, 2724 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2725 0, 0, 26, 27, 28, 0, 0, 0, 0, 284, 2726 285, 31, 286, 0, 0, 0, 0, 0, 0, 0, 2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2728 0, 0, 0, 0, 0, 0, 0, 0, 287, 34, 2729 0, 0, 0, 0, 288, 0, 38, 39, 289, 0, 2730 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2731 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2733 0, 296, 0, 159, 0, 0, 0, 0, 0, 0, 2734 46, 47, 298, 299, 300, 301, 8, 9, 10, 11, 2735 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2736 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2737 0, 0, 0, 284, 285, 31, 286, 0, 0, 0, 2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740 0, 0, 287, 34, 0, 0, 0, 0, 288, 0, 2741 38, 39, 289, 0, 0, 290, 291, 292, 293, 41, 2742 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2743 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2744 0, 0, 0, 0, 0, 296, 0, 600, 0, 0, 2745 0, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2746 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2747 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2748 26, 27, 28, 0, 0, 0, 0, 284, 285, 31, 2749 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2751 0, 0, 0, 0, 0, 0, 287, 34, 0, 0, 2752 0, 0, 288, 0, 38, 39, 289, 0, 0, 290, 2753 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2754 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2756 0, 380, 0, 0, 0, 0, 0, 0, 46, 47, 2757 298, 299, 300, 301, 476, 2, 208, 4, 5, 6, 2918 2758 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2919 2759 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2920 2760 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2761 31, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2762 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2763 24, 25, -295, 0, 26, 27, 28, 0, 34, 0, 2764 35, 0, 36, 31, 0, 38, 39, 0, 0, 0, 2765 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2766 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2767 0, 34, 26, 27, 28, 0, 37, 0, 337, 338, 2768 40, 31, -295, 0, 0, -3, 0, 41, 42, 0, 2769 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2771 0, 0, 0, 0, 37, 339, 38, 39, 40, 0, 2772 0, 0, 46, 47, 0, 41, 42, 0, 0, 0, 2773 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2775 0, 44, 0, 159, 0, 0, 0, 0, 0, 0, 2776 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2777 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2778 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2779 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2780 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2781 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2782 0, 31, 0, 0, 37, 0, 38, 39, 40, 0, 2783 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2784 0, 0, 0, 0, 0, 0, 43, 0, 0, 34, 2785 0, 0, 0, 0, 37, 0, 209, 39, 40, 0, 2786 0, 44, 0, 45, 0, 41, 42, 0, 0, 0, 2787 46, 47, 0, 0, 0, 0, 43, 0, 0, 0, 2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2789 0, 44, 0, 272, 0, 0, 0, 0, 0, 0, 2790 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2791 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2792 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2793 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2794 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2795 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2796 0, 31, 0, 0, 37, 0, 337, 338, 40, 0, 2797 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2798 0, 0, 0, 0, 0, 0, 43, 0, 0, 34, 2799 0, 0, 0, 0, 37, 0, 337, 338, 40, 0, 2800 0, 642, 0, 339, 0, 41, 42, 0, 0, 0, 2801 46, 47, 0, 0, 0, 0, 43, 0, 0, 0, 2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2803 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 2804 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2805 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2806 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2807 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2808 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2809 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2810 0, 31, 455, 0, 112, 0, 38, 39, 0, 0, 2811 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2812 0, 0, 0, 0, 0, 0, 43, 0, 0, 34, 2813 0, 0, 0, 0, 0, 0, 38, 39, 0, 0, 2814 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 2815 46, 47, 0, 0, 0, 0, 43, 0, 0, 0, 2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2817 0, 0, 0, 456, 0, 0, 0, 1108, 0, 0, 2818 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2819 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2820 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2821 0, 31, 455, 8, 9, 10, 11, 12, 13, 14, 2822 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2823 25, 0, 0, 26, 27, 28, 0, 0, 0, 34, 2824 0, 0, 31, 455, 0, 0, 38, 39, 0, 0, 2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2826 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2827 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2828 0, 0, 0, 456, 0, 0, 0, 1235, 0, 0, 2829 46, 47, 0, 0, 0, 0, 0, 43, 0, 0, 2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2831 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 2832 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2833 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2834 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2835 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2836 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2837 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2838 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2841 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2842 0, 0, 642, 0, 339, 0, 0, 0, 0, 0, 2843 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2845 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 2846 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2847 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2848 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2849 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2850 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2851 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2852 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2854 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2855 34, 0, 0, 0, 0, 0, 0, 209, 39, 0, 2856 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 2857 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 2860 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2861 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2862 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2863 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2864 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2865 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2866 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2868 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2869 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2870 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 2871 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 2874 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2875 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2876 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2877 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2878 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2879 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2880 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2882 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2883 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2884 0, 0, 0, 0, 600, 0, 0, 0, 0, 0, 2885 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2887 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 2888 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2889 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2890 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2891 0, 0, 31, 0, 0, 2, 208, 4, 5, 6, 2892 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2893 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2894 34, 26, 27, 28, 0, 0, 0, 209, 39, 0, 2921 2895 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2896 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2897 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2898 35, 0, 36, 0, 0, 38, 39, 0, 0, 0, 2899 0, 46, 47, 284, 285, 0, 286, 1062, 0, 1063, 2900 0, 0, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 2901 0, 0, 1550, 1072, 0, 0, 0, 1073, 1074, 0, 2902 33, -416, 287, 0, 0, 0, 0, 0, 1075, 0, 2903 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2904 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2905 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2906 0, 0, 0, 0, 0, 296, 0, 380, 0, 0, 2907 173, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2908 0, 0, 0, 0, 1077, 0, 284, 285, -130, 286, 2909 1062, 0, 1063, 0, 0, 1064, 1065, 1066, 1067, 1068, 2910 1069, 1070, 1071, 0, 0, 0, 1072, 0, 0, 0, 2911 1073, 1074, 0, 33, 0, 287, 0, 0, 0, 0, 2912 0, 1075, 0, 0, 0, 289, 0, 0, 290, 291, 2913 292, 293, 41, 42, 0, 294, 295, 0, 0, 0, 2914 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2915 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 2916 380, 0, 0, 173, 0, 0, 0, 46, 47, 298, 2917 299, 300, 301, 0, 0, 0, 0, 1077, 0, 0, 2918 0, -130, 2, 208, 4, 5, 6, 7, 8, 9, 2919 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2920 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2921 28, 0, 0, 0, 0, 0, 0, 31, 0, 284, 2922 285, 0, 286, 1062, 0, 1063, 1420, 1421, 1064, 1065, 2923 1066, 1067, 1068, 1069, 1070, 1071, 0, 0, 1550, 1072, 2924 0, 0, 0, 1073, 1074, 34, 33, 35, 287, 36, 2925 0, 0, 38, 39, 1075, 0, 0, 0, 289, 0, 2926 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2927 0, 0, 0, 0, 1329, 0, 43, 0, 0, 0, 2922 2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2923 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2924 35, 0, 36, 0, 0, 38, 39, 2, 205, 4, 2929 0, 296, 0, 380, 0, 0, 173, 0, 0, 0, 2930 46, 47, 298, 299, 300, 301, 0, 0, 284, 285, 2931 1077, 286, 1062, 0, 1063, 1420, 1421, 1064, 1065, 1066, 2932 1067, 1068, 1069, 1070, 1071, 0, 0, 0, 1072, 0, 2933 0, 0, 1073, 1074, 0, 33, 0, 287, 0, 0, 2934 0, 0, 0, 1075, 0, 0, 0, 289, 0, 0, 2935 290, 291, 292, 293, 41, 42, 0, 294, 295, 0, 2936 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2938 296, 0, 380, 0, 0, 173, 0, 0, 0, 46, 2939 47, 298, 299, 300, 301, 0, 0, 284, 285, 1077, 2940 286, 1062, 0, 1063, 0, 0, 1064, 1065, 1066, 1067, 2941 1068, 1069, 1070, 1071, 0, 0, 0, 1072, 0, 0, 2942 0, 1073, 1074, 0, 33, 0, 287, 0, 0, 0, 2943 0, 0, 1075, 0, 0, 0, 289, 0, 0, 290, 2944 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2945 0, 0, 0, 0, 43, 284, 285, 0, 286, 0, 2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2947 0, 380, 0, 0, 173, 0, 0, 0, 46, 47, 2948 298, 299, 300, 301, 287, 0, 0, 0, 1077, 0, 2949 648, 0, 0, 0, 289, 0, 0, 290, 291, 292, 2950 293, 41, 42, 0, 294, 295, 0, 0, 0, 0, 2951 0, 0, 43, 284, 285, 0, 286, 0, 0, 0, 2952 0, 0, 0, 0, 0, 0, 0, 296, 0, 784, 2953 0, 0, 284, 285, 0, 286, 46, 47, 298, 299, 2954 300, 301, 287, 0, 0, 0, 0, 0, 288, 0, 2955 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2956 42, 287, 294, 295, 0, 0, 0, 288, 0, 0, 2957 43, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2958 0, 294, 295, 0, 0, 296, 0, 380, 0, 43, 2959 284, 285, 0, 286, 345, 47, 298, 299, 300, 301, 2960 0, 0, 0, 0, 296, 0, 0, 0, 0, 284, 2961 285, 0, 286, 46, 47, 298, 299, 300, 301, 287, 2962 0, 0, 0, 0, 0, 288, 0, 0, 0, 289, 2963 0, 0, 290, 291, 292, 293, 41, 42, 287, 294, 2964 295, 0, 0, 0, 288, 0, 0, 43, 289, 0, 2965 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2966 0, 0, 520, 0, 0, 0, 43, 0, 0, 0, 2967 0, 46, 47, 298, 299, 300, 301, 0, 0, 0, 2968 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 2969 46, 47, 298, 299, 300, 301, 2, 208, 4, 5, 2970 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2971 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2973 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2976 0, 35, 0, 36, 37, 0, 176, 177, 40, 0, 2977 0, 0, 0, 0, 0, 41, 42, 207, 2, 208, 2978 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2979 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2980 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2981 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2984 0, 34, 0, 35, 0, 36, 0, 0, 209, 39, 2985 476, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2986 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2987 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2988 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2991 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2992 0, 38, 39, 2, 208, 4, 5, 6, 7, 8, 2993 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2994 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2995 27, 28, 0, 0, 0, 0, 0, 0, 31, 0, 2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2998 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2999 36, 0, 0, 209, 39 3000 }; 3001 3002 #define yypact_value_is_default(yystate) \ 3003 ((yystate) == (-1355)) 3004 3005 #define yytable_value_is_error(yytable_value) \ 3006 YYID (0) 3007 3008 static const yytype_int16 yycheck[] = 3009 { 3010 0, 1, 44, 44, 44, 0, 1, 0, 118, 1, 3011 542, 241, 221, 697, 187, 187, 187, 187, 187, 206, 3012 170, 171, 187, 501, 283, 697, 608, 505, 758, 58, 3013 628, 187, 32, 697, 522, 281, 107, 32, 997, 32, 3014 50, 610, 717, 350, 44, 655, 779, 900, 900, 458, 3015 50, 350, 0, 188, 82, 611, 608, 50, 188, 0, 3016 419, 617, 608, 608, 64, 579, 1420, 67, 610, 44, 3017 70, 64, 44, 1061, 67, 70, 32, 70, 70, 108, 3018 439, 0, 111, 1424, 32, 189, 157, 50, 447, 608, 3019 44, 32, 776, 203, 267, 267, 267, 267, 267, 0, 3020 39, 457, 267, 44, 776, 115, 296, 107, 95, 50, 3021 0, 267, 776, 32, 608, 115, 82, 51, 118, 119, 3022 109, 39, 72, 64, 608, 72, 67, 63, 157, 70, 3023 110, 32, 1339, 268, 28, 39, 346, 117, 268, 1004, 3024 1494, 1476, 32, 130, 58, 187, 187, 187, 148, 149, 3025 72, 117, 115, 1073, 1074, 82, 149, 157, 158, 263, 3026 264, 1042, 162, 39, 365, 44, 45, 110, 369, 162, 3027 109, 118, 111, 116, 530, 109, 1511, 258, 1513, 1041, 3028 1042, 1522, 132, 110, 78, 148, 1527, 187, 188, 1054, 3029 497, 220, 39, 111, 108, 188, 132, 111, 64, 44, 3030 45, 211, 411, 203, 82, 109, 1547, 111, 149, 1061, 3031 132, 211, 187, 1554, 109, 187, 85, 11, 211, 427, 3032 428, 162, 1142, 223, 743, 267, 267, 267, 491, 96, 3033 223, 109, 242, 187, 109, 1442, 115, 427, 428, 44, 3034 45, 241, 242, 109, 113, 274, 187, 188, 211, 743, 3035 82, 926, 281, 253, 513, 837, 123, 80, 253, 743, 3036 253, 261, 109, 273, 111, 230, 266, 267, 268, 114, 3037 211, 342, 407, 273, 1007, 268, 67, 407, 241, 111, 3038 849, 491, 223, 839, 249, 837, 296, 397, 111, 473, 3039 113, 837, 837, 84, 117, 503, 296, 253, 308, 1258, 3040 116, 372, 112, 116, 818, 253, 220, 849, 308, 114, 3041 273, 610, 253, 114, 522, 425, 132, 1305, 837, 132, 3042 349, 431, 457, 39, 324, 515, 267, 457, 119, 329, 3043 520, 690, 116, 523, 253, 82, 329, 366, 419, 949, 3044 1070, 370, 342, 837, 3, 308, 346, 39, 109, 3, 3045 350, 351, 253, 837, 489, 90, 91, 258, 439, 489, 3046 274, 1242, 109, 253, 116, 365, 447, 281, 258, 369, 3047 131, 162, 372, 1226, 1226, 957, 0, 1, 586, 642, 3048 643, 644, 515, 346, 517, 575, 1527, 520, 329, 958, 3049 523, 126, 127, 109, 0, 111, 597, 397, 661, 109, 3050 107, 642, 643, 644, 433, 957, 1547, 407, 32, 350, 3051 131, 1292, 957, 1554, 407, 698, 675, 109, 628, 111, 3052 661, 0, 1020, 633, 131, 425, 32, 427, 428, 1291, 3053 1292, 431, 223, 696, 434, 349, 96, 720, 639, 72, 3054 1527, 74, 75, 67, 116, 455, 70, 110, 458, 0, 3055 83, 84, 366, 1305, 117, 455, 370, 457, 458, 109, 3056 132, 67, 533, 123, 427, 428, 407, 1554, 131, 116, 3057 261, 72, 735, 1029, 1030, 266, 499, 1465, 111, 110, 3058 110, 481, 83, 84, 1472, 132, 696, 117, 966, 489, 3059 129, 491, 131, 493, 735, 679, 489, 497, 493, 473, 3060 493, 109, 761, 503, 109, 515, 656, 517, 109, 772, 3061 520, 757, 109, 523, 1002, 515, 457, 517, 419, 109, 3062 520, 111, 522, 523, 697, 697, 697, 697, 697, 419, 3063 530, 1141, 697, 533, 534, 1416, 945, 1525, 439, 116, 3064 503, 697, 849, 1408, 1409, 493, 447, 1116, 109, 439, 3065 849, 116, 493, 663, 1416, 132, 497, 447, 110, 522, 3066 351, 665, 772, 826, 699, 643, 644, 132, 597, 699, 3067 72, 116, 74, 75, 493, 1305, 82, 109, 578, 579, 3068 936, 83, 84, 661, 72, 826, 586, 132, 944, 612, 3069 491, 110, 493, 616, 110, 83, 84, 597, 598, 223, 3070 629, 110, 602, 493, 110, 115, 116, 109, 608, 690, 3071 610, 117, 114, 1465, 637, 112, 645, 223, 641, 116, 3072 1472, 131, 116, 586, 695, 72, 110, 828, 628, 253, 3073 814, 660, 833, 633, 990, 635, 83, 84, 132, 639, 3074 824, 432, 642, 643, 644, 80, 116, 253, 112, 112, 3075 598, 732, 1382, 116, 838, 962, 116, 735, 116, 116, 3076 110, 661, 132, 663, 111, 628, 116, 608, 109, 610, 3077 633, 109, 132, 1525, 132, 132, 111, 886, 113, 112, 3078 109, 110, 117, 116, 4, 5, 6, 7, 8, 9, 3079 72, 482, 1101, 976, 115, 695, 696, 697, 907, 699, 3080 771, 83, 84, 116, 116, 679, 109, 717, 4, 5, 3081 6, 7, 8, 9, 112, 629, 3, 717, 116, 132, 3082 132, 922, 72, 10, 11, 12, 13, 14, 757, 111, 3083 109, 645, 111, 83, 84, 735, 736, 737, 968, 1469, 3084 132, 1471, 892, 743, 744, 351, 660, 118, 826, 69, 3085 64, 71, 39, 124, 125, 109, 697, 72, 699, 74, 3086 75, 111, 4, 5, 6, 7, 8, 9, 83, 84, 3087 72, 771, 772, 69, 76, 71, 776, 777, 1041, 112, 3088 67, 83, 84, 116, 10, 11, 12, 13, 14, 690, 3089 1322, 33, 94, 72, 109, 696, 1526, 120, 121, 114, 3090 690, 936, 743, 744, 83, 84, 936, 109, 109, 944, 3091 1020, 602, 132, 39, 944, 110, 118, 119, 818, 110, 3092 1132, 116, 88, 89, 1136, 116, 826, 69, 828, 71, 3093 830, 732, 111, 833, 834, 286, 109, 837, 111, 630, 3094 814, 67, 732, 757, 635, 112, 1033, 1531, 871, 849, 3095 824, 1134, 92, 93, 1038, 1039, 132, 308, 309, 1531, 3096 110, 109, 112, 111, 838, 114, 116, 1531, 109, 493, 3097 111, 772, 72, 1132, 74, 75, 482, 1136, 1137, 110, 3098 114, 131, 132, 83, 84, 116, 834, 493, 1497, 0, 3099 1, 110, 114, 922, 1503, 346, 837, 116, 1161, 132, 3100 900, 1102, 109, 110, 111, 900, 1056, 132, 849, 1192, 3101 1193, 110, 1096, 1097, 114, 1524, 926, 116, 29, 30, 3102 1529, 32, 922, 110, 110, 109, 926, 111, 110, 116, 3103 116, 382, 723, 44, 116, 945, 936, 110, 109, 50, 3104 963, 82, 110, 116, 944, 945, 737, 58, 116, 110, 3105 109, 1161, 900, 64, 110, 116, 67, 957, 958, 70, 3106 116, 109, 962, 85, 86, 87, 112, 967, 968, 109, 3107 3, 111, 967, 84, 85, 967, 110, 10, 11, 12, 3108 13, 14, 116, 109, 984, 111, 109, 109, 111, 111, 3109 990, 113, 114, 1252, 82, 936, 110, 108, 110, 900, 3110 111, 119, 116, 944, 116, 968, 39, 118, 115, 116, 3111 900, 110, 128, 30, 1124, 1205, 1206, 116, 1208, 129, 3112 1020, 962, 94, 110, 630, 1215, 131, 1217, 1291, 116, 3113 94, 702, 1242, 704, 67, 109, 110, 111, 149, 830, 3114 111, 1041, 1042, 116, 117, 109, 157, 111, 109, 110, 3115 111, 162, 110, 111, 118, 119, 1240, 1020, 85, 86, 3116 87, 1061, 109, 3, 1038, 1039, 1061, 84, 85, 109, 3117 10, 11, 12, 13, 14, 112, 187, 188, 109, 110, 3118 111, 1340, 109, 112, 111, 1344, 113, 114, 1272, 58, 3119 59, 1101, 203, 58, 59, 60, 1280, 1281, 1282, 39, 3120 211, 1101, 1102, 1264, 1265, 1266, 557, 558, 559, 220, 3121 112, 94, 223, 1061, 110, 94, 1116, 723, 110, 230, 3122 1403, 110, 1096, 1097, 1124, 110, 109, 67, 111, 110, 3123 109, 737, 111, 110, 245, 118, 119, 1420, 249, 118, 3124 119, 109, 253, 254, 1328, 564, 565, 566, 567, 116, 3125 1506, 1222, 115, 116, 116, 117, 267, 268, 116, 117, 3126 1061, 1161, 698, 274, 44, 45, 560, 561, 568, 569, 3127 281, 1061, 10, 11, 12, 13, 14, 112, 72, 111, 3128 74, 75, 76, 112, 720, 562, 563, 1446, 1378, 83, 3129 84, 114, 131, 1222, 72, 114, 74, 75, 76, 114, 3130 1556, 39, 109, 1203, 1204, 83, 84, 1, 112, 1204, 3131 1493, 1494, 1204, 110, 110, 109, 117, 112, 329, 112, 3132 112, 112, 1222, 29, 830, 110, 1226, 117, 245, 67, 3133 117, 1226, 1023, 72, 116, 74, 75, 76, 349, 350, 3134 110, 112, 1242, 117, 83, 84, 1246, 114, 110, 115, 3135 72, 1246, 74, 75, 1246, 366, 94, 115, 115, 370, 3136 1161, 83, 84, 116, 109, 900, 1240, 110, 132, 110, 3137 381, 109, 116, 111, 110, 811, 900, 117, 1226, 110, 3138 118, 119, 110, 110, 116, 110, 397, 110, 29, 1399, 3139 110, 1291, 1292, 110, 900, 110, 407, 110, 1272, 110, 3140 1300, 110, 110, 110, 116, 1305, 1280, 1281, 1282, 110, 3141 1305, 1541, 110, 110, 425, 115, 112, 131, 110, 110, 3142 431, 110, 433, 110, 112, 1226, 72, 112, 779, 110, 3143 76, 110, 116, 110, 117, 110, 1226, 83, 84, 1339, 3144 116, 1242, 114, 967, 1339, 116, 457, 1339, 94, 112, 3145 116, 462, 888, 679, 1328, 116, 110, 1305, 1531, 1531, 3146 1531, 1531, 1531, 109, 381, 476, 1531, 67, 110, 1398, 3147 481, 115, 118, 119, 112, 1531, 109, 77, 489, 109, 3148 109, 72, 493, 74, 75, 76, 497, 109, 109, 500, 3149 1, 502, 83, 84, 117, 112, 1506, 1532, 132, 1399, 3150 110, 110, 1532, 115, 1305, 110, 132, 115, 114, 129, 3151 112, 522, 1203, 110, 112, 1305, 1416, 1023, 109, 119, 3152 116, 1556, 116, 112, 110, 536, 1556, 110, 539, 1064, 3153 541, 542, 110, 112, 47, 112, 112, 1061, 110, 50, 3154 976, 112, 1442, 112, 112, 462, 110, 1442, 132, 115, 3155 1442, 132, 132, 115, 117, 1061, 110, 132, 132, 112, 3156 254, 112, 162, 115, 1474, 1465, 1476, 112, 112, 112, 3157 1465, 1007, 1472, 112, 1474, 112, 1476, 1472, 112, 590, 3158 110, 110, 109, 500, 1398, 502, 597, 112, 814, 1531, 3159 1531, 1531, 112, 109, 109, 60, 107, 608, 824, 610, 3160 110, 1511, 110, 1513, 115, 114, 1506, 112, 132, 1300, 3161 117, 1511, 838, 1513, 112, 110, 112, 1465, 629, 110, 3162 96, 96, 1058, 223, 1472, 1525, 109, 109, 132, 115, 3163 1525, 1531, 1532, 112, 645, 116, 110, 148, 110, 1532, 3164 651, 1541, 110, 110, 42, 132, 157, 117, 132, 660, 3165 110, 662, 663, 664, 110, 96, 1556, 96, 110, 132, 3166 110, 261, 117, 1556, 1465, 110, 266, 110, 132, 1020, 3167 132, 1472, 112, 115, 112, 1465, 109, 1525, 1541, 1203, 3168 1204, 281, 1472, 132, 132, 115, 697, 115, 699, 110, 3169 1531, 1226, 110, 110, 56, 132, 207, 1203, 1134, 110, 3170 211, 712, 1226, 1077, 570, 1226, 1494, 718, 572, 1384, 3171 1061, 722, 571, 573, 1566, 1315, 1137, 574, 1344, 730, 3172 1226, 1472, 1246, 1092, 1525, 455, 455, 944, 704, 722, 3173 241, 242, 743, 744, 651, 1525, 71, 99, 946, 590, 3174 75, 892, 991, 78, 657, 80, 757, 50, 964, 747, 3175 1246, 351, 87, 757, 578, -1, 1192, 1193, 493, -1, 3176 578, 64, 273, -1, 67, 276, 578, 70, -1, -1, 3177 -1, -1, -1, -1, -1, -1, 1300, -1, -1, -1, 3178 -1, 1305, 476, -1, -1, 296, 1321, -1, -1, -1, 3179 -1, -1, -1, -1, 1300, 712, -1, 308, -1, 1305, 3180 -1, 718, -1, -1, -1, 722, -1, -1, -1, -1, 3181 -1, -1, 1038, 1039, -1, 1339, -1, -1, 72, -1, 3182 74, 75, 76, -1, -1, -1, 837, -1, 522, 83, 3183 84, 342, 432, 195, -1, 346, -1, -1, 849, -1, 3184 94, 1376, 536, -1, 1379, 539, 149, 541, 542, 449, 3185 -1, -1, -1, -1, 365, 109, 218, 111, 369, 162, 3186 -1, 372, -1, 117, 118, 119, 228, -1, -1, -1, 3187 1096, 1097, -1, -1, -1, -1, -1, -1, -1, 214, 3188 -1, 892, 482, -1, -1, 188, 67, -1, 899, 1424, 3189 -1, -1, -1, 72, 1429, -1, 590, 76, -1, 10, 3190 11, 12, 13, 14, 83, 84, -1, -1, 211, -1, 3191 -1, 922, -1, -1, -1, 94, 427, 428, 1442, -1, 3192 223, -1, -1, -1, 1459, 936, -1, -1, 39, -1, 3193 109, -1, 111, 944, 296, -1, -1, -1, 119, 118, 3194 119, 1465, -1, -1, 455, -1, -1, 458, 1472, -1, 3195 72, 962, 74, 75, 76, -1, 67, -1, -1, 1465, 3196 -1, 83, 84, -1, -1, 476, 1472, 1403, 662, -1, 3197 664, 982, 94, -1, -1, 892, -1, -1, -1, -1, 3198 991, 162, 899, 94, 1420, -1, -1, 109, 999, 111, 3199 501, 1002, 503, 1004, 505, -1, 118, 119, 109, -1, 3200 111, 1525, 602, -1, 515, -1, 517, 118, 119, 520, 3201 1545, 522, 523, -1, -1, -1, 1551, -1, 353, 1525, 3202 355, -1, 533, -1, -1, -1, 329, 1562, -1, -1, 3203 630, 1566, -1, 0, -1, 635, 730, 10, 11, 12, 3204 13, 14, 223, 1054, -1, -1, 1272, -1, -1, -1, 3205 -1, -1, -1, -1, 1280, 1281, 1282, 1493, 1494, -1, 3206 0, 1, -1, -1, -1, 32, 39, -1, -1, -1, 3207 -1, -1, -1, -1, 991, 586, -1, -1, -1, -1, 3208 261, 1092, 444, -1, -1, 266, 597, 72, -1, 74, 3209 75, 76, 32, -1, 67, -1, -1, -1, 83, 84, 3210 -1, -1, 1328, 70, 407, -1, -1, -1, 443, 94, 3211 50, -1, -1, 1124, -1, -1, 478, 628, -1, -1, 3212 -1, 94, 633, 723, 109, -1, 111, -1, 639, -1, 3213 70, -1, -1, 118, 119, -1, 109, 737, 111, -1, 3214 191, -1, -1, -1, -1, 118, 119, 198, 10, 11, 3215 12, 13, 14, 515, -1, -1, -1, 757, 520, -1, 3216 -1, 523, -1, -1, -1, -1, -1, 107, -1, -1, 3217 351, -1, -1, -1, -1, 1092, -1, 39, 72, -1, 3218 74, 75, 76, -1, 695, -1, -1, -1, 1199, 83, 3219 84, 158, -1, -1, -1, -1, -1, -1, -1, -1, 3220 94, -1, -1, -1, -1, 67, 717, -1, -1, 149, 3221 72, 1222, 74, 75, 76, 109, -1, 157, 158, 270, 3222 -1, 83, 84, -1, 118, 119, -1, -1, -1, -1, 3223 830, -1, 94, -1, -1, -1, 747, -1, -1, -1, 3224 -1, -1, -1, -1, -1, -1, -1, 109, 188, 111, 3225 -1, 432, -1, 1264, 1265, 1266, 118, 119, -1, -1, 3226 771, -1, -1, 203, -1, 232, 206, 207, -1, -1, 3227 -1, 211, -1, 324, -1, -1, -1, -1, -1, -1, 3228 -1, 332, 1199, -1, 335, -1, 253, -1, 982, -1, 3229 -1, 258, 232, -1, -1, -1, 236, -1, 238, -1, 3230 -1, 482, -1, -1, -1, 999, -1, 247, 1002, -1, 3231 1004, 1322, -1, 253, -1, -1, 678, 828, 258, -1, 3232 -1, -1, 833, -1, -1, 687, -1, -1, 268, 691, 3233 -1, 72, -1, 74, 75, 76, 276, -1, -1, -1, 3234 -1, -1, 83, 84, -1, -1, -1, 72, 399, 74, 3235 75, 76, 403, 94, -1, -1, -1, -1, 83, 84, 3236 1054, -1, -1, -1, -1, -1, -1, -1, 109, 94, 3237 111, -1, 0, -1, -1, -1, -1, 118, 119, -1, 3238 -1, -1, -1, -1, 109, 352, -1, 1398, 1399, -1, 3239 -1, -1, -1, 118, 119, -1, -1, 1408, 1409, -1, 3240 -1, -1, 342, -1, 32, -1, 346, -1, -1, -1, 3241 -1, 922, 352, -1, -1, 926, -1, -1, -1, -1, 3242 -1, 602, -1, 1023, -1, 365, -1, -1, -1, 369, 3243 -1, -1, 372, -1, 945, -1, 1447, 488, -1, -1, 3244 -1, -1, 70, -1, -1, -1, -1, -1, -1, 630, 3245 -1, -1, 419, -1, 635, 966, 967, 968, -1, -1, 3246 -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 3247 -1, -1, 439, -1, -1, -1, -1, -1, -1, 419, 3248 447, 97, 98, 99, 100, 101, 102, 103, 104, 105, 3249 106, -1, -1, -1, 434, 1506, 1507, -1, -1, 439, 3250 -1, -1, -1, -1, -1, 1516, 473, 447, -1, 1020, 3251 -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, 3252 1531, 1532, -1, -1, 491, -1, 493, 578, 579, -1, 3253 158, -1, -1, 473, -1, -1, 476, -1, -1, -1, 3254 -1, -1, 723, -1, -1, 1556, -1, -1, -1, -1, 3255 -1, 491, -1, 493, -1, -1, 737, -1, -1, -1, 3256 -1, 501, 924, -1, -1, 505, -1, 534, -1, -1, 3257 1264, 1265, 1266, -1, -1, -1, -1, -1, -1, -1, 3258 -1, 10, 11, 12, 13, 14, 0, 1, -1, -1, 3259 1101, 1102, -1, 533, 534, -1, -1, -1, -1, -1, 3260 -1, -1, -1, 1203, -1, -1, -1, -1, -1, -1, 3261 39, -1, -1, -1, -1, 666, -1, -1, 32, 670, 3262 -1, -1, -1, -1, -1, 253, -1, -1, 1322, -1, 3263 258, 598, -1, -1, -1, -1, -1, -1, 67, 579, 3264 -1, -1, -1, 72, -1, 74, 75, 76, -1, 830, 3265 -1, -1, 703, 67, 83, 84, 70, 597, 598, -1, 3266 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 3267 610, -1, -1, -1, -1, 642, 643, 644, -1, -1, 3268 109, -1, 111, -1, -1, -1, -1, -1, 628, 118, 3269 119, -1, -1, 633, 661, -1, -1, -1, -1, 639, 3270 1300, -1, 642, 643, 644, -1, -1, -1, -1, -1, 3271 1072, 1222, 679, -1, 1408, 1409, -1, -1, -1, -1, 3272 -1, 661, -1, 690, 352, -1, -1, -1, -1, 696, 3273 -1, -1, -1, -1, -1, 1246, -1, -1, -1, 679, 3274 -1, -1, -1, -1, 158, -1, -1, -1, -1, -1, 3275 690, -1, -1, 1447, -1, 695, 696, -1, -1, 699, 3276 -1, -1, -1, -1, -1, 732, -1, 818, 735, -1, 3277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3278 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 3279 -1, 419, 732, -1, -1, 735, 10, 11, 12, 13, 3280 14, -1, -1, -1, 744, 772, 434, 747, -1, 223, 3281 -1, 439, -1, 1507, -1, -1, -1, 32, -1, 447, 3282 -1, -1, 1516, -1, -1, 39, -1, -1, 1339, -1, 3283 -1, 771, 772, -1, -1, -1, -1, 777, -1, 253, 3284 -1, -1, 1023, -1, -1, 473, -1, 814, -1, -1, 3285 -1, -1, -1, 67, -1, 70, -1, 824, 72, 826, 3286 74, 75, 76, 491, 831, 493, -1, 834, -1, 83, 3287 84, 838, -1, -1, 814, -1, -1, -1, -1, 930, 3288 94, -1, -1, -1, 824, -1, 826, -1, 828, -1, 3289 -1, 831, -1, 833, 834, 109, -1, 111, 838, -1, 3290 -1, -1, -1, -1, 118, 119, 534, -1, 848, -1, 3291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 3293 -1, 1442, -1, 900, -1, -1, -1, -1, -1, -1, 3294 -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, 3295 -1, -1, 1314, -1, -1, -1, -1, 32, 1009, -1, 3296 900, -1, -1, 1474, -1, 1476, -1, -1, -1, -1, 3297 598, -1, -1, -1, -1, 1026, -1, -1, -1, -1, 3298 -1, -1, 922, 10, 11, 12, 13, 14, -1, -1, 3299 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, 3300 1511, -1, 1513, -1, -1, -1, -1, -1, -1, -1, 3301 -1, -1, 39, -1, 642, 643, 644, 984, 958, -1, 3302 434, -1, 1203, -1, -1, -1, 966, 967, -1, -1, 3303 1541, -1, -1, 661, -1, -1, -1, -1, 253, -1, 3304 67, -1, -1, 258, 984, 72, -1, 74, 75, 76, 3305 -1, 679, 1103, -1, -1, -1, 83, 84, -1, -1, 3306 -1, -1, 690, -1, -1, -1, -1, 94, 696, -1, 3307 -1, 1038, 1039, -1, 1041, 1042, -1, -1, -1, 493, 3308 1020, -1, 109, 158, -1, -1, -1, -1, -1, -1, 3309 -1, 118, 119, 1033, 1061, -1, -1, -1, 1038, 1039, 3310 -1, 1041, 1042, -1, 732, -1, -1, 735, -1, -1, 3311 -1, 1473, -1, 1475, -1, -1, -1, -1, -1, 1300, 3312 534, 1061, -1, -1, -1, -1, -1, -1, -1, 1096, 3313 1097, -1, -1, -1, -1, -1, -1, 352, -1, -1, 3314 -1, -1, -1, -1, 772, -1, -1, -1, 1510, -1, 3315 1512, -1, -1, -1, -1, -1, 1096, 1097, -1, 26, 3316 27, 28, 1102, -1, -1, -1, -1, -1, -1, -1, 3317 -1, -1, -1, -1, -1, -1, -1, -1, 253, -1, 3318 -1, -1, -1, 258, 598, -1, 814, -1, -1, -1, 3319 -1, -1, -1, 1555, 1161, 1557, 824, -1, 826, -1, 3320 -1, -1, -1, 831, 419, -1, 834, -1, 1570, 1571, 3321 838, -1, -1, -1, -1, -1, -1, -1, -1, 434, 3322 -1, 1161, -1, -1, 439, -1, -1, -1, 642, 643, 3323 644, -1, 447, 100, -1, 102, -1, 1204, -1, -1, 3324 -1, -1, -1, -1, -1, -1, -1, 661, -1, -1, 3325 -1, -1, -1, -1, -1, -1, -1, -1, 473, 1226, 3326 -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1, 3327 -1, -1, 900, 1240, -1, 1242, 491, 352, 493, -1, 3328 -1, -1, 1222, -1, -1, -1, 1226, -1, -1, -1, 3329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3330 1240, -1, 1242, -1, -1, 1272, 1246, -1, -1, -1, 3331 -1, -1, -1, 1280, 1281, 1282, 183, -1, -1, 534, 3332 -1, 735, -1, -1, 1291, 1292, 193, 194, -1, -1, 3333 -1, 198, 1272, 200, 201, -1, -1, -1, 1305, -1, 3334 1280, 1281, 1282, -1, 419, -1, -1, -1, -1, -1, 3335 -1, 1291, 1292, -1, -1, -1, 984, -1, -1, 434, 3336 -1, 1328, -1, -1, 439, 1305, -1, -1, -1, -1, 3337 -1, -1, 447, -1, 10, 11, 12, 13, 14, -1, 3338 -1, -1, -1, 598, -1, -1, -1, -1, 1328, -1, 3339 -1, -1, -1, -1, -1, -1, -1, -1, 473, 1339, 3340 -1, -1, -1, 39, -1, 10, 11, 12, 13, 14, 3341 1038, 1039, 826, 1041, 1042, -1, 491, -1, 493, -1, 3342 834, -1, -1, -1, -1, -1, -1, 642, 643, 644, 3343 -1, 67, -1, 1061, 39, -1, 72, -1, 74, 75, 3344 76, -1, -1, -1, -1, -1, 661, 83, 84, 1416, 3345 -1, -1, -1, -1, -1, -1, -1, -1, 94, 534, 3346 -1, -1, 67, -1, 679, -1, -1, 72, 1096, 1097, 3347 -1, 76, -1, 109, -1, 690, 1416, -1, 83, 84, 3348 -1, 696, 118, 119, -1, -1, 900, -1, -1, 94, 3349 -1, -1, -1, -1, 54, -1, 56, -1, 1465, 59, 3350 60, 61, 1442, 63, 109, 1472, -1, -1, -1, -1, 3351 -1, -1, -1, 118, 119, -1, -1, 732, 78, -1, 3352 735, -1, -1, 598, -1, 1465, -1, -1, -1, -1, 3353 90, 91, 1472, 1161, 10, 11, 12, 13, 14, -1, 3354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3355 -1, -1, -1, 967, -1, -1, -1, 772, 1525, -1, 3356 -1, -1, -1, 39, -1, -1, -1, 642, 643, 644, 3357 984, -1, -1, -1, -1, -1, 1204, -1, 284, -1, 3358 286, 287, -1, -1, -1, 1525, 661, -1, 294, 295, 3359 -1, 67, 1532, -1, -1, -1, 72, -1, 1226, 814, 3360 76, -1, 308, 309, 679, -1, -1, 83, 84, 824, 3361 -1, 826, 1240, -1, 1242, 690, 831, -1, 94, 834, 3362 -1, 696, -1, 838, -1, -1, -1, 1041, 1042, -1, 3363 -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 3364 346, -1, 118, 119, 1272, 37, 38, 1061, 40, -1, 3365 -1, -1, 1280, 1281, 1282, -1, -1, 732, -1, -1, 3366 735, -1, -1, 1291, 1292, -1, -1, -1, -1, -1, 3367 -1, -1, -1, -1, 66, -1, 382, 1305, -1, -1, 3368 72, -1, 74, 75, 76, 900, -1, 79, 80, 81, 3369 82, 83, 84, -1, 86, 87, -1, 772, -1, -1, 3370 1328, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, -1, -1, -1, 582, 583, 109, -1, 111, 3372 -1, 113, 114, -1, -1, -1, 118, 119, 120, 121, 3373 122, 123, -1, -1, -1, -1, -1, -1, -1, 814, 3374 -1, -1, -1, -1, 611, -1, -1, 614, 615, 824, 3375 617, 826, 619, 620, -1, -1, 831, 624, 625, 834, 3376 -1, -1, -1, 838, -1, -1, -1, -1, -1, 984, 3377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3378 -1, -1, -1, -1, -1, 345, -1, 347, 1416, 1203, 3379 1204, -1, -1, -1, -1, -1, -1, -1, 358, 359, 3380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3381 -1, -1, 1226, -1, -1, -1, -1, -1, -1, -1, 3382 -1, -1, -1, 1038, 1039, 900, 1041, 1042, -1, -1, 3383 -1, -1, 1246, -1, -1, -1, -1, 1465, -1, -1, 3384 -1, 708, 709, -1, 1472, -1, 1061, 714, -1, -1, 3385 -1, 557, 558, 559, 560, 561, 562, 563, 564, 565, 3386 566, 567, 568, 569, 570, 571, 572, 573, 574, -1, 3387 -1, 37, 38, -1, 40, -1, -1, 1291, 1292, -1, 3388 -1, 1096, 1097, -1, -1, -1, 1300, -1, -1, -1, 3389 -1, 1305, -1, -1, -1, -1, -1, 1525, -1, -1, 3390 66, -1, -1, -1, -1, -1, 72, -1, -1, 984, 3391 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3392 86, 87, -1, -1, -1, 1339, -1, -1, 94, -1, 3393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3394 -1, -1, -1, 109, -1, 111, 1161, -1, 114, -1, 3395 -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, 3396 -1, -1, -1, 1038, 1039, -1, 1041, 1042, -1, -1, 3397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3398 -1, -1, -1, -1, -1, -1, 1061, -1, -1, 1204, 3399 -1, -1, 698, -1, -1, -1, -1, -1, -1, -1, 3400 -1, -1, 1416, -1, -1, -1, -1, -1, -1, -1, 3401 -1, 1226, -1, -1, 720, -1, -1, -1, -1, -1, 3402 -1, 1096, 1097, -1, -1, 1240, -1, 1242, 1442, -1, 3403 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3404 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3405 28, 1465, 30, 31, 32, -1, -1, 1272, 1472, -1, 3406 -1, 39, -1, -1, -1, 1280, 1281, 1282, -1, -1, 3407 -1, -1, -1, 779, -1, -1, 1291, 1292, -1, -1, 3408 -1, -1, -1, -1, -1, -1, 1161, -1, -1, 67, 3409 1305, -1, -1, -1, -1, -1, 74, 75, -1, -1, 3410 78, -1, -1, 37, 38, 811, 40, -1, -1, -1, 3411 -1, 1525, -1, 1328, -1, -1, 94, -1, -1, -1, 3412 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1204, 3413 -1, 109, 66, 111, -1, -1, -1, -1, 72, -1, 3414 118, 119, 76, -1, -1, 79, 80, 81, 82, 83, 3415 84, 1226, 86, 87, -1, -1, -1, -1, -1, -1, 3416 94, -1, -1, -1, 724, 1240, 726, 1242, -1, -1, 3417 -1, -1, -1, 733, 734, 109, -1, 111, 738, -1, 3418 -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, 3419 750, -1, -1, -1, -1, 755, -1, 1272, -1, 37, 3420 38, 1416, 40, -1, -1, 1280, 1281, 1282, -1, -1, 3421 -1, -1, -1, -1, -1, -1, 1291, 1292, -1, -1, 3422 -1, 781, -1, -1, -1, -1, -1, -1, 66, -1, 3423 1305, 1098, -1, -1, 72, -1, -1, -1, 76, -1, 3424 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3425 1465, -1, -1, 1328, -1, -1, 94, 1472, -1, -1, 3426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3427 976, 109, -1, 111, -1, -1, -1, -1, 116, 50, 3428 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3429 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3430 -1, 1007, -1, -1, -1, -1, -1, -1, -1, -1, 3431 1525, -1, -1, -1, 1020, -1, -1, 37, 38, -1, 3432 40, -1, 882, 883, 884, 885, -1, 887, -1, -1, 3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3434 -1, 1416, -1, 903, 115, -1, 66, -1, 119, -1, 3435 -1, -1, 72, -1, 1221, 1061, 76, 917, -1, 79, 3436 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3437 -1, 67, -1, -1, 94, -1, -1, 148, -1, -1, 3438 -1, 77, -1, 79, -1, 81, -1, 158, -1, 109, 3439 1465, 162, 88, -1, -1, -1, 956, 1472, 118, 119, 3440 120, 121, 122, 123, -1, -1, -1, -1, -1, -1, 3441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3442 -1, -1, -1, 119, -1, 121, 122, 123, 1134, -1, 3443 -1, -1, -1, -1, -1, -1, 996, -1, -1, -1, 3444 211, -1, -1, 1003, -1, -1, -1, -1, 1008, -1, 3445 1525, -1, 223, 1013, -1, 1015, -1, -1, -1, 1019, 3446 -1, 1021, 1022, -1, -1, 1025, 162, -1, -1, -1, 3447 241, 242, -1, -1, 1034, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, -1, -1, 1192, 1193, -1, -1, 3449 -1, -1, 1052, 1053, -1, 266, -1, -1, -1, -1, 3450 -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, 3451 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1079, 3452 -1, -1, 1082, -1, -1, 296, -1, 223, -1, 225, 3453 226, 227, -1, -1, -1, -1, -1, 308, 26, 27, 3454 28, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3455 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3456 28, 1121, 30, 31, 32, 261, -1, 1127, 1128, -1, 3457 266, 39, -1, -1, -1, 346, -1, -1, -1, 1139, 3458 351, -1, -1, -1, 1144, 281, -1, 1147, -1, 1149, 3459 -1, -1, 1152, -1, -1, -1, -1, -1, -1, 67, 3460 -1, -1, -1, -1, 72, 1165, 74, 75, 76, -1, 3461 78, -1, 100, -1, 102, 83, 84, -1, 1178, -1, 3462 1180, 1181, 1182, 1183, -1, -1, 94, -1, -1, -1, 3463 -1, -1, -1, 329, -1, -1, 1196, -1, 1198, 127, 3464 -1, 109, 1202, 111, -1, -1, -1, -1, -1, -1, 3465 118, 119, -1, -1, -1, 351, 427, 428, -1, -1, 3466 356, 357, -1, 434, -1, -1, -1, -1, 364, -1, 3467 -1, 1231, 1232, -1, -1, -1, -1, -1, -1, -1, 3468 -1, -1, -1, -1, 455, -1, -1, 458, -1, -1, 3469 -1, -1, -1, -1, -1, 183, -1, 1403, -1, -1, 3470 -1, -1, -1, 191, -1, 193, 194, -1, -1, -1, 3471 198, 407, 200, 201, 1420, -1, -1, -1, -1, -1, 3472 491, -1, -1, 1283, 1284, -1, -1, -1, -1, 425, 3473 -1, -1, 503, 1293, 430, -1, 432, -1, -1, -1, 3474 -1, -1, -1, -1, 515, -1, 517, -1, -1, 520, 3475 -1, 522, 523, 449, -1, -1, 452, 453, -1, -1, 3476 -1, -1, -1, 534, -1, -1, -1, -1, -1, -1, 3477 -1, -1, 468, 7, -1, -1, 10, 11, 12, 13, 3478 14, -1, 270, -1, -1, 1345, 482, 1493, 1494, -1, 3479 -1, -1, -1, 489, -1, -1, -1, 1357, -1, 1359, 3480 1360, 1361, -1, 37, 38, 39, 40, -1, -1, -1, 3481 -1, 1371, -1, -1, -1, 586, 45, -1, -1, -1, 3482 1380, -1, -1, -1, -1, -1, -1, 598, -1, -1, 3483 -1, 602, 66, 67, -1, -1, 1396, -1, 72, -1, 3484 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3485 84, -1, 86, 87, -1, -1, -1, 628, -1, -1, 3486 94, -1, 633, -1, 93, -1, -1, -1, -1, -1, 3487 -1, 642, 643, 644, 103, 109, -1, 111, -1, -1, 3488 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3489 661, -1, 1452, 1453, -1, -1, -1, -1, -1, -1, 3490 -1, -1, -1, -1, -1, 1465, 602, -1, -1, -1, 3491 -1, -1, 1472, 37, 38, -1, 40, -1, -1, -1, 3492 -1, -1, -1, -1, -1, 696, -1, -1, -1, -1, 3493 159, -1, -1, -1, 630, -1, -1, -1, -1, 635, 3494 -1, -1, 66, -1, 173, 1505, 717, -1, 72, 1509, 3495 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3496 84, -1, 86, 87, 735, -1, 737, 196, -1, -1, 3497 94, -1, -1, -1, -1, -1, -1, -1, 1538, -1, 3498 1540, 210, -1, -1, -1, 109, -1, 111, -1, -1, 3499 219, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3500 229, 772, -1, -1, -1, -1, -1, -1, 1568, 1569, 3501 -1, -1, -1, -1, -1, -1, 1576, 1577, -1, -1, 3502 -1, -1, -1, -1, -1, 254, -1, 723, -1, -1, 3503 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3504 -1, 737, -1, 272, -1, -1, -1, -1, -1, 278, 3505 -1, 280, -1, -1, -1, 826, -1, -1, -1, 830, 3506 -1, 757, -1, 834, -1, -1, -1, -1, 297, -1, 3507 -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3508 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3509 24, 25, 26, 27, 582, 583, 30, 31, 32, -1, 3510 -1, -1, -1, -1, -1, 39, 40, -1, -1, -1, 3511 339, -1, -1, -1, -1, 344, -1, -1, -1, -1, 3512 -1, -1, 818, 611, -1, -1, 614, 615, -1, 617, 3513 -1, 619, 620, 67, 830, -1, 624, 625, -1, -1, 3514 74, 75, -1, -1, 373, -1, -1, -1, 377, 378, 3515 -1, 380, -1, 849, -1, 926, -1, -1, 387, 388, 3516 94, 390, 391, -1, 393, -1, 395, -1, -1, -1, 3517 -1, -1, -1, -1, 945, -1, -1, 111, -1, -1, 3518 -1, 115, -1, 412, 118, 119, -1, -1, -1, -1, 3519 -1, 420, -1, -1, -1, -1, -1, 968, -1, -1, 3520 -1, -1, -1, 7, -1, -1, 10, 11, 12, 13, 3521 14, -1, -1, 984, -1, 703, 445, -1, -1, -1, 3522 708, 709, -1, -1, -1, -1, 714, 456, -1, -1, 3523 -1, -1, -1, 37, 38, 39, 40, -1, -1, -1, 3524 936, -1, -1, -1, -1, -1, -1, -1, -1, 1020, 3525 479, -1, -1, -1, -1, -1, 485, -1, -1, -1, 3526 -1, 490, 66, 67, -1, -1, 962, -1, 72, -1, 3527 1041, 1042, 76, -1, -1, 79, 80, 81, 82, 83, 3528 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3529 94, -1, -1, -1, 990, -1, -1, 526, -1, -1, 3530 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3531 -1, 540, -1, -1, 118, 119, 120, 121, 122, 123, 3532 -1, -1, -1, -1, -1, -1, -1, 1023, -1, -1, 3533 1101, -1, -1, -1, -1, -1, -1, -1, 1034, -1, 3534 -1, -1, -1, -1, -1, -1, -1, -1, -1, 578, 3535 -1, -1, 37, 38, -1, 40, -1, -1, 587, 157, 3536 158, -1, -1, -1, -1, 594, -1, -1, -1, -1, 3537 -1, 600, -1, -1, -1, -1, -1, -1, -1, -1, 3538 609, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3539 1161, 76, -1, 191, 79, 80, 81, 82, 83, 84, 3540 198, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3542 1116, 650, -1, -1, 109, -1, 111, -1, -1, 114, 3543 -1, -1, 1203, 118, 119, 120, 121, 122, 123, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3545 -1, -1, -1, -1, -1, -1, -1, 686, -1, -1, 3546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3547 -1, 1242, 270, -1, -1, 3, 4, 5, 6, 7, 3548 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3549 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3550 28, -1, 30, 31, 32, 33, -1, 1203, 36, -1, 3551 -1, 39, 741, -1, -1, -1, -1, -1, -1, -1, 3552 1291, 1292, 751, 752, -1, -1, 324, -1, -1, 1300, 3553 -1, -1, -1, -1, 332, 333, 765, 335, 336, 67, 3554 -1, 69, -1, 71, -1, -1, 74, 75, 346, -1, 3555 78, -1, 350, 782, -1, 784, -1, -1, -1, 788, 3556 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3557 -1, 369, -1, -1, 372, -1, -1, -1, -1, -1, 3558 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3559 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3560 -1, 399, -1, -1, 1300, 403, -1, -1, -1, -1, 3561 1098, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3562 -1, -1, -1, -1, 853, -1, -1, -1, -1, -1, 3563 -1, 860, -1, -1, -1, -1, 434, -1, -1, -1, 3564 -1, -1, -1, -1, 873, 1416, 875, -1, -1, -1, 3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 3566 889, -1, -1, -1, -1, -1, -1, 896, -1, -1, 3567 -1, -1, -1, -1, -1, -1, 148, -1, -1, 908, 3568 -1, -1, 911, -1, -1, -1, 158, -1, -1, -1, 3569 488, -1, -1, 491, -1, -1, -1, -1, 170, 171, 3570 929, -1, -1, 1474, -1, 1476, -1, -1, 10, 11, 3571 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3572 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 3573 32, -1, 530, 1221, -1, 533, 534, 39, -1, -1, 3574 1511, -1, 1513, -1, -1, -1, 10, 11, 12, 13, 3575 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3576 24, 25, 26, 27, 28, 67, -1, -1, -1, 241, 3577 1541, -1, 74, 75, -1, 39, 78, -1, -1, -1, 3578 578, 579, -1, -1, -1, -1, -1, -1, -1, 1018, 3579 -1, -1, 94, 265, -1, -1, -1, -1, -1, 597, 3580 598, -1, -1, 67, -1, -1, -1, -1, -1, 111, 3581 608, -1, 610, 611, 78, -1, 118, 119, -1, 617, 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, 627, 3583 628, -1, -1, -1, -1, 633, -1, -1, -1, -1, 3584 -1, -1, -1, -1, 642, 643, 644, 1076, -1, -1, 3585 -1, -1, -1, 1082, -1, -1, -1, -1, -1, -1, 3586 1556, -1, -1, 661, -1, -1, -1, -1, 666, 667, 3587 -1, -1, 670, 671, -1, -1, -1, -1, -1, 677, 3588 -1, -1, -1, 1112, -1, -1, -1, -1, 1117, -1, 3589 -1, -1, -1, -1, -1, -1, 1125, 695, 696, 697, 3590 -1, 699, -1, -1, -1, 703, -1, -1, -1, 381, 3591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3592 -1, -1, -1, -1, -1, -1, -1, 1156, -1, -1, 3593 -1, -1, -1, -1, -1, -1, -1, 735, 736, 1168, 3594 -1, -1, 1171, -1, 1173, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, -1, 1187, 1188, 3596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3597 -1, -1, -1, 771, 772, -1, -1, -1, 776, 777, 3598 1209, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3599 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3600 22, 23, 24, 25, 26, 27, -1, 1236, 30, 31, 3601 32, 483, -1, -1, -1, -1, -1, 39, -1, -1, 3602 818, -1, -1, -1, -1, -1, -1, -1, 826, -1, 3603 -1, -1, -1, -1, -1, 833, 834, -1, -1, 837, 3604 -1, 839, -1, -1, -1, 67, -1, 69, -1, 71, 3605 522, 849, 74, 75, -1, -1, -1, -1, -1, -1, 3606 -1, -1, 534, -1, -1, -1, -1, 539, -1, -1, 3607 542, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3608 -1, 553, 554, -1, -1, -1, -1, -1, -1, 111, 3609 -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 3610 -1, -1, -1, -1, 576, 1334, -1, 1336, -1, -1, 3611 -1, -1, -1, -1, 586, -1, -1, -1, -1, -1, 3612 1349, 593, 1351, -1, 922, -1, 598, -1, -1, -1, 3613 -1, -1, 930, -1, -1, -1, -1, -1, 936, -1, 3614 1369, -1, -1, -1, -1, -1, 944, -1, -1, -1, 3615 -1, -1, -1, -1, -1, -1, 1385, 1386, -1, 957, 3616 958, -1, -1, -1, -1, -1, -1, -1, 1397, -1, 3617 -1, 1400, -1, -1, -1, 647, -1, -1, -1, -1, 3618 -1, -1, -1, -1, 656, -1, 984, -1, -1, -1, 3619 -1, -1, 990, 1422, -1, -1, -1, -1, -1, -1, 3620 -1, -1, 1431, -1, -1, 1434, -1, 1436, 1437, 1438, 3621 -1, 1009, 1010, 37, 38, -1, 40, -1, -1, -1, 3622 -1, -1, 1020, -1, 696, -1, -1, -1, 1026, 1027, 3623 -1, 1029, 1030, 1031, -1, -1, -1, -1, -1, -1, 3624 -1, -1, 66, 1041, 1042, -1, -1, -1, 72, 1478, 3625 -1, 1480, 76, -1, 1483, 79, 80, 81, 82, 83, 3626 84, -1, 86, 87, -1, -1, -1, -1, -1, 1498, 3627 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3629 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3630 772, -1, 774, -1, 1102, 1103, 1104, -1, 780, -1, 3631 -1, -1, -1, -1, -1, 787, -1, -1, 1116, 3, 3632 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3633 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3634 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3635 -1, -1, 36, 37, 38, 39, 40, -1, 830, 831, 3636 -1, -1, 834, 1161, -1, -1, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, 848, -1, -1, -1, 3638 -1, -1, 66, 67, -1, 69, -1, 71, 72, -1, 3639 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3640 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3641 94, -1, -1, -1, -1, -1, 888, -1, -1, -1, 3642 892, -1, -1, -1, 1222, 109, -1, 111, -1, -1, 3643 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3644 -1, -1, -1, -1, 1242, -1, -1, -1, 132, -1, 3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 3647 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3648 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3649 30, 31, 32, 1291, 1292, -1, 968, 37, 38, 39, 3650 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3651 -1, -1, 984, 985, -1, -1, -1, -1, -1, 991, 3652 -1, -1, -1, -1, -1, 997, 66, 67, 1000, 69, 3653 1002, 71, 72, -1, 74, 75, 76, -1, -1, 79, 3654 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3655 -1, 1023, -1, -1, 94, -1, -1, -1, -1, -1, 3656 -1, -1, 1034, -1, -1, -1, -1, -1, -1, 109, 3657 -1, 111, -1, -1, -1, -1, 116, -1, 118, 119, 3658 120, 121, 122, 123, 1056, -1, 1058, -1, -1, -1, 3659 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3660 -1, 1073, 1074, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, 1416, -1, 3662 -1, -1, 1094, -1, -1, -1, 0, -1, -1, 3, 3663 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3664 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3665 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3666 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3667 1142, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3668 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1161, 3669 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3670 74, 75, 76, -1, 1176, 1177, -1, -1, 1506, 83, 3671 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3672 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3673 -1, -1, -1, 1531, 1532, 109, -1, 111, -1, -1, 3674 -1, -1, -1, -1, 118, 119, -1, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, 1556, -1, 3676 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3677 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3678 23, 24, 25, 26, 27, -1, 1258, 30, 31, 32, 3679 33, -1, -1, 36, 37, 38, 39, 40, 41, -1, 3680 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 3681 53, -1, -1, -1, 57, -1, -1, -1, 61, 62, 3682 -1, 64, -1, 66, 67, -1, 69, -1, 71, 72, 3683 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3684 83, 84, -1, 86, 87, -1, -1, 1319, -1, -1, 3685 1322, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3686 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3687 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 3688 123, -1, -1, -1, -1, 128, -1, -1, -1, 132, 3689 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3690 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3691 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3692 33, -1, -1, 36, 37, 38, 39, 40, -1, -1, 3693 -1, -1, -1, -1, -1, 1407, -1, -1, -1, -1, 3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3695 -1, -1, -1, 66, 67, -1, 69, -1, 71, 72, 3696 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3697 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3698 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3700 -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3701 123, -1, -1, -1, -1, -1, -1, 1489, 4, 5, 3702 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3703 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3704 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3705 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1541, 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3708 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3709 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3710 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3713 116, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3714 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3715 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3716 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3717 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3718 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3719 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3720 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3721 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3722 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3723 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3724 75, -1, -1, 109, -1, 111, -1, -1, 83, 84, 3725 116, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3726 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3727 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3728 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3729 -1, 37, 38, 39, 40, -1, -1, -1, 10, 11, 3730 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3731 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, 3732 66, 67, -1, 69, -1, 71, 72, 39, 74, 75, 3733 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3734 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3735 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3736 -1, -1, -1, 109, -1, 111, 78, -1, -1, -1, 3737 -1, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3738 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3739 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3740 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3741 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3742 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3743 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3744 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3745 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3746 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3747 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3748 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3749 -1, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3750 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3751 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3752 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3753 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3754 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3755 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3756 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3757 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3758 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3759 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3760 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3761 -1, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3762 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3763 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3764 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3765 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3766 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3767 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, 3768 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3769 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3770 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3771 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3772 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3773 -1, -1, 118, 119, 120, 121, 122, 123, 3, 4, 2925 3774 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2926 3775 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2927 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2928 0, 0, 31, 0, 8, 9, 10, 11, 12, 13, 2929 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2930 24, 25, 0, 0, 26, 27, 28, 492, 493, 494, 2931 34, 0, 35, 31, 36, 0, 0, 206, 39, 0, 2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2934 0, 34, 0, 0, 0, 0, 0, 0, 38, 39 2935 }; 2936 2937 #define yypact_value_is_default(yystate) \ 2938 ((yystate) == (-1332)) 2939 2940 #define yytable_value_is_error(yytable_value) \ 2941 YYID (0) 2942 2943 static const yytype_int16 yycheck[] = 2944 { 2945 0, 1, 0, 203, 184, 184, 520, 698, 238, 43, 2946 115, 184, 1, 698, 43, 43, 543, 185, 629, 0, 2947 104, 218, 184, 280, 185, 456, 455, 698, 348, 29, 2948 30, 184, 32, 184, 32, 1062, 184, 902, 167, 168, 2949 609, 348, 1, 43, 656, 45, 278, 45, 1043, 611, 2950 1006, 32, 1042, 1043, 32, 55, 497, 0, 759, 611, 2951 28, 61, 612, 61, 64, 609, 64, 67, 618, 67, 2952 154, 609, 499, 579, 1340, 718, 503, 999, 67, 609, 2953 609, 81, 82, 780, 264, 264, 777, 51, 186, 32, 2954 1421, 264, 777, 609, 82, 200, 1425, 265, 344, 1055, 2955 529, 39, 264, 902, 265, 105, 777, 0, 108, 39, 2956 78, 264, 417, 264, 609, 115, 264, 0, 43, 72, 2957 43, 45, 363, 643, 644, 645, 367, 489, 44, 45, 2958 83, 84, 437, 64, 0, 43, 82, 39, 227, 32, 2959 445, 39, 662, 44, 45, 109, 146, 95, 146, 32, 2960 184, 0, 1, 39, 154, 184, 184, 246, 111, 159, 2961 63, 159, 260, 261, 1495, 111, 32, 44, 45, 1477, 2962 109, 64, 613, 111, 85, 495, 617, 1443, 109, 109, 2963 30, 111, 130, 32, 184, 185, 110, 185, 4, 5, 2964 6, 7, 8, 9, 1523, 109, 39, 638, 114, 1528, 2965 200, 642, 113, 255, 1512, 39, 1514, 109, 208, 111, 2966 208, 294, 409, 114, 744, 64, 736, 217, 67, 1548, 2967 220, 145, 220, 109, 902, 111, 1555, 227, 744, 132, 2968 264, 81, 82, 96, 82, 264, 264, 405, 115, 11, 2969 644, 645, 242, 489, 405, 82, 246, 109, 1243, 744, 2970 250, 251, 250, 69, 511, 71, 112, 341, 662, 184, 2971 123, 184, 110, 1062, 264, 265, 109, 265, 111, 250, 2972 839, 271, 250, 0, 1, 109, 184, 111, 278, 1306, 2973 117, 643, 644, 645, 208, 928, 370, 455, 0, 851, 2974 395, 841, 251, 293, 455, 839, 114, 107, 1293, 851, 2975 662, 839, 1292, 1293, 611, 32, 3, 250, 828, 839, 2976 839, 82, 1009, 819, 238, 110, 132, 116, 423, 487, 2977 32, 131, 117, 839, 429, 116, 487, 220, 328, 116, 2978 328, 43, 736, 45, 293, 697, 82, 1259, 109, 951, 2979 67, 132, 425, 426, 839, 132, 270, 347, 348, 61, 2980 425, 426, 64, 116, 600, 67, 597, 250, 699, 55, 2981 90, 91, 1227, 109, 364, 417, 72, 250, 368, 132, 2982 1071, 220, 255, 297, 736, 1074, 1075, 83, 84, 379, 2983 721, 109, 110, 629, 250, 437, 691, 1065, 634, 255, 2984 959, 96, 242, 445, 109, 395, 126, 127, 960, 640, 2985 110, 250, 72, 109, 3, 405, 116, 405, 82, 105, 2986 1021, 773, 108, 83, 84, 959, 131, 116, 123, 676, 2987 344, 959, 1417, 423, 828, 109, 501, 1417, 1227, 429, 2988 513, 431, 873, 68, 146, 518, 110, 72, 521, 1466, 2989 75, 1528, 77, 117, 1143, 520, 1473, 159, 532, 84, 2990 1528, 697, 72, 1409, 1410, 455, 349, 121, 122, 72, 2991 460, 1548, 132, 83, 84, 109, 828, 111, 1555, 116, 2992 83, 84, 184, 185, 474, 119, 110, 1555, 116, 479, 2993 1030, 1031, 699, 117, 112, 132, 0, 487, 116, 487, 2994 1004, 491, 575, 491, 132, 495, 208, 131, 498, 1526, 2995 500, 425, 426, 0, 721, 762, 119, 1306, 220, 938, 2996 491, 586, 132, 88, 89, 474, 947, 946, 698, 698, 2997 520, 217, 131, 250, 965, 698, 758, 773, 657, 379, 2998 1142, 851, 700, 80, 417, 109, 698, 537, 250, 700, 2999 540, 968, 542, 543, 851, 698, 72, 698, 491, 1227, 3000 698, 417, 264, 116, 437, 1117, 109, 83, 84, 664, 3001 110, 520, 445, 992, 111, 109, 113, 117, 666, 132, 3002 117, 437, 115, 116, 110, 271, 211, 501, 537, 445, 3003 116, 540, 278, 542, 543, 111, 109, 480, 131, 830, 3004 590, 116, 3, 834, 109, 812, 520, 597, 491, 10, 3005 11, 12, 13, 14, 109, 1306, 489, 132, 491, 609, 3006 460, 611, 696, 116, 53, 72, 328, 598, 116, 4, 3007 5, 6, 7, 8, 9, 491, 83, 84, 39, 132, 3008 630, 590, 110, 116, 132, 119, 348, 978, 116, 691, 3009 124, 125, 491, 112, 964, 1323, 646, 116, 498, 132, 3010 500, 347, 652, 116, 111, 110, 67, 96, 0, 1, 3011 1498, 661, 586, 663, 664, 665, 1504, 1466, 364, 132, 3012 80, 1102, 368, 890, 1473, 129, 600, 131, 116, 116, 3013 1042, 733, 1383, 924, 69, 72, 71, 1525, 772, 110, 3014 32, 888, 1530, 405, 132, 132, 83, 84, 698, 1377, 3015 700, 111, 1380, 113, 663, 629, 665, 117, 112, 109, 3016 634, 111, 909, 713, 116, 110, 351, 112, 353, 719, 3017 110, 116, 64, 723, 111, 67, 116, 1526, 110, 110, 3018 132, 731, 45, 110, 116, 116, 131, 132, 631, 109, 3019 970, 111, 110, 455, 744, 745, 112, 1425, 61, 119, 3020 116, 64, 1430, 192, 67, 112, 72, 110, 758, 116, 3021 76, 978, 72, 116, 491, 894, 76, 83, 84, 1470, 3022 938, 1472, 731, 83, 84, 1021, 215, 938, 946, 491, 3023 112, 110, 1460, 495, 116, 946, 225, 10, 11, 12, 3024 13, 14, 1009, 109, 1135, 1322, 92, 93, 110, 109, 3025 1162, 111, 652, 119, 116, 110, 441, 72, 691, 119, 3026 109, 116, 111, 155, 697, 109, 39, 111, 83, 84, 3027 10, 11, 12, 13, 14, 691, 1527, 109, 109, 111, 3028 513, 724, 515, 146, 1034, 518, 1133, 119, 521, 839, 3029 1137, 1532, 1059, 110, 67, 738, 159, 1532, 109, 39, 3030 733, 851, 1193, 1194, 835, 294, 115, 116, 110, 110, 3031 110, 1532, 1103, 713, 116, 116, 116, 733, 1546, 719, 3032 116, 117, 185, 723, 1552, 115, 1133, 67, 220, 109, 3033 1137, 1138, 109, 110, 111, 1563, 109, 132, 111, 1567, 3034 773, 703, 110, 705, 894, 208, 119, 609, 116, 611, 3035 72, 901, 902, 110, 76, 110, 111, 220, 250, 116, 3036 64, 83, 84, 110, 1, 109, 1162, 111, 1135, 116, 3037 72, 902, 74, 75, 924, 85, 86, 87, 1057, 109, 3038 1292, 83, 84, 72, 630, 74, 75, 109, 938, 832, 3039 58, 59, 110, 902, 83, 84, 946, 119, 116, 109, 3040 646, 111, 109, 113, 114, 110, 112, 109, 45, 132, 3041 110, 116, 114, 110, 964, 661, 116, 115, 116, 116, 3042 109, 114, 109, 680, 111, 114, 1193, 1194, 114, 72, 3043 969, 74, 75, 76, 984, 109, 698, 111, 700, 114, 3044 83, 84, 109, 993, 111, 109, 1253, 1243, 109, 110, 3045 111, 1001, 132, 442, 1004, 109, 1006, 111, 82, 902, 3046 72, 132, 74, 75, 109, 328, 109, 104, 111, 902, 3047 1125, 83, 84, 110, 117, 984, 119, 72, 109, 74, 3048 75, 82, 744, 745, 116, 117, 902, 476, 83, 84, 3049 112, 109, 1001, 111, 894, 1004, 970, 1006, 109, 110, 3050 111, 901, 114, 902, 120, 1055, 116, 117, 145, 109, 3051 110, 111, 758, 1404, 128, 1065, 111, 154, 1068, 1069, 3052 1070, 58, 59, 60, 513, 1265, 1266, 1267, 1507, 518, 3053 1421, 1062, 521, 72, 1341, 74, 75, 76, 1345, 129, 3054 432, 94, 405, 1093, 83, 84, 1055, 1021, 44, 45, 3055 10, 11, 12, 13, 14, 131, 1065, 111, 815, 1068, 3056 1069, 1070, 564, 565, 566, 567, 109, 204, 825, 109, 3057 969, 208, 110, 1206, 1207, 1125, 1209, 839, 1557, 39, 3058 112, 1024, 1215, 840, 72, 1218, 74, 75, 1222, 851, 3059 560, 561, 112, 993, 110, 83, 84, 562, 563, 491, 3060 110, 238, 239, 1494, 1495, 110, 72, 67, 74, 75, 3061 76, 110, 72, 110, 74, 75, 76, 83, 84, 1062, 3062 568, 569, 109, 83, 84, 902, 112, 111, 131, 1062, 3063 112, 114, 109, 270, 114, 116, 273, 1404, 114, 112, 3064 1447, 533, 110, 109, 45, 111, 1062, 110, 112, 109, 3065 1200, 111, 117, 119, 1421, 112, 112, 294, 112, 119, 3066 297, 29, 117, 1062, 117, 116, 1205, 110, 110, 114, 3067 117, 112, 1222, 110, 132, 115, 938, 1227, 3, 115, 3068 115, 109, 116, 110, 946, 10, 11, 12, 13, 14, 3069 679, 110, 969, 1093, 116, 110, 1227, 117, 110, 688, 3070 110, 110, 964, 692, 341, 116, 598, 344, 1247, 110, 3071 110, 110, 3, 110, 39, 1265, 1266, 1267, 1227, 10, 3072 11, 12, 13, 14, 110, 110, 363, 1494, 1495, 1162, 3073 367, 110, 110, 370, 10, 11, 12, 13, 14, 110, 3074 110, 110, 67, 110, 110, 1400, 1379, 110, 39, 29, 3075 115, 643, 644, 645, 131, 112, 1265, 1266, 1267, 110, 3076 110, 1204, 1542, 39, 110, 110, 114, 116, 112, 112, 3077 662, 110, 1322, 1323, 110, 1306, 67, 110, 116, 110, 3078 117, 116, 1039, 1040, 1227, 1062, 116, 116, 425, 426, 3079 112, 67, 116, 110, 1227, 110, 112, 85, 86, 87, 3080 1200, 1340, 1532, 1532, 109, 1204, 1205, 208, 109, 1532, 3081 1243, 1227, 109, 1322, 1323, 1533, 453, 109, 112, 456, 3082 1532, 109, 1533, 111, 109, 113, 114, 1377, 1227, 1532, 3083 1380, 1532, 132, 109, 1532, 111, 117, 474, 239, 1557, 3084 1097, 1098, 115, 119, 736, 110, 1557, 110, 1247, 1399, 3085 1400, 115, 1507, 110, 129, 115, 114, 112, 1301, 1409, 3086 1410, 132, 499, 1306, 501, 110, 503, 116, 1377, 270, 3087 112, 1380, 116, 1306, 112, 1425, 513, 110, 515, 110, 3088 1430, 518, 110, 520, 521, 112, 471, 112, 112, 110, 3089 1306, 47, 112, 294, 112, 532, 297, 112, 1448, 115, 3090 1409, 1410, 1301, 132, 1443, 110, 132, 1306, 115, 132, 3091 1460, 117, 110, 132, 115, 132, 1425, 112, 112, 112, 3092 112, 1430, 72, 112, 74, 75, 76, 112, 1205, 112, 3093 112, 110, 110, 83, 84, 1466, 828, 926, 112, 1448, 3094 112, 1340, 1473, 835, 0, 1, 109, 109, 1532, 586, 3095 1227, 1460, 109, 1532, 1532, 60, 110, 1507, 1508, 109, 3096 597, 111, 55, 600, 110, 114, 132, 1517, 112, 119, 3097 1247, 112, 117, 1523, 110, 112, 32, 110, 1528, 96, 3098 96, 109, 1532, 1533, 109, 1533, 115, 110, 112, 45, 3099 132, 110, 629, 42, 116, 1526, 1546, 634, 1548, 1508, 3100 110, 110, 1552, 640, 117, 1555, 132, 1557, 1517, 1557, 3101 902, 67, 105, 1563, 1523, 108, 1273, 1567, 132, 1528, 3102 110, 110, 96, 1466, 1281, 1282, 1283, 96, 132, 1306, 3103 1473, 110, 110, 1466, 132, 117, 132, 1546, 110, 1548, 3104 1473, 112, 110, 1552, 1443, 115, 1555, 132, 104, 112, 3105 1466, 109, 453, 115, 1563, 456, 132, 1473, 1567, 696, 3106 115, 154, 110, 1340, 64, 110, 132, 1466, 1542, 110, 3107 110, 1077, 1329, 571, 1473, 570, 1227, 969, 572, 64, 3108 64, 718, 573, 1526, 1073, 574, 1495, 1385, 1567, 74, 3109 146, 1316, 1138, 1526, 986, 680, 1473, 81, 154, 155, 3110 1345, 1093, 705, 946, 4, 5, 6, 7, 8, 9, 3111 1526, 748, 513, 453, 515, 471, 116, 518, 723, 453, 3112 521, 948, 993, 590, 217, 894, 966, 1526, 658, 185, 3113 1247, 116, 116, 33, 578, 772, 491, 758, 10, 11, 3114 12, 13, 14, -1, 200, 578, 748, 203, 204, 578, 3115 1042, 1043, 208, 1399, -1, -1, -1, -1, -1, 159, 3116 -1, -1, -1, -1, -1, -1, 1443, 39, -1, 69, 3117 1062, 71, -1, 229, 159, 159, -1, 233, 271, 235, 3118 72, -1, 74, 75, 76, 278, -1, -1, 244, 1466, 3119 -1, 83, 84, 830, 250, 67, 1473, 834, -1, 255, 3120 72, -1, 74, 75, 76, -1, -1, -1, -1, 265, 3121 -1, 83, 84, -1, -1, -1, -1, 273, 283, -1, 3122 220, -1, -1, -1, -1, -1, 26, 27, 28, -1, 3123 815, 296, 297, -1, -1, 220, 220, 109, -1, 111, 3124 825, -1, -1, 308, -1, -1, -1, 119, -1, 1526, 3125 -1, -1, -1, -1, 347, 840, -1, -1, 258, -1, 3126 -1, -1, 262, 10, 11, 12, 13, 14, -1, -1, 3127 1532, 364, -1, 258, 258, 368, -1, 262, 262, 344, 3128 -1, -1, -1, -1, -1, 341, -1, 924, 344, -1, 3129 -1, 928, 39, 278, 350, -1, -1, 97, -1, 99, 3130 -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, 3131 947, 367, 1204, 1205, 370, 380, -1, 718, -1, -1, 3132 67, -1, -1, -1, 680, 72, 1315, 74, 75, 76, 3133 -1, 968, 969, 970, -1, 1227, 83, 84, 431, -1, 3134 72, -1, 74, 75, 76, -1, -1, -1, -1, 349, 3135 -1, 83, 84, -1, -1, 1247, 72, -1, 74, 75, 3136 76, 417, 109, -1, 349, 349, -1, 83, 84, -1, 3137 -1, 72, 119, 74, 75, 76, 432, 109, -1, 111, 3138 180, 437, 83, 84, 1021, -1, -1, 119, -1, 445, 3139 190, 191, -1, 109, -1, 195, -1, 197, 198, -1, 3140 1292, 1293, -1, 119, -1, -1, -1, -1, 109, 1301, 3141 -1, -1, -1, -1, 1306, 471, -1, -1, 474, -1, 3142 51, -1, 53, -1, -1, 56, 57, 58, -1, 60, 3143 430, -1, -1, 489, -1, 491, -1, -1, -1, -1, 3144 -1, -1, -1, 499, 75, 430, 430, 503, 1340, 10, 3145 11, 12, 13, 14, 1039, 1040, 87, 88, -1, 815, 3146 -1, -1, 447, -1, -1, 1102, 1103, -1, -1, 825, 3147 72, -1, 74, 75, 76, -1, 532, 533, 39, -1, 3148 480, 83, 84, -1, 840, 1474, -1, 1476, -1, -1, 3149 -1, -1, 557, 558, 559, 480, 480, 72, -1, 74, 3150 75, 76, -1, -1, 597, -1, 67, 109, 83, 84, 3151 -1, -1, 1097, 1098, -1, -1, -1, 119, -1, -1, 3152 -1, -1, 1511, 579, 1513, 1417, -1, 928, -1, -1, 3153 -1, -1, -1, -1, 109, 600, -1, 630, -1, -1, 3154 -1, 597, 598, -1, 600, -1, 947, -1, 109, -1, 3155 111, 1443, -1, 646, -1, 611, -1, -1, 119, -1, 3156 -1, -1, -1, -1, -1, -1, -1, 1556, 661, 1558, 3157 -1, -1, -1, 629, 1466, -1, -1, -1, 634, -1, 3158 -1, 1473, 1571, 1572, 640, 1222, -1, 643, 644, 645, 3776 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3777 -1, 36, -1, -1, 39, 40, -1, -1, -1, -1, 3159 3778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3160 0, -1, -1, 603, -1, -1, 662, -1, -1, -1, 3161 1247, -1, -1, -1, -1, -1, -1, -1, 603, 603, 3162 -1, -1, -1, -1, 680, -1, -1, -1, -1, -1, 3163 -1, 631, 32, -1, 1526, 691, 636, -1, -1, -1, 3164 696, 697, -1, -1, 700, -1, 631, 631, -1, -1, 3165 -1, 636, 636, -1, -1, -1, 1241, -1, -1, -1, 3166 -1, -1, -1, -1, -1, 758, -1, 67, -1, 734, 3167 -1, -1, -1, -1, -1, -1, -1, 733, -1, -1, 3168 736, -1, -1, 1039, 1040, -1, -1, -1, 1273, 745, 3169 -1, -1, 748, -1, -1, -1, 1281, 1282, 1283, -1, 3170 -1, 1102, -1, 1340, -1, -1, -1, -1, -1, -1, 3171 -1, -1, -1, 344, 345, 780, 772, 773, -1, -1, 3172 -1, -1, 778, -1, 724, 356, 357, -1, -1, 26, 3173 27, 28, -1, -1, -1, -1, -1, -1, 738, 724, 3174 724, 1097, 1098, -1, 1329, -1, -1, -1, -1, -1, 3175 -1, -1, -1, 738, 738, 155, -1, -1, -1, 815, 3176 -1, -1, 827, -1, -1, -1, -1, -1, -1, 825, 3177 -1, -1, 828, 758, 830, -1, -1, 833, 834, 835, 3178 -1, -1, 582, 583, 840, -1, -1, -1, -1, -1, 3179 -1, -1, -1, -1, 850, -1, -1, -1, -1, -1, 3180 97, -1, 99, -1, -1, -1, 1443, 10, 11, 12, 3181 13, 14, 612, -1, -1, 615, 616, -1, 618, -1, 3182 620, 621, -1, -1, -1, 625, 626, 124, -1, 229, 3183 -1, 924, 832, -1, -1, -1, 39, -1, 1475, -1, 3184 1477, -1, -1, -1, -1, -1, 902, 832, 832, -1, 3185 250, -1, -1, -1, -1, 255, 188, -1, -1, -1, 3186 -1, -1, -1, 195, 67, -1, -1, -1, 924, 72, 3187 -1, 74, 75, 76, -1, 1512, -1, 1514, -1, -1, 3188 83, 84, -1, 180, -1, 1241, -1, -1, -1, -1, 3189 -1, 188, -1, 190, 191, -1, -1, -1, 195, -1, 3190 197, 198, -1, -1, 960, 1542, 109, -1, 111, 709, 3191 710, -1, 968, 969, -1, 715, 119, 1273, -1, 10, 3192 11, 12, 13, 14, -1, 1281, 1282, 1283, -1, -1, 3193 986, -1, -1, -1, -1, 267, -1, -1, -1, 10, 3194 11, 12, 13, 14, -1, -1, -1, -1, 39, -1, 3195 350, -1, -1, -1, -1, -1, 1021, -1, -1, -1, 3196 -1, -1, -1, -1, -1, 1021, -1, -1, 39, -1, 3197 267, -1, -1, 1329, -1, -1, 67, -1, 1034, -1, 3198 -1, 72, -1, 1039, 1040, 76, 1042, 1043, -1, -1, 3199 -1, 323, 83, 84, -1, -1, 67, 1062, -1, 331, 3200 -1, 72, 334, 74, 75, 76, 1062, -1, -1, -1, 3201 -1, -1, 83, 84, -1, -1, -1, 417, 109, -1, 3202 -1, 0, -1, -1, 1024, -1, -1, -1, 119, -1, 3203 -1, -1, 432, -1, -1, -1, -1, 437, 109, 1024, 3204 1024, 1097, 1098, -1, -1, 445, -1, 1103, 119, -1, 3205 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 3206 -1, -1, -1, -1, -1, 397, -1, -1, -1, 401, 3207 -1, 471, -1, -1, 1475, -1, 1477, -1, 97, 98, 3208 99, 100, 101, 102, 103, 104, 105, 106, 67, 489, 3209 -1, 491, -1, -1, 725, -1, 727, -1, -1, -1, 3210 -1, -1, -1, 734, 735, -1, 1162, -1, 739, -1, 3211 -1, 1512, 131, 1514, 1179, 10, 11, 12, 13, 14, 3212 751, -1, -1, -1, -1, 756, -1, -1, -1, 1222, 3213 -1, -1, -1, 533, -1, -1, -1, -1, -1, -1, 3214 -1, -1, -1, -1, 39, -1, -1, -1, -1, 1205, 3215 -1, 782, -1, -1, 486, -1, -1, -1, -1, -1, 3216 -1, -1, -1, -1, -1, -1, 1222, -1, -1, -1, 3217 -1, 1227, 67, -1, -1, -1, 155, 72, -1, -1, 3218 -1, 76, -1, -1, -1, 1241, -1, 1243, 83, 84, 3219 -1, 1247, -1, -1, -1, -1, 827, -1, 598, -1, 3220 -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1, 3221 -1, -1, -1, -1, 109, -1, -1, 1273, -1, 1204, 3222 1204, -1, -1, -1, 119, 1281, 1282, 1283, -1, -1, 3223 -1, -1, -1, -1, -1, -1, 1292, 1293, -1, -1, 3224 -1, -1, -1, 643, 644, 645, 578, 579, -1, -1, 3225 1306, -1, -1, 884, 885, 886, 887, -1, 889, -1, 3226 -1, -1, 662, -1, -1, -1, -1, -1, -1, -1, 3227 -1, 250, -1, 1329, 905, -1, 255, -1, -1, -1, 3228 680, -1, -1, -1, 1340, 582, 583, -1, 919, -1, 3229 -1, 691, -1, -1, -1, -1, -1, 697, -1, 1099, 3230 -1, 1301, -1, -1, -1, -1, 1399, -1, -1, -1, 3231 -1, -1, -1, -1, -1, 612, 1301, 1301, 615, 616, 3232 -1, 618, -1, 620, 621, -1, -1, 958, 625, 626, 3233 -1, -1, -1, 733, -1, 667, 736, -1, -1, 671, 3234 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3235 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3236 -1, 1417, -1, -1, -1, -1, -1, 998, -1, 39, 3237 -1, 350, 704, 773, 1005, -1, -1, -1, -1, 1010, 3238 -1, -1, -1, -1, 1015, -1, 1017, 1443, -1, -1, 3239 1021, 1022, 1023, -1, -1, 1026, -1, 67, -1, -1, 3240 -1, -1, -1, -1, 1035, -1, -1, 704, 78, -1, 3241 1466, -1, 709, 710, -1, 815, -1, 1473, 715, -1, 3242 -1, -1, 1053, 1054, 1224, 825, -1, -1, 828, -1, 3243 -1, -1, -1, 833, -1, 835, -1, -1, 417, -1, 3244 840, -1, -1, -1, -1, -1, -1, -1, -1, 1080, 3245 -1, -1, 1083, 432, -1, -1, -1, -1, 437, -1, 3246 -1, -1, -1, -1, -1, -1, 445, -1, -1, -1, 3247 1526, -1, -1, -1, -1, -1, -1, 1533, -1, -1, 3248 -1, -1, -1, -1, -1, -1, -1, 819, -1, -1, 3249 -1, 1122, 471, -1, -1, -1, -1, 1128, 1129, -1, 3250 -1, -1, 902, -1, -1, -1, -1, -1, -1, 1140, 3251 489, -1, 491, 0, 1145, -1, -1, 1148, -1, 1150, 3252 -1, -1, 1153, -1, -1, -1, -1, -1, -1, -1, 3253 -1, -1, -1, -1, -1, 1166, -1, -1, -1, -1, 3254 -1, -1, -1, -1, -1, 32, 37, 38, 1179, 40, 3255 1181, 1182, 1183, 1184, 533, -1, -1, -1, -1, -1, 3256 -1, -1, -1, -1, -1, -1, 1197, -1, 1199, -1, 3257 -1, -1, 1203, -1, -1, 66, -1, -1, -1, -1, 3258 67, 72, -1, 74, 75, 76, 986, -1, 79, 80, 3259 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3260 932, 1232, 1233, 94, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, -1, -1, -1, -1, -1, 109, 598, 3262 111, -1, 113, 114, -1, -1, -1, 118, 119, 120, 3263 121, 122, 123, -1, -1, -1, -1, -1, -1, 1039, 3264 1040, -1, 1042, 1043, -1, -1, -1, -1, -1, -1, 3265 -1, -1, -1, 1284, 1285, -1, -1, -1, -1, -1, 3266 -1, -1, 1062, 1294, 643, 644, 645, -1, 155, -1, 3267 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1011, 3268 -1, -1, -1, 662, -1, -1, -1, -1, -1, -1, 3269 -1, -1, -1, -1, -1, 1027, -1, 1097, 1098, -1, 3270 -1, 680, -1, -1, -1, -1, -1, -1, -1, -1, 3271 -1, -1, 691, -1, -1, 1346, -1, -1, 697, -1, 3272 -1, -1, -1, -1, -1, -1, -1, 1358, -1, 1360, 3273 1361, 1362, 37, 38, -1, 40, -1, -1, -1, -1, 3274 -1, 1372, -1, -1, -1, -1, -1, -1, -1, -1, 3275 1381, -1, -1, -1, 733, -1, -1, 736, -1, -1, 3276 -1, 66, 1162, 250, -1, -1, 1397, 72, 255, -1, 3277 -1, 76, 1104, -1, 79, 80, 81, 82, 83, 84, 3278 -1, 86, 87, -1, -1, -1, -1, -1, 0, 94, 3279 -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, 3280 -1, -1, 1099, -1, 109, 1205, 111, -1, -1, 114, 3281 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3282 32, -1, 1453, 1454, -1, -1, -1, 1227, -1, -1, 3283 -1, -1, -1, -1, -1, 1466, 815, -1, -1, -1, 3284 -1, 1241, 1473, 1243, -1, -1, 825, -1, -1, 828, 3285 -1, -1, -1, -1, 833, 67, 835, -1, -1, -1, 3286 -1, 840, -1, 350, -1, -1, -1, -1, -1, -1, 3287 -1, -1, -1, 1273, -1, 1506, -1, -1, -1, 1510, 3288 -1, 1281, 1282, 1283, -1, -1, -1, -1, -1, -1, 3289 -1, -1, 1292, 1293, -1, -1, -1, -1, -1, -1, 3290 -1, -1, -1, -1, -1, -1, 1306, -1, 1539, -1, 3291 1541, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 -1, -1, -1, 902, -1, -1, -1, 1224, -1, 1329, 3293 417, -1, -1, -1, -1, -1, -1, -1, 1569, 1570, 3294 -1, -1, -1, 155, -1, 432, 1577, 1578, -1, -1, 3295 437, -1, -1, -1, -1, -1, 0, -1, 445, 3, 3296 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3297 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3298 24, 25, 26, 27, 471, -1, 30, 31, 32, 33, 3299 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3300 -1, -1, 489, -1, 491, -1, -1, 986, -1, -1, 3301 -1, -1, -1, -1, -1, -1, -1, 1417, -1, -1, 3302 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3303 74, 75, 76, -1, -1, -1, -1, -1, 250, 83, 3304 84, -1, -1, 255, -1, -1, 533, -1, 7, -1, 3305 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3306 1039, 1040, -1, 1042, 1043, 109, 1466, 111, -1, -1, 3307 -1, -1, -1, 1473, -1, 119, -1, -1, 37, 38, 3308 39, 40, -1, 1062, -1, 10, 11, 12, 13, 14, 3309 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3310 25, 26, 27, 28, -1, -1, -1, 66, 67, -1, 3311 -1, 598, -1, 72, 39, -1, -1, 76, 1097, 1098, 3312 79, 80, 81, 82, 83, 84, 1526, 86, 87, -1, 3313 -1, -1, -1, -1, -1, 94, -1, -1, 350, -1, 3314 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3315 109, -1, 111, 78, -1, -1, 643, 644, 645, 118, 3316 119, 120, 121, 122, 123, -1, -1, -1, -1, -1, 3317 -1, -1, -1, -1, -1, 662, -1, -1, -1, -1, 3318 -1, -1, -1, 1162, -1, -1, -1, -1, -1, -1, 3319 -1, -1, -1, 680, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, -1, 691, 417, -1, -1, -1, 45, 3321 697, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3322 432, -1, -1, -1, -1, 437, 1205, -1, 64, -1, 3323 -1, -1, -1, 445, -1, -1, -1, -1, -1, -1, 3324 -1, -1, -1, -1, -1, -1, 733, -1, 1227, 736, 3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, 3326 -1, -1, 1241, -1, 1243, -1, -1, -1, -1, -1, 3327 -1, -1, -1, -1, 110, -1, -1, 489, -1, 491, 3328 116, -1, -1, -1, -1, -1, 773, -1, -1, -1, 3329 -1, -1, -1, -1, 1273, -1, -1, -1, -1, -1, 3330 -1, -1, 1281, 1282, 1283, -1, -1, -1, -1, 145, 3331 -1, -1, -1, 1292, 1293, -1, -1, -1, -1, 155, 3332 -1, 533, -1, 159, -1, -1, -1, 1306, 815, -1, 3333 -1, -1, -1, -1, -1, -1, -1, -1, 825, -1, 3334 -1, 828, -1, -1, -1, -1, 833, -1, 835, -1, 3335 1329, -1, -1, 840, 10, 11, 12, 13, 14, 15, 3336 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3337 26, 27, 208, -1, 30, 31, 32, -1, -1, -1, 3338 -1, -1, -1, 39, 220, -1, 598, -1, -1, -1, 3779 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 3780 -1, -1, 67, -1, 69, -1, 71, 72, -1, 74, 3781 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, 3339 3783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3340 -1, -1, 238, 239, -1, -1, -1, -1, -1, -1,3341 -1, 67, -1, -1, -1, 902, -1, -1, 74, 75,3342 -1, -1, -1, -1, -1, -1, 262, -1, -1, -1,3343 -1, 643, 644, 645, 270, -1, -1, -1, 1417, -1,3344 -1, -1, -1, -1, 281, -1, 283, 284, -1, -1,3345 662, -1, -1, -1, 291, 292, -1, -1, 294, 296,3346 297, 297, -1, 119, -1, -1, -1, -1, 680, -1,3347 -1, 308, -1, -1, -1, -1, -1, -1, -1, 691,3348 -1, -1, -1, -1, -1, 697, -1, 1466, 37, 38,3349 -1, 40, -1, -1, 1473, -1, -1, -1, -1, 986,3350 -1, -1, -1, -1, -1, -1, -1, 344, 344, -1,3351 -1, -1, -1, 349, -1, -1, -1, 66, -1, -1,3352 -1, 733, -1, 72, 736, -1, -1, 76, -1, -1,3353 79, 80, 81, 82, 83, 84, -1, 86, 87, -1,3354 -1, -1, -1, 380, -1, 94, -1, 1526, -1, -1,3355 -1, -1, 1039, 1040, -1, 1042, 1043, -1, -1, -1,3356 109, 773, 111, -1, -1, -1, -1, -1, 117, 118,3357 119, 120, 121, 122, 123, 1062, -1, -1, -1, -1,3358 -1, -1, -1, -1, -1, 64, -1, -1, -1, 425,3359 426, -1, -1, -1, -1, 74, 432, 76, -1, 78,3360 -1, -1, -1, 815, -1, -1, 85, -1, -1, -1,3361 1097, 1098, -1, 825, -1, -1, 828, 453, -1, -1,3362 456, 833, -1, 835, -1, -1, -1, -1, 840, -1,3363 -1, -1, -1, -1, -1, -1, -1, 116, -1, 118,3364 119, 120, -1, -1, -1, -1, -1, -1, -1, -1,3365 -1, -1, -1, 489, -1, -1, -1, -1, -1, -1,3366 -1, -1, -1, -1, -1, 501, -1, -1, -1, -1,3367 -1, -1, -1, -1, -1, 1162, -1, 513, -1, 515,3368 159, -1, 518, -1, 520, 521, -1, -1, -1, -1,3369 902, -1, -1, -1, -1, -1, -1, 533, -1, -1,3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3371 -1, -1, -1, -1, -1, -1, -1, -1, 1205, -1,3372 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,3373 567, 568, 569, 570, 571, 572, 573, 574, -1, -1,3374 1227, 220, -1, 222, 223, 224, -1, -1, -1, -1,3375 586, -1, -1, -1, 1241, -1, 1243, -1, -1, -1,3376 -1, -1, 598, 600, 600, -1, -1, 603, -1, -1,3377 -1, -1, -1, -1, 986, -1, -1, -1, -1, 258,3378 -1, -1, -1, 262, -1, -1, 1273, -1, -1, -1,3379 -1, -1, -1, 629, 1281, 1282, 1283, -1, 634, 278,3380 -1, -1, -1, -1, -1, 1292, 1293, 643, 644, 645,3381 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1306,3382 -1, -1, -1, -1, -1, -1, 662, 1039, 1040, -1,3383 1042, 1043, -1, -1, -1, -1, -1, -1, -1, -1,3384 -1, -1, 1329, -1, -1, -1, -1, -1, -1, 328,3385 1062, -1, -1, -1, -1, -1, -1, -1, -1, -1,3386 -1, 697, 699, -1, -1, -1, -1, -1, -1, -1,3387 349, -1, -1, -1, -1, 354, 355, 44, -1, -1,3388 -1, -1, 718, 362, 721, 1097, 1098, -1, -1, -1,3389 -1, -1, -1, -1, -1, -1, -1, 734, -1, -1,3390 736, -1, 738, 10, 11, 12, 13, 14, 15, 16,3391 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,3392 27, -1, -1, 90, -1, -1, 405, -1, -1, -1,3393 1417, -1, 39, 100, -1, -1, -1, 773, -1, -1,3394 -1, -1, -1, 780, 423, -1, -1, -1, -1, 428,3395 1162, 430, -1, -1, -1, -1, -1, -1, -1, -1,3396 67, -1, -1, -1, -1, -1, -1, -1, 447, -1,3397 -1, 450, 451, -1, -1, 812, -1, -1, -1, 1466,3398 -1, -1, -1, -1, -1, -1, 1473, 466, -1, 156,3399 827, -1, 828, 1205, -1, -1, 832, -1, -1, 835,3400 -1, 480, -1, 170, -1, -1, -1, -1, 487, -1,3401 -1, -1, -1, -1, -1, 1227, -1, -1, -1, -1,3402 -1, -1, -1, -1, -1, -1, 193, -1, -1, 1241,3403 -1, 1243, -1, -1, -1, -1, -1, -1, -1, 1526,3404 207, -1, -1, -1, -1, -1, -1, -1, -1, 216,3405 -1, -1, -1, -1, -1, -1, -1, -1, -1, 226,3406 -1, 1273, -1, -1, -1, -1, -1, -1, -1, 1281,3407 1282, 1283, -1, -1, -1, -1, -1, -1, -1, -1,3408 1292, 1293, -1, -1, 251, -1, -1, -1, -1, 256,3409 -1, -1, 928, -1, 1306, -1, -1, -1, -1, -1,3410 -1, -1, 269, -1, -1, -1, -1, -1, 275, -1,3411 277, 947, -1, -1, -1, -1, -1, 1329, -1, -1,3412 -1, -1, -1, -1, 603, -1, -1, -1, 295, -1,3413 -1, -1, -1, -1, 970, -1, -1, -1, -1, -1,3414 -1, 978, -1, -1, -1, -1, -1, -1, -1, -1,3415 986, -1, 631, -1, -1, -1, -1, 636, -1, -1,3416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3417 -1, 338, 1009, -1, -1, -1, 343, -1, -1, -1,3418 -1, -1, -1, -1, 1021, 1021, -1, -1, -1, -1,3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3420 -1, -1, -1, -1, 371, 1417, 1042, 1043, 375, 376,3421 -1, 378, -1, -1, -1, -1, -1, -1, 385, 386,3422 -1, 388, 389, -1, 391, 1062, 393, -1, -1, -1,3423 -1, -1, 7, -1, -1, 10, 11, 12, 13, 14,3424 -1, -1, -1, 410, -1, 724, -1, -1, -1, -1,3425 -1, 418, -1, -1, 1466, -1, -1, -1, -1, 738,3426 -1, 1473, 37, 38, 39, 40, 1102, -1, -1, -1,3427 -1, -1, -1, -1, -1, -1, 443, -1, -1, 758,3428 -1, -1, -1, -1, -1, -1, -1, 454, -1, -1,3429 -1, 66, 67, -1, -1, -1, -1, 72, 1135, -1,3430 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84,3431 477, 86, 87, -1, 1526, -1, 483, -1, -1, 94,3432 -1, 488, -1, -1, -1, -1, 1162, -1, -1, -1,3433 3784 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3434 819, -1, 1179, 118, 119, 120, 121, 122, 123, -1, 3435 -1, -1, -1, 832, -1, -1, 1193, 1194, 525, -1, 3436 -1, -1, -1, -1, -1, -1, -1, -1, 1204, -1, 3437 -1, -1, 851, -1, 541, -1, -1, -1, -1, -1, 3438 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3439 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3440 22, 23, 24, 25, 26, 27, -1, 1243, 30, 31, 3441 32, 578, -1, -1, -1, -1, -1, 39, -1, -1, 3442 587, -1, -1, -1, -1, -1, -1, 594, -1, -1, 3443 -1, -1, 599, -1, -1, -1, -1, -1, -1, -1, 3444 -1, -1, -1, 610, -1, 67, -1, 69, -1, 71, 3445 72, -1, 74, 75, 76, -1, 1292, 1293, -1, 938, 3446 -1, 83, 84, -1, -1, 1301, -1, -1, -1, -1, 3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, 651, 964, -1, 109, -1, 111, 3449 -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, 3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3451 -1, -1, -1, 992, -1, -1, -1, -1, -1, -1, 3452 687, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3453 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3454 24, 25, 26, 27, 28, 1024, 30, 31, 32, -1, 3455 -1, -1, -1, -1, -1, 39, 1035, -1, -1, -1, 3456 -1, -1, -1, -1, -1, -1, -1, 1404, -1, -1, 3457 -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, 3458 -1, 1417, -1, 67, 1421, 752, 753, -1, -1, -1, 3459 74, 75, -1, -1, 78, -1, -1, -1, -1, 766, 3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, -1, -1, -1, -1, 783, -1, 785, -1, 3462 -1, -1, 789, -1, -1, 109, -1, 111, -1, -1, 3463 -1, -1, -1, -1, -1, 119, -1, -1, 1117, 1475, 3464 -1, 1477, -1, -1, -1, -1, -1, -1, -1, -1, 3465 -1, -1, -1, -1, -1, -1, -1, 1494, 1495, -1, 3466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3467 37, 38, -1, 40, -1, -1, 1512, -1, 1514, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, 855, -1, 3469 -1, -1, -1, -1, -1, 862, -1, -1, -1, 66, 3470 -1, -1, -1, -1, -1, 72, 1542, -1, 875, 76, 3471 877, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3472 87, -1, -1, -1, 891, 1204, -1, 94, -1, -1, 3473 -1, 898, -1, -1, -1, -1, -1, -1, -1, -1, 3474 -1, -1, 109, 910, 111, -1, 913, -1, -1, 116, 3475 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3476 -1, -1, -1, -1, 931, -1, -1, -1, -1, -1, 3477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478 -1, -1, -1, -1, 154, 155, -1, -1, -1, -1, 3479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, 3482 -1, -1, 1301, -1, -1, 195, -1, 3, 4, 5, 3483 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3484 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3485 26, 27, -1, 1020, 30, 31, 32, 33, -1, -1, 3486 36, -1, -1, 39, 40, 10, 11, 12, 13, 14, 3487 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3488 25, 26, 27, -1, -1, 30, 31, 32, 64, -1, 3489 -1, 67, -1, 69, 39, 71, 72, 267, 74, 75, 3490 76, -1, -1, -1, -1, -1, -1, 83, 84, 1076, 3491 -1, -1, -1, -1, -1, -1, 1083, -1, -1, -1, 3492 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3493 75, -1, -1, 109, -1, 111, -1, -1, -1, 115, 3494 -1, -1, -1, 119, -1, 145, 1113, -1, -1, -1, 3495 -1, 1118, -1, 323, -1, 155, -1, -1, -1, 1126, 3496 -1, 331, 332, -1, 334, 335, -1, 167, 168, -1, 3497 -1, -1, -1, -1, 344, -1, -1, -1, 348, -1, 3498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3499 1157, -1, -1, -1, -1, -1, -1, 367, -1, -1, 3500 370, -1, 1169, -1, -1, 1172, -1, 1174, -1, -1, 3501 37, 38, -1, 40, -1, -1, -1, -1, -1, -1, 3502 -1, 1188, 1189, -1, -1, -1, -1, 397, -1, -1, 3503 -1, 401, -1, -1, -1, -1, -1, -1, 238, 66, 3504 -1, -1, -1, 1210, -1, 72, -1, -1, -1, 76, 3505 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3506 87, -1, 432, 263, -1, -1, -1, 94, -1, -1, 3507 1237, -1, -1, -1, -1, -1, -1, -1, 1557, -1, 3508 -1, -1, 109, -1, 111, 455, -1, 114, -1, -1, 3509 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3511 -1, -1, -1, -1, -1, -1, 486, -1, -1, 489, 3512 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3513 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3514 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3515 -1, 30, 31, 32, 33, -1, -1, 36, -1, 529, 3516 39, -1, 532, 533, -1, -1, -1, -1, 1335, -1, 3517 1337, -1, -1, -1, -1, -1, -1, -1, -1, 379, 3518 -1, -1, -1, 1350, -1, 1352, -1, -1, 67, -1, 3519 69, -1, 71, -1, -1, 74, 75, -1, -1, 78, 3520 -1, -1, -1, 1370, -1, -1, -1, -1, 578, 579, 3521 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1386, 3522 1387, -1, -1, -1, -1, -1, -1, 597, 598, -1, 3523 600, 1398, 111, -1, 1401, -1, -1, -1, -1, 609, 3524 119, 611, 612, -1, -1, -1, -1, -1, 618, -1, 3525 -1, -1, -1, -1, -1, -1, 1423, -1, 628, 629, 3526 -1, -1, -1, -1, 634, 1432, -1, -1, 1435, -1, 3527 1437, 1438, 1439, 643, 644, 645, -1, -1, -1, -1, 3528 -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, 3529 -1, -1, 662, -1, -1, -1, -1, 667, 668, -1, 3530 -1, 671, 672, -1, -1, -1, -1, -1, 678, -1, 3531 -1, -1, 1479, -1, 1481, -1, -1, 1484, -1, -1, 3532 520, -1, -1, -1, -1, -1, 696, 697, 698, -1, 3533 700, -1, 1499, 533, 704, -1, -1, -1, -1, -1, 3534 540, -1, -1, 543, -1, -1, -1, -1, -1, -1, 3535 -1, -1, -1, -1, 554, 555, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, 736, 737, -1, -1, 3537 -1, -1, -1, -1, -1, -1, 576, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, 586, -1, -1, -1, 3539 -1, -1, -1, 593, -1, -1, -1, -1, 598, -1, 3540 -1, -1, 772, 773, -1, -1, -1, 777, 778, -1, 3541 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3542 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3543 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3544 -1, 30, 31, 32, 33, -1, -1, 36, 648, 819, 3545 39, 40, -1, -1, -1, -1, -1, 657, 828, -1, 3546 -1, -1, -1, -1, 834, 835, -1, -1, -1, 839, 3547 -1, 841, -1, -1, -1, 64, -1, -1, 67, -1, 3548 69, 851, 71, 72, -1, 74, 75, 76, -1, -1, 3549 -1, -1, -1, -1, 83, 84, -1, 697, -1, -1, 3550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3552 109, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3553 119, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3554 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3555 25, 26, 27, 28, 924, 30, 31, 32, -1, -1, 3556 -1, -1, 932, -1, 39, -1, -1, -1, 938, -1, 3557 -1, -1, -1, 773, -1, 775, 946, -1, -1, -1, 3558 -1, 781, -1, -1, -1, -1, -1, -1, 788, 959, 3559 960, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3560 75, 76, -1, 78, -1, -1, -1, -1, 83, 84, 3561 -1, -1, -1, -1, -1, -1, 986, -1, -1, -1, 3562 -1, -1, 992, -1, -1, -1, -1, -1, -1, -1, 3563 -1, -1, 832, 833, 109, 835, 111, -1, -1, -1, 3564 -1, 1011, 1012, -1, 119, -1, -1, -1, -1, -1, 3565 850, 1021, -1, -1, -1, -1, -1, 1027, 1028, -1, 3566 1030, 1031, 1032, -1, -1, -1, -1, -1, -1, -1, 3567 -1, -1, 1042, 1043, -1, -1, -1, -1, -1, -1, 3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3569 890, -1, -1, -1, 894, 3, 4, 5, 6, 7, 3785 115, -1, -1, 118, 119, 3, 4, 5, 6, 7, 3570 3786 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3571 3787 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3572 3788 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3573 -1, 39, -1, 1103, 1104, 1105, -1, -1, -1, -1, 3574 -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3576 -1, 69, -1, 71, -1, -1, 74, 75, -1, -1, 3577 970, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3578 -1, -1, -1, -1, -1, -1, 986, 987, -1, -1, 3579 -1, -1, 1162, 993, -1, -1, -1, 37, 38, 999, 3580 40, -1, 1002, 111, 1004, -1, -1, -1, -1, -1, 3581 -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3582 -1, -1, -1, -1, 1024, -1, 66, -1, -1, -1, 3583 -1, -1, 72, -1, -1, 1035, 76, -1, -1, 79, 3584 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3585 -1, -1, 1222, -1, 94, 37, 38, 1057, 40, 1059, 3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3587 -1, 111, -1, 1243, 1074, 1075, -1, -1, 118, 119, 3588 120, 121, 122, 123, 66, -1, -1, -1, -1, -1, 3589 72, -1, -1, -1, 76, 1095, -1, 79, 80, 81, 3590 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3591 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3592 -1, -1, 1292, 1293, -1, -1, -1, 109, -1, 111, 3593 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3594 122, 123, -1, 1143, -1, -1, -1, -1, -1, -1, 3789 -1, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3595 3790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3596 -1, -1, 1162, -1, -1, -1, -1, -1, -1, -1, 3597 -1, -1, -1, -1, -1, -1, -1, 1177, 1178, -1, 3598 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3599 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3600 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3601 -1, -1, 30, 31, 32, 33, -1, -1, 36, 37, 3602 38, 39, 40, 41, -1, 43, -1, -1, 46, 47, 3603 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3604 -1, -1, -1, 61, 62, -1, 64, 1417, 66, 67, 3605 -1, 69, -1, 71, 72, -1, 74, 75, 76, 1259, 3606 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3607 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3609 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3610 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3611 128, -1, -1, -1, 132, -1, -1, -1, -1, -1, 3612 1320, -1, 1322, -1, -1, -1, -1, -1, -1, -1, 3613 -1, -1, -1, -1, -1, -1, -1, 1507, 10, 11, 3614 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3615 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3616 32, -1, 1532, 1533, -1, -1, -1, 39, -1, -1, 3617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3618 -1, -1, -1, -1, -1, -1, -1, 1557, -1, -1, 3619 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3620 -1, -1, 74, 75, -1, -1, -1, -1, 1408, -1, 3621 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3622 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3623 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3624 -1, -1, 30, 31, 32, 33, -1, 119, 36, 37, 3625 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3626 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3627 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3628 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3629 1490, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3630 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3631 67, -1, -1, -1, -1, 72, -1, 74, 75, -1, 3632 -1, 109, -1, 111, -1, -1, 83, 84, -1, -1, 3633 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3634 -1, -1, 1542, -1, 132, 3, 4, 5, 6, 7, 3635 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3636 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3637 -1, -1, 30, 31, 32, 33, -1, -1, 36, 37, 3638 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3639 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3640 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3641 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3642 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3643 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3644 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3645 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3646 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3647 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3648 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3649 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3650 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3652 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3791 -1, -1, -1, -1, -1, -1, 64, -1, -1, 67, 3653 3792 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3654 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3655 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3657 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3658 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3659 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3660 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3661 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3662 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3664 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3665 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3666 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3667 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3669 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3670 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3671 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3672 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3673 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3674 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3676 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3677 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3678 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3679 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3682 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3683 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3684 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3685 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3686 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3689 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3690 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3793 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3691 3794 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3692 3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 3796 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3694 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3797 118, 119, 3, 4, 5, 6, 7, 8, 9, 10, 3798 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3799 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3800 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 3801 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3802 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3803 30, 31, 32, 33, 34, 35, 67, -1, 69, 39, 3804 71, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3805 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3806 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3807 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3808 111, -1, -1, -1, -1, -1, -1, 118, 119, 3, 3809 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3810 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3811 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3812 -1, -1, 36, -1, -1, 39, -1, -1, -1, -1, 3813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3815 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3816 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, 3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3818 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3820 -1, -1, -1, -1, 118, 119, 4, 5, 6, 7, 3695 3821 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3696 3822 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3697 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37,3698 38, 39, 40, -1, -1, -1, -1, -1, -1, -1,3823 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3824 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3699 3825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3701 3827 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3702 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87,3828 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3703 3829 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3704 3830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3705 3831 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3706 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3707 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3708 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3709 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3710 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3713 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3714 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3715 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3718 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3719 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3720 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3721 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3722 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3724 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3725 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3726 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3727 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3730 118, 119, 120, 121, 122, 123, 3, 4, 5, 6, 3731 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3732 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3733 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3734 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3737 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3738 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3739 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3740 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3741 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3742 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3744 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3745 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3746 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3749 -1, -1, -1, -1, -1, 119, 4, 5, 6, 7, 3750 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3751 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3752 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3753 -1, 39, -1, -1, -1, -1, 10, 11, 12, 13, 3754 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3755 24, 25, 26, 27, -1, -1, 30, 31, 32, 67, 3756 -1, 69, -1, 71, -1, 39, 74, 75, -1, 4, 3757 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3758 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3759 25, 26, 27, 67, -1, 30, 31, 32, 72, -1, 3760 74, 75, 110, 111, 39, -1, -1, -1, -1, 83, 3761 84, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, 67, -1, 69, -1, 71, 111, -1, 74, 3764 75, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3766 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3767 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3768 -1, -1, -1, -1, 119, 4, 5, 6, 7, 8, 3769 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3770 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3771 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3772 39, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3773 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3774 25, 26, 27, 28, -1, 30, 31, 32, 67, -1, 3775 69, -1, 71, -1, 39, 74, 75, -1, -1, -1, 3776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3777 -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, 3778 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3779 75, 76, 111, 78, -1, -1, -1, -1, 83, 84, 3780 119, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3781 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3782 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3783 -1, -1, -1, -1, 119, -1, 39, -1, -1, -1, 3784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3786 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3787 -1, 74, 75, -1, 4, 5, 6, 7, 8, 9, 3788 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3789 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3790 30, 31, 32, -1, -1, -1, -1, -1, 111, 39, 3791 -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3793 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3794 -1, 71, -1, -1, 74, 75, -1, 4, 5, 6, 3795 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3796 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3797 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3798 -1, 111, 39, -1, -1, -1, -1, -1, -1, 119, 3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3801 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3802 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3803 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3804 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3805 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3806 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3808 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3809 74, 75, 10, 11, 12, 13, 14, 15, 16, 17, 3810 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3811 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3812 38, 39, 40, -1, -1, -1, -1, 111, -1, -1, 3813 -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3814 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3815 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 3816 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3817 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3820 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3821 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3822 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3823 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3824 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3825 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3826 -1, -1, 66, 67, -1, -1, 39, -1, 72, -1, 3827 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3828 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3829 94, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3830 -1, 74, 75, 76, -1, 109, -1, 111, 112, -1, 3831 83, 84, -1, -1, 118, 119, 120, 121, 122, 123, 3832 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3833 20, 21, 22, 23, 24, 25, 26, 27, 111, -1, 3834 30, 31, 32, -1, -1, -1, 119, 37, 38, 39, 3835 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3836 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3837 -1, 30, 31, 32, -1, -1, 66, 67, -1, -1, 3838 39, 40, 72, -1, 74, 75, 76, -1, -1, 79, 3839 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3840 -1, -1, -1, -1, 94, -1, -1, -1, 67, -1, 3841 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3842 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3843 120, 121, 122, 123, 10, 11, 12, 13, 14, 15, 3844 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3845 26, 27, 111, -1, 30, 31, 32, -1, -1, -1, 3846 119, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3847 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3848 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3849 66, 67, 30, 31, 32, -1, 72, -1, 74, 75, 3850 76, 39, -1, 79, 80, 81, 82, 83, 84, -1, 3851 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3852 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3853 -1, -1, -1, 109, -1, 111, 74, 75, -1, -1, 3854 -1, -1, 118, 119, 120, 121, 122, 123, 10, 11, 3855 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3856 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3857 32, 109, -1, 111, -1, 37, 38, 39, 40, -1, 3858 -1, 119, -1, -1, -1, -1, 10, 11, 12, 13, 3859 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3860 24, 25, 26, 27, 66, 67, 30, 31, 32, -1, 3861 72, -1, 74, 75, 76, 39, -1, 79, 80, 81, 3862 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3863 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, 67, -1, -1, -1, 109, -1, 111, 3865 74, 75, -1, -1, -1, -1, 118, 119, 120, 121, 3866 122, 123, 10, 11, 12, 13, 14, 15, 16, 17, 3867 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3868 -1, -1, 30, 31, 32, 109, -1, 111, -1, 37, 3869 38, 39, 40, -1, -1, 119, -1, -1, -1, -1, 3870 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3871 20, 21, 22, 23, 24, 25, 26, 27, 66, 67, 3872 30, 31, 32, -1, 72, -1, 74, 75, 76, 39, 3873 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3874 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3875 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3876 -1, 109, -1, 111, 74, 75, -1, -1, -1, -1, 3877 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3878 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3879 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3880 -1, 111, -1, 37, 38, 39, 40, -1, -1, 119, 3881 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3882 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3883 26, 27, 66, 67, 30, 31, 32, -1, 72, -1, 3884 74, 75, 76, 39, -1, 79, 80, 81, 82, 83, 3885 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3886 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, 67, -1, -1, -1, 109, -1, 111, 74, 75, 3888 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3889 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3890 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3891 23, 24, 25, 26, 27, 111, -1, 30, 31, 32, 3892 -1, -1, -1, 119, -1, -1, 39, -1, -1, -1, 3893 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3894 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3895 30, 31, 32, -1, 67, -1, 69, -1, 71, 39, 3896 -1, 74, 75, -1, -1, -1, -1, -1, 10, 11, 3897 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3898 22, 23, 24, 25, 26, 27, -1, 67, 30, 31, 3899 32, -1, 72, -1, 74, 75, 76, 39, -1, -1, 3900 -1, 114, -1, 83, 84, -1, 10, 11, 12, 13, 3901 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3902 24, 25, 26, 27, -1, 67, 30, 31, 32, 109, 3903 72, 111, 74, 75, 76, 39, -1, -1, -1, 119, 3904 -1, 83, 84, -1, 10, 11, 12, 13, 14, 15, 3905 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3906 26, 27, -1, 67, 30, 31, 32, 109, 72, 111, 3907 74, 75, 76, 39, -1, -1, -1, 119, -1, 83, 3908 84, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3909 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3910 28, 67, 30, 31, 32, 109, 72, 111, 74, 75, 3911 76, 39, -1, -1, -1, 119, -1, 83, 84, -1, 3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3913 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3914 -1, -1, -1, 109, -1, 111, 74, 75, -1, -1, 3915 78, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3916 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3917 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3918 -1, 109, -1, 111, 39, 40, -1, -1, -1, -1, 3919 -1, 119, -1, 10, 11, 12, 13, 14, 15, 16, 3920 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3921 27, 28, 67, 30, 31, 32, -1, -1, -1, 74, 3922 75, -1, 39, 10, 11, 12, 13, 14, 15, 16, 3923 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3924 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3925 67, -1, 39, 40, -1, -1, 111, 74, 75, -1, 3926 115, 78, -1, -1, 119, -1, -1, -1, -1, -1, 3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3928 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3929 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3930 -1, -1, 119, -1, -1, 10, 11, 12, 13, 14, 3931 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3932 25, 26, 27, -1, 111, 30, 31, 32, 115, -1, 3933 -1, -1, 119, -1, 39, 40, 10, 11, 12, 13, 3934 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3935 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3936 -1, -1, 67, -1, -1, 39, -1, -1, -1, 74, 3937 75, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3938 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3939 26, 27, -1, 67, 30, 31, 32, -1, -1, -1, 3940 74, 75, -1, 39, -1, -1, 111, -1, -1, -1, 3941 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, 3942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943 -1, 67, -1, -1, -1, -1, -1, 111, 74, 75, 3944 -1, -1, -1, -1, -1, 119, -1, 10, 11, 12, 3945 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3946 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3947 -1, -1, -1, -1, -1, 111, 39, -1, -1, -1, 3948 -1, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3949 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3950 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3951 -1, 74, 75, -1, 39, 10, 11, 12, 13, 14, 3952 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3953 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3954 -1, -1, 67, -1, 39, -1, -1, -1, 111, 74, 3955 75, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3957 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3958 75, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3959 -1, -1, -1, -1, 119, -1, -1, 10, 11, 12, 3960 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3961 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3962 -1, -1, -1, -1, 119, -1, 39, 10, 11, 12, 3963 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3964 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3965 -1, -1, -1, -1, 67, -1, 39, -1, -1, -1, 3966 -1, 74, 75, -1, -1, 10, 11, 12, 13, 14, 3967 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3968 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3969 -1, 74, 75, -1, 39, -1, -1, -1, 111, -1, 3970 -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3972 -1, -1, 67, -1, -1, -1, -1, -1, 111, 74, 3973 75, -1, -1, -1, -1, -1, 119, 4, 5, 6, 3974 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3975 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3976 27, -1, -1, 30, 31, 32, 111, -1, -1, -1, 3977 -1, -1, 39, -1, 119, -1, -1, -1, -1, -1, 3978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3980 67, -1, 69, -1, 71, -1, -1, 74, 75, 37, 3981 38, -1, 40, 41, -1, 43, -1, -1, 46, 47, 3982 48, 49, 50, 51, 52, 53, -1, -1, 56, 57, 3983 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3984 -1, -1, -1, 110, 72, -1, -1, -1, 76, -1, 3985 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3986 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3988 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3989 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3990 128, -1, 37, 38, 132, 40, 41, -1, 43, -1, 3991 -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3992 -1, -1, 57, -1, -1, -1, 61, 62, -1, 64, 3993 -1, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3994 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3995 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3997 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3998 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3999 -1, -1, -1, 128, -1, -1, -1, 132, 4, 5, 4000 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4001 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4002 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4003 -1, -1, -1, 39, -1, 37, 38, -1, 40, 41, 4004 -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4005 52, 53, -1, -1, 56, 57, -1, -1, -1, 61, 4006 62, 67, 64, 69, 66, 71, -1, -1, 74, 75, 4007 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4008 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4009 96, -1, 94, -1, -1, -1, -1, -1, -1, -1, 4010 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4011 -1, -1, 114, -1, -1, -1, 118, 119, 120, 121, 4012 122, 123, -1, -1, 37, 38, 128, 40, 41, -1, 4013 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 4014 53, -1, -1, -1, 57, -1, -1, -1, 61, 62, 4015 -1, 64, -1, 66, -1, -1, -1, -1, -1, 72, 4016 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 4017 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 4018 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 4019 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 4020 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 4021 123, -1, -1, 37, 38, 128, 40, 41, -1, 43, 4022 -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 4023 -1, -1, -1, 57, -1, -1, -1, 61, 62, -1, 4024 64, -1, 66, -1, -1, -1, -1, -1, 72, -1, 4025 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4026 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4027 94, 37, 38, -1, 40, -1, -1, -1, -1, -1, 4028 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 4029 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4030 66, -1, -1, -1, 128, -1, 72, -1, -1, -1, 4031 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 4032 86, 87, -1, -1, -1, -1, -1, -1, 94, 37, 4033 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 4034 -1, -1, -1, 109, -1, 111, -1, -1, 37, 38, 4035 -1, 40, 118, 119, 120, 121, 122, 123, 66, -1, 4036 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 4037 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 4038 -1, -1, -1, 72, -1, -1, 94, 76, -1, -1, 4039 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 4040 -1, 109, -1, 111, -1, 94, 37, 38, -1, 40, 4041 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 4042 109, -1, -1, -1, -1, 37, 38, -1, 40, 118, 4043 119, 120, 121, 122, 123, 66, -1, -1, -1, -1, 4044 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4045 81, 82, 83, 84, 66, 86, 87, -1, -1, -1, 4046 72, -1, -1, 94, 76, -1, -1, 79, 80, 81, 4047 82, 83, 84, -1, 86, 87, -1, -1, 109, -1, 4048 -1, -1, 94, 37, 38, -1, 40, 118, 119, 120, 4049 121, 122, 123, -1, -1, -1, -1, 109, -1, -1, 4050 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 4051 122, 123, 66, -1, -1, -1, -1, -1, 72, -1, 4052 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4053 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4054 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4055 -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, 4056 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4057 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4058 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4059 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 4060 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 4061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4063 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 4064 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 4065 84, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3832 118, 119, 4, 5, 6, 7, 8, 9, 10, 11, 4066 3833 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4067 3834 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, … … 4070 3837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4071 3838 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 4072 -1, -1, 74, 75, 3, 4, 5, 6, 7, 8, 3839 -1, -1, 74, 75, -1, -1, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3841 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3842 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 3843 -1, -1, -1, -1, -1, -1, 118, 119, 4, 5, 3844 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3845 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3846 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3847 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3850 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3851 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 3853 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3854 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3855 -1, -1, 118, 119, 4, 5, 6, 7, 8, 9, 3856 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3857 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3858 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3861 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3862 -1, 71, -1, -1, 74, 75, -1, -1, -1, -1, 3863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, 3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3866 -1, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3867 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3868 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3869 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3870 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3873 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3874 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, 3875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3876 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3877 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3878 -1, -1, -1, -1, 118, 119, 4, 5, 6, 7, 3879 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3880 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3881 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3882 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3884 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3885 -1, 69, -1, 71, -1, -1, 74, 75, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3890 118, 119, 4, 5, 6, 7, 8, 9, 10, 11, 3891 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3892 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3893 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3896 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3897 -1, -1, 74, 75, -1, -1, -1, -1, -1, -1, 3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3899 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3900 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 3901 -1, -1, -1, -1, -1, -1, 118, 119, 4, 5, 3902 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3903 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3904 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3905 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3907 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3908 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3909 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3910 20, 21, 22, 23, 24, 25, 26, 27, 94, -1, 3911 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3912 40, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3913 -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, 3914 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3915 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3916 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3917 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, 3918 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3919 -1, 111, -1, -1, 114, -1, -1, -1, 118, 119, 3920 120, 121, 122, 123, 10, 11, 12, 13, 14, 15, 3921 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3922 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3923 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3926 66, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3927 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3928 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3929 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930 -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, 3931 -1, -1, 118, 119, 120, 121, 122, 123, 10, 11, 3932 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3933 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3934 32, -1, -1, -1, -1, 37, 38, 39, 40, -1, 3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3937 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 3938 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3939 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3940 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3941 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3942 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3943 122, 123, 10, 11, 12, 13, 14, 15, 16, 17, 3944 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3945 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3946 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3948 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3949 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 3950 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3951 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3953 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3954 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3955 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3956 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3957 -1, -1, -1, 37, 38, 39, 40, -1, -1, -1, 3958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3960 -1, -1, 66, 67, -1, -1, -1, -1, 72, -1, 3961 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3962 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3963 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3964 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3965 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3966 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3967 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3968 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3969 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3970 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3971 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3972 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3973 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3974 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, 3975 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3976 -1, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3977 120, 121, 122, 123, 3, 4, 5, 6, 7, 8, 4073 3978 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4074 3979 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 4075 3980 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 4076 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3981 39, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3982 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3983 26, 27, 28, -1, 30, 31, 32, -1, 67, -1, 3984 69, -1, 71, 39, -1, 74, 75, -1, -1, -1, 3985 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3986 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3987 -1, 67, 30, 31, 32, -1, 72, -1, 74, 75, 3988 76, 39, 78, -1, -1, 114, -1, 83, 84, -1, 3989 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3991 -1, -1, -1, -1, 72, 111, 74, 75, 76, -1, 3992 -1, -1, 118, 119, -1, 83, 84, -1, -1, -1, 3993 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 4077 3994 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4078 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 4079 69, -1, 71, -1, -1, 74, 75, 4, 5, 6, 4080 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3995 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3996 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 3997 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3998 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3999 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 4000 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4001 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 4002 -1, 39, -1, -1, 72, -1, 74, 75, 76, -1, 4003 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 4004 -1, -1, -1, -1, -1, -1, 94, -1, -1, 67, 4005 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 4006 -1, 109, -1, 111, -1, 83, 84, -1, -1, -1, 4007 118, 119, -1, -1, -1, -1, 94, -1, -1, -1, 4008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4009 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 4010 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 4011 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4012 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 4013 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 4014 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4015 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 4016 -1, 39, -1, -1, 72, -1, 74, 75, 76, -1, 4017 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 4018 -1, -1, -1, -1, -1, -1, 94, -1, -1, 67, 4019 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 4020 -1, 109, -1, 111, -1, 83, 84, -1, -1, -1, 4021 118, 119, -1, -1, -1, -1, 94, -1, -1, -1, 4022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4023 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 4024 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 4025 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4026 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 4027 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 4028 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4029 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 4030 -1, 39, 40, -1, 72, -1, 74, 75, -1, -1, 4031 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 4032 -1, -1, -1, -1, -1, -1, 94, -1, -1, 67, 4033 -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, 4034 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 4035 118, 119, -1, -1, -1, -1, 94, -1, -1, -1, 4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4037 -1, -1, -1, 111, -1, -1, -1, 115, -1, -1, 4038 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 4039 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4040 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 4041 -1, 39, 40, 10, 11, 12, 13, 14, 15, 16, 4042 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4043 27, -1, -1, 30, 31, 32, -1, -1, -1, 67, 4044 -1, -1, 39, 40, -1, -1, 74, 75, -1, -1, 4045 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4046 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 4047 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4048 -1, -1, -1, 111, -1, -1, -1, 115, -1, -1, 4049 118, 119, -1, -1, -1, -1, -1, 94, -1, -1, 4050 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4051 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4052 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4081 4053 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4082 4054 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4083 -1, -1, 39, -1, 10, 11, 12, 13, 14, 15, 4055 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4056 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4057 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4058 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4060 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4061 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4062 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 4063 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4065 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4066 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4067 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4068 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4069 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4070 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4071 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4072 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4074 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4075 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4076 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4077 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4078 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4079 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4080 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4081 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4082 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4083 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4084 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4085 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4086 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4088 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4089 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4090 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4091 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4093 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4094 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4095 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4096 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4097 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4098 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4099 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4100 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4102 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4103 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4104 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4105 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4107 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4108 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4109 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4110 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4111 -1, -1, 39, -1, -1, 4, 5, 6, 7, 8, 4112 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4113 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 4114 67, 30, 31, 32, -1, -1, -1, 74, 75, -1, 4115 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4116 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4117 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 4118 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 4119 -1, 118, 119, 37, 38, -1, 40, 41, -1, 43, 4120 -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 4121 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, 4122 64, 110, 66, -1, -1, -1, -1, -1, 72, -1, 4123 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4124 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4125 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4126 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 4127 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4128 -1, -1, -1, -1, 128, -1, 37, 38, 132, 40, 4129 41, -1, 43, -1, -1, 46, 47, 48, 49, 50, 4130 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, 4131 61, 62, -1, 64, -1, 66, -1, -1, -1, -1, 4132 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4133 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 4134 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 4135 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 4136 111, -1, -1, 114, -1, -1, -1, 118, 119, 120, 4137 121, 122, 123, -1, -1, -1, -1, 128, -1, -1, 4138 -1, 132, 4, 5, 6, 7, 8, 9, 10, 11, 4139 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4140 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 4141 32, -1, -1, -1, -1, -1, -1, 39, -1, 37, 4142 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, 4143 48, 49, 50, 51, 52, 53, -1, -1, 56, 57, 4144 -1, -1, -1, 61, 62, 67, 64, 69, 66, 71, 4145 -1, -1, 74, 75, 72, -1, -1, -1, 76, -1, 4146 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 4147 -1, -1, -1, -1, 96, -1, 94, -1, -1, -1, 4148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4149 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 4150 118, 119, 120, 121, 122, 123, -1, -1, 37, 38, 4151 128, 40, 41, -1, 43, 44, 45, 46, 47, 48, 4152 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 4153 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 4154 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 4155 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 4156 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 4157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4158 109, -1, 111, -1, -1, 114, -1, -1, -1, 118, 4159 119, 120, 121, 122, 123, -1, -1, 37, 38, 128, 4160 40, 41, -1, 43, -1, -1, 46, 47, 48, 49, 4161 50, 51, 52, 53, -1, -1, -1, 57, -1, -1, 4162 -1, 61, 62, -1, 64, -1, 66, -1, -1, -1, 4163 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 4164 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 4165 -1, -1, -1, -1, 94, 37, 38, -1, 40, -1, 4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 4167 -1, 111, -1, -1, 114, -1, -1, -1, 118, 119, 4168 120, 121, 122, 123, 66, -1, -1, -1, 128, -1, 4169 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4170 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4171 -1, -1, 94, 37, 38, -1, 40, -1, -1, -1, 4172 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4173 -1, -1, 37, 38, -1, 40, 118, 119, 120, 121, 4174 122, 123, 66, -1, -1, -1, -1, -1, 72, -1, 4175 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4176 84, 66, 86, 87, -1, -1, -1, 72, -1, -1, 4177 94, 76, -1, -1, 79, 80, 81, 82, 83, 84, 4178 -1, 86, 87, -1, -1, 109, -1, 111, -1, 94, 4179 37, 38, -1, 40, 118, 119, 120, 121, 122, 123, 4180 -1, -1, -1, -1, 109, -1, -1, -1, -1, 37, 4181 38, -1, 40, 118, 119, 120, 121, 122, 123, 66, 4182 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 4183 -1, -1, 79, 80, 81, 82, 83, 84, 66, 86, 4184 87, -1, -1, -1, 72, -1, -1, 94, 76, -1, 4185 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 4186 -1, -1, 109, -1, -1, -1, 94, -1, -1, -1, 4187 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 4188 -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, 4189 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 4190 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 4191 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4193 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 4194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4195 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 4196 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 4197 -1, -1, -1, -1, -1, 83, 84, 3, 4, 5, 4198 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4084 4199 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4085 26, 27, -1, -1, 30, 31, 32, 33, 34, 35,4086 67, -1, 69, 39, 71, -1, -1, 74, 75, -1,4200 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4201 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 4087 4202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4088 4203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4089 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75 4204 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 4205 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4206 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4207 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 4208 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 4209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4211 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 4212 -1, 74, 75, 4, 5, 6, 7, 8, 9, 10, 4213 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4214 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 4215 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 4216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4218 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 4219 71, -1, -1, 74, 75 4090 4220 }; 4091 4221 … … 4098 4228 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 4099 4229 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 4100 76, 83, 84, 109, 111, 119, 137, 140, 197, 211,4101 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,4102 22 2, 223, 224, 225, 226, 227, 228, 230, 231, 232,4103 23 3, 234, 235, 236, 237, 239, 240, 241, 242, 243,4104 24 4, 246, 254, 255, 282, 283, 284, 292, 295, 301,4105 302, 304, 306, 307, 313, 318, 322, 323, 324, 325,4106 32 6, 327, 328, 329, 349, 366, 367, 368, 369, 72,4107 119, 139, 140, 214, 216, 224, 226, 236, 240, 242,4108 2 83, 82, 109, 311, 312, 313, 311, 311, 72, 74,4109 75, 76, 138, 139, 272, 273, 293, 294, 74, 75,4110 2 73, 109, 304, 11, 198, 109, 119, 318, 323, 324,4111 3 25, 327, 328, 329, 112, 134, 111, 217, 224, 226,4112 322, 326, 365, 366, 369, 370, 135, 107, 131, 276,4113 1 14, 135, 172, 74, 75, 137, 271, 135, 135, 135,4114 1 16, 135, 74, 75, 109, 119, 308, 317, 318, 319,4115 3 20, 321, 322, 326, 330, 331, 332, 333, 334, 340,4116 3, 28, 78, 238, 3, 5, 74, 111, 119, 216,4117 227, 231, 234, 243, 284, 322, 326, 369, 214, 216,4118 226, 236, 240, 242, 283, 322, 326, 33, 232, 232,4119 227, 234, 135, 232, 227, 232, 227, 75, 109, 114,4120 273, 284, 114, 273, 232, 227, 116, 135, 135, 0,4121 13 4, 109, 172, 311, 311, 134, 111, 224, 226, 367,4122 2 71, 271, 226, 131, 109, 119, 308, 318, 322, 111,4123 119, 369, 305, 229, 313, 109, 289, 109, 109, 51,4124 109, 37, 38, 40, 66, 72, 76, 79, 80, 81,4125 82, 86, 87, 94, 109, 111, 118, 119, 120, 121,4230 76, 83, 84, 94, 109, 111, 118, 119, 137, 140, 4231 149, 198, 212, 213, 214, 215, 216, 217, 218, 219, 4232 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 4233 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 4234 242, 243, 244, 245, 247, 255, 256, 283, 284, 285, 4235 293, 296, 302, 303, 305, 307, 308, 314, 319, 323, 4236 324, 325, 326, 327, 328, 329, 330, 350, 367, 368, 4237 369, 370, 72, 139, 140, 149, 215, 217, 225, 227, 4238 237, 241, 243, 284, 82, 109, 312, 313, 314, 312, 4239 312, 72, 74, 75, 76, 138, 139, 273, 274, 294, 4240 295, 74, 75, 274, 109, 305, 11, 199, 109, 149, 4241 319, 324, 325, 326, 328, 329, 330, 112, 134, 111, 4242 218, 225, 227, 323, 327, 366, 367, 370, 371, 135, 4243 107, 131, 277, 114, 135, 173, 74, 75, 137, 272, 4244 135, 135, 135, 116, 135, 74, 75, 109, 149, 309, 4245 318, 319, 320, 321, 322, 323, 327, 331, 332, 333, 4246 334, 335, 341, 3, 28, 78, 239, 3, 5, 74, 4247 111, 149, 217, 228, 232, 235, 244, 285, 323, 327, 4248 370, 215, 217, 227, 237, 241, 243, 284, 323, 327, 4249 33, 233, 233, 228, 235, 135, 233, 228, 233, 228, 4250 75, 109, 114, 274, 285, 114, 274, 233, 228, 116, 4251 135, 135, 0, 134, 109, 173, 312, 312, 134, 111, 4252 225, 227, 368, 272, 272, 131, 227, 109, 149, 309, 4253 319, 323, 111, 149, 370, 306, 230, 314, 109, 290, 4254 109, 109, 51, 109, 37, 38, 40, 66, 72, 76, 4255 79, 80, 81, 82, 86, 87, 109, 111, 120, 121, 4126 4256 122, 123, 136, 140, 141, 142, 143, 148, 149, 150, 4127 4257 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 4128 161, 163, 165, 224, 275, 291, 365, 370, 226, 110, 4129 110, 110, 110, 110, 110, 110, 74, 75, 111, 224, 4130 271, 349, 367, 111, 119, 163, 216, 217, 223, 226, 4131 230, 231, 236, 239, 240, 242, 261, 262, 266, 267, 4132 268, 269, 283, 349, 361, 362, 363, 364, 369, 370, 4133 112, 109, 322, 326, 369, 109, 116, 132, 111, 114, 4134 119, 163, 277, 277, 115, 134, 116, 132, 109, 116, 4135 132, 116, 132, 116, 132, 311, 132, 318, 319, 320, 4136 321, 331, 332, 333, 334, 226, 317, 330, 64, 310, 4137 111, 311, 348, 349, 311, 311, 172, 134, 109, 311, 4138 348, 311, 311, 226, 308, 109, 109, 225, 226, 224, 4139 226, 112, 134, 224, 365, 370, 172, 134, 271, 276, 4140 216, 231, 322, 326, 172, 134, 293, 226, 236, 132, 4141 226, 226, 291, 40, 111, 224, 247, 248, 249, 250, 4142 365, 369, 245, 257, 273, 256, 226, 293, 132, 132, 4143 304, 134, 139, 270, 3, 135, 206, 207, 221, 223, 4144 226, 134, 310, 109, 310, 163, 318, 226, 109, 134, 4145 271, 114, 33, 34, 35, 224, 285, 286, 288, 134, 4146 129, 131, 290, 134, 227, 233, 234, 271, 314, 315, 4147 316, 109, 141, 109, 148, 109, 148, 150, 109, 148, 4148 109, 109, 148, 148, 139, 111, 163, 168, 172, 224, 4149 274, 365, 112, 134, 150, 150, 82, 85, 86, 87, 4150 109, 111, 113, 114, 97, 98, 99, 100, 101, 102, 4151 103, 104, 105, 106, 131, 167, 150, 119, 124, 125, 4152 121, 122, 88, 89, 90, 91, 126, 127, 92, 93, 4153 120, 128, 129, 94, 95, 130, 131, 372, 109, 119, 4154 344, 345, 346, 347, 348, 110, 116, 109, 348, 349, 4155 109, 348, 349, 134, 109, 224, 367, 112, 134, 111, 4156 119, 135, 224, 226, 360, 361, 369, 370, 135, 109, 4157 111, 119, 318, 335, 336, 337, 338, 339, 340, 341, 4158 342, 343, 349, 350, 351, 352, 353, 354, 355, 119, 4159 369, 226, 135, 135, 119, 224, 226, 362, 271, 224, 4160 349, 362, 271, 109, 134, 134, 134, 112, 134, 72, 4161 80, 111, 113, 140, 273, 277, 278, 279, 280, 281, 4162 134, 134, 134, 134, 134, 134, 308, 110, 110, 110, 4163 110, 110, 110, 110, 317, 330, 109, 276, 112, 206, 4164 134, 308, 168, 275, 168, 275, 308, 111, 206, 310, 4165 172, 134, 206, 110, 249, 250, 112, 134, 109, 117, 4166 119, 251, 253, 317, 318, 330, 348, 356, 357, 358, 4167 359, 115, 248, 116, 132, 116, 132, 273, 114, 116, 4168 371, 131, 258, 114, 226, 263, 264, 265, 268, 269, 4169 110, 116, 172, 134, 119, 163, 134, 223, 226, 262, 4170 361, 369, 302, 303, 109, 119, 335, 110, 116, 372, 4171 273, 285, 109, 114, 273, 275, 285, 110, 116, 109, 4172 141, 110, 117, 274, 274, 274, 111, 139, 145, 163, 4173 275, 274, 112, 134, 110, 116, 110, 109, 119, 356, 4174 110, 116, 163, 111, 139, 111, 144, 145, 134, 111, 4175 139, 144, 163, 163, 150, 150, 150, 151, 151, 152, 4176 152, 153, 153, 153, 153, 154, 154, 155, 156, 157, 4177 158, 159, 117, 168, 163, 134, 345, 346, 347, 226, 4178 344, 311, 311, 163, 275, 134, 270, 119, 134, 224, 4179 349, 362, 226, 230, 112, 134, 112, 369, 112, 109, 4180 134, 318, 336, 337, 338, 341, 351, 352, 353, 112, 4181 134, 226, 335, 339, 350, 109, 311, 354, 372, 311, 4182 311, 372, 109, 311, 354, 311, 311, 311, 311, 349, 4183 224, 360, 370, 271, 112, 116, 112, 116, 372, 224, 4184 362, 372, 259, 260, 261, 262, 259, 259, 271, 163, 4185 134, 111, 273, 117, 116, 371, 277, 80, 111, 117, 4186 281, 29, 208, 209, 271, 259, 139, 308, 139, 310, 4187 109, 348, 349, 109, 348, 349, 141, 349, 172, 263, 4188 110, 110, 110, 110, 112, 172, 206, 172, 114, 132, 4189 132, 111, 318, 357, 358, 359, 161, 162, 226, 356, 4190 252, 253, 252, 311, 311, 273, 311, 247, 273, 115, 4191 162, 257, 135, 135, 139, 221, 135, 135, 259, 109, 4192 119, 369, 135, 115, 226, 286, 287, 135, 134, 134, 4193 109, 135, 110, 315, 168, 169, 117, 132, 111, 141, 4194 199, 200, 201, 110, 116, 110, 134, 117, 110, 110, 4195 110, 163, 226, 114, 150, 165, 163, 164, 166, 116, 4196 135, 134, 134, 110, 116, 163, 134, 115, 161, 117, 4197 263, 110, 110, 110, 344, 263, 110, 259, 224, 362, 4198 111, 119, 163, 163, 226, 341, 263, 110, 110, 110, 4199 110, 110, 110, 110, 7, 226, 335, 339, 350, 134, 4200 134, 372, 134, 134, 110, 135, 135, 135, 135, 276, 4201 135, 161, 162, 163, 309, 134, 277, 279, 115, 134, 4202 210, 273, 40, 41, 43, 46, 47, 48, 49, 50, 4203 51, 52, 53, 57, 61, 62, 111, 128, 139, 169, 4204 170, 171, 172, 173, 174, 176, 177, 189, 191, 192, 4205 197, 211, 307, 29, 135, 131, 276, 134, 134, 110, 4206 135, 172, 247, 112, 110, 110, 110, 356, 251, 115, 4207 258, 371, 110, 116, 112, 112, 135, 226, 116, 372, 4208 289, 110, 285, 214, 216, 224, 297, 298, 299, 300, 4209 291, 110, 110, 117, 162, 109, 110, 117, 116, 139, 4210 163, 163, 278, 116, 135, 166, 112, 139, 146, 147, 4211 163, 145, 135, 146, 161, 165, 135, 109, 348, 349, 4212 135, 135, 134, 135, 135, 135, 163, 110, 135, 109, 4213 348, 349, 109, 354, 109, 354, 349, 225, 7, 119, 4214 135, 163, 263, 263, 262, 266, 266, 267, 116, 116, 4215 110, 110, 112, 96, 123, 135, 135, 146, 277, 163, 4216 116, 132, 211, 215, 226, 230, 109, 109, 170, 109, 4217 109, 132, 139, 132, 139, 119, 139, 169, 109, 172, 4218 164, 164, 112, 143, 117, 132, 135, 134, 135, 210, 4219 110, 163, 263, 263, 311, 110, 115, 109, 348, 349, 4220 115, 134, 110, 134, 135, 308, 115, 134, 135, 135, 4221 110, 114, 199, 112, 162, 132, 199, 201, 110, 116, 4222 135, 371, 164, 112, 135, 85, 113, 116, 135, 135, 4223 112, 135, 110, 134, 110, 110, 112, 112, 112, 135, 4224 110, 134, 134, 134, 163, 163, 135, 112, 135, 135, 4225 135, 135, 134, 134, 162, 162, 112, 112, 135, 135, 4226 273, 226, 168, 168, 47, 168, 134, 132, 132, 168, 4227 132, 132, 168, 58, 59, 60, 193, 194, 195, 132, 4228 63, 132, 114, 311, 174, 115, 132, 135, 135, 134, 4229 96, 268, 269, 110, 298, 116, 132, 116, 132, 115, 4230 296, 117, 141, 110, 110, 117, 166, 112, 115, 112, 4231 111, 147, 111, 147, 147, 112, 112, 112, 263, 112, 4232 263, 263, 263, 135, 135, 112, 112, 110, 110, 112, 4233 116, 96, 262, 96, 135, 112, 112, 110, 110, 109, 4234 110, 169, 190, 211, 132, 110, 109, 109, 172, 195, 4235 58, 59, 163, 144, 170, 110, 110, 263, 114, 134, 4236 134, 297, 141, 202, 109, 132, 202, 135, 117, 134, 4237 134, 135, 135, 135, 135, 112, 112, 134, 135, 112, 4238 170, 44, 45, 114, 180, 181, 182, 168, 170, 135, 4239 110, 169, 114, 182, 96, 134, 96, 134, 109, 109, 4240 132, 115, 135, 134, 271, 308, 115, 116, 117, 162, 4241 110, 112, 163, 146, 146, 110, 110, 110, 110, 266, 4242 42, 162, 178, 179, 309, 117, 134, 170, 180, 110, 4243 132, 170, 132, 134, 110, 134, 110, 134, 96, 134, 4244 96, 134, 132, 110, 297, 141, 139, 203, 110, 132, 4245 117, 135, 135, 170, 96, 116, 117, 135, 204, 205, 4246 211, 132, 169, 169, 204, 172, 196, 224, 365, 172, 4247 196, 110, 134, 110, 134, 115, 110, 116, 163, 112, 4248 112, 162, 178, 181, 183, 184, 134, 132, 181, 185, 4249 186, 135, 109, 119, 308, 356, 139, 135, 172, 196, 4250 172, 196, 109, 132, 139, 170, 175, 115, 181, 211, 4251 169, 56, 175, 188, 115, 181, 110, 226, 110, 135, 4252 135, 291, 170, 175, 132, 187, 188, 175, 188, 172, 4253 172, 110, 110, 110, 187, 135, 135, 172, 172, 135, 4254 135 4258 161, 162, 164, 166, 225, 276, 292, 366, 371, 227, 4259 110, 110, 110, 110, 110, 110, 110, 74, 75, 111, 4260 225, 272, 350, 368, 111, 118, 149, 164, 217, 218, 4261 224, 227, 231, 232, 237, 240, 241, 243, 262, 263, 4262 267, 268, 269, 270, 284, 350, 362, 363, 364, 365, 4263 370, 371, 112, 109, 323, 327, 370, 109, 116, 132, 4264 111, 114, 149, 164, 278, 278, 115, 134, 116, 132, 4265 109, 116, 132, 116, 132, 116, 132, 312, 132, 319, 4266 320, 321, 322, 332, 333, 334, 335, 227, 318, 331, 4267 64, 311, 111, 312, 349, 350, 312, 312, 173, 134, 4268 109, 312, 349, 312, 312, 227, 309, 109, 109, 226, 4269 227, 225, 227, 112, 134, 225, 366, 371, 173, 134, 4270 272, 277, 217, 232, 323, 327, 173, 134, 294, 227, 4271 237, 132, 227, 227, 292, 40, 111, 225, 248, 249, 4272 250, 251, 366, 370, 246, 258, 274, 257, 227, 294, 4273 132, 132, 305, 134, 139, 271, 3, 135, 207, 208, 4274 222, 224, 227, 134, 311, 109, 311, 164, 319, 227, 4275 109, 134, 272, 114, 33, 34, 35, 225, 286, 287, 4276 289, 134, 129, 131, 291, 134, 228, 234, 235, 272, 4277 315, 316, 317, 109, 141, 109, 148, 109, 148, 151, 4278 109, 148, 109, 109, 148, 148, 111, 164, 169, 173, 4279 225, 275, 366, 112, 134, 82, 85, 86, 87, 109, 4280 111, 113, 114, 97, 98, 99, 100, 101, 102, 103, 4281 104, 105, 106, 131, 168, 151, 151, 118, 124, 125, 4282 120, 121, 88, 89, 90, 91, 126, 127, 92, 93, 4283 119, 128, 129, 94, 95, 130, 131, 373, 109, 149, 4284 345, 346, 347, 348, 349, 110, 116, 109, 349, 350, 4285 109, 349, 350, 134, 109, 225, 368, 112, 134, 135, 4286 111, 225, 227, 361, 362, 370, 371, 135, 109, 111, 4287 149, 319, 336, 337, 338, 339, 340, 341, 342, 343, 4288 344, 350, 351, 352, 353, 354, 355, 356, 149, 370, 4289 227, 135, 135, 149, 225, 227, 363, 272, 225, 350, 4290 363, 272, 109, 134, 134, 134, 112, 134, 72, 80, 4291 111, 113, 140, 274, 278, 279, 280, 281, 282, 134, 4292 134, 134, 134, 134, 134, 309, 110, 110, 110, 110, 4293 110, 110, 110, 318, 331, 109, 277, 112, 207, 134, 4294 309, 169, 276, 169, 276, 309, 111, 207, 311, 173, 4295 134, 207, 110, 250, 251, 112, 134, 109, 117, 149, 4296 252, 254, 318, 319, 331, 349, 357, 358, 359, 360, 4297 115, 249, 116, 132, 116, 132, 274, 114, 116, 372, 4298 131, 259, 114, 227, 264, 265, 266, 269, 270, 110, 4299 116, 173, 134, 118, 164, 134, 224, 227, 263, 362, 4300 370, 303, 304, 109, 149, 336, 110, 116, 373, 274, 4301 286, 109, 114, 274, 276, 286, 110, 116, 109, 141, 4302 110, 117, 275, 275, 275, 111, 139, 145, 164, 276, 4303 275, 112, 134, 110, 116, 110, 109, 149, 357, 110, 4304 116, 164, 111, 139, 111, 144, 145, 134, 111, 139, 4305 144, 164, 164, 151, 151, 151, 152, 152, 153, 153, 4306 154, 154, 154, 154, 155, 155, 156, 157, 158, 159, 4307 160, 117, 169, 164, 134, 346, 347, 348, 227, 345, 4308 312, 312, 164, 276, 134, 271, 134, 225, 350, 363, 4309 227, 231, 112, 112, 134, 370, 112, 109, 134, 319, 4310 337, 338, 339, 342, 352, 353, 354, 112, 134, 227, 4311 336, 340, 351, 109, 312, 355, 373, 312, 312, 373, 4312 109, 312, 355, 312, 312, 312, 312, 350, 225, 361, 4313 371, 272, 112, 116, 112, 116, 373, 225, 363, 373, 4314 260, 261, 262, 263, 260, 260, 272, 164, 134, 111, 4315 274, 117, 116, 372, 278, 80, 111, 117, 282, 29, 4316 209, 210, 272, 260, 139, 309, 139, 311, 109, 349, 4317 350, 109, 349, 350, 141, 350, 173, 264, 110, 110, 4318 110, 110, 112, 173, 207, 173, 114, 132, 132, 111, 4319 319, 358, 359, 360, 162, 163, 227, 357, 253, 254, 4320 253, 312, 312, 274, 312, 248, 274, 115, 163, 258, 4321 135, 135, 139, 222, 135, 135, 260, 109, 149, 370, 4322 135, 115, 227, 287, 288, 135, 134, 134, 109, 135, 4323 110, 316, 169, 170, 117, 132, 111, 141, 200, 201, 4324 202, 110, 116, 110, 134, 117, 110, 110, 110, 164, 4325 227, 114, 151, 166, 164, 165, 167, 116, 135, 134, 4326 134, 110, 116, 164, 134, 115, 162, 117, 264, 110, 4327 110, 110, 345, 264, 110, 260, 225, 363, 111, 118, 4328 149, 164, 164, 227, 342, 264, 110, 110, 110, 110, 4329 110, 110, 110, 7, 227, 336, 340, 351, 134, 134, 4330 373, 134, 134, 110, 135, 135, 135, 135, 277, 135, 4331 162, 163, 164, 310, 134, 278, 280, 115, 134, 211, 4332 274, 40, 41, 43, 46, 47, 48, 49, 50, 51, 4333 52, 53, 57, 61, 62, 72, 111, 128, 170, 171, 4334 172, 173, 174, 175, 177, 178, 190, 192, 193, 198, 4335 212, 308, 29, 135, 131, 277, 134, 134, 110, 135, 4336 173, 248, 112, 110, 110, 110, 357, 252, 115, 259, 4337 372, 110, 116, 112, 112, 135, 227, 116, 373, 290, 4338 110, 286, 215, 217, 225, 298, 299, 300, 301, 292, 4339 110, 110, 117, 163, 109, 110, 117, 116, 139, 164, 4340 164, 279, 116, 135, 167, 112, 139, 146, 147, 164, 4341 145, 135, 146, 162, 166, 135, 109, 349, 350, 135, 4342 135, 134, 135, 135, 135, 164, 110, 135, 109, 349, 4343 350, 109, 355, 109, 355, 350, 226, 7, 118, 135, 4344 164, 264, 264, 263, 267, 267, 268, 116, 116, 110, 4345 110, 112, 96, 123, 135, 135, 146, 278, 164, 116, 4346 132, 212, 216, 227, 231, 109, 109, 171, 109, 109, 4347 72, 132, 72, 132, 72, 118, 170, 109, 173, 165, 4348 165, 117, 112, 143, 132, 135, 134, 135, 211, 110, 4349 164, 264, 264, 312, 110, 115, 109, 349, 350, 115, 4350 134, 110, 134, 135, 309, 115, 134, 135, 135, 110, 4351 114, 200, 112, 163, 132, 200, 202, 110, 116, 135, 4352 372, 165, 112, 135, 85, 113, 116, 135, 135, 112, 4353 135, 110, 134, 110, 110, 112, 112, 112, 135, 110, 4354 134, 134, 134, 164, 164, 135, 112, 135, 135, 135, 4355 135, 134, 134, 163, 163, 112, 112, 135, 135, 274, 4356 227, 169, 169, 47, 169, 134, 132, 132, 132, 169, 4357 132, 169, 58, 59, 60, 194, 195, 196, 132, 63, 4358 132, 312, 114, 175, 115, 132, 135, 135, 134, 96, 4359 269, 270, 110, 299, 116, 132, 116, 132, 115, 297, 4360 117, 141, 110, 110, 117, 167, 112, 115, 112, 111, 4361 147, 111, 147, 147, 112, 112, 112, 264, 112, 264, 4362 264, 264, 135, 135, 112, 112, 110, 110, 112, 116, 4363 96, 263, 96, 135, 112, 112, 110, 110, 109, 110, 4364 170, 191, 212, 132, 110, 109, 109, 173, 196, 58, 4365 59, 164, 171, 144, 110, 110, 264, 114, 134, 134, 4366 298, 141, 203, 109, 132, 203, 135, 117, 134, 134, 4367 135, 135, 135, 135, 112, 112, 134, 135, 112, 171, 4368 44, 45, 114, 181, 182, 183, 169, 171, 135, 110, 4369 170, 114, 183, 96, 134, 96, 134, 109, 109, 132, 4370 115, 135, 134, 272, 309, 115, 116, 117, 163, 110, 4371 112, 164, 146, 146, 110, 110, 110, 110, 267, 42, 4372 163, 179, 180, 310, 117, 134, 171, 181, 110, 132, 4373 171, 132, 134, 110, 134, 110, 134, 96, 134, 96, 4374 134, 132, 110, 298, 141, 139, 204, 110, 132, 117, 4375 135, 135, 171, 96, 116, 117, 135, 205, 206, 212, 4376 132, 170, 170, 205, 173, 197, 225, 366, 173, 197, 4377 110, 134, 110, 134, 115, 110, 116, 164, 112, 112, 4378 163, 179, 182, 184, 185, 134, 132, 182, 186, 187, 4379 135, 109, 149, 309, 357, 139, 135, 173, 197, 173, 4380 197, 109, 132, 139, 171, 176, 115, 182, 212, 170, 4381 56, 176, 189, 115, 182, 110, 227, 110, 135, 135, 4382 292, 171, 176, 132, 188, 189, 176, 189, 173, 173, 4383 110, 110, 110, 188, 135, 135, 173, 173, 135, 135 4255 4384 }; 4256 4385 … … 5089 5218 5090 5219 /* Line 1806 of yacc.c */ 5091 #line 29 2"parser.yy"5220 #line 290 "parser.yy" 5092 5221 { 5093 5222 typedefTable.enterScope(); … … 5098 5227 5099 5228 /* Line 1806 of yacc.c */ 5100 #line 29 8"parser.yy"5229 #line 296 "parser.yy" 5101 5230 { 5102 5231 typedefTable.leaveScope(); … … 5107 5236 5108 5237 /* Line 1806 of yacc.c */ 5238 #line 305 "parser.yy" 5239 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); } 5240 break; 5241 5242 case 5: 5243 5244 /* Line 1806 of yacc.c */ 5245 #line 306 "parser.yy" 5246 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); } 5247 break; 5248 5249 case 6: 5250 5251 /* Line 1806 of yacc.c */ 5109 5252 #line 307 "parser.yy" 5110 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }5111 break;5112 5113 case 5:5114 5115 /* Line 1806 of yacc.c */5116 #line 308 "parser.yy"5117 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }5118 break;5119 5120 case 6:5121 5122 /* Line 1806 of yacc.c */5123 #line 309 "parser.yy"5124 5253 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); } 5125 5254 break; … … 5128 5257 5129 5258 /* Line 1806 of yacc.c */ 5130 #line 33 4"parser.yy"5259 #line 332 "parser.yy" 5131 5260 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); } 5132 5261 break; … … 5135 5264 5136 5265 /* Line 1806 of yacc.c */ 5137 #line 33 5"parser.yy"5266 #line 333 "parser.yy" 5138 5267 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5139 5268 break; 5140 5269 5141 5270 case 18: 5271 5272 /* Line 1806 of yacc.c */ 5273 #line 340 "parser.yy" 5274 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5275 break; 5276 5277 case 19: 5142 5278 5143 5279 /* Line 1806 of yacc.c */ … … 5146 5282 break; 5147 5283 5148 case 19:5284 case 20: 5149 5285 5150 5286 /* Line 1806 of yacc.c */ 5151 5287 #line 344 "parser.yy" 5152 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok)); }5153 break; 5154 5155 case 2 0:5288 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5289 break; 5290 5291 case 21: 5156 5292 5157 5293 /* Line 1806 of yacc.c */ 5158 5294 #line 346 "parser.yy" 5159 { (yyval.en) = (yyvsp[(2) - (3)].en); }5160 break;5161 5162 case 21:5163 5164 /* Line 1806 of yacc.c */5165 #line 348 "parser.yy"5166 5295 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5167 5296 break; … … 5170 5299 5171 5300 /* Line 1806 of yacc.c */ 5301 #line 356 "parser.yy" 5302 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5303 break; 5304 5305 case 24: 5306 5307 /* Line 1806 of yacc.c */ 5172 5308 #line 358 "parser.yy" 5173 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }5174 break;5175 5176 case 24:5177 5178 /* Line 1806 of yacc.c */5179 #line 360 "parser.yy"5180 5309 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5181 5310 break; … … 5184 5313 5185 5314 /* Line 1806 of yacc.c */ 5186 #line 36 4"parser.yy"5315 #line 362 "parser.yy" 5187 5316 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5188 5317 break; … … 5191 5320 5192 5321 /* Line 1806 of yacc.c */ 5193 #line 36 7"parser.yy"5322 #line 365 "parser.yy" 5194 5323 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5195 5324 break; … … 5198 5327 5199 5328 /* Line 1806 of yacc.c */ 5329 #line 368 "parser.yy" 5330 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5331 break; 5332 5333 case 30: 5334 5335 /* Line 1806 of yacc.c */ 5200 5336 #line 370 "parser.yy" 5201 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: IncrPost ), (yyvsp[(1) - (2)].en) ); }5202 break; 5203 5204 case 3 0:5337 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5338 break; 5339 5340 case 31: 5205 5341 5206 5342 /* Line 1806 of yacc.c */ 5207 5343 #line 372 "parser.yy" 5208 { (yyval.en) = new Compo siteExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }5209 break; 5210 5211 case 3 1:5344 { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); } 5345 break; 5346 5347 case 32: 5212 5348 5213 5349 /* Line 1806 of yacc.c */ 5214 5350 #line 374 "parser.yy" 5215 { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }5216 break;5217 5218 case 32:5219 5220 /* Line 1806 of yacc.c */5221 #line 376 "parser.yy"5222 5351 { 5223 5352 Token fn; fn.str = new std::string( "?{}" ); // location undefined … … 5229 5358 5230 5359 /* Line 1806 of yacc.c */ 5231 #line 38 5"parser.yy"5360 #line 383 "parser.yy" 5232 5361 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 5233 5362 break; … … 5236 5365 5237 5366 /* Line 1806 of yacc.c */ 5238 #line 3 90"parser.yy"5367 #line 388 "parser.yy" 5239 5368 { (yyval.en) = 0; } 5240 5369 break; … … 5243 5372 5244 5373 /* Line 1806 of yacc.c */ 5245 #line 39 3"parser.yy"5374 #line 391 "parser.yy" 5246 5375 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); } 5247 5376 break; … … 5250 5379 5251 5380 /* Line 1806 of yacc.c */ 5381 #line 396 "parser.yy" 5382 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); } 5383 break; 5384 5385 case 39: 5386 5387 /* Line 1806 of yacc.c */ 5252 5388 #line 398 "parser.yy" 5253 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }5254 break;5255 5256 case 39:5257 5258 /* Line 1806 of yacc.c */5259 #line 400 "parser.yy"5260 5389 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5261 5390 break; … … 5264 5393 5265 5394 /* Line 1806 of yacc.c */ 5266 #line 40 5"parser.yy"5395 #line 403 "parser.yy" 5267 5396 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5268 5397 break; … … 5271 5400 5272 5401 /* Line 1806 of yacc.c */ 5273 #line 4 10"parser.yy"5402 #line 408 "parser.yy" 5274 5403 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5275 5404 break; … … 5278 5407 5279 5408 /* Line 1806 of yacc.c */ 5409 #line 412 "parser.yy" 5410 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5411 break; 5412 5413 case 44: 5414 5415 /* Line 1806 of yacc.c */ 5280 5416 #line 414 "parser.yy" 5281 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - ( 3)].tok) ), (yyvsp[(3) - (3)].en) ); }5282 break; 5283 5284 case 4 4:5417 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5418 break; 5419 5420 case 45: 5285 5421 5286 5422 /* Line 1806 of yacc.c */ 5287 5423 #line 416 "parser.yy" 5288 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5289 break; 5290 5291 case 4 5:5424 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5425 break; 5426 5427 case 46: 5292 5428 5293 5429 /* Line 1806 of yacc.c */ 5294 5430 #line 418 "parser.yy" 5295 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5296 break;5297 5298 case 46:5299 5300 /* Line 1806 of yacc.c */5301 #line 420 "parser.yy"5302 5431 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5303 5432 break; 5304 5433 5305 5434 case 48: 5435 5436 /* Line 1806 of yacc.c */ 5437 #line 426 "parser.yy" 5438 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5439 break; 5440 5441 case 49: 5306 5442 5307 5443 /* Line 1806 of yacc.c */ … … 5310 5446 break; 5311 5447 5312 case 49:5448 case 50: 5313 5449 5314 5450 /* Line 1806 of yacc.c */ 5315 5451 #line 430 "parser.yy" 5316 { (yyval.en) = (yyvsp[( 1) - (1)].constant); }5317 break; 5318 5319 case 5 0:5452 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5453 break; 5454 5455 case 51: 5320 5456 5321 5457 /* Line 1806 of yacc.c */ 5322 5458 #line 432 "parser.yy" 5459 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5460 break; 5461 5462 case 52: 5463 5464 /* Line 1806 of yacc.c */ 5465 #line 437 "parser.yy" 5466 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5467 break; 5468 5469 case 53: 5470 5471 /* Line 1806 of yacc.c */ 5472 #line 439 "parser.yy" 5323 5473 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); } 5324 5474 break; 5325 5475 5326 case 5 1:5327 5328 /* Line 1806 of yacc.c */ 5329 #line 4 34"parser.yy"5476 case 54: 5477 5478 /* Line 1806 of yacc.c */ 5479 #line 441 "parser.yy" 5330 5480 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); } 5331 5481 break; 5332 5482 5333 case 52:5334 5335 /* Line 1806 of yacc.c */5336 #line 436 "parser.yy"5337 { (yyval.en) = (yyvsp[(2) - (2)].en); }5338 break;5339 5340 case 53:5341 5342 /* Line 1806 of yacc.c */5343 #line 438 "parser.yy"5344 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5345 break;5346 5347 case 54:5348 5349 /* Line 1806 of yacc.c */5350 #line 440 "parser.yy"5351 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }5352 break;5353 5354 5483 case 55: 5355 5484 5356 5485 /* Line 1806 of yacc.c */ 5357 #line 44 2"parser.yy"5358 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: PointTo), (yyvsp[(2) - (2)].en) ); }5486 #line 443 "parser.yy" 5487 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); } 5359 5488 break; 5360 5489 … … 5362 5491 5363 5492 /* Line 1806 of yacc.c */ 5364 #line 44 8"parser.yy"5365 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en)); }5493 #line 445 "parser.yy" 5494 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5366 5495 break; 5367 5496 … … 5369 5498 5370 5499 /* Line 1806 of yacc.c */ 5371 #line 4 50"parser.yy"5372 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5500 #line 447 "parser.yy" 5501 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); } 5373 5502 break; 5374 5503 … … 5376 5505 5377 5506 /* Line 1806 of yacc.c */ 5378 #line 4 52"parser.yy"5379 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }5507 #line 449 "parser.yy" 5508 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); } 5380 5509 break; 5381 5510 … … 5383 5512 5384 5513 /* Line 1806 of yacc.c */ 5385 #line 45 4"parser.yy"5386 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - ( 1)].tok) )); }5514 #line 451 "parser.yy" 5515 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5387 5516 break; 5388 5517 … … 5390 5519 5391 5520 /* Line 1806 of yacc.c */ 5392 #line 45 6"parser.yy"5393 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5521 #line 453 "parser.yy" 5522 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5394 5523 break; 5395 5524 … … 5397 5526 5398 5527 /* Line 1806 of yacc.c */ 5399 #line 45 8"parser.yy"5400 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::A ttr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }5528 #line 455 "parser.yy" 5529 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); } 5401 5530 break; 5402 5531 … … 5404 5533 5405 5534 /* Line 1806 of yacc.c */ 5406 #line 4 60"parser.yy"5407 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }5535 #line 457 "parser.yy" 5536 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); } 5408 5537 break; 5409 5538 … … 5411 5540 5412 5541 /* Line 1806 of yacc.c */ 5413 #line 46 2"parser.yy"5414 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5542 #line 463 "parser.yy" 5543 { (yyval.en) = new OperatorNode( OperatorNode::PointTo ); } 5415 5544 break; 5416 5545 … … 5419 5548 /* Line 1806 of yacc.c */ 5420 5549 #line 464 "parser.yy" 5421 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }5550 { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); } 5422 5551 break; 5423 5552 … … 5425 5554 5426 5555 /* Line 1806 of yacc.c */ 5427 #line 46 8"parser.yy"5428 { (yyval.en) = new OperatorNode( OperatorNode::A ddressOf); }5556 #line 466 "parser.yy" 5557 { (yyval.en) = new OperatorNode( OperatorNode::And ); } 5429 5558 break; 5430 5559 … … 5432 5561 5433 5562 /* Line 1806 of yacc.c */ 5434 #line 4 69"parser.yy"5563 #line 470 "parser.yy" 5435 5564 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5436 5565 break; … … 5439 5568 5440 5569 /* Line 1806 of yacc.c */ 5441 #line 47 0"parser.yy"5570 #line 471 "parser.yy" 5442 5571 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5443 5572 break; … … 5446 5575 5447 5576 /* Line 1806 of yacc.c */ 5448 #line 471 "parser.yy" 5577 #line 472 "parser.yy" 5578 { (yyval.en) = new OperatorNode( OperatorNode::Neg ); } 5579 break; 5580 5581 case 69: 5582 5583 /* Line 1806 of yacc.c */ 5584 #line 473 "parser.yy" 5449 5585 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5450 break;5451 5452 case 70:5453 5454 /* Line 1806 of yacc.c */5455 #line 477 "parser.yy"5456 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5457 5586 break; 5458 5587 … … 5464 5593 break; 5465 5594 5466 case 73: 5467 5468 /* Line 1806 of yacc.c */ 5469 #line 485 "parser.yy" 5595 case 72: 5596 5597 /* Line 1806 of yacc.c */ 5598 #line 481 "parser.yy" 5599 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); } 5600 break; 5601 5602 case 74: 5603 5604 /* Line 1806 of yacc.c */ 5605 #line 487 "parser.yy" 5470 5606 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5471 5607 break; 5472 5608 5473 case 7 4:5474 5475 /* Line 1806 of yacc.c */ 5476 #line 48 7"parser.yy"5609 case 75: 5610 5611 /* Line 1806 of yacc.c */ 5612 #line 489 "parser.yy" 5477 5613 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5478 5614 break; 5479 5615 5480 case 7 5:5481 5482 /* Line 1806 of yacc.c */ 5483 #line 4 89"parser.yy"5616 case 76: 5617 5618 /* Line 1806 of yacc.c */ 5619 #line 491 "parser.yy" 5484 5620 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5485 5621 break; 5486 5622 5487 case 7 7:5488 5489 /* Line 1806 of yacc.c */ 5490 #line 49 5"parser.yy"5623 case 78: 5624 5625 /* Line 1806 of yacc.c */ 5626 #line 497 "parser.yy" 5491 5627 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5492 5628 break; 5493 5629 5494 case 7 8:5495 5496 /* Line 1806 of yacc.c */ 5497 #line 49 7"parser.yy"5630 case 79: 5631 5632 /* Line 1806 of yacc.c */ 5633 #line 499 "parser.yy" 5498 5634 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5499 5635 break; 5500 5636 5501 case 8 0:5502 5503 /* Line 1806 of yacc.c */ 5504 #line 50 3"parser.yy"5637 case 81: 5638 5639 /* Line 1806 of yacc.c */ 5640 #line 505 "parser.yy" 5505 5641 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5506 5642 break; 5507 5643 5508 case 8 1:5509 5510 /* Line 1806 of yacc.c */ 5511 #line 50 5"parser.yy"5644 case 82: 5645 5646 /* Line 1806 of yacc.c */ 5647 #line 507 "parser.yy" 5512 5648 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5513 5649 break; 5514 5650 5515 case 8 3:5516 5517 /* Line 1806 of yacc.c */ 5518 #line 51 1"parser.yy"5651 case 84: 5652 5653 /* Line 1806 of yacc.c */ 5654 #line 513 "parser.yy" 5519 5655 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5520 5656 break; 5521 5657 5522 case 8 4:5523 5524 /* Line 1806 of yacc.c */ 5525 #line 51 3"parser.yy"5658 case 85: 5659 5660 /* Line 1806 of yacc.c */ 5661 #line 515 "parser.yy" 5526 5662 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5527 5663 break; 5528 5664 5529 case 8 5:5530 5531 /* Line 1806 of yacc.c */ 5532 #line 51 5"parser.yy"5665 case 86: 5666 5667 /* Line 1806 of yacc.c */ 5668 #line 517 "parser.yy" 5533 5669 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5534 5670 break; 5535 5671 5536 case 8 6:5537 5538 /* Line 1806 of yacc.c */ 5539 #line 51 7"parser.yy"5672 case 87: 5673 5674 /* Line 1806 of yacc.c */ 5675 #line 519 "parser.yy" 5540 5676 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5541 5677 break; 5542 5678 5543 case 8 8:5544 5545 /* Line 1806 of yacc.c */ 5546 #line 52 3"parser.yy"5679 case 89: 5680 5681 /* Line 1806 of yacc.c */ 5682 #line 525 "parser.yy" 5547 5683 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5548 5684 break; 5549 5685 5550 case 89:5551 5552 /* Line 1806 of yacc.c */ 5553 #line 52 5"parser.yy"5686 case 90: 5687 5688 /* Line 1806 of yacc.c */ 5689 #line 527 "parser.yy" 5554 5690 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5555 5691 break; 5556 5692 5557 case 9 1:5558 5559 /* Line 1806 of yacc.c */ 5560 #line 53 1"parser.yy"5693 case 92: 5694 5695 /* Line 1806 of yacc.c */ 5696 #line 533 "parser.yy" 5561 5697 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5562 5698 break; 5563 5699 5564 case 9 3:5565 5566 /* Line 1806 of yacc.c */ 5567 #line 53 7"parser.yy"5700 case 94: 5701 5702 /* Line 1806 of yacc.c */ 5703 #line 539 "parser.yy" 5568 5704 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5569 5705 break; 5570 5706 5571 case 9 5:5572 5573 /* Line 1806 of yacc.c */ 5574 #line 54 3"parser.yy"5707 case 96: 5708 5709 /* Line 1806 of yacc.c */ 5710 #line 545 "parser.yy" 5575 5711 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5576 5712 break; 5577 5713 5578 case 9 7:5579 5580 /* Line 1806 of yacc.c */ 5581 #line 5 49"parser.yy"5714 case 98: 5715 5716 /* Line 1806 of yacc.c */ 5717 #line 551 "parser.yy" 5582 5718 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5583 5719 break; 5584 5720 5585 case 99:5586 5587 /* Line 1806 of yacc.c */ 5588 #line 55 5"parser.yy"5721 case 100: 5722 5723 /* Line 1806 of yacc.c */ 5724 #line 557 "parser.yy" 5589 5725 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5590 5726 break; 5591 5727 5592 case 10 1:5593 5594 /* Line 1806 of yacc.c */ 5595 #line 56 1"parser.yy"5728 case 102: 5729 5730 /* Line 1806 of yacc.c */ 5731 #line 563 "parser.yy" 5596 5732 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5597 5733 break; 5598 5734 5599 case 10 2:5600 5601 /* Line 1806 of yacc.c */ 5602 #line 56 3"parser.yy"5735 case 103: 5736 5737 /* Line 1806 of yacc.c */ 5738 #line 565 "parser.yy" 5603 5739 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5604 5740 break; 5605 5741 5606 case 10 3:5607 5608 /* Line 1806 of yacc.c */ 5609 #line 56 5"parser.yy"5742 case 104: 5743 5744 /* Line 1806 of yacc.c */ 5745 #line 567 "parser.yy" 5610 5746 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5611 5747 break; 5612 5748 5613 case 10 6:5614 5615 /* Line 1806 of yacc.c */ 5616 #line 57 6"parser.yy"5749 case 107: 5750 5751 /* Line 1806 of yacc.c */ 5752 #line 578 "parser.yy" 5617 5753 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5618 5754 break; 5619 5755 5620 case 10 7:5621 5622 /* Line 1806 of yacc.c */ 5623 #line 5 78"parser.yy"5756 case 108: 5757 5758 /* Line 1806 of yacc.c */ 5759 #line 580 "parser.yy" 5624 5760 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5625 5761 break; 5626 5762 5627 case 10 8:5628 5629 /* Line 1806 of yacc.c */ 5630 #line 58 0"parser.yy"5763 case 109: 5764 5765 /* Line 1806 of yacc.c */ 5766 #line 582 "parser.yy" 5631 5767 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5632 5768 break; 5633 5769 5634 case 1 09:5635 5636 /* Line 1806 of yacc.c */ 5637 #line 58 5"parser.yy"5770 case 110: 5771 5772 /* Line 1806 of yacc.c */ 5773 #line 587 "parser.yy" 5638 5774 { (yyval.en) = new NullExprNode; } 5639 5775 break; 5640 5776 5641 case 11 1:5642 5643 /* Line 1806 of yacc.c */ 5644 #line 59 3"parser.yy"5777 case 112: 5778 5779 /* Line 1806 of yacc.c */ 5780 #line 595 "parser.yy" 5645 5781 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5646 5782 break; 5647 5783 5648 case 11 2:5649 5650 /* Line 1806 of yacc.c */ 5651 #line 59 5"parser.yy"5784 case 113: 5785 5786 /* Line 1806 of yacc.c */ 5787 #line 597 "parser.yy" 5652 5788 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5653 5789 break; 5654 5790 5655 case 11 3:5656 5657 /* Line 1806 of yacc.c */ 5658 #line 59 7"parser.yy"5791 case 114: 5792 5793 /* Line 1806 of yacc.c */ 5794 #line 599 "parser.yy" 5659 5795 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5660 5796 break; 5661 5797 5662 case 11 4:5663 5664 /* Line 1806 of yacc.c */ 5665 #line 599"parser.yy"5798 case 115: 5799 5800 /* Line 1806 of yacc.c */ 5801 #line 601 "parser.yy" 5666 5802 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5667 5803 break; 5668 5804 5669 case 11 6:5670 5671 /* Line 1806 of yacc.c */ 5672 #line 60 5"parser.yy"5805 case 117: 5806 5807 /* Line 1806 of yacc.c */ 5808 #line 607 "parser.yy" 5673 5809 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5674 5810 break; 5675 5811 5676 case 11 7:5677 5678 /* Line 1806 of yacc.c */ 5679 #line 6 09"parser.yy"5812 case 118: 5813 5814 /* Line 1806 of yacc.c */ 5815 #line 611 "parser.yy" 5680 5816 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5681 5817 break; 5682 5818 5683 case 11 8:5684 5685 /* Line 1806 of yacc.c */ 5686 #line 61 0"parser.yy"5819 case 119: 5820 5821 /* Line 1806 of yacc.c */ 5822 #line 612 "parser.yy" 5687 5823 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5688 5824 break; 5689 5825 5690 case 1 19:5691 5692 /* Line 1806 of yacc.c */ 5693 #line 61 1"parser.yy"5826 case 120: 5827 5828 /* Line 1806 of yacc.c */ 5829 #line 613 "parser.yy" 5694 5830 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5695 5831 break; 5696 5832 5697 case 12 0:5698 5699 /* Line 1806 of yacc.c */ 5700 #line 61 2"parser.yy"5833 case 121: 5834 5835 /* Line 1806 of yacc.c */ 5836 #line 614 "parser.yy" 5701 5837 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5702 5838 break; 5703 5839 5704 case 12 1:5705 5706 /* Line 1806 of yacc.c */ 5707 #line 61 3"parser.yy"5840 case 122: 5841 5842 /* Line 1806 of yacc.c */ 5843 #line 615 "parser.yy" 5708 5844 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5709 5845 break; 5710 5846 5711 case 12 2:5712 5713 /* Line 1806 of yacc.c */ 5714 #line 61 4"parser.yy"5847 case 123: 5848 5849 /* Line 1806 of yacc.c */ 5850 #line 616 "parser.yy" 5715 5851 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5716 5852 break; 5717 5853 5718 case 12 3:5719 5720 /* Line 1806 of yacc.c */ 5721 #line 61 5"parser.yy"5854 case 124: 5855 5856 /* Line 1806 of yacc.c */ 5857 #line 617 "parser.yy" 5722 5858 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5723 5859 break; 5724 5860 5725 case 12 4:5726 5727 /* Line 1806 of yacc.c */ 5728 #line 61 6"parser.yy"5861 case 125: 5862 5863 /* Line 1806 of yacc.c */ 5864 #line 618 "parser.yy" 5729 5865 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5730 5866 break; 5731 5867 5732 case 12 5:5733 5734 /* Line 1806 of yacc.c */ 5735 #line 61 7"parser.yy"5868 case 126: 5869 5870 /* Line 1806 of yacc.c */ 5871 #line 619 "parser.yy" 5736 5872 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5737 5873 break; 5738 5874 5739 case 12 6:5740 5741 /* Line 1806 of yacc.c */ 5742 #line 6 18"parser.yy"5875 case 127: 5876 5877 /* Line 1806 of yacc.c */ 5878 #line 620 "parser.yy" 5743 5879 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5744 5880 break; 5745 5881 5746 case 12 8:5747 5748 /* Line 1806 of yacc.c */ 5749 #line 62 4"parser.yy"5882 case 129: 5883 5884 /* Line 1806 of yacc.c */ 5885 #line 626 "parser.yy" 5750 5886 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5751 5887 break; 5752 5888 5753 case 1 29:5754 5755 /* Line 1806 of yacc.c */ 5756 #line 6 29"parser.yy"5889 case 130: 5890 5891 /* Line 1806 of yacc.c */ 5892 #line 631 "parser.yy" 5757 5893 { (yyval.en) = 0; } 5758 5894 break; 5759 5895 5760 case 13 3:5761 5762 /* Line 1806 of yacc.c */ 5763 #line 6 38"parser.yy"5896 case 134: 5897 5898 /* Line 1806 of yacc.c */ 5899 #line 640 "parser.yy" 5764 5900 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5765 5901 break; 5766 5902 5767 case 1 39:5768 5769 /* Line 1806 of yacc.c */ 5770 #line 64 5"parser.yy"5903 case 140: 5904 5905 /* Line 1806 of yacc.c */ 5906 #line 647 "parser.yy" 5771 5907 { 5772 5908 Token fn; fn.str = new std::string( "^?{}" ); // location undefined 5773 5909 (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ), 5774 (ExpressionNode *)( new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), (yyvsp[(2) - (6)].en) ))->set_link( (yyvsp[(4) - (6)].en) ) ), 0 );5910 (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ), 0 ); 5775 5911 } 5776 5912 break; 5777 5913 5778 case 14 0:5779 5780 /* Line 1806 of yacc.c */ 5781 #line 65 4"parser.yy"5914 case 141: 5915 5916 /* Line 1806 of yacc.c */ 5917 #line 657 "parser.yy" 5782 5918 { 5783 5919 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5785 5921 break; 5786 5922 5787 case 14 1:5788 5789 /* Line 1806 of yacc.c */ 5790 #line 66 1"parser.yy"5923 case 142: 5924 5925 /* Line 1806 of yacc.c */ 5926 #line 664 "parser.yy" 5791 5927 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5792 5928 break; 5793 5929 5794 case 14 2:5795 5796 /* Line 1806 of yacc.c */ 5797 #line 6 68"parser.yy"5930 case 143: 5931 5932 /* Line 1806 of yacc.c */ 5933 #line 671 "parser.yy" 5798 5934 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5799 5935 break; 5800 5936 5801 case 14 4:5802 5803 /* Line 1806 of yacc.c */ 5804 #line 67 4"parser.yy"5937 case 145: 5938 5939 /* Line 1806 of yacc.c */ 5940 #line 677 "parser.yy" 5805 5941 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5806 5942 break; 5807 5943 5808 case 14 5:5809 5810 /* Line 1806 of yacc.c */ 5811 #line 6 79"parser.yy"5944 case 146: 5945 5946 /* Line 1806 of yacc.c */ 5947 #line 682 "parser.yy" 5812 5948 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5813 5949 break; 5814 5950 5815 case 146:5816 5817 /* Line 1806 of yacc.c */5818 #line 681 "parser.yy"5819 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }5820 break;5821 5822 5951 case 147: 5823 5952 5824 5953 /* Line 1806 of yacc.c */ 5825 #line 683 "parser.yy" 5954 #line 684 "parser.yy" 5955 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) )/*->set_extension( true )*/; } 5956 break; 5957 5958 case 148: 5959 5960 /* Line 1806 of yacc.c */ 5961 #line 686 "parser.yy" 5826 5962 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5827 5963 break; 5828 5964 5829 case 15 0:5830 5831 /* Line 1806 of yacc.c */ 5832 #line 69 0"parser.yy"5965 case 151: 5966 5967 /* Line 1806 of yacc.c */ 5968 #line 693 "parser.yy" 5833 5969 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5834 5970 break; 5835 5971 5836 case 15 1:5837 5838 /* Line 1806 of yacc.c */ 5839 #line 69 5"parser.yy"5972 case 152: 5973 5974 /* Line 1806 of yacc.c */ 5975 #line 698 "parser.yy" 5840 5976 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5841 5977 break; 5842 5978 5843 case 15 2:5844 5845 /* Line 1806 of yacc.c */ 5846 #line 70 1"parser.yy"5979 case 153: 5980 5981 /* Line 1806 of yacc.c */ 5982 #line 704 "parser.yy" 5847 5983 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5848 5984 break; 5849 5985 5850 case 15 3:5851 5852 /* Line 1806 of yacc.c */ 5853 #line 70 3"parser.yy"5986 case 154: 5987 5988 /* Line 1806 of yacc.c */ 5989 #line 706 "parser.yy" 5854 5990 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5855 5991 break; 5856 5992 5857 case 15 4:5858 5859 /* Line 1806 of yacc.c */ 5860 #line 70 5"parser.yy"5993 case 155: 5994 5995 /* Line 1806 of yacc.c */ 5996 #line 708 "parser.yy" 5861 5997 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5862 5998 break; 5863 5999 5864 case 15 5:5865 5866 /* Line 1806 of yacc.c */ 5867 #line 7 07"parser.yy"6000 case 156: 6001 6002 /* Line 1806 of yacc.c */ 6003 #line 710 "parser.yy" 5868 6004 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ } 5869 6005 break; 5870 6006 5871 case 15 6:5872 5873 /* Line 1806 of yacc.c */ 5874 #line 71 2"parser.yy"6007 case 157: 6008 6009 /* Line 1806 of yacc.c */ 6010 #line 715 "parser.yy" 5875 6011 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5876 6012 break; 5877 6013 5878 case 15 7:5879 5880 /* Line 1806 of yacc.c */ 5881 #line 71 4"parser.yy"6014 case 158: 6015 6016 /* Line 1806 of yacc.c */ 6017 #line 717 "parser.yy" 5882 6018 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); } 5883 6019 break; 5884 6020 5885 case 15 8:5886 5887 /* Line 1806 of yacc.c */ 5888 #line 72 1"parser.yy"6021 case 159: 6022 6023 /* Line 1806 of yacc.c */ 6024 #line 724 "parser.yy" 5889 6025 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5890 6026 break; 5891 6027 5892 case 1 59:5893 5894 /* Line 1806 of yacc.c */ 5895 #line 72 3"parser.yy"6028 case 160: 6029 6030 /* Line 1806 of yacc.c */ 6031 #line 726 "parser.yy" 5896 6032 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5897 6033 break; 5898 6034 5899 case 16 2:5900 5901 /* Line 1806 of yacc.c */ 5902 #line 73 0"parser.yy"6035 case 163: 6036 6037 /* Line 1806 of yacc.c */ 6038 #line 733 "parser.yy" 5903 6039 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); } 5904 6040 break; 5905 6041 5906 case 16 3:5907 5908 /* Line 1806 of yacc.c */ 5909 #line 73 4"parser.yy"6042 case 164: 6043 6044 /* Line 1806 of yacc.c */ 6045 #line 737 "parser.yy" 5910 6046 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); } 5911 6047 break; 5912 6048 5913 case 16 4:5914 5915 /* Line 1806 of yacc.c */ 5916 #line 73 5"parser.yy"6049 case 165: 6050 6051 /* Line 1806 of yacc.c */ 6052 #line 738 "parser.yy" 5917 6053 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 5918 6054 break; 5919 6055 5920 case 16 6:5921 5922 /* Line 1806 of yacc.c */ 5923 #line 74 1"parser.yy"6056 case 167: 6057 6058 /* Line 1806 of yacc.c */ 6059 #line 744 "parser.yy" 5924 6060 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5925 6061 break; 5926 6062 5927 case 16 7:5928 5929 /* Line 1806 of yacc.c */ 5930 #line 74 5"parser.yy"6063 case 168: 6064 6065 /* Line 1806 of yacc.c */ 6066 #line 748 "parser.yy" 5931 6067 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5932 6068 break; 5933 6069 5934 case 16 8:5935 5936 /* Line 1806 of yacc.c */ 5937 #line 75 0"parser.yy"6070 case 169: 6071 6072 /* Line 1806 of yacc.c */ 6073 #line 753 "parser.yy" 5938 6074 { (yyval.sn) = 0; } 5939 6075 break; 5940 6076 5941 case 17 0:5942 5943 /* Line 1806 of yacc.c */ 5944 #line 75 6"parser.yy"6077 case 171: 6078 6079 /* Line 1806 of yacc.c */ 6080 #line 759 "parser.yy" 5945 6081 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5946 6082 break; 5947 6083 5948 case 17 1:5949 5950 /* Line 1806 of yacc.c */ 5951 #line 7 58"parser.yy"6084 case 172: 6085 6086 /* Line 1806 of yacc.c */ 6087 #line 761 "parser.yy" 5952 6088 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5953 6089 break; 5954 6090 5955 case 17 2:5956 5957 /* Line 1806 of yacc.c */ 5958 #line 76 3"parser.yy"6091 case 173: 6092 6093 /* Line 1806 of yacc.c */ 6094 #line 766 "parser.yy" 5959 6095 { (yyval.sn) = 0; } 5960 6096 break; 5961 6097 5962 case 17 4:5963 5964 /* Line 1806 of yacc.c */ 5965 #line 7 69"parser.yy"6098 case 175: 6099 6100 /* Line 1806 of yacc.c */ 6101 #line 772 "parser.yy" 5966 6102 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5967 6103 break; 5968 6104 5969 case 17 5:5970 5971 /* Line 1806 of yacc.c */ 5972 #line 77 1"parser.yy"6105 case 176: 6106 6107 /* Line 1806 of yacc.c */ 6108 #line 774 "parser.yy" 5973 6109 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); } 5974 6110 break; 5975 6111 5976 case 17 6:5977 5978 /* Line 1806 of yacc.c */ 5979 #line 77 3"parser.yy"6112 case 177: 6113 6114 /* Line 1806 of yacc.c */ 6115 #line 776 "parser.yy" 5980 6116 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5981 6117 break; 5982 6118 5983 case 17 7:5984 5985 /* Line 1806 of yacc.c */ 5986 #line 77 5"parser.yy"6119 case 178: 6120 6121 /* Line 1806 of yacc.c */ 6122 #line 778 "parser.yy" 5987 6123 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); } 5988 6124 break; 5989 6125 5990 case 17 8:5991 5992 /* Line 1806 of yacc.c */ 5993 #line 78 0"parser.yy"6126 case 179: 6127 6128 /* Line 1806 of yacc.c */ 6129 #line 783 "parser.yy" 5994 6130 { (yyval.sn) = 0; } 5995 6131 break; 5996 6132 5997 case 18 0:5998 5999 /* Line 1806 of yacc.c */ 6000 #line 78 5"parser.yy"6133 case 181: 6134 6135 /* Line 1806 of yacc.c */ 6136 #line 788 "parser.yy" 6001 6137 { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); } 6002 6138 break; 6003 6139 6004 case 18 1:6005 6006 /* Line 1806 of yacc.c */ 6007 #line 78 6"parser.yy"6140 case 182: 6141 6142 /* Line 1806 of yacc.c */ 6143 #line 789 "parser.yy" 6008 6144 { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); } 6009 6145 break; 6010 6146 6011 case 18 2:6012 6013 /* Line 1806 of yacc.c */ 6014 #line 79 1"parser.yy"6147 case 183: 6148 6149 /* Line 1806 of yacc.c */ 6150 #line 794 "parser.yy" 6015 6151 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6016 6152 break; 6017 6153 6018 case 18 3:6019 6020 /* Line 1806 of yacc.c */ 6021 #line 79 3"parser.yy"6154 case 184: 6155 6156 /* Line 1806 of yacc.c */ 6157 #line 796 "parser.yy" 6022 6158 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 6023 6159 break; 6024 6160 6025 case 18 4:6026 6027 /* Line 1806 of yacc.c */ 6028 #line 79 5"parser.yy"6161 case 185: 6162 6163 /* Line 1806 of yacc.c */ 6164 #line 798 "parser.yy" 6029 6165 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 6030 6166 break; 6031 6167 6032 case 18 5:6033 6034 /* Line 1806 of yacc.c */ 6035 #line 80 0"parser.yy"6168 case 186: 6169 6170 /* Line 1806 of yacc.c */ 6171 #line 803 "parser.yy" 6036 6172 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 6037 6173 break; 6038 6174 6039 case 18 6:6040 6041 /* Line 1806 of yacc.c */ 6042 #line 80 2"parser.yy"6175 case 187: 6176 6177 /* Line 1806 of yacc.c */ 6178 #line 805 "parser.yy" 6043 6179 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 6044 6180 break; 6045 6181 6046 case 18 7:6047 6048 /* Line 1806 of yacc.c */ 6049 #line 8 07"parser.yy"6182 case 188: 6183 6184 /* Line 1806 of yacc.c */ 6185 #line 810 "parser.yy" 6050 6186 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 6051 6187 break; 6052 6188 6053 case 18 8:6054 6055 /* Line 1806 of yacc.c */ 6056 #line 81 1"parser.yy"6189 case 189: 6190 6191 /* Line 1806 of yacc.c */ 6192 #line 814 "parser.yy" 6057 6193 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 6058 6194 break; 6059 6195 6060 case 1 89:6061 6062 /* Line 1806 of yacc.c */ 6063 #line 81 4"parser.yy"6196 case 190: 6197 6198 /* Line 1806 of yacc.c */ 6199 #line 817 "parser.yy" 6064 6200 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 6065 6201 break; 6066 6202 6067 case 19 0:6068 6069 /* Line 1806 of yacc.c */ 6070 #line 8 18"parser.yy"6203 case 191: 6204 6205 /* Line 1806 of yacc.c */ 6206 #line 821 "parser.yy" 6071 6207 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 6072 6208 break; 6073 6209 6074 case 19 1:6075 6076 /* Line 1806 of yacc.c */ 6077 #line 82 1"parser.yy"6210 case 192: 6211 6212 /* Line 1806 of yacc.c */ 6213 #line 824 "parser.yy" 6078 6214 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6079 6215 break; 6080 6216 6081 case 19 2:6082 6083 /* Line 1806 of yacc.c */ 6084 #line 82 5"parser.yy"6217 case 193: 6218 6219 /* Line 1806 of yacc.c */ 6220 #line 828 "parser.yy" 6085 6221 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6086 6222 break; 6087 6223 6088 case 19 3:6089 6090 /* Line 1806 of yacc.c */ 6091 #line 8 27"parser.yy"6224 case 194: 6225 6226 /* Line 1806 of yacc.c */ 6227 #line 830 "parser.yy" 6092 6228 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6093 6229 break; 6094 6230 6095 case 19 4:6096 6097 /* Line 1806 of yacc.c */ 6098 #line 8 29"parser.yy"6231 case 195: 6232 6233 /* Line 1806 of yacc.c */ 6234 #line 832 "parser.yy" 6099 6235 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6100 6236 break; 6101 6237 6102 case 19 5:6103 6104 /* Line 1806 of yacc.c */ 6105 #line 83 3"parser.yy"6238 case 196: 6239 6240 /* Line 1806 of yacc.c */ 6241 #line 836 "parser.yy" 6106 6242 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6107 6243 break; 6108 6244 6109 case 19 6:6110 6111 /* Line 1806 of yacc.c */ 6112 #line 83 5"parser.yy"6245 case 197: 6246 6247 /* Line 1806 of yacc.c */ 6248 #line 838 "parser.yy" 6113 6249 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6114 6250 break; 6115 6251 6116 case 19 7:6117 6118 /* Line 1806 of yacc.c */ 6119 #line 84 2"parser.yy"6252 case 198: 6253 6254 /* Line 1806 of yacc.c */ 6255 #line 845 "parser.yy" 6120 6256 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6121 6257 break; 6122 6258 6123 case 19 8:6124 6125 /* Line 1806 of yacc.c */ 6126 #line 84 4"parser.yy"6259 case 199: 6260 6261 /* Line 1806 of yacc.c */ 6262 #line 847 "parser.yy" 6127 6263 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6128 6264 break; 6129 6265 6130 case 199:6131 6132 /* Line 1806 of yacc.c */ 6133 #line 84 6"parser.yy"6266 case 200: 6267 6268 /* Line 1806 of yacc.c */ 6269 #line 849 "parser.yy" 6134 6270 { 6135 6271 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6138 6274 break; 6139 6275 6140 case 20 1:6141 6142 /* Line 1806 of yacc.c */ 6143 #line 8 57"parser.yy"6276 case 202: 6277 6278 /* Line 1806 of yacc.c */ 6279 #line 860 "parser.yy" 6144 6280 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6145 6281 break; 6146 6282 6147 case 20 2:6148 6149 /* Line 1806 of yacc.c */ 6150 #line 8 59"parser.yy"6283 case 203: 6284 6285 /* Line 1806 of yacc.c */ 6286 #line 862 "parser.yy" 6151 6287 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6152 6288 break; 6153 6289 6154 case 20 3:6155 6156 /* Line 1806 of yacc.c */ 6157 #line 86 1"parser.yy"6290 case 204: 6291 6292 /* Line 1806 of yacc.c */ 6293 #line 864 "parser.yy" 6158 6294 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6159 6295 break; 6160 6296 6161 case 20 4:6162 6163 /* Line 1806 of yacc.c */ 6164 #line 86 3"parser.yy"6297 case 205: 6298 6299 /* Line 1806 of yacc.c */ 6300 #line 866 "parser.yy" 6165 6301 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6166 6302 break; 6167 6303 6168 case 20 5:6169 6170 /* Line 1806 of yacc.c */ 6171 #line 8 68"parser.yy"6304 case 206: 6305 6306 /* Line 1806 of yacc.c */ 6307 #line 871 "parser.yy" 6172 6308 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6173 6309 break; 6174 6310 6175 case 20 6:6176 6177 /* Line 1806 of yacc.c */ 6178 #line 87 0"parser.yy"6311 case 207: 6312 6313 /* Line 1806 of yacc.c */ 6314 #line 873 "parser.yy" 6179 6315 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6180 6316 break; 6181 6317 6182 case 20 7:6183 6184 /* Line 1806 of yacc.c */ 6185 #line 87 2"parser.yy"6318 case 208: 6319 6320 /* Line 1806 of yacc.c */ 6321 #line 875 "parser.yy" 6186 6322 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6187 6323 break; 6188 6324 6189 case 20 8:6190 6191 /* Line 1806 of yacc.c */ 6192 #line 87 4"parser.yy"6325 case 209: 6326 6327 /* Line 1806 of yacc.c */ 6328 #line 877 "parser.yy" 6193 6329 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6194 6330 break; 6195 6331 6196 case 2 09:6197 6198 /* Line 1806 of yacc.c */ 6199 #line 8 79"parser.yy"6332 case 210: 6333 6334 /* Line 1806 of yacc.c */ 6335 #line 882 "parser.yy" 6200 6336 { 6201 6337 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6204 6340 break; 6205 6341 6206 case 21 1:6207 6208 /* Line 1806 of yacc.c */ 6209 #line 89 3"parser.yy"6342 case 212: 6343 6344 /* Line 1806 of yacc.c */ 6345 #line 896 "parser.yy" 6210 6346 { 6211 6347 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6214 6350 break; 6215 6351 6216 case 21 2:6217 6218 /* Line 1806 of yacc.c */ 6219 #line 898"parser.yy"6352 case 213: 6353 6354 /* Line 1806 of yacc.c */ 6355 #line 901 "parser.yy" 6220 6356 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6221 6357 break; 6222 6358 6223 case 21 3:6224 6225 /* Line 1806 of yacc.c */ 6226 #line 90 0"parser.yy"6359 case 214: 6360 6361 /* Line 1806 of yacc.c */ 6362 #line 903 "parser.yy" 6227 6363 { 6228 6364 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6231 6367 break; 6232 6368 6233 case 21 5:6234 6235 /* Line 1806 of yacc.c */ 6236 #line 9 09"parser.yy"6369 case 216: 6370 6371 /* Line 1806 of yacc.c */ 6372 #line 912 "parser.yy" 6237 6373 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6238 6374 break; 6239 6375 6240 case 21 6:6241 6242 /* Line 1806 of yacc.c */ 6243 #line 91 1"parser.yy"6376 case 217: 6377 6378 /* Line 1806 of yacc.c */ 6379 #line 914 "parser.yy" 6244 6380 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6245 6381 break; 6246 6382 6247 case 21 7:6248 6249 /* Line 1806 of yacc.c */ 6250 #line 91 3"parser.yy"6383 case 218: 6384 6385 /* Line 1806 of yacc.c */ 6386 #line 916 "parser.yy" 6251 6387 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6252 6388 break; 6253 6389 6254 case 21 8:6255 6256 /* Line 1806 of yacc.c */ 6257 #line 91 5"parser.yy"6390 case 219: 6391 6392 /* Line 1806 of yacc.c */ 6393 #line 918 "parser.yy" 6258 6394 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); } 6259 6395 break; 6260 6396 6261 case 2 19:6262 6263 /* Line 1806 of yacc.c */ 6264 #line 9 17"parser.yy"6397 case 220: 6398 6399 /* Line 1806 of yacc.c */ 6400 #line 920 "parser.yy" 6265 6401 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); } 6266 6402 break; 6267 6403 6268 case 22 0:6269 6270 /* Line 1806 of yacc.c */ 6271 #line 92 2"parser.yy"6404 case 221: 6405 6406 /* Line 1806 of yacc.c */ 6407 #line 925 "parser.yy" 6272 6408 { (yyval.flag) = false; } 6273 6409 break; 6274 6410 6275 case 22 1:6276 6277 /* Line 1806 of yacc.c */ 6278 #line 92 4"parser.yy"6411 case 222: 6412 6413 /* Line 1806 of yacc.c */ 6414 #line 927 "parser.yy" 6279 6415 { (yyval.flag) = true; } 6280 6416 break; 6281 6417 6282 case 22 2:6283 6284 /* Line 1806 of yacc.c */ 6285 #line 9 29"parser.yy"6418 case 223: 6419 6420 /* Line 1806 of yacc.c */ 6421 #line 932 "parser.yy" 6286 6422 { (yyval.en) = 0; } 6287 6423 break; 6288 6424 6289 case 22 5:6290 6291 /* Line 1806 of yacc.c */ 6292 #line 93 6"parser.yy"6425 case 226: 6426 6427 /* Line 1806 of yacc.c */ 6428 #line 939 "parser.yy" 6293 6429 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6294 6430 break; 6295 6431 6296 case 22 6:6297 6298 /* Line 1806 of yacc.c */ 6299 #line 94 1"parser.yy"6432 case 227: 6433 6434 /* Line 1806 of yacc.c */ 6435 #line 944 "parser.yy" 6300 6436 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); } 6301 6437 break; 6302 6438 6303 case 22 7:6304 6305 /* Line 1806 of yacc.c */ 6306 #line 94 3"parser.yy"6439 case 228: 6440 6441 /* Line 1806 of yacc.c */ 6442 #line 946 "parser.yy" 6307 6443 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); } 6308 6444 break; 6309 6445 6310 case 22 8:6311 6312 /* Line 1806 of yacc.c */ 6313 #line 9 48"parser.yy"6446 case 229: 6447 6448 /* Line 1806 of yacc.c */ 6449 #line 951 "parser.yy" 6314 6450 { (yyval.constant) = 0; } 6315 6451 break; 6316 6452 6317 case 2 29:6318 6319 /* Line 1806 of yacc.c */ 6320 #line 95 0"parser.yy"6453 case 230: 6454 6455 /* Line 1806 of yacc.c */ 6456 #line 953 "parser.yy" 6321 6457 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6322 6458 break; 6323 6459 6324 case 23 0:6325 6326 /* Line 1806 of yacc.c */ 6327 #line 95 2"parser.yy"6460 case 231: 6461 6462 /* Line 1806 of yacc.c */ 6463 #line 955 "parser.yy" 6328 6464 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6329 6465 break; 6330 6466 6331 case 23 1:6332 6333 /* Line 1806 of yacc.c */ 6334 #line 9 57"parser.yy"6467 case 232: 6468 6469 /* Line 1806 of yacc.c */ 6470 #line 960 "parser.yy" 6335 6471 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6336 6472 break; 6337 6473 6338 case 23 2:6339 6340 /* Line 1806 of yacc.c */ 6341 #line 9 59"parser.yy"6474 case 233: 6475 6476 /* Line 1806 of yacc.c */ 6477 #line 962 "parser.yy" 6342 6478 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6343 6479 break; 6344 6480 6345 case 23 3:6346 6347 /* Line 1806 of yacc.c */ 6348 #line 96 6"parser.yy"6481 case 234: 6482 6483 /* Line 1806 of yacc.c */ 6484 #line 969 "parser.yy" 6349 6485 { (yyval.decl) = 0; } 6350 6486 break; 6351 6487 6352 case 23 6:6353 6354 /* Line 1806 of yacc.c */ 6355 #line 97 3"parser.yy"6488 case 237: 6489 6490 /* Line 1806 of yacc.c */ 6491 #line 976 "parser.yy" 6356 6492 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6357 6493 break; 6358 6494 6359 case 23 7:6360 6361 /* Line 1806 of yacc.c */ 6362 #line 9 78"parser.yy"6495 case 238: 6496 6497 /* Line 1806 of yacc.c */ 6498 #line 981 "parser.yy" 6363 6499 { (yyval.decl) = 0; } 6364 6500 break; 6365 6501 6366 case 24 0:6367 6368 /* Line 1806 of yacc.c */ 6369 #line 98 5"parser.yy"6502 case 241: 6503 6504 /* Line 1806 of yacc.c */ 6505 #line 988 "parser.yy" 6370 6506 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6371 6507 break; 6372 6508 6373 case 24 5:6374 6375 /* Line 1806 of yacc.c */ 6376 #line 999"parser.yy"6509 case 246: 6510 6511 /* Line 1806 of yacc.c */ 6512 #line 1002 "parser.yy" 6377 6513 {} 6378 6514 break; 6379 6515 6380 case 24 6:6381 6382 /* Line 1806 of yacc.c */ 6383 #line 100 0"parser.yy"6516 case 247: 6517 6518 /* Line 1806 of yacc.c */ 6519 #line 1003 "parser.yy" 6384 6520 {} 6385 6521 break; 6386 6522 6387 case 25 4:6388 6389 /* Line 1806 of yacc.c */ 6390 #line 10 29"parser.yy"6523 case 255: 6524 6525 /* Line 1806 of yacc.c */ 6526 #line 1032 "parser.yy" 6391 6527 { 6392 6528 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6395 6531 break; 6396 6532 6397 case 25 5:6398 6399 /* Line 1806 of yacc.c */ 6400 #line 103 6"parser.yy"6533 case 256: 6534 6535 /* Line 1806 of yacc.c */ 6536 #line 1039 "parser.yy" 6401 6537 { 6402 6538 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6405 6541 break; 6406 6542 6407 case 25 6:6408 6409 /* Line 1806 of yacc.c */ 6410 #line 104 1"parser.yy"6543 case 257: 6544 6545 /* Line 1806 of yacc.c */ 6546 #line 1044 "parser.yy" 6411 6547 { 6412 6548 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6415 6551 break; 6416 6552 6417 case 25 7:6418 6419 /* Line 1806 of yacc.c */ 6420 #line 105 1"parser.yy"6553 case 258: 6554 6555 /* Line 1806 of yacc.c */ 6556 #line 1054 "parser.yy" 6421 6557 { 6422 6558 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6425 6561 break; 6426 6562 6427 case 25 8:6428 6429 /* Line 1806 of yacc.c */ 6430 #line 105 6"parser.yy"6563 case 259: 6564 6565 /* Line 1806 of yacc.c */ 6566 #line 1059 "parser.yy" 6431 6567 { 6432 6568 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6435 6571 break; 6436 6572 6437 case 2 59:6438 6439 /* Line 1806 of yacc.c */ 6440 #line 106 1"parser.yy"6573 case 260: 6574 6575 /* Line 1806 of yacc.c */ 6576 #line 1064 "parser.yy" 6441 6577 { 6442 6578 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6445 6581 break; 6446 6582 6447 case 26 0:6448 6449 /* Line 1806 of yacc.c */ 6450 #line 10 69"parser.yy"6583 case 261: 6584 6585 /* Line 1806 of yacc.c */ 6586 #line 1072 "parser.yy" 6451 6587 { 6452 6588 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6455 6591 break; 6456 6592 6457 case 26 1:6458 6459 /* Line 1806 of yacc.c */ 6460 #line 107 4"parser.yy"6593 case 262: 6594 6595 /* Line 1806 of yacc.c */ 6596 #line 1077 "parser.yy" 6461 6597 { 6462 6598 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6465 6601 break; 6466 6602 6467 case 26 2:6468 6469 /* Line 1806 of yacc.c */ 6470 #line 10 79"parser.yy"6603 case 263: 6604 6605 /* Line 1806 of yacc.c */ 6606 #line 1082 "parser.yy" 6471 6607 { 6472 6608 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6475 6611 break; 6476 6612 6477 case 26 3:6478 6479 /* Line 1806 of yacc.c */ 6480 #line 108 4"parser.yy"6613 case 264: 6614 6615 /* Line 1806 of yacc.c */ 6616 #line 1087 "parser.yy" 6481 6617 { 6482 6618 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6485 6621 break; 6486 6622 6487 case 26 4:6488 6489 /* Line 1806 of yacc.c */ 6490 #line 10 89"parser.yy"6623 case 265: 6624 6625 /* Line 1806 of yacc.c */ 6626 #line 1092 "parser.yy" 6491 6627 { 6492 6628 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6495 6631 break; 6496 6632 6497 case 26 5:6498 6499 /* Line 1806 of yacc.c */ 6500 #line 1 097"parser.yy"6633 case 266: 6634 6635 /* Line 1806 of yacc.c */ 6636 #line 1100 "parser.yy" 6501 6637 { 6502 6638 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6504 6640 break; 6505 6641 6506 case 26 6:6507 6508 /* Line 1806 of yacc.c */ 6509 #line 112 0"parser.yy"6642 case 267: 6643 6644 /* Line 1806 of yacc.c */ 6645 #line 1123 "parser.yy" 6510 6646 { 6511 6647 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6513 6649 break; 6514 6650 6515 case 26 7:6516 6517 /* Line 1806 of yacc.c */ 6518 #line 112 4"parser.yy"6651 case 268: 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1127 "parser.yy" 6519 6655 { 6520 6656 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6522 6658 break; 6523 6659 6524 case 26 8:6525 6526 /* Line 1806 of yacc.c */ 6527 #line 113 1"parser.yy"6660 case 269: 6661 6662 /* Line 1806 of yacc.c */ 6663 #line 1134 "parser.yy" 6528 6664 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6529 6665 break; 6530 6666 6531 case 2 69:6532 6533 /* Line 1806 of yacc.c */ 6534 #line 113 5"parser.yy"6667 case 270: 6668 6669 /* Line 1806 of yacc.c */ 6670 #line 1138 "parser.yy" 6535 6671 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6536 6672 break; 6537 6673 6538 case 27 0:6539 6540 /* Line 1806 of yacc.c */ 6541 #line 114 0"parser.yy"6674 case 271: 6675 6676 /* Line 1806 of yacc.c */ 6677 #line 1143 "parser.yy" 6542 6678 { 6543 6679 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6546 6682 break; 6547 6683 6548 case 27 1:6549 6550 /* Line 1806 of yacc.c */ 6551 #line 114 5"parser.yy"6684 case 272: 6685 6686 /* Line 1806 of yacc.c */ 6687 #line 1148 "parser.yy" 6552 6688 { 6553 6689 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6556 6692 break; 6557 6693 6558 case 27 2:6559 6560 /* Line 1806 of yacc.c */ 6561 #line 115 0"parser.yy"6694 case 273: 6695 6696 /* Line 1806 of yacc.c */ 6697 #line 1153 "parser.yy" 6562 6698 { 6563 6699 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6566 6702 break; 6567 6703 6568 case 27 3:6569 6570 /* Line 1806 of yacc.c */ 6571 #line 116 1"parser.yy"6704 case 274: 6705 6706 /* Line 1806 of yacc.c */ 6707 #line 1164 "parser.yy" 6572 6708 { 6573 6709 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6576 6712 break; 6577 6713 6578 case 27 4:6579 6580 /* Line 1806 of yacc.c */ 6581 #line 116 6"parser.yy"6714 case 275: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1169 "parser.yy" 6582 6718 { 6583 6719 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6586 6722 break; 6587 6723 6588 case 27 5:6589 6590 /* Line 1806 of yacc.c */ 6591 #line 117 1"parser.yy"6724 case 276: 6725 6726 /* Line 1806 of yacc.c */ 6727 #line 1174 "parser.yy" 6592 6728 { 6593 6729 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6596 6732 break; 6597 6733 6598 case 27 6:6599 6600 /* Line 1806 of yacc.c */ 6601 #line 117 6"parser.yy"6734 case 277: 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1179 "parser.yy" 6602 6738 { 6603 6739 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6606 6742 break; 6607 6743 6608 case 27 7:6609 6610 /* Line 1806 of yacc.c */ 6611 #line 118 1"parser.yy"6744 case 278: 6745 6746 /* Line 1806 of yacc.c */ 6747 #line 1184 "parser.yy" 6612 6748 { 6613 6749 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6616 6752 break; 6617 6753 6618 case 27 8:6619 6620 /* Line 1806 of yacc.c */ 6621 #line 119 0"parser.yy"6754 case 279: 6755 6756 /* Line 1806 of yacc.c */ 6757 #line 1193 "parser.yy" 6622 6758 { 6623 6759 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6626 6762 break; 6627 6763 6628 case 2 79:6629 6630 /* Line 1806 of yacc.c */ 6631 #line 119 5"parser.yy"6764 case 280: 6765 6766 /* Line 1806 of yacc.c */ 6767 #line 1198 "parser.yy" 6632 6768 { 6633 6769 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6636 6772 break; 6637 6773 6638 case 28 4:6639 6640 /* Line 1806 of yacc.c */ 6641 #line 121 2"parser.yy"6774 case 285: 6775 6776 /* Line 1806 of yacc.c */ 6777 #line 1215 "parser.yy" 6642 6778 { 6643 6779 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6646 6782 break; 6647 6783 6648 case 28 5:6649 6650 /* Line 1806 of yacc.c */ 6651 #line 12 17"parser.yy"6784 case 286: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1220 "parser.yy" 6652 6788 { 6653 6789 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6656 6792 break; 6657 6793 6658 case 29 4:6659 6660 /* Line 1806 of yacc.c */ 6661 #line 12 39"parser.yy"6794 case 295: 6795 6796 /* Line 1806 of yacc.c */ 6797 #line 1242 "parser.yy" 6662 6798 { (yyval.decl) = 0; } 6663 6799 break; 6664 6800 6665 case 29 7:6666 6667 /* Line 1806 of yacc.c */ 6668 #line 125 1"parser.yy"6801 case 298: 6802 6803 /* Line 1806 of yacc.c */ 6804 #line 1254 "parser.yy" 6669 6805 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6670 6806 break; 6671 6807 6672 case 30 0:6673 6674 /* Line 1806 of yacc.c */ 6675 #line 126 2"parser.yy"6808 case 301: 6809 6810 /* Line 1806 of yacc.c */ 6811 #line 1265 "parser.yy" 6676 6812 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6677 6813 break; 6678 6814 6679 case 30 1:6680 6681 /* Line 1806 of yacc.c */ 6682 #line 126 4"parser.yy"6815 case 302: 6816 6817 /* Line 1806 of yacc.c */ 6818 #line 1267 "parser.yy" 6683 6819 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6684 6820 break; 6685 6821 6686 case 30 2:6687 6688 /* Line 1806 of yacc.c */ 6689 #line 126 6"parser.yy"6822 case 303: 6823 6824 /* Line 1806 of yacc.c */ 6825 #line 1269 "parser.yy" 6690 6826 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6691 6827 break; 6692 6828 6693 case 30 3:6694 6695 /* Line 1806 of yacc.c */ 6696 #line 12 68"parser.yy"6829 case 304: 6830 6831 /* Line 1806 of yacc.c */ 6832 #line 1271 "parser.yy" 6697 6833 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6698 6834 break; 6699 6835 6700 case 30 4:6701 6702 /* Line 1806 of yacc.c */ 6703 #line 127 0"parser.yy"6836 case 305: 6837 6838 /* Line 1806 of yacc.c */ 6839 #line 1273 "parser.yy" 6704 6840 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6705 6841 break; 6706 6842 6707 case 30 5:6708 6709 /* Line 1806 of yacc.c */ 6710 #line 127 2"parser.yy"6843 case 306: 6844 6845 /* Line 1806 of yacc.c */ 6846 #line 1275 "parser.yy" 6711 6847 { 6712 6848 typedefTable.enterScope(); … … 6714 6850 break; 6715 6851 6716 case 30 6:6717 6718 /* Line 1806 of yacc.c */ 6719 #line 127 6"parser.yy"6852 case 307: 6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1279 "parser.yy" 6720 6856 { 6721 6857 typedefTable.leaveScope(); … … 6724 6860 break; 6725 6861 6726 case 30 8:6727 6728 /* Line 1806 of yacc.c */ 6729 #line 128 5"parser.yy"6862 case 309: 6863 6864 /* Line 1806 of yacc.c */ 6865 #line 1288 "parser.yy" 6730 6866 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6731 6867 break; 6732 6868 6733 case 3 09:6734 6735 /* Line 1806 of yacc.c */ 6736 #line 12 87"parser.yy"6869 case 310: 6870 6871 /* Line 1806 of yacc.c */ 6872 #line 1290 "parser.yy" 6737 6873 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6738 6874 break; 6739 6875 6740 case 31 1:6741 6742 /* Line 1806 of yacc.c */ 6743 #line 1 298"parser.yy"6876 case 312: 6877 6878 /* Line 1806 of yacc.c */ 6879 #line 1301 "parser.yy" 6744 6880 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6745 6881 break; 6746 6882 6747 case 31 3:6748 6749 /* Line 1806 of yacc.c */ 6750 #line 13 07"parser.yy"6883 case 314: 6884 6885 /* Line 1806 of yacc.c */ 6886 #line 1310 "parser.yy" 6751 6887 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6752 6888 break; 6753 6889 6754 case 31 4:6755 6756 /* Line 1806 of yacc.c */ 6757 #line 13 09"parser.yy"6890 case 315: 6891 6892 /* Line 1806 of yacc.c */ 6893 #line 1312 "parser.yy" 6758 6894 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6759 6895 break; 6760 6896 6761 case 31 5:6762 6763 /* Line 1806 of yacc.c */ 6764 #line 131 1"parser.yy"6897 case 316: 6898 6899 /* Line 1806 of yacc.c */ 6900 #line 1314 "parser.yy" 6765 6901 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6766 6902 break; 6767 6903 6768 case 31 6:6769 6770 /* Line 1806 of yacc.c */ 6771 #line 131 3"parser.yy"6904 case 317: 6905 6906 /* Line 1806 of yacc.c */ 6907 #line 1316 "parser.yy" 6772 6908 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6773 6909 break; 6774 6910 6775 case 31 7:6776 6777 /* Line 1806 of yacc.c */ 6778 #line 131 5"parser.yy"6911 case 318: 6912 6913 /* Line 1806 of yacc.c */ 6914 #line 1318 "parser.yy" 6779 6915 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6780 6916 break; 6781 6917 6782 case 31 8:6783 6784 /* Line 1806 of yacc.c */ 6785 #line 13 17"parser.yy"6918 case 319: 6919 6920 /* Line 1806 of yacc.c */ 6921 #line 1320 "parser.yy" 6786 6922 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6787 6923 break; 6788 6924 6789 case 3 19:6790 6791 /* Line 1806 of yacc.c */ 6792 #line 13 19"parser.yy"6925 case 320: 6926 6927 /* Line 1806 of yacc.c */ 6928 #line 1322 "parser.yy" 6793 6929 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6794 6930 break; 6795 6931 6796 case 32 0:6797 6798 /* Line 1806 of yacc.c */ 6799 #line 132 1"parser.yy"6932 case 321: 6933 6934 /* Line 1806 of yacc.c */ 6935 #line 1324 "parser.yy" 6800 6936 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6801 6937 break; 6802 6938 6803 case 32 1:6804 6805 /* Line 1806 of yacc.c */ 6806 #line 132 6"parser.yy"6939 case 322: 6940 6941 /* Line 1806 of yacc.c */ 6942 #line 1329 "parser.yy" 6807 6943 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6808 6944 break; 6809 6945 6810 case 32 2:6811 6812 /* Line 1806 of yacc.c */ 6813 #line 13 28"parser.yy"6946 case 323: 6947 6948 /* Line 1806 of yacc.c */ 6949 #line 1331 "parser.yy" 6814 6950 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6815 6951 break; 6816 6952 6817 case 32 3:6818 6819 /* Line 1806 of yacc.c */ 6820 #line 133 0"parser.yy"6953 case 324: 6954 6955 /* Line 1806 of yacc.c */ 6956 #line 1333 "parser.yy" 6821 6957 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6822 6958 break; 6823 6959 6824 case 32 4:6825 6826 /* Line 1806 of yacc.c */ 6827 #line 133 2"parser.yy"6960 case 325: 6961 6962 /* Line 1806 of yacc.c */ 6963 #line 1335 "parser.yy" 6828 6964 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6829 6965 break; 6830 6966 6831 case 32 5:6832 6833 /* Line 1806 of yacc.c */ 6834 #line 133 4"parser.yy"6967 case 326: 6968 6969 /* Line 1806 of yacc.c */ 6970 #line 1337 "parser.yy" 6835 6971 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6836 6972 break; 6837 6973 6838 case 32 6:6839 6840 /* Line 1806 of yacc.c */ 6841 #line 133 6"parser.yy"6974 case 327: 6975 6976 /* Line 1806 of yacc.c */ 6977 #line 1339 "parser.yy" 6842 6978 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6843 6979 break; 6844 6980 6845 case 32 7:6846 6847 /* Line 1806 of yacc.c */ 6848 #line 13 38"parser.yy"6981 case 328: 6982 6983 /* Line 1806 of yacc.c */ 6984 #line 1341 "parser.yy" 6849 6985 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6850 6986 break; 6851 6987 6852 case 32 8:6853 6854 /* Line 1806 of yacc.c */ 6855 #line 134 0"parser.yy"6988 case 329: 6989 6990 /* Line 1806 of yacc.c */ 6991 #line 1343 "parser.yy" 6856 6992 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6857 6993 break; 6858 6994 6859 case 3 29:6860 6861 /* Line 1806 of yacc.c */ 6862 #line 134 2"parser.yy"6995 case 330: 6996 6997 /* Line 1806 of yacc.c */ 6998 #line 1345 "parser.yy" 6863 6999 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6864 7000 break; 6865 7001 6866 case 33 0:6867 6868 /* Line 1806 of yacc.c */ 6869 #line 134 4"parser.yy"7002 case 331: 7003 7004 /* Line 1806 of yacc.c */ 7005 #line 1347 "parser.yy" 6870 7006 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6871 7007 break; 6872 7008 6873 case 33 1:6874 6875 /* Line 1806 of yacc.c */ 6876 #line 134 6"parser.yy"7009 case 332: 7010 7011 /* Line 1806 of yacc.c */ 7012 #line 1349 "parser.yy" 6877 7013 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6878 7014 break; 6879 7015 6880 case 33 2:6881 6882 /* Line 1806 of yacc.c */ 6883 #line 13 48"parser.yy"7016 case 333: 7017 7018 /* Line 1806 of yacc.c */ 7019 #line 1351 "parser.yy" 6884 7020 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6885 7021 break; 6886 7022 6887 case 33 3:6888 6889 /* Line 1806 of yacc.c */ 6890 #line 135 0"parser.yy"7023 case 334: 7024 7025 /* Line 1806 of yacc.c */ 7026 #line 1353 "parser.yy" 6891 7027 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6892 7028 break; 6893 7029 6894 case 33 5:6895 6896 /* Line 1806 of yacc.c */ 6897 #line 13 57"parser.yy"7030 case 336: 7031 7032 /* Line 1806 of yacc.c */ 7033 #line 1360 "parser.yy" 6898 7034 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6899 7035 break; 6900 7036 6901 case 33 6:6902 6903 /* Line 1806 of yacc.c */ 6904 #line 13 59"parser.yy"7037 case 337: 7038 7039 /* Line 1806 of yacc.c */ 7040 #line 1362 "parser.yy" 6905 7041 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6906 7042 break; 6907 7043 6908 case 33 7:6909 6910 /* Line 1806 of yacc.c */ 6911 #line 136 1"parser.yy"7044 case 338: 7045 7046 /* Line 1806 of yacc.c */ 7047 #line 1364 "parser.yy" 6912 7048 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6913 7049 break; 6914 7050 6915 case 33 8:6916 6917 /* Line 1806 of yacc.c */ 6918 #line 136 3"parser.yy"7051 case 339: 7052 7053 /* Line 1806 of yacc.c */ 7054 #line 1366 "parser.yy" 6919 7055 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6920 7056 break; 6921 7057 6922 case 34 0:6923 6924 /* Line 1806 of yacc.c */ 6925 #line 13 69"parser.yy"7058 case 341: 7059 7060 /* Line 1806 of yacc.c */ 7061 #line 1372 "parser.yy" 6926 7062 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6927 7063 break; 6928 7064 6929 case 34 2:6930 6931 /* Line 1806 of yacc.c */ 6932 #line 137 6"parser.yy"7065 case 343: 7066 7067 /* Line 1806 of yacc.c */ 7068 #line 1379 "parser.yy" 6933 7069 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6934 7070 break; 6935 7071 6936 case 34 3:6937 6938 /* Line 1806 of yacc.c */ 6939 #line 13 78"parser.yy"7072 case 344: 7073 7074 /* Line 1806 of yacc.c */ 7075 #line 1381 "parser.yy" 6940 7076 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6941 7077 break; 6942 7078 6943 case 34 4:6944 6945 /* Line 1806 of yacc.c */ 6946 #line 138 0"parser.yy"7079 case 345: 7080 7081 /* Line 1806 of yacc.c */ 7082 #line 1383 "parser.yy" 6947 7083 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6948 7084 break; 6949 7085 6950 case 34 5:6951 6952 /* Line 1806 of yacc.c */ 6953 #line 138 5"parser.yy"7086 case 346: 7087 7088 /* Line 1806 of yacc.c */ 7089 #line 1388 "parser.yy" 6954 7090 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6955 7091 break; 6956 7092 6957 case 34 6:6958 6959 /* Line 1806 of yacc.c */ 6960 #line 13 87"parser.yy"7093 case 347: 7094 7095 /* Line 1806 of yacc.c */ 7096 #line 1390 "parser.yy" 6961 7097 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6962 7098 break; 6963 7099 6964 case 34 7:6965 6966 /* Line 1806 of yacc.c */ 6967 #line 13 89"parser.yy"7100 case 348: 7101 7102 /* Line 1806 of yacc.c */ 7103 #line 1392 "parser.yy" 6968 7104 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6969 7105 break; 6970 7106 6971 case 34 8:6972 6973 /* Line 1806 of yacc.c */ 6974 #line 139 1"parser.yy"7107 case 349: 7108 7109 /* Line 1806 of yacc.c */ 7110 #line 1394 "parser.yy" 6975 7111 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6976 7112 break; 6977 7113 6978 case 35 0:6979 6980 /* Line 1806 of yacc.c */ 6981 #line 1 397"parser.yy"7114 case 351: 7115 7116 /* Line 1806 of yacc.c */ 7117 #line 1400 "parser.yy" 6982 7118 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6983 7119 break; 6984 7120 6985 case 35 1:6986 6987 /* Line 1806 of yacc.c */ 6988 #line 1 399"parser.yy"7121 case 352: 7122 7123 /* Line 1806 of yacc.c */ 7124 #line 1402 "parser.yy" 6989 7125 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6990 7126 break; 6991 7127 6992 case 35 2:6993 6994 /* Line 1806 of yacc.c */ 6995 #line 140 1"parser.yy"7128 case 353: 7129 7130 /* Line 1806 of yacc.c */ 7131 #line 1404 "parser.yy" 6996 7132 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6997 7133 break; 6998 7134 6999 case 35 4:7000 7001 /* Line 1806 of yacc.c */ 7002 #line 14 07"parser.yy"7135 case 355: 7136 7137 /* Line 1806 of yacc.c */ 7138 #line 1410 "parser.yy" 7003 7139 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7004 7140 break; 7005 7141 7006 case 35 5:7007 7008 /* Line 1806 of yacc.c */ 7009 #line 14 09"parser.yy"7142 case 356: 7143 7144 /* Line 1806 of yacc.c */ 7145 #line 1412 "parser.yy" 7010 7146 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7011 7147 break; 7012 7148 7013 case 35 7:7014 7015 /* Line 1806 of yacc.c */ 7016 #line 141 5"parser.yy"7149 case 358: 7150 7151 /* Line 1806 of yacc.c */ 7152 #line 1418 "parser.yy" 7017 7153 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7018 7154 break; 7019 7155 7020 case 35 8:7021 7022 /* Line 1806 of yacc.c */ 7023 #line 14 17"parser.yy"7156 case 359: 7157 7158 /* Line 1806 of yacc.c */ 7159 #line 1420 "parser.yy" 7024 7160 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7025 7161 break; 7026 7162 7027 case 3 59:7028 7029 /* Line 1806 of yacc.c */ 7030 #line 14 19"parser.yy"7163 case 360: 7164 7165 /* Line 1806 of yacc.c */ 7166 #line 1422 "parser.yy" 7031 7167 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7032 7168 break; 7033 7169 7034 case 36 0:7035 7036 /* Line 1806 of yacc.c */ 7037 #line 142 4"parser.yy"7170 case 361: 7171 7172 /* Line 1806 of yacc.c */ 7173 #line 1427 "parser.yy" 7038 7174 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7039 7175 break; 7040 7176 7041 case 36 1:7042 7043 /* Line 1806 of yacc.c */ 7044 #line 142 6"parser.yy"7177 case 362: 7178 7179 /* Line 1806 of yacc.c */ 7180 #line 1429 "parser.yy" 7045 7181 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7046 7182 break; 7047 7183 7048 case 36 2:7049 7050 /* Line 1806 of yacc.c */ 7051 #line 14 28"parser.yy"7184 case 363: 7185 7186 /* Line 1806 of yacc.c */ 7187 #line 1431 "parser.yy" 7052 7188 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7053 7189 break; 7054 7190 7055 case 36 5:7056 7057 /* Line 1806 of yacc.c */ 7058 #line 14 38"parser.yy"7191 case 366: 7192 7193 /* Line 1806 of yacc.c */ 7194 #line 1441 "parser.yy" 7059 7195 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); } 7060 7196 break; 7061 7197 7062 case 36 6:7063 7064 /* Line 1806 of yacc.c */ 7065 #line 144 0"parser.yy"7198 case 367: 7199 7200 /* Line 1806 of yacc.c */ 7201 #line 1443 "parser.yy" 7066 7202 { 7067 7203 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7070 7206 break; 7071 7207 7072 case 36 7:7073 7074 /* Line 1806 of yacc.c */ 7075 #line 144 5"parser.yy"7208 case 368: 7209 7210 /* Line 1806 of yacc.c */ 7211 #line 1448 "parser.yy" 7076 7212 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7077 7213 break; 7078 7214 7079 case 36 8:7080 7081 /* Line 1806 of yacc.c */ 7082 #line 14 47"parser.yy"7215 case 369: 7216 7217 /* Line 1806 of yacc.c */ 7218 #line 1450 "parser.yy" 7083 7219 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); } 7084 7220 break; 7085 7221 7086 case 3 69:7087 7088 /* Line 1806 of yacc.c */ 7089 #line 14 49"parser.yy"7222 case 370: 7223 7224 /* Line 1806 of yacc.c */ 7225 #line 1452 "parser.yy" 7090 7226 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); } 7091 7227 break; 7092 7228 7093 case 37 0:7094 7095 /* Line 1806 of yacc.c */ 7096 #line 145 1"parser.yy"7229 case 371: 7230 7231 /* Line 1806 of yacc.c */ 7232 #line 1454 "parser.yy" 7097 7233 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7098 7234 break; 7099 7235 7100 case 37 1:7101 7102 /* Line 1806 of yacc.c */ 7103 #line 145 6"parser.yy"7236 case 372: 7237 7238 /* Line 1806 of yacc.c */ 7239 #line 1459 "parser.yy" 7104 7240 { (yyval.aggKey) = DeclarationNode::Struct; } 7105 7241 break; 7106 7242 7107 case 37 2:7108 7109 /* Line 1806 of yacc.c */ 7110 #line 14 58"parser.yy"7243 case 373: 7244 7245 /* Line 1806 of yacc.c */ 7246 #line 1461 "parser.yy" 7111 7247 { (yyval.aggKey) = DeclarationNode::Union; } 7112 7248 break; 7113 7249 7114 case 37 3:7115 7116 /* Line 1806 of yacc.c */ 7117 #line 146 3"parser.yy"7250 case 374: 7251 7252 /* Line 1806 of yacc.c */ 7253 #line 1466 "parser.yy" 7118 7254 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7119 7255 break; 7120 7256 7121 case 37 4:7122 7123 /* Line 1806 of yacc.c */ 7124 #line 146 5"parser.yy"7257 case 375: 7258 7259 /* Line 1806 of yacc.c */ 7260 #line 1468 "parser.yy" 7125 7261 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7126 7262 break; 7127 7263 7128 case 376: 7129 7130 /* Line 1806 of yacc.c */ 7131 #line 1471 "parser.yy" 7132 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7133 break; 7134 7135 case 378: 7264 case 377: 7136 7265 7137 7266 /* Line 1806 of yacc.c */ 7138 7267 #line 1474 "parser.yy" 7139 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7140 break; 7141 7142 case 380: 7143 7144 /* Line 1806 of yacc.c */ 7145 #line 1480 "parser.yy" 7268 { (yyval.decl) = (yyvsp[(2) - (3)].decl)/*->set_extension( true )*/; } 7269 break; 7270 7271 case 379: 7272 7273 /* Line 1806 of yacc.c */ 7274 #line 1477 "parser.yy" 7275 { (yyval.decl) = (yyvsp[(2) - (3)].decl)/*->set_extension( true )*/; } 7276 break; 7277 7278 case 381: 7279 7280 /* Line 1806 of yacc.c */ 7281 #line 1483 "parser.yy" 7146 7282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7147 7283 break; 7148 7284 7149 case 38 1:7150 7151 /* Line 1806 of yacc.c */ 7152 #line 148 2"parser.yy"7285 case 382: 7286 7287 /* Line 1806 of yacc.c */ 7288 #line 1485 "parser.yy" 7153 7289 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7154 7290 break; 7155 7291 7156 case 38 2:7157 7158 /* Line 1806 of yacc.c */ 7159 #line 148 4"parser.yy"7292 case 383: 7293 7294 /* Line 1806 of yacc.c */ 7295 #line 1487 "parser.yy" 7160 7296 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7161 7297 break; 7162 7298 7163 case 38 3:7164 7165 /* Line 1806 of yacc.c */ 7166 #line 14 89"parser.yy"7299 case 384: 7300 7301 /* Line 1806 of yacc.c */ 7302 #line 1492 "parser.yy" 7167 7303 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7168 7304 break; 7169 7305 7170 case 38 4:7171 7172 /* Line 1806 of yacc.c */ 7173 #line 149 1"parser.yy"7306 case 385: 7307 7308 /* Line 1806 of yacc.c */ 7309 #line 1494 "parser.yy" 7174 7310 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7175 7311 break; 7176 7312 7177 case 38 5:7178 7179 /* Line 1806 of yacc.c */ 7180 #line 149 6"parser.yy"7313 case 386: 7314 7315 /* Line 1806 of yacc.c */ 7316 #line 1499 "parser.yy" 7181 7317 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7182 7318 break; 7183 7319 7184 case 38 6:7185 7186 /* Line 1806 of yacc.c */ 7187 #line 1 498"parser.yy"7320 case 387: 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1501 "parser.yy" 7188 7324 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7189 break;7190 7191 case 387:7192 7193 /* Line 1806 of yacc.c */7194 #line 1501 "parser.yy"7195 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7196 7325 break; 7197 7326 … … 7203 7332 break; 7204 7333 7205 case 390: 7206 7207 /* Line 1806 of yacc.c */ 7208 #line 1510 "parser.yy" 7334 case 389: 7335 7336 /* Line 1806 of yacc.c */ 7337 #line 1507 "parser.yy" 7338 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7339 break; 7340 7341 case 391: 7342 7343 /* Line 1806 of yacc.c */ 7344 #line 1513 "parser.yy" 7209 7345 { (yyval.en) = 0; } 7210 7346 break; 7211 7347 7212 case 39 1:7213 7214 /* Line 1806 of yacc.c */ 7215 #line 151 2"parser.yy"7348 case 392: 7349 7350 /* Line 1806 of yacc.c */ 7351 #line 1515 "parser.yy" 7216 7352 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7217 7353 break; 7218 7354 7219 case 39 2:7220 7221 /* Line 1806 of yacc.c */ 7222 #line 15 17"parser.yy"7355 case 393: 7356 7357 /* Line 1806 of yacc.c */ 7358 #line 1520 "parser.yy" 7223 7359 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7224 7360 break; 7225 7361 7226 case 39 4:7227 7228 /* Line 1806 of yacc.c */ 7229 #line 152 6"parser.yy"7362 case 395: 7363 7364 /* Line 1806 of yacc.c */ 7365 #line 1529 "parser.yy" 7230 7366 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7231 7367 break; 7232 7368 7233 case 39 5:7234 7235 /* Line 1806 of yacc.c */ 7236 #line 15 28"parser.yy"7369 case 396: 7370 7371 /* Line 1806 of yacc.c */ 7372 #line 1531 "parser.yy" 7237 7373 { 7238 7374 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7241 7377 break; 7242 7378 7243 case 39 6:7244 7245 /* Line 1806 of yacc.c */ 7246 #line 153 3"parser.yy"7379 case 397: 7380 7381 /* Line 1806 of yacc.c */ 7382 #line 1536 "parser.yy" 7247 7383 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7248 7384 break; 7249 7385 7250 case 39 7:7251 7252 /* Line 1806 of yacc.c */ 7253 #line 153 5"parser.yy"7386 case 398: 7387 7388 /* Line 1806 of yacc.c */ 7389 #line 1538 "parser.yy" 7254 7390 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7255 7391 break; 7256 7392 7257 case 39 8:7258 7259 /* Line 1806 of yacc.c */ 7260 #line 154 0"parser.yy"7393 case 399: 7394 7395 /* Line 1806 of yacc.c */ 7396 #line 1543 "parser.yy" 7261 7397 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7262 7398 break; 7263 7399 7264 case 399:7265 7266 /* Line 1806 of yacc.c */ 7267 #line 154 2"parser.yy"7400 case 400: 7401 7402 /* Line 1806 of yacc.c */ 7403 #line 1545 "parser.yy" 7268 7404 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7269 7405 break; 7270 7406 7271 case 40 0:7272 7273 /* Line 1806 of yacc.c */ 7274 #line 15 47"parser.yy"7407 case 401: 7408 7409 /* Line 1806 of yacc.c */ 7410 #line 1550 "parser.yy" 7275 7411 { (yyval.en) = 0; } 7276 7412 break; 7277 7413 7278 case 40 1:7279 7280 /* Line 1806 of yacc.c */ 7281 #line 15 49"parser.yy"7414 case 402: 7415 7416 /* Line 1806 of yacc.c */ 7417 #line 1552 "parser.yy" 7282 7418 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7283 7419 break; 7284 7420 7285 case 40 2:7286 7287 /* Line 1806 of yacc.c */ 7288 #line 155 6"parser.yy"7421 case 403: 7422 7423 /* Line 1806 of yacc.c */ 7424 #line 1559 "parser.yy" 7289 7425 { (yyval.decl) = 0; } 7290 7426 break; 7291 7427 7292 case 40 6:7293 7294 /* Line 1806 of yacc.c */ 7295 #line 156 4"parser.yy"7428 case 407: 7429 7430 /* Line 1806 of yacc.c */ 7431 #line 1567 "parser.yy" 7296 7432 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7297 7433 break; 7298 7434 7299 case 40 7:7300 7301 /* Line 1806 of yacc.c */ 7302 #line 156 6"parser.yy"7435 case 408: 7436 7437 /* Line 1806 of yacc.c */ 7438 #line 1569 "parser.yy" 7303 7439 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7304 7440 break; 7305 7441 7306 case 40 8:7307 7308 /* Line 1806 of yacc.c */ 7309 #line 15 68"parser.yy"7442 case 409: 7443 7444 /* Line 1806 of yacc.c */ 7445 #line 1571 "parser.yy" 7310 7446 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7311 7447 break; 7312 7448 7313 case 41 0:7314 7315 /* Line 1806 of yacc.c */ 7316 #line 157 6"parser.yy"7449 case 411: 7450 7451 /* Line 1806 of yacc.c */ 7452 #line 1579 "parser.yy" 7317 7453 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7318 7454 break; 7319 7455 7320 case 41 1:7321 7322 /* Line 1806 of yacc.c */ 7323 #line 15 78"parser.yy"7456 case 412: 7457 7458 /* Line 1806 of yacc.c */ 7459 #line 1581 "parser.yy" 7324 7460 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7325 7461 break; 7326 7462 7327 case 41 2:7328 7329 /* Line 1806 of yacc.c */ 7330 #line 158 0"parser.yy"7463 case 413: 7464 7465 /* Line 1806 of yacc.c */ 7466 #line 1583 "parser.yy" 7331 7467 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7332 7468 break; 7333 7469 7334 case 41 4:7335 7336 /* Line 1806 of yacc.c */ 7337 #line 158 6"parser.yy"7470 case 415: 7471 7472 /* Line 1806 of yacc.c */ 7473 #line 1589 "parser.yy" 7338 7474 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7339 7475 break; 7340 7476 7341 case 41 5:7342 7343 /* Line 1806 of yacc.c */ 7344 #line 159 1"parser.yy"7477 case 416: 7478 7479 /* Line 1806 of yacc.c */ 7480 #line 1594 "parser.yy" 7345 7481 { (yyval.decl) = 0; } 7346 7482 break; 7347 7483 7348 case 41 8:7349 7350 /* Line 1806 of yacc.c */ 7351 #line 1 598"parser.yy"7484 case 419: 7485 7486 /* Line 1806 of yacc.c */ 7487 #line 1601 "parser.yy" 7352 7488 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7353 7489 break; 7354 7490 7355 case 42 1:7356 7357 /* Line 1806 of yacc.c */ 7358 #line 160 5"parser.yy"7491 case 422: 7492 7493 /* Line 1806 of yacc.c */ 7494 #line 1608 "parser.yy" 7359 7495 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7360 7496 break; 7361 7497 7362 case 42 2:7363 7364 /* Line 1806 of yacc.c */ 7365 #line 16 07"parser.yy"7498 case 423: 7499 7500 /* Line 1806 of yacc.c */ 7501 #line 1610 "parser.yy" 7366 7502 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7367 break;7368 7369 case 424:7370 7371 /* Line 1806 of yacc.c */7372 #line 1616 "parser.yy"7373 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }7374 7503 break; 7375 7504 … … 7384 7513 7385 7514 /* Line 1806 of yacc.c */ 7386 #line 1621 "parser.yy" 7515 #line 1622 "parser.yy" 7516 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7517 break; 7518 7519 case 427: 7520 7521 /* Line 1806 of yacc.c */ 7522 #line 1624 "parser.yy" 7387 7523 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7388 7524 break; 7389 7525 7390 case 43 1:7391 7392 /* Line 1806 of yacc.c */ 7393 #line 163 1"parser.yy"7526 case 432: 7527 7528 /* Line 1806 of yacc.c */ 7529 #line 1634 "parser.yy" 7394 7530 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7395 7531 break; 7396 7532 7397 case 43 3:7398 7399 /* Line 1806 of yacc.c */ 7400 #line 16 37"parser.yy"7533 case 434: 7534 7535 /* Line 1806 of yacc.c */ 7536 #line 1640 "parser.yy" 7401 7537 { 7402 7538 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7405 7541 break; 7406 7542 7407 case 43 4:7408 7409 /* Line 1806 of yacc.c */ 7410 #line 164 2"parser.yy"7543 case 435: 7544 7545 /* Line 1806 of yacc.c */ 7546 #line 1645 "parser.yy" 7411 7547 { 7412 7548 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7415 7551 break; 7416 7552 7417 case 43 6:7418 7419 /* Line 1806 of yacc.c */ 7420 #line 165 1"parser.yy"7553 case 437: 7554 7555 /* Line 1806 of yacc.c */ 7556 #line 1654 "parser.yy" 7421 7557 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7422 7558 break; 7423 7559 7424 case 43 7:7425 7426 /* Line 1806 of yacc.c */ 7427 #line 166 0"parser.yy"7560 case 438: 7561 7562 /* Line 1806 of yacc.c */ 7563 #line 1663 "parser.yy" 7428 7564 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7429 7565 break; 7430 7566 7431 case 43 8:7432 7433 /* Line 1806 of yacc.c */ 7434 #line 166 2"parser.yy"7567 case 439: 7568 7569 /* Line 1806 of yacc.c */ 7570 #line 1665 "parser.yy" 7435 7571 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7436 7572 break; 7437 7573 7438 case 45 0:7439 7440 /* Line 1806 of yacc.c */ 7441 #line 16 87"parser.yy"7574 case 451: 7575 7576 /* Line 1806 of yacc.c */ 7577 #line 1690 "parser.yy" 7442 7578 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7443 7579 break; 7444 7580 7445 case 45 4:7446 7447 /* Line 1806 of yacc.c */ 7448 #line 169 5"parser.yy"7581 case 455: 7582 7583 /* Line 1806 of yacc.c */ 7584 #line 1698 "parser.yy" 7449 7585 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7450 7586 break; 7451 7587 7452 case 45 5:7453 7454 /* Line 1806 of yacc.c */ 7455 #line 170 0"parser.yy"7588 case 456: 7589 7590 /* Line 1806 of yacc.c */ 7591 #line 1703 "parser.yy" 7456 7592 { (yyval.in) = 0; } 7457 7593 break; 7458 7594 7459 case 45 6:7460 7461 /* Line 1806 of yacc.c */ 7462 #line 170 2"parser.yy"7595 case 457: 7596 7597 /* Line 1806 of yacc.c */ 7598 #line 1705 "parser.yy" 7463 7599 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7464 7600 break; 7465 7601 7466 case 457:7467 7468 /* Line 1806 of yacc.c */7469 #line 1704 "parser.yy"7470 { (yyval.in) = (yyvsp[(2) - (2)].in); }7471 break;7472 7473 7602 case 458: 7474 7603 7475 7604 /* Line 1806 of yacc.c */ 7476 #line 1708 "parser.yy" 7605 #line 1707 "parser.yy" 7606 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7607 break; 7608 7609 case 459: 7610 7611 /* Line 1806 of yacc.c */ 7612 #line 1711 "parser.yy" 7477 7613 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7478 7614 break; 7479 7615 7480 case 4 59:7481 7482 /* Line 1806 of yacc.c */ 7483 #line 17 09"parser.yy"7616 case 460: 7617 7618 /* Line 1806 of yacc.c */ 7619 #line 1712 "parser.yy" 7484 7620 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7485 7621 break; 7486 7622 7487 case 46 0:7488 7489 /* Line 1806 of yacc.c */ 7490 #line 171 4"parser.yy"7623 case 461: 7624 7625 /* Line 1806 of yacc.c */ 7626 #line 1717 "parser.yy" 7491 7627 { (yyval.in) = 0; } 7492 7628 break; 7493 7629 7494 case 46 2:7495 7496 /* Line 1806 of yacc.c */ 7497 #line 171 6"parser.yy"7630 case 463: 7631 7632 /* Line 1806 of yacc.c */ 7633 #line 1719 "parser.yy" 7498 7634 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7499 7635 break; 7500 7636 7501 case 46 3:7502 7503 /* Line 1806 of yacc.c */ 7504 #line 17 17"parser.yy"7637 case 464: 7638 7639 /* Line 1806 of yacc.c */ 7640 #line 1720 "parser.yy" 7505 7641 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7506 7642 break; 7507 7643 7508 case 46 4:7509 7510 /* Line 1806 of yacc.c */ 7511 #line 17 19"parser.yy"7644 case 465: 7645 7646 /* Line 1806 of yacc.c */ 7647 #line 1722 "parser.yy" 7512 7648 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7513 7649 break; 7514 7650 7515 case 46 6:7516 7517 /* Line 1806 of yacc.c */ 7518 #line 173 5"parser.yy"7651 case 467: 7652 7653 /* Line 1806 of yacc.c */ 7654 #line 1738 "parser.yy" 7519 7655 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7520 7656 break; 7521 7657 7522 case 46 8:7523 7524 /* Line 1806 of yacc.c */ 7525 #line 174 1"parser.yy"7658 case 469: 7659 7660 /* Line 1806 of yacc.c */ 7661 #line 1744 "parser.yy" 7526 7662 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7527 7663 break; 7528 7664 7529 case 4 69:7530 7531 /* Line 1806 of yacc.c */ 7532 #line 17 49"parser.yy"7665 case 470: 7666 7667 /* Line 1806 of yacc.c */ 7668 #line 1752 "parser.yy" 7533 7669 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7534 7670 break; 7535 7671 7536 case 47 0:7537 7538 /* Line 1806 of yacc.c */ 7539 #line 175 1"parser.yy"7672 case 471: 7673 7674 /* Line 1806 of yacc.c */ 7675 #line 1754 "parser.yy" 7540 7676 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7541 7677 break; 7542 7678 7543 case 47 1:7544 7545 /* Line 1806 of yacc.c */ 7546 #line 175 4"parser.yy"7679 case 472: 7680 7681 /* Line 1806 of yacc.c */ 7682 #line 1757 "parser.yy" 7547 7683 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7548 7684 break; 7549 7685 7550 case 47 2:7551 7552 /* Line 1806 of yacc.c */ 7553 #line 175 6"parser.yy"7686 case 473: 7687 7688 /* Line 1806 of yacc.c */ 7689 #line 1759 "parser.yy" 7554 7690 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7555 7691 break; 7556 7692 7557 case 47 3:7558 7559 /* Line 1806 of yacc.c */ 7560 #line 17 58"parser.yy"7693 case 474: 7694 7695 /* Line 1806 of yacc.c */ 7696 #line 1761 "parser.yy" 7561 7697 { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); } 7562 7698 break; 7563 7699 7564 case 47 4:7565 7566 /* Line 1806 of yacc.c */ 7567 #line 176 0"parser.yy"7700 case 475: 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1763 "parser.yy" 7568 7704 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7569 7705 break; 7570 7706 7571 case 47 6:7572 7573 /* Line 1806 of yacc.c */ 7574 #line 178 4"parser.yy"7707 case 477: 7708 7709 /* Line 1806 of yacc.c */ 7710 #line 1787 "parser.yy" 7575 7711 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7576 7712 break; 7577 7713 7578 case 47 7:7579 7580 /* Line 1806 of yacc.c */ 7581 #line 178 6"parser.yy"7714 case 478: 7715 7716 /* Line 1806 of yacc.c */ 7717 #line 1789 "parser.yy" 7582 7718 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7583 7719 break; 7584 7720 7585 case 47 8:7586 7587 /* Line 1806 of yacc.c */ 7588 #line 17 88"parser.yy"7721 case 479: 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1791 "parser.yy" 7589 7725 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7590 7726 break; 7591 7727 7592 case 48 0:7593 7594 /* Line 1806 of yacc.c */ 7595 #line 179 4"parser.yy"7728 case 481: 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 1797 "parser.yy" 7596 7732 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7597 7733 break; 7598 7734 7599 case 48 1:7600 7601 /* Line 1806 of yacc.c */ 7602 #line 179 6"parser.yy"7735 case 482: 7736 7737 /* Line 1806 of yacc.c */ 7738 #line 1799 "parser.yy" 7603 7739 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7604 7740 break; 7605 7741 7606 case 48 2:7607 7608 /* Line 1806 of yacc.c */ 7609 #line 180 1"parser.yy"7742 case 483: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1804 "parser.yy" 7610 7746 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7611 7747 break; 7612 7748 7613 case 48 4:7614 7615 /* Line 1806 of yacc.c */ 7616 #line 18 07"parser.yy"7749 case 485: 7750 7751 /* Line 1806 of yacc.c */ 7752 #line 1810 "parser.yy" 7617 7753 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7618 7754 break; 7619 7755 7620 case 48 5:7621 7622 /* Line 1806 of yacc.c */ 7623 #line 181 2"parser.yy"7756 case 486: 7757 7758 /* Line 1806 of yacc.c */ 7759 #line 1815 "parser.yy" 7624 7760 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7625 7761 break; 7626 7762 7627 case 48 6:7628 7629 /* Line 1806 of yacc.c */ 7630 #line 181 4"parser.yy"7763 case 487: 7764 7765 /* Line 1806 of yacc.c */ 7766 #line 1817 "parser.yy" 7631 7767 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7632 7768 break; 7633 7769 7634 case 48 8:7635 7636 /* Line 1806 of yacc.c */ 7637 #line 182 0"parser.yy"7770 case 489: 7771 7772 /* Line 1806 of yacc.c */ 7773 #line 1823 "parser.yy" 7638 7774 { (yyval.tclass) = DeclarationNode::Type; } 7639 7775 break; 7640 7776 7641 case 4 89:7642 7643 /* Line 1806 of yacc.c */ 7644 #line 182 2"parser.yy"7777 case 490: 7778 7779 /* Line 1806 of yacc.c */ 7780 #line 1825 "parser.yy" 7645 7781 { (yyval.tclass) = DeclarationNode::Ftype; } 7646 7782 break; 7647 7783 7648 case 49 0:7649 7650 /* Line 1806 of yacc.c */ 7651 #line 182 4"parser.yy"7784 case 491: 7785 7786 /* Line 1806 of yacc.c */ 7787 #line 1827 "parser.yy" 7652 7788 { (yyval.tclass) = DeclarationNode::Dtype; } 7653 7789 break; 7654 7790 7655 case 49 1:7656 7657 /* Line 1806 of yacc.c */ 7658 #line 18 29"parser.yy"7791 case 492: 7792 7793 /* Line 1806 of yacc.c */ 7794 #line 1832 "parser.yy" 7659 7795 { (yyval.decl) = 0; } 7660 7796 break; 7661 7797 7662 case 49 2:7663 7664 /* Line 1806 of yacc.c */ 7665 #line 183 1"parser.yy"7798 case 493: 7799 7800 /* Line 1806 of yacc.c */ 7801 #line 1834 "parser.yy" 7666 7802 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7667 7803 break; 7668 7804 7669 case 49 3:7670 7671 /* Line 1806 of yacc.c */ 7672 #line 183 6"parser.yy"7805 case 494: 7806 7807 /* Line 1806 of yacc.c */ 7808 #line 1839 "parser.yy" 7673 7809 { 7674 7810 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7677 7813 break; 7678 7814 7679 case 49 4:7680 7681 /* Line 1806 of yacc.c */ 7682 #line 184 1"parser.yy"7815 case 495: 7816 7817 /* Line 1806 of yacc.c */ 7818 #line 1844 "parser.yy" 7683 7819 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7684 7820 break; 7685 7821 7686 case 49 5:7687 7688 /* Line 1806 of yacc.c */ 7689 #line 184 3"parser.yy"7822 case 496: 7823 7824 /* Line 1806 of yacc.c */ 7825 #line 1846 "parser.yy" 7690 7826 { (yyval.decl) = 0; } 7691 7827 break; 7692 7828 7693 case 49 6:7694 7695 /* Line 1806 of yacc.c */ 7696 #line 18 48"parser.yy"7829 case 497: 7830 7831 /* Line 1806 of yacc.c */ 7832 #line 1851 "parser.yy" 7697 7833 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7698 7834 break; 7699 7835 7700 case 49 8:7701 7702 /* Line 1806 of yacc.c */ 7703 #line 185 1"parser.yy"7836 case 499: 7837 7838 /* Line 1806 of yacc.c */ 7839 #line 1854 "parser.yy" 7704 7840 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7705 7841 break; 7706 7842 7707 case 499:7708 7709 /* Line 1806 of yacc.c */ 7710 #line 185 3"parser.yy"7843 case 500: 7844 7845 /* Line 1806 of yacc.c */ 7846 #line 1856 "parser.yy" 7711 7847 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7712 7848 break; 7713 7849 7714 case 50 0:7715 7716 /* Line 1806 of yacc.c */ 7717 #line 18 58"parser.yy"7850 case 501: 7851 7852 /* Line 1806 of yacc.c */ 7853 #line 1861 "parser.yy" 7718 7854 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7719 7855 break; 7720 7856 7721 case 50 1:7722 7723 /* Line 1806 of yacc.c */ 7724 #line 186 0"parser.yy"7857 case 502: 7858 7859 /* Line 1806 of yacc.c */ 7860 #line 1863 "parser.yy" 7725 7861 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7726 7862 break; 7727 7863 7728 case 50 2:7729 7730 /* Line 1806 of yacc.c */ 7731 #line 186 2"parser.yy"7864 case 503: 7865 7866 /* Line 1806 of yacc.c */ 7867 #line 1865 "parser.yy" 7732 7868 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7733 7869 break; 7734 7870 7735 case 50 3:7736 7737 /* Line 1806 of yacc.c */ 7738 #line 18 67"parser.yy"7871 case 504: 7872 7873 /* Line 1806 of yacc.c */ 7874 #line 1870 "parser.yy" 7739 7875 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7740 7876 break; 7741 7877 7742 case 50 4:7743 7744 /* Line 1806 of yacc.c */ 7745 #line 18 69"parser.yy"7878 case 505: 7879 7880 /* Line 1806 of yacc.c */ 7881 #line 1872 "parser.yy" 7746 7882 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7747 7883 break; 7748 7884 7749 case 50 5:7750 7751 /* Line 1806 of yacc.c */ 7752 #line 187 4"parser.yy"7885 case 506: 7886 7887 /* Line 1806 of yacc.c */ 7888 #line 1877 "parser.yy" 7753 7889 { 7754 7890 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7757 7893 break; 7758 7894 7759 case 50 6:7760 7761 /* Line 1806 of yacc.c */ 7762 #line 18 79"parser.yy"7895 case 507: 7896 7897 /* Line 1806 of yacc.c */ 7898 #line 1882 "parser.yy" 7763 7899 { 7764 7900 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7767 7903 break; 7768 7904 7769 case 50 7:7770 7771 /* Line 1806 of yacc.c */ 7772 #line 18 87"parser.yy"7905 case 508: 7906 7907 /* Line 1806 of yacc.c */ 7908 #line 1890 "parser.yy" 7773 7909 { 7774 7910 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7777 7913 break; 7778 7914 7779 case 50 8:7780 7781 /* Line 1806 of yacc.c */ 7782 #line 189 2"parser.yy"7915 case 509: 7916 7917 /* Line 1806 of yacc.c */ 7918 #line 1895 "parser.yy" 7783 7919 { 7784 7920 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7787 7923 break; 7788 7924 7789 case 5 09:7790 7791 /* Line 1806 of yacc.c */ 7792 #line 1 897"parser.yy"7925 case 510: 7926 7927 /* Line 1806 of yacc.c */ 7928 #line 1900 "parser.yy" 7793 7929 { 7794 7930 typedefTable.leaveTrait(); … … 7798 7934 break; 7799 7935 7800 case 51 1:7801 7802 /* Line 1806 of yacc.c */ 7803 #line 19 07"parser.yy"7936 case 512: 7937 7938 /* Line 1806 of yacc.c */ 7939 #line 1910 "parser.yy" 7804 7940 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7805 7941 break; 7806 7942 7807 case 51 4:7808 7809 /* Line 1806 of yacc.c */ 7810 #line 19 17"parser.yy"7943 case 515: 7944 7945 /* Line 1806 of yacc.c */ 7946 #line 1920 "parser.yy" 7811 7947 { 7812 7948 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7815 7951 break; 7816 7952 7817 case 51 5:7818 7819 /* Line 1806 of yacc.c */ 7820 #line 192 2"parser.yy"7953 case 516: 7954 7955 /* Line 1806 of yacc.c */ 7956 #line 1925 "parser.yy" 7821 7957 { 7822 7958 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7825 7961 break; 7826 7962 7827 case 51 6:7828 7829 /* Line 1806 of yacc.c */ 7830 #line 19 27"parser.yy"7963 case 517: 7964 7965 /* Line 1806 of yacc.c */ 7966 #line 1930 "parser.yy" 7831 7967 { 7832 7968 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7835 7971 break; 7836 7972 7837 case 51 7:7838 7839 /* Line 1806 of yacc.c */ 7840 #line 193 5"parser.yy"7973 case 518: 7974 7975 /* Line 1806 of yacc.c */ 7976 #line 1938 "parser.yy" 7841 7977 { 7842 7978 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7845 7981 break; 7846 7982 7847 case 51 8:7848 7849 /* Line 1806 of yacc.c */ 7850 #line 194 0"parser.yy"7983 case 519: 7984 7985 /* Line 1806 of yacc.c */ 7986 #line 1943 "parser.yy" 7851 7987 { 7852 7988 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7855 7991 break; 7856 7992 7857 case 5 19:7858 7859 /* Line 1806 of yacc.c */ 7860 #line 195 0"parser.yy"7993 case 520: 7994 7995 /* Line 1806 of yacc.c */ 7996 #line 1953 "parser.yy" 7861 7997 {} 7862 7998 break; 7863 7999 7864 case 52 0:7865 7866 /* Line 1806 of yacc.c */ 7867 #line 195 2"parser.yy"8000 case 521: 8001 8002 /* Line 1806 of yacc.c */ 8003 #line 1955 "parser.yy" 7868 8004 { 7869 8005 if ( theTree ) { … … 7875 8011 break; 7876 8012 7877 case 52 2:7878 7879 /* Line 1806 of yacc.c */ 7880 #line 196 4"parser.yy"8013 case 523: 8014 8015 /* Line 1806 of yacc.c */ 8016 #line 1967 "parser.yy" 7881 8017 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7882 8018 break; 7883 8019 7884 case 52 3:7885 7886 /* Line 1806 of yacc.c */ 7887 #line 19 69"parser.yy"8020 case 524: 8021 8022 /* Line 1806 of yacc.c */ 8023 #line 1972 "parser.yy" 7888 8024 { (yyval.decl) = 0; } 7889 8025 break; 7890 8026 7891 case 52 7:7892 7893 /* Line 1806 of yacc.c */ 7894 #line 19 77"parser.yy"8027 case 528: 8028 8029 /* Line 1806 of yacc.c */ 8030 #line 1980 "parser.yy" 7895 8031 {} 7896 8032 break; 7897 8033 7898 case 52 8:7899 7900 /* Line 1806 of yacc.c */ 7901 #line 19 79"parser.yy"8034 case 529: 8035 8036 /* Line 1806 of yacc.c */ 8037 #line 1982 "parser.yy" 7902 8038 { 7903 8039 linkageStack.push( linkage ); … … 7906 8042 break; 7907 8043 7908 case 5 29:7909 7910 /* Line 1806 of yacc.c */ 7911 #line 198 4"parser.yy"8044 case 530: 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 1987 "parser.yy" 7912 8048 { 7913 8049 linkage = linkageStack.top(); … … 7917 8053 break; 7918 8054 7919 case 53 0:7920 7921 /* Line 1806 of yacc.c */ 7922 #line 199 0"parser.yy"7923 { (yyval.decl) = (yyvsp[(2) - (2)].decl) ; }7924 break; 7925 7926 case 53 2:7927 7928 /* Line 1806 of yacc.c */ 7929 #line 200 0"parser.yy"8055 case 531: 8056 8057 /* Line 1806 of yacc.c */ 8058 #line 1993 "parser.yy" 8059 { (yyval.decl) = (yyvsp[(2) - (2)].decl)/*->set_extension( true )*/; } 8060 break; 8061 8062 case 533: 8063 8064 /* Line 1806 of yacc.c */ 8065 #line 2004 "parser.yy" 7930 8066 { 7931 8067 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7935 8071 break; 7936 8072 7937 case 53 3:7938 7939 /* Line 1806 of yacc.c */ 7940 #line 20 06"parser.yy"8073 case 534: 8074 8075 /* Line 1806 of yacc.c */ 8076 #line 2010 "parser.yy" 7941 8077 { 7942 8078 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7946 8082 break; 7947 8083 7948 case 53 4:7949 7950 /* Line 1806 of yacc.c */ 7951 #line 201 5"parser.yy"8084 case 535: 8085 8086 /* Line 1806 of yacc.c */ 8087 #line 2019 "parser.yy" 7952 8088 { 7953 8089 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7957 8093 break; 7958 8094 7959 case 53 5:7960 7961 /* Line 1806 of yacc.c */ 7962 #line 202 1"parser.yy"8095 case 536: 8096 8097 /* Line 1806 of yacc.c */ 8098 #line 2025 "parser.yy" 7963 8099 { 7964 8100 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7968 8104 break; 7969 8105 7970 case 53 6:7971 7972 /* Line 1806 of yacc.c */ 7973 #line 20 27"parser.yy"8106 case 537: 8107 8108 /* Line 1806 of yacc.c */ 8109 #line 2031 "parser.yy" 7974 8110 { 7975 8111 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7979 8115 break; 7980 8116 7981 case 53 7:7982 7983 /* Line 1806 of yacc.c */ 7984 #line 203 3"parser.yy"8117 case 538: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2037 "parser.yy" 7985 8121 { 7986 8122 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7990 8126 break; 7991 8127 7992 case 53 8:7993 7994 /* Line 1806 of yacc.c */ 7995 #line 20 39"parser.yy"8128 case 539: 8129 8130 /* Line 1806 of yacc.c */ 8131 #line 2043 "parser.yy" 7996 8132 { 7997 8133 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8001 8137 break; 8002 8138 8003 case 5 39:8004 8005 /* Line 1806 of yacc.c */ 8006 #line 20 47"parser.yy"8139 case 540: 8140 8141 /* Line 1806 of yacc.c */ 8142 #line 2051 "parser.yy" 8007 8143 { 8008 8144 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8012 8148 break; 8013 8149 8014 case 54 0:8015 8016 /* Line 1806 of yacc.c */ 8017 #line 205 3"parser.yy"8150 case 541: 8151 8152 /* Line 1806 of yacc.c */ 8153 #line 2057 "parser.yy" 8018 8154 { 8019 8155 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8023 8159 break; 8024 8160 8025 case 54 1:8026 8027 /* Line 1806 of yacc.c */ 8028 #line 206 1"parser.yy"8161 case 542: 8162 8163 /* Line 1806 of yacc.c */ 8164 #line 2065 "parser.yy" 8029 8165 { 8030 8166 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8034 8170 break; 8035 8171 8036 case 54 2:8037 8038 /* Line 1806 of yacc.c */ 8039 #line 20 67"parser.yy"8172 case 543: 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2071 "parser.yy" 8040 8176 { 8041 8177 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8045 8181 break; 8046 8182 8047 case 54 6:8048 8049 /* Line 1806 of yacc.c */ 8050 #line 208 2"parser.yy"8183 case 547: 8184 8185 /* Line 1806 of yacc.c */ 8186 #line 2086 "parser.yy" 8051 8187 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 8052 8188 break; 8053 8189 8054 case 5 49:8055 8056 /* Line 1806 of yacc.c */ 8057 #line 209 2"parser.yy"8190 case 550: 8191 8192 /* Line 1806 of yacc.c */ 8193 #line 2096 "parser.yy" 8058 8194 { (yyval.decl) = 0; } 8059 8195 break; 8060 8196 8061 case 55 2:8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2 099"parser.yy"8197 case 553: 8198 8199 /* Line 1806 of yacc.c */ 8200 #line 2103 "parser.yy" 8065 8201 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8066 8202 break; 8067 8203 8068 case 55 3:8069 8070 /* Line 1806 of yacc.c */ 8071 #line 210 5"parser.yy"8204 case 554: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2109 "parser.yy" 8072 8208 { (yyval.decl) = 0; } 8073 8209 break; 8074 8210 8075 case 5 59:8076 8077 /* Line 1806 of yacc.c */ 8078 #line 212 0"parser.yy"8211 case 560: 8212 8213 /* Line 1806 of yacc.c */ 8214 #line 2124 "parser.yy" 8079 8215 {} 8080 8216 break; 8081 8217 8082 case 56 0:8083 8084 /* Line 1806 of yacc.c */ 8085 #line 212 1"parser.yy"8218 case 561: 8219 8220 /* Line 1806 of yacc.c */ 8221 #line 2125 "parser.yy" 8086 8222 {} 8087 8223 break; 8088 8224 8089 case 56 1:8090 8091 /* Line 1806 of yacc.c */ 8092 #line 212 2"parser.yy"8225 case 562: 8226 8227 /* Line 1806 of yacc.c */ 8228 #line 2126 "parser.yy" 8093 8229 {} 8094 8230 break; 8095 8231 8096 case 56 2:8097 8098 /* Line 1806 of yacc.c */ 8099 #line 212 3"parser.yy"8232 case 563: 8233 8234 /* Line 1806 of yacc.c */ 8235 #line 2127 "parser.yy" 8100 8236 {} 8101 8237 break; 8102 8238 8103 case 56 3:8104 8105 /* Line 1806 of yacc.c */ 8106 #line 21 58"parser.yy"8239 case 564: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2162 "parser.yy" 8107 8243 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8108 8244 break; 8109 8245 8110 case 56 5:8111 8112 /* Line 1806 of yacc.c */ 8113 #line 216 1"parser.yy"8246 case 566: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2165 "parser.yy" 8114 8250 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8115 8251 break; 8116 8252 8117 case 56 6:8118 8119 /* Line 1806 of yacc.c */ 8120 #line 216 3"parser.yy"8253 case 567: 8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2167 "parser.yy" 8121 8257 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8122 8258 break; 8123 8259 8124 case 56 7:8125 8126 /* Line 1806 of yacc.c */ 8127 #line 21 68"parser.yy"8260 case 568: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2172 "parser.yy" 8128 8264 { 8129 8265 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8132 8268 break; 8133 8269 8134 case 56 8:8135 8136 /* Line 1806 of yacc.c */ 8137 #line 217 3"parser.yy"8270 case 569: 8271 8272 /* Line 1806 of yacc.c */ 8273 #line 2177 "parser.yy" 8138 8274 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8139 8275 break; 8140 8276 8141 case 5 69:8142 8143 /* Line 1806 of yacc.c */ 8144 #line 21 78"parser.yy"8277 case 570: 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2182 "parser.yy" 8145 8281 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8146 8282 break; 8147 8283 8148 case 57 0:8149 8150 /* Line 1806 of yacc.c */ 8151 #line 218 0"parser.yy"8284 case 571: 8285 8286 /* Line 1806 of yacc.c */ 8287 #line 2184 "parser.yy" 8152 8288 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8153 8289 break; 8154 8290 8155 case 57 1:8156 8157 /* Line 1806 of yacc.c */ 8158 #line 218 2"parser.yy"8291 case 572: 8292 8293 /* Line 1806 of yacc.c */ 8294 #line 2186 "parser.yy" 8159 8295 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8160 8296 break; 8161 8297 8162 case 57 2:8163 8164 /* Line 1806 of yacc.c */ 8165 #line 21 87"parser.yy"8298 case 573: 8299 8300 /* Line 1806 of yacc.c */ 8301 #line 2191 "parser.yy" 8166 8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8167 8303 break; 8168 8304 8169 case 57 3:8170 8171 /* Line 1806 of yacc.c */ 8172 #line 21 89"parser.yy"8305 case 574: 8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2193 "parser.yy" 8173 8309 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8174 8310 break; 8175 8311 8176 case 57 4:8177 8178 /* Line 1806 of yacc.c */ 8179 #line 219 1"parser.yy"8312 case 575: 8313 8314 /* Line 1806 of yacc.c */ 8315 #line 2195 "parser.yy" 8180 8316 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8181 8317 break; 8182 8318 8183 case 57 5:8184 8185 /* Line 1806 of yacc.c */ 8186 #line 219 3"parser.yy"8319 case 576: 8320 8321 /* Line 1806 of yacc.c */ 8322 #line 2197 "parser.yy" 8187 8323 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8188 8324 break; 8189 8325 8190 case 57 6:8191 8192 /* Line 1806 of yacc.c */ 8193 #line 2 198"parser.yy"8326 case 577: 8327 8328 /* Line 1806 of yacc.c */ 8329 #line 2202 "parser.yy" 8194 8330 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8195 8331 break; 8196 8332 8197 case 57 7:8198 8199 /* Line 1806 of yacc.c */ 8200 #line 220 0"parser.yy"8333 case 578: 8334 8335 /* Line 1806 of yacc.c */ 8336 #line 2204 "parser.yy" 8201 8337 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8202 8338 break; 8203 8339 8204 case 578: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2210 "parser.yy" 8208 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8209 break; 8210 8211 case 580: 8340 case 579: 8212 8341 8213 8342 /* Line 1806 of yacc.c */ … … 8219 8348 8220 8349 /* Line 1806 of yacc.c */ 8221 #line 2218 "parser.yy" 8350 #line 2216 "parser.yy" 8351 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8352 break; 8353 8354 case 582: 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2221 "parser.yy" 8222 8358 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8223 8359 break; 8224 8360 8225 case 58 2:8226 8227 /* Line 1806 of yacc.c */ 8228 #line 222 0"parser.yy"8361 case 583: 8362 8363 /* Line 1806 of yacc.c */ 8364 #line 2223 "parser.yy" 8229 8365 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8230 8366 break; 8231 8367 8232 case 58 3:8233 8234 /* Line 1806 of yacc.c */ 8235 #line 222 2"parser.yy"8368 case 584: 8369 8370 /* Line 1806 of yacc.c */ 8371 #line 2225 "parser.yy" 8236 8372 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8237 8373 break; 8238 8374 8239 case 58 4:8240 8241 /* Line 1806 of yacc.c */ 8242 #line 22 27"parser.yy"8375 case 585: 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2230 "parser.yy" 8243 8379 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8244 8380 break; 8245 8381 8246 case 58 5:8247 8248 /* Line 1806 of yacc.c */ 8249 #line 22 29"parser.yy"8382 case 586: 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2232 "parser.yy" 8250 8386 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8251 8387 break; 8252 8388 8253 case 58 6:8254 8255 /* Line 1806 of yacc.c */ 8256 #line 223 1"parser.yy"8389 case 587: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2234 "parser.yy" 8257 8393 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8258 8394 break; 8259 8395 8260 case 58 7:8261 8262 /* Line 1806 of yacc.c */ 8263 #line 223 6"parser.yy"8396 case 588: 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2239 "parser.yy" 8264 8400 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8265 8401 break; 8266 8402 8267 case 58 8:8268 8269 /* Line 1806 of yacc.c */ 8270 #line 22 38"parser.yy"8403 case 589: 8404 8405 /* Line 1806 of yacc.c */ 8406 #line 2241 "parser.yy" 8271 8407 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8272 8408 break; 8273 8409 8274 case 5 89:8275 8276 /* Line 1806 of yacc.c */ 8277 #line 224 0"parser.yy"8410 case 590: 8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2243 "parser.yy" 8278 8414 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8279 8415 break; 8280 8416 8281 case 59 3:8282 8283 /* Line 1806 of yacc.c */ 8284 #line 225 5"parser.yy"8417 case 594: 8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2258 "parser.yy" 8285 8421 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8286 8422 break; 8287 8423 8288 case 59 4:8289 8290 /* Line 1806 of yacc.c */ 8291 #line 22 57"parser.yy"8424 case 595: 8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2260 "parser.yy" 8292 8428 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8293 8429 break; 8294 8430 8295 case 59 5:8296 8297 /* Line 1806 of yacc.c */ 8298 #line 22 59"parser.yy"8431 case 596: 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2262 "parser.yy" 8299 8435 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8300 8436 break; 8301 8437 8302 case 59 6:8303 8304 /* Line 1806 of yacc.c */ 8305 #line 226 4"parser.yy"8438 case 597: 8439 8440 /* Line 1806 of yacc.c */ 8441 #line 2267 "parser.yy" 8306 8442 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8307 8443 break; 8308 8444 8309 case 59 7:8310 8311 /* Line 1806 of yacc.c */ 8312 #line 226 6"parser.yy"8445 case 598: 8446 8447 /* Line 1806 of yacc.c */ 8448 #line 2269 "parser.yy" 8313 8449 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8314 8450 break; 8315 8451 8316 case 59 8:8317 8318 /* Line 1806 of yacc.c */ 8319 #line 22 68"parser.yy"8452 case 599: 8453 8454 /* Line 1806 of yacc.c */ 8455 #line 2271 "parser.yy" 8320 8456 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8321 8457 break; 8322 8458 8323 case 599:8324 8325 /* Line 1806 of yacc.c */ 8326 #line 227 3"parser.yy"8459 case 600: 8460 8461 /* Line 1806 of yacc.c */ 8462 #line 2276 "parser.yy" 8327 8463 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8328 8464 break; 8329 8465 8330 case 60 0:8331 8332 /* Line 1806 of yacc.c */ 8333 #line 227 5"parser.yy"8466 case 601: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2278 "parser.yy" 8334 8470 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8335 8471 break; 8336 8472 8337 case 60 1:8338 8339 /* Line 1806 of yacc.c */ 8340 #line 22 77"parser.yy"8473 case 602: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2280 "parser.yy" 8341 8477 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8342 8478 break; 8343 8479 8344 case 602: 8345 8346 /* Line 1806 of yacc.c */ 8347 #line 2292 "parser.yy" 8348 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8349 break; 8350 8351 case 604: 8480 case 603: 8352 8481 8353 8482 /* Line 1806 of yacc.c */ … … 8359 8488 8360 8489 /* Line 1806 of yacc.c */ 8361 #line 229 7"parser.yy"8490 #line 2298 "parser.yy" 8362 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8363 8492 break; 8364 8493 8365 case 607: 8366 8367 /* Line 1806 of yacc.c */ 8368 #line 2303 "parser.yy" 8494 case 606: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2300 "parser.yy" 8498 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8499 break; 8500 8501 case 608: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2306 "parser.yy" 8369 8505 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8370 8506 break; 8371 8507 8372 case 60 8:8373 8374 /* Line 1806 of yacc.c */ 8375 #line 23 08"parser.yy"8508 case 609: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2311 "parser.yy" 8376 8512 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8377 8513 break; 8378 8514 8379 case 6 09:8380 8381 /* Line 1806 of yacc.c */ 8382 #line 231 0"parser.yy"8515 case 610: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2313 "parser.yy" 8383 8519 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8384 8520 break; 8385 8521 8386 case 61 0:8387 8388 /* Line 1806 of yacc.c */ 8389 #line 231 2"parser.yy"8522 case 611: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2315 "parser.yy" 8390 8526 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8391 8527 break; 8392 8528 8393 case 61 1:8394 8395 /* Line 1806 of yacc.c */ 8396 #line 23 17"parser.yy"8529 case 612: 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2320 "parser.yy" 8397 8533 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8398 8534 break; 8399 8535 8400 case 61 2:8401 8402 /* Line 1806 of yacc.c */ 8403 #line 23 19"parser.yy"8536 case 613: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2322 "parser.yy" 8404 8540 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8405 8541 break; 8406 8542 8407 case 61 3:8408 8409 /* Line 1806 of yacc.c */ 8410 #line 232 1"parser.yy"8543 case 614: 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2324 "parser.yy" 8411 8547 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8412 8548 break; 8413 8549 8414 case 61 4:8415 8416 /* Line 1806 of yacc.c */ 8417 #line 232 3"parser.yy"8550 case 615: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2326 "parser.yy" 8418 8554 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8419 8555 break; 8420 8556 8421 case 61 5:8422 8423 /* Line 1806 of yacc.c */ 8424 #line 23 28"parser.yy"8557 case 616: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2331 "parser.yy" 8425 8561 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8426 8562 break; 8427 8563 8428 case 61 6:8429 8430 /* Line 1806 of yacc.c */ 8431 #line 233 0"parser.yy"8564 case 617: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2333 "parser.yy" 8432 8568 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8433 8569 break; 8434 8570 8435 case 61 7:8436 8437 /* Line 1806 of yacc.c */ 8438 #line 233 2"parser.yy"8571 case 618: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2335 "parser.yy" 8439 8575 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8440 8576 break; 8441 8577 8442 case 618: 8443 8444 /* Line 1806 of yacc.c */ 8445 #line 2342 "parser.yy" 8446 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8447 break; 8448 8449 case 620: 8578 case 619: 8450 8579 8451 8580 /* Line 1806 of yacc.c */ … … 8457 8586 8458 8587 /* Line 1806 of yacc.c */ 8459 #line 234 7"parser.yy"8588 #line 2348 "parser.yy" 8460 8589 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8461 8590 break; … … 8464 8593 8465 8594 /* Line 1806 of yacc.c */ 8466 #line 2352 "parser.yy" 8595 #line 2350 "parser.yy" 8596 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8597 break; 8598 8599 case 623: 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2355 "parser.yy" 8467 8603 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8468 8604 break; 8469 8605 8470 case 62 3:8471 8472 /* Line 1806 of yacc.c */ 8473 #line 235 4"parser.yy"8606 case 624: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2357 "parser.yy" 8474 8610 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8475 8611 break; 8476 8612 8477 case 62 4:8478 8479 /* Line 1806 of yacc.c */ 8480 #line 235 6"parser.yy"8613 case 625: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2359 "parser.yy" 8481 8617 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8482 8618 break; 8483 8619 8484 case 62 5:8485 8486 /* Line 1806 of yacc.c */ 8487 #line 236 1"parser.yy"8620 case 626: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2364 "parser.yy" 8488 8624 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8489 8625 break; 8490 8626 8491 case 62 6:8492 8493 /* Line 1806 of yacc.c */ 8494 #line 236 3"parser.yy"8627 case 627: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2366 "parser.yy" 8495 8631 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8496 8632 break; 8497 8633 8498 case 62 7:8499 8500 /* Line 1806 of yacc.c */ 8501 #line 236 5"parser.yy"8634 case 628: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2368 "parser.yy" 8502 8638 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8503 8639 break; 8504 8640 8505 case 62 8:8506 8507 /* Line 1806 of yacc.c */ 8508 #line 23 67"parser.yy"8641 case 629: 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2370 "parser.yy" 8509 8645 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8510 8646 break; 8511 8647 8512 case 6 29:8513 8514 /* Line 1806 of yacc.c */ 8515 #line 237 2"parser.yy"8648 case 630: 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2375 "parser.yy" 8516 8652 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8517 8653 break; 8518 8654 8519 case 63 0:8520 8521 /* Line 1806 of yacc.c */ 8522 #line 237 4"parser.yy"8655 case 631: 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2377 "parser.yy" 8523 8659 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8524 8660 break; 8525 8661 8526 case 63 1:8527 8528 /* Line 1806 of yacc.c */ 8529 #line 237 6"parser.yy"8662 case 632: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2379 "parser.yy" 8530 8666 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8531 8667 break; 8532 8668 8533 case 632: 8534 8535 /* Line 1806 of yacc.c */ 8536 #line 2407 "parser.yy" 8537 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8538 break; 8539 8540 case 634: 8669 case 633: 8541 8670 8542 8671 /* Line 1806 of yacc.c */ … … 8548 8677 8549 8678 /* Line 1806 of yacc.c */ 8550 #line 241 2"parser.yy"8679 #line 2413 "parser.yy" 8551 8680 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8552 8681 break; … … 8555 8684 8556 8685 /* Line 1806 of yacc.c */ 8557 #line 2417 "parser.yy" 8686 #line 2415 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8688 break; 8689 8690 case 637: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2420 "parser.yy" 8558 8694 { 8559 8695 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8562 8698 break; 8563 8699 8564 case 63 7:8565 8566 /* Line 1806 of yacc.c */ 8567 #line 242 2"parser.yy"8700 case 638: 8701 8702 /* Line 1806 of yacc.c */ 8703 #line 2425 "parser.yy" 8568 8704 { 8569 8705 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8572 8708 break; 8573 8709 8574 case 63 8:8575 8576 /* Line 1806 of yacc.c */ 8577 #line 243 0"parser.yy"8710 case 639: 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2433 "parser.yy" 8578 8714 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8579 8715 break; 8580 8716 8581 case 6 39:8582 8583 /* Line 1806 of yacc.c */ 8584 #line 243 2"parser.yy"8717 case 640: 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2435 "parser.yy" 8585 8721 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8586 8722 break; 8587 8723 8588 case 64 0:8589 8590 /* Line 1806 of yacc.c */ 8591 #line 243 4"parser.yy"8724 case 641: 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2437 "parser.yy" 8592 8728 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8593 8729 break; 8594 8730 8595 case 64 1:8596 8597 /* Line 1806 of yacc.c */ 8598 #line 24 39"parser.yy"8731 case 642: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2442 "parser.yy" 8599 8735 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8600 8736 break; 8601 8737 8602 case 64 2:8603 8604 /* Line 1806 of yacc.c */ 8605 #line 244 1"parser.yy"8738 case 643: 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2444 "parser.yy" 8606 8742 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8607 8743 break; 8608 8744 8609 case 64 3:8610 8611 /* Line 1806 of yacc.c */ 8612 #line 244 6"parser.yy"8745 case 644: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2449 "parser.yy" 8613 8749 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8614 8750 break; 8615 8751 8616 case 64 4:8617 8618 /* Line 1806 of yacc.c */ 8619 #line 24 48"parser.yy"8752 case 645: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2451 "parser.yy" 8620 8756 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8621 8757 break; 8622 8758 8623 case 64 6:8624 8625 /* Line 1806 of yacc.c */ 8626 #line 246 3"parser.yy"8759 case 647: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2466 "parser.yy" 8627 8763 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8628 8764 break; 8629 8765 8630 case 64 7:8631 8632 /* Line 1806 of yacc.c */ 8633 #line 246 5"parser.yy"8766 case 648: 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2468 "parser.yy" 8634 8770 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8635 8771 break; 8636 8772 8637 case 64 8:8638 8639 /* Line 1806 of yacc.c */ 8640 #line 247 0"parser.yy"8773 case 649: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2473 "parser.yy" 8641 8777 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8642 8778 break; 8643 8779 8644 case 6 49:8645 8646 /* Line 1806 of yacc.c */ 8647 #line 247 2"parser.yy"8780 case 650: 8781 8782 /* Line 1806 of yacc.c */ 8783 #line 2475 "parser.yy" 8648 8784 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8649 8785 break; 8650 8786 8651 case 65 0:8652 8653 /* Line 1806 of yacc.c */ 8654 #line 247 4"parser.yy"8787 case 651: 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2477 "parser.yy" 8655 8791 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8656 8792 break; 8657 8793 8658 case 65 1:8659 8660 /* Line 1806 of yacc.c */ 8661 #line 247 6"parser.yy"8794 case 652: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2479 "parser.yy" 8662 8798 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8663 8799 break; 8664 8800 8665 case 65 2:8666 8667 /* Line 1806 of yacc.c */ 8668 #line 24 78"parser.yy"8801 case 653: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2481 "parser.yy" 8669 8805 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8670 8806 break; 8671 8807 8672 case 65 4:8673 8674 /* Line 1806 of yacc.c */ 8675 #line 248 4"parser.yy"8808 case 655: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2487 "parser.yy" 8676 8812 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8677 8813 break; 8678 8814 8679 case 65 5:8680 8681 /* Line 1806 of yacc.c */ 8682 #line 248 6"parser.yy"8815 case 656: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2489 "parser.yy" 8683 8819 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8684 8820 break; 8685 8821 8686 case 65 6:8687 8688 /* Line 1806 of yacc.c */ 8689 #line 24 88"parser.yy"8822 case 657: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2491 "parser.yy" 8690 8826 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8691 8827 break; 8692 8828 8693 case 65 7:8694 8695 /* Line 1806 of yacc.c */ 8696 #line 249 3"parser.yy"8829 case 658: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2496 "parser.yy" 8697 8833 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8698 8834 break; 8699 8835 8700 case 65 8:8701 8702 /* Line 1806 of yacc.c */ 8703 #line 249 5"parser.yy"8836 case 659: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2498 "parser.yy" 8704 8840 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8705 8841 break; 8706 8842 8707 case 6 59:8708 8709 /* Line 1806 of yacc.c */ 8710 #line 2 497"parser.yy"8843 case 660: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2500 "parser.yy" 8711 8847 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8712 8848 break; 8713 8849 8714 case 66 0:8715 8716 /* Line 1806 of yacc.c */ 8717 #line 250 3"parser.yy"8850 case 661: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2506 "parser.yy" 8718 8854 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8719 8855 break; 8720 8856 8721 case 66 1:8722 8723 /* Line 1806 of yacc.c */ 8724 #line 250 5"parser.yy"8857 case 662: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2508 "parser.yy" 8725 8861 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8726 8862 break; 8727 8863 8728 case 66 3:8729 8730 /* Line 1806 of yacc.c */ 8731 #line 251 1"parser.yy"8864 case 664: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2514 "parser.yy" 8732 8868 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8733 8869 break; 8734 8870 8735 case 66 4:8736 8737 /* Line 1806 of yacc.c */ 8738 #line 251 3"parser.yy"8871 case 665: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2516 "parser.yy" 8739 8875 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8740 8876 break; 8741 8877 8742 case 66 5:8743 8744 /* Line 1806 of yacc.c */ 8745 #line 251 5"parser.yy"8878 case 666: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2518 "parser.yy" 8746 8882 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8747 8883 break; 8748 8884 8749 case 66 6:8750 8751 /* Line 1806 of yacc.c */ 8752 #line 25 17"parser.yy"8885 case 667: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2520 "parser.yy" 8753 8889 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8754 8890 break; 8755 8891 8756 case 66 8:8757 8758 /* Line 1806 of yacc.c */ 8759 #line 253 2"parser.yy"8892 case 669: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2535 "parser.yy" 8760 8896 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8761 8897 break; 8762 8898 8763 case 6 69:8764 8765 /* Line 1806 of yacc.c */ 8766 #line 253 4"parser.yy"8899 case 670: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2537 "parser.yy" 8767 8903 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8768 8904 break; 8769 8905 8770 case 67 0:8771 8772 /* Line 1806 of yacc.c */ 8773 #line 25 39"parser.yy"8906 case 671: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2542 "parser.yy" 8774 8910 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8775 8911 break; 8776 8912 8777 case 67 1:8778 8779 /* Line 1806 of yacc.c */ 8780 #line 254 1"parser.yy"8913 case 672: 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2544 "parser.yy" 8781 8917 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8782 8918 break; 8783 8919 8784 case 67 2:8785 8786 /* Line 1806 of yacc.c */ 8787 #line 254 3"parser.yy"8920 case 673: 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2546 "parser.yy" 8788 8924 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8789 8925 break; 8790 8926 8791 case 67 3:8792 8793 /* Line 1806 of yacc.c */ 8794 #line 254 5"parser.yy"8927 case 674: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2548 "parser.yy" 8795 8931 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8796 8932 break; 8797 8933 8798 case 67 4:8799 8800 /* Line 1806 of yacc.c */ 8801 #line 25 47"parser.yy"8934 case 675: 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2550 "parser.yy" 8802 8938 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8803 8939 break; 8804 8940 8805 case 67 6:8806 8807 /* Line 1806 of yacc.c */ 8808 #line 255 3"parser.yy"8941 case 677: 8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2556 "parser.yy" 8809 8945 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8810 8946 break; 8811 8947 8812 case 67 7:8813 8814 /* Line 1806 of yacc.c */ 8815 #line 255 5"parser.yy"8948 case 678: 8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2558 "parser.yy" 8816 8952 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8817 8953 break; 8818 8954 8819 case 67 8:8820 8821 /* Line 1806 of yacc.c */ 8822 #line 25 57"parser.yy"8955 case 679: 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2560 "parser.yy" 8823 8959 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8824 8960 break; 8825 8961 8826 case 6 79:8827 8828 /* Line 1806 of yacc.c */ 8829 #line 256 2"parser.yy"8962 case 680: 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2565 "parser.yy" 8830 8966 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8831 8967 break; 8832 8968 8833 case 68 0:8834 8835 /* Line 1806 of yacc.c */ 8836 #line 256 4"parser.yy"8969 case 681: 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2567 "parser.yy" 8837 8973 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8838 8974 break; 8839 8975 8840 case 68 1:8841 8842 /* Line 1806 of yacc.c */ 8843 #line 256 6"parser.yy"8976 case 682: 8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2569 "parser.yy" 8844 8980 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8845 8981 break; 8846 8982 8847 case 68 3:8848 8849 /* Line 1806 of yacc.c */ 8850 #line 257 3"parser.yy"8983 case 684: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2576 "parser.yy" 8851 8987 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8852 8988 break; 8853 8989 8854 case 68 5:8855 8856 /* Line 1806 of yacc.c */ 8857 #line 258 4"parser.yy"8990 case 686: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2587 "parser.yy" 8858 8994 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8859 8995 break; 8860 8996 8861 case 68 6:8862 8863 /* Line 1806 of yacc.c */ 8864 #line 25 87"parser.yy"8997 case 687: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2590 "parser.yy" 8865 9001 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8866 9002 break; 8867 9003 8868 case 68 7:8869 8870 /* Line 1806 of yacc.c */ 8871 #line 25 89"parser.yy"9004 case 688: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2592 "parser.yy" 8872 9008 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8873 9009 break; 8874 9010 8875 case 68 8:8876 8877 /* Line 1806 of yacc.c */ 8878 #line 259 2"parser.yy"9011 case 689: 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2595 "parser.yy" 8879 9015 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8880 9016 break; 8881 9017 8882 case 6 89:8883 8884 /* Line 1806 of yacc.c */ 8885 #line 259 4"parser.yy"9018 case 690: 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2597 "parser.yy" 8886 9022 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8887 9023 break; 8888 9024 8889 case 69 0:8890 8891 /* Line 1806 of yacc.c */ 8892 #line 259 6"parser.yy"9025 case 691: 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2599 "parser.yy" 8893 9029 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8894 9030 break; 8895 9031 8896 case 69 2:8897 8898 /* Line 1806 of yacc.c */ 8899 #line 261 0"parser.yy"9032 case 693: 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2613 "parser.yy" 8900 9036 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8901 9037 break; 8902 9038 8903 case 69 3:8904 8905 /* Line 1806 of yacc.c */ 8906 #line 261 2"parser.yy"9039 case 694: 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2615 "parser.yy" 8907 9043 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8908 9044 break; 8909 9045 8910 case 69 4:8911 8912 /* Line 1806 of yacc.c */ 8913 #line 26 17"parser.yy"9046 case 695: 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2620 "parser.yy" 8914 9050 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8915 9051 break; 8916 9052 8917 case 69 5:8918 8919 /* Line 1806 of yacc.c */ 8920 #line 26 19"parser.yy"9053 case 696: 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2622 "parser.yy" 8921 9057 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8922 9058 break; 8923 9059 8924 case 69 6:8925 8926 /* Line 1806 of yacc.c */ 8927 #line 262 1"parser.yy"9060 case 697: 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2624 "parser.yy" 8928 9064 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8929 9065 break; 8930 9066 8931 case 69 7:8932 8933 /* Line 1806 of yacc.c */ 8934 #line 262 3"parser.yy"9067 case 698: 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2626 "parser.yy" 8935 9071 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8936 9072 break; 8937 9073 8938 case 69 8:8939 8940 /* Line 1806 of yacc.c */ 8941 #line 262 5"parser.yy"9074 case 699: 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2628 "parser.yy" 8942 9078 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8943 9079 break; 8944 9080 8945 case 70 0:8946 8947 /* Line 1806 of yacc.c */ 8948 #line 263 1"parser.yy"9081 case 701: 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2634 "parser.yy" 8949 9085 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8950 9086 break; 8951 9087 8952 case 70 1:8953 8954 /* Line 1806 of yacc.c */ 8955 #line 263 3"parser.yy"9088 case 702: 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2636 "parser.yy" 8956 9092 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8957 9093 break; 8958 9094 8959 case 70 2:8960 8961 /* Line 1806 of yacc.c */ 8962 #line 263 5"parser.yy"9095 case 703: 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2638 "parser.yy" 8963 9099 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8964 9100 break; 8965 9101 8966 case 70 3:8967 8968 /* Line 1806 of yacc.c */ 8969 #line 264 0"parser.yy"9102 case 704: 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2643 "parser.yy" 8970 9106 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8971 9107 break; 8972 9108 8973 case 70 4:8974 8975 /* Line 1806 of yacc.c */ 8976 #line 264 2"parser.yy"9109 case 705: 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2645 "parser.yy" 8977 9113 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8978 9114 break; 8979 9115 8980 case 70 7:8981 8982 /* Line 1806 of yacc.c */ 8983 #line 265 2"parser.yy"9116 case 708: 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2655 "parser.yy" 8984 9120 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8985 9121 break; 8986 9122 8987 case 71 0:8988 8989 /* Line 1806 of yacc.c */ 8990 #line 266 2"parser.yy"9123 case 711: 9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2665 "parser.yy" 8991 9127 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8992 9128 break; 8993 9129 8994 case 71 1:8995 8996 /* Line 1806 of yacc.c */ 8997 #line 266 4"parser.yy"9130 case 712: 9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2667 "parser.yy" 8998 9134 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8999 9135 break; 9000 9136 9001 case 71 2:9002 9003 /* Line 1806 of yacc.c */ 9004 #line 266 6"parser.yy"9137 case 713: 9138 9139 /* Line 1806 of yacc.c */ 9140 #line 2669 "parser.yy" 9005 9141 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9006 9142 break; 9007 9143 9008 case 71 3:9009 9010 /* Line 1806 of yacc.c */ 9011 #line 26 68"parser.yy"9144 case 714: 9145 9146 /* Line 1806 of yacc.c */ 9147 #line 2671 "parser.yy" 9012 9148 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9013 9149 break; 9014 9150 9015 case 71 4:9016 9017 /* Line 1806 of yacc.c */ 9018 #line 267 0"parser.yy"9151 case 715: 9152 9153 /* Line 1806 of yacc.c */ 9154 #line 2673 "parser.yy" 9019 9155 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9020 9156 break; 9021 9157 9022 case 71 5:9023 9024 /* Line 1806 of yacc.c */ 9025 #line 267 2"parser.yy"9158 case 716: 9159 9160 /* Line 1806 of yacc.c */ 9161 #line 2675 "parser.yy" 9026 9162 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9027 9163 break; 9028 9164 9029 case 71 6:9030 9031 /* Line 1806 of yacc.c */ 9032 #line 26 79"parser.yy"9165 case 717: 9166 9167 /* Line 1806 of yacc.c */ 9168 #line 2682 "parser.yy" 9033 9169 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9034 9170 break; 9035 9171 9036 case 71 7:9037 9038 /* Line 1806 of yacc.c */ 9039 #line 268 1"parser.yy"9172 case 718: 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2684 "parser.yy" 9040 9176 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9041 9177 break; 9042 9178 9043 case 71 8:9044 9045 /* Line 1806 of yacc.c */ 9046 #line 268 3"parser.yy"9179 case 719: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2686 "parser.yy" 9047 9183 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9048 9184 break; 9049 9185 9050 case 7 19:9051 9052 /* Line 1806 of yacc.c */ 9053 #line 268 5"parser.yy"9186 case 720: 9187 9188 /* Line 1806 of yacc.c */ 9189 #line 2688 "parser.yy" 9054 9190 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9055 9191 break; 9056 9192 9057 case 72 0:9058 9059 /* Line 1806 of yacc.c */ 9060 #line 26 87"parser.yy"9193 case 721: 9194 9195 /* Line 1806 of yacc.c */ 9196 #line 2690 "parser.yy" 9061 9197 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9062 9198 break; 9063 9199 9064 case 72 1:9065 9066 /* Line 1806 of yacc.c */ 9067 #line 26 89"parser.yy"9200 case 722: 9201 9202 /* Line 1806 of yacc.c */ 9203 #line 2692 "parser.yy" 9068 9204 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9069 9205 break; 9070 9206 9071 case 72 2:9072 9073 /* Line 1806 of yacc.c */ 9074 #line 269 1"parser.yy"9207 case 723: 9208 9209 /* Line 1806 of yacc.c */ 9210 #line 2694 "parser.yy" 9075 9211 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9076 9212 break; 9077 9213 9078 case 72 3:9079 9080 /* Line 1806 of yacc.c */ 9081 #line 269 3"parser.yy"9214 case 724: 9215 9216 /* Line 1806 of yacc.c */ 9217 #line 2696 "parser.yy" 9082 9218 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9083 9219 break; 9084 9220 9085 case 72 4:9086 9087 /* Line 1806 of yacc.c */ 9088 #line 269 5"parser.yy"9221 case 725: 9222 9223 /* Line 1806 of yacc.c */ 9224 #line 2698 "parser.yy" 9089 9225 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9090 9226 break; 9091 9227 9092 case 72 5:9093 9094 /* Line 1806 of yacc.c */ 9095 #line 2 697"parser.yy"9228 case 726: 9229 9230 /* Line 1806 of yacc.c */ 9231 #line 2700 "parser.yy" 9096 9232 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9097 9233 break; 9098 9234 9099 case 72 6:9100 9101 /* Line 1806 of yacc.c */ 9102 #line 270 2"parser.yy"9235 case 727: 9236 9237 /* Line 1806 of yacc.c */ 9238 #line 2705 "parser.yy" 9103 9239 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9104 9240 break; 9105 9241 9106 case 72 7:9107 9108 /* Line 1806 of yacc.c */ 9109 #line 270 4"parser.yy"9242 case 728: 9243 9244 /* Line 1806 of yacc.c */ 9245 #line 2707 "parser.yy" 9110 9246 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9111 9247 break; 9112 9248 9113 case 72 8:9114 9115 /* Line 1806 of yacc.c */ 9116 #line 27 09"parser.yy"9249 case 729: 9250 9251 /* Line 1806 of yacc.c */ 9252 #line 2712 "parser.yy" 9117 9253 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9118 9254 break; 9119 9255 9120 case 7 29:9121 9122 /* Line 1806 of yacc.c */ 9123 #line 271 1"parser.yy"9256 case 730: 9257 9258 /* Line 1806 of yacc.c */ 9259 #line 2714 "parser.yy" 9124 9260 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9125 9261 break; 9126 9262 9127 case 73 1:9128 9129 /* Line 1806 of yacc.c */ 9130 #line 27 38"parser.yy"9263 case 732: 9264 9265 /* Line 1806 of yacc.c */ 9266 #line 2741 "parser.yy" 9131 9267 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9132 9268 break; 9133 9269 9134 case 73 5:9135 9136 /* Line 1806 of yacc.c */ 9137 #line 27 49"parser.yy"9270 case 736: 9271 9272 /* Line 1806 of yacc.c */ 9273 #line 2752 "parser.yy" 9138 9274 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9139 9275 break; 9140 9276 9141 case 73 6:9142 9143 /* Line 1806 of yacc.c */ 9144 #line 275 1"parser.yy"9277 case 737: 9278 9279 /* Line 1806 of yacc.c */ 9280 #line 2754 "parser.yy" 9145 9281 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9146 9282 break; 9147 9283 9148 case 73 7:9149 9150 /* Line 1806 of yacc.c */ 9151 #line 275 3"parser.yy"9284 case 738: 9285 9286 /* Line 1806 of yacc.c */ 9287 #line 2756 "parser.yy" 9152 9288 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9153 9289 break; 9154 9290 9155 case 73 8:9156 9157 /* Line 1806 of yacc.c */ 9158 #line 275 5"parser.yy"9291 case 739: 9292 9293 /* Line 1806 of yacc.c */ 9294 #line 2758 "parser.yy" 9159 9295 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9160 9296 break; 9161 9297 9162 case 7 39:9163 9164 /* Line 1806 of yacc.c */ 9165 #line 27 57"parser.yy"9298 case 740: 9299 9300 /* Line 1806 of yacc.c */ 9301 #line 2760 "parser.yy" 9166 9302 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9167 9303 break; 9168 9304 9169 case 74 0:9170 9171 /* Line 1806 of yacc.c */ 9172 #line 27 59"parser.yy"9305 case 741: 9306 9307 /* Line 1806 of yacc.c */ 9308 #line 2762 "parser.yy" 9173 9309 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9174 9310 break; 9175 9311 9176 case 74 1:9177 9178 /* Line 1806 of yacc.c */ 9179 #line 276 6"parser.yy"9312 case 742: 9313 9314 /* Line 1806 of yacc.c */ 9315 #line 2769 "parser.yy" 9180 9316 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9181 9317 break; 9182 9318 9183 case 74 2:9184 9185 /* Line 1806 of yacc.c */ 9186 #line 27 68"parser.yy"9319 case 743: 9320 9321 /* Line 1806 of yacc.c */ 9322 #line 2771 "parser.yy" 9187 9323 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9188 9324 break; 9189 9325 9190 case 74 3:9191 9192 /* Line 1806 of yacc.c */ 9193 #line 277 0"parser.yy"9326 case 744: 9327 9328 /* Line 1806 of yacc.c */ 9329 #line 2773 "parser.yy" 9194 9330 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9195 9331 break; 9196 9332 9197 case 74 4:9198 9199 /* Line 1806 of yacc.c */ 9200 #line 277 2"parser.yy"9333 case 745: 9334 9335 /* Line 1806 of yacc.c */ 9336 #line 2775 "parser.yy" 9201 9337 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9202 9338 break; 9203 9339 9204 case 74 5:9205 9206 /* Line 1806 of yacc.c */ 9207 #line 277 4"parser.yy"9340 case 746: 9341 9342 /* Line 1806 of yacc.c */ 9343 #line 2777 "parser.yy" 9208 9344 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9209 9345 break; 9210 9346 9211 case 74 6:9212 9213 /* Line 1806 of yacc.c */ 9214 #line 277 6"parser.yy"9347 case 747: 9348 9349 /* Line 1806 of yacc.c */ 9350 #line 2779 "parser.yy" 9215 9351 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9216 9352 break; 9217 9353 9218 case 74 7:9219 9220 /* Line 1806 of yacc.c */ 9221 #line 278 1"parser.yy"9354 case 748: 9355 9356 /* Line 1806 of yacc.c */ 9357 #line 2784 "parser.yy" 9222 9358 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9223 9359 break; 9224 9360 9225 case 74 8:9226 9227 /* Line 1806 of yacc.c */ 9228 #line 278 6"parser.yy"9361 case 749: 9362 9363 /* Line 1806 of yacc.c */ 9364 #line 2789 "parser.yy" 9229 9365 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9230 9366 break; 9231 9367 9232 case 7 49:9233 9234 /* Line 1806 of yacc.c */ 9235 #line 27 88"parser.yy"9368 case 750: 9369 9370 /* Line 1806 of yacc.c */ 9371 #line 2791 "parser.yy" 9236 9372 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9237 9373 break; 9238 9374 9239 case 75 0:9240 9241 /* Line 1806 of yacc.c */ 9242 #line 279 0"parser.yy"9375 case 751: 9376 9377 /* Line 1806 of yacc.c */ 9378 #line 2793 "parser.yy" 9243 9379 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9244 9380 break; 9245 9381 9246 case 75 3:9247 9248 /* Line 1806 of yacc.c */ 9249 #line 281 4"parser.yy"9382 case 754: 9383 9384 /* Line 1806 of yacc.c */ 9385 #line 2817 "parser.yy" 9250 9386 { (yyval.en) = 0; } 9251 9387 break; 9252 9388 9253 case 75 4:9254 9255 /* Line 1806 of yacc.c */ 9256 #line 281 6"parser.yy"9389 case 755: 9390 9391 /* Line 1806 of yacc.c */ 9392 #line 2819 "parser.yy" 9257 9393 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9258 9394 break; … … 9261 9397 9262 9398 /* Line 1806 of yacc.c */ 9263 #line 9 264"Parser/parser.cc"9399 #line 9400 "Parser/parser.cc" 9264 9400 default: break; 9265 9401 } … … 9492 9628 9493 9629 /* Line 2067 of yacc.c */ 9494 #line 28 19"parser.yy"9630 #line 2822 "parser.yy" 9495 9631 9496 9632 // ----end of grammar---- -
src/Parser/parser.h
r1b5c81ed rf80e0218 262 262 263 263 /* Line 2068 of yacc.c */ 264 #line 11 2"parser.yy"264 #line 110 "parser.yy" 265 265 266 266 Token tok; -
src/Parser/parser.yy
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // cfa.y -- 8 // 7 // cfa.y -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 16:58:43201613 // Update Count : 1 51914 // 12 // Last Modified On : Mon Jun 27 17:47:56 2016 13 // Update Count : 1627 14 // 15 15 16 16 // This grammar is based on the ANSI99/11 C grammar, specifically parts of EXPRESSION and STATEMENTS, and on the C … … 31 31 // two levels of extensions. The first extensions cover most of the GCC C extensions, except for: 32 32 // 33 // 1. nested functions 34 // 2. generalized lvalues 35 // 3. designation with and without '=' (use ':' instead) 36 // 4. attributes not allowed in parenthesis of declarator 33 // 1. designation with and without '=' (use ':' instead) 34 // 2. attributes not allowed in parenthesis of declarator 37 35 // 38 36 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall … … 79 77 %token TYPEOF LABEL // GCC 80 78 %token ENUM STRUCT UNION 81 %token OTYPE FTYPE DTYPE TRAIT // CFA79 %token OTYPE FTYPE DTYPE TRAIT // CFA 82 80 %token SIZEOF OFFSETOF 83 81 %token ATTRIBUTE EXTENSION // GCC … … 131 129 %type<constant> constant 132 130 %type<en> tuple tuple_expression_list 133 %type<en> unary_operator assignment_operator131 %type<en> ptrref_operator unary_operator assignment_operator 134 132 %type<en> primary_expression postfix_expression unary_expression 135 133 %type<en> cast_expression multiplicative_expression additive_expression shift_expression … … 226 224 %type<decl> typedef type_array typedef_declaration typedef_declaration_specifier typedef_expression 227 225 %type<decl> type_function type_parameter_array type_parameter_function type_parameter_ptr 228 %type<decl> type_parameter_redeclarator type_ptr type_redeclarator typedef_type_specifier226 %type<decl> type_parameter_redeclarator type_ptr variable_type_redeclarator typedef_type_specifier 229 227 %type<decl> typegen_declaration_specifier typegen_type_specifier typegen_name 230 228 … … 352 350 primary_expression 353 351 | postfix_expression '[' push assignment_expression pop ']' 354 // CFA, comma_expression disallowed in th e context because it results in a commomuser error: subscripting a352 // CFA, comma_expression disallowed in this context because it results in a common user error: subscripting a 355 353 // matrix with x[i,j] instead of x[i][j]. While this change is not backwards compatible, there seems to be 356 354 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is … … 423 421 unary_expression: 424 422 postfix_expression 425 // first location where constant/string can have operator applied: sizeof 3/sizeof "abc"426 // still requiressemantics checks, e.g., ++3, 3--, *3, &&3423 // first location where constant/string can have operator applied: sizeof 3/sizeof "abc" still requires 424 // semantics checks, e.g., ++3, 3--, *3, &&3 427 425 | constant 428 426 { $$ = $1; } 429 427 | string_literal_list 430 428 { $$ = $1; } 429 | EXTENSION cast_expression // GCC 430 { $$ = $2->set_extension( true ); } 431 | ptrref_operator cast_expression // CFA 432 { $$ = new CompositeExprNode( $1, $2 ); } 433 // '*' ('&') is separated from unary_operator because of shift/reduce conflict in: 434 // { * X; } // dereference X 435 // { * int X; } // CFA declaration of pointer to int 436 | unary_operator cast_expression 437 { $$ = new CompositeExprNode( $1, $2 ); } 431 438 | ICR unary_expression 432 439 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2 ); } 433 440 | DECR unary_expression 434 441 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2 ); } 435 | EXTENSION cast_expression // GCC436 { $$ = $2; }437 | unary_operator cast_expression438 { $$ = new CompositeExprNode( $1, $2 ); }439 | '!' cast_expression440 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), $2 ); }441 | '*' cast_expression // CFA442 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), $2 ); }443 // '*' is is separated from unary_operator because of shift/reduce conflict in:444 // { * X; } // dereference X445 // { * int X; } // CFA declaration of pointer to int446 // '&' must be moved here if C++ reference variables are supported.447 442 | SIZEOF unary_expression 448 443 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), $2 ); } … … 461 456 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 462 457 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3 ) ); } 463 | ANDAND no_attr_identifier // GCC, address of label 464 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); } 458 // | ANDAND IDENTIFIER // GCC, address of label 459 // { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); } 460 ; 461 462 ptrref_operator: 463 '*' { $$ = new OperatorNode( OperatorNode::PointTo ); } 464 | '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); } 465 // GCC, address of label must be handled by semantic check for ref,ref,label 466 | ANDAND { $$ = new OperatorNode( OperatorNode::And ); } 465 467 ; 466 468 467 469 unary_operator: 468 '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); } 469 | '+' { $$ = new OperatorNode( OperatorNode::UnPlus ); } 470 '+' { $$ = new OperatorNode( OperatorNode::UnPlus ); } 470 471 | '-' { $$ = new OperatorNode( OperatorNode::UnMinus ); } 472 | '!' { $$ = new OperatorNode( OperatorNode::Neg ); } 471 473 | '~' { $$ = new OperatorNode( OperatorNode::BitNeg ); } 472 474 ; … … 646 648 Token fn; fn.str = new std::string( "^?{}" ); // location undefined 647 649 $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ), 648 (ExpressionNode *)( new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), $2 ))->set_link( $4 ) ), 0 );650 (ExpressionNode *)( $2 )->set_link( $4 ) ), 0 ); 649 651 } 650 652 ; 651 653 652 654 labeled_statement: 653 no_attr_identifier ':' attribute_list_opt statement 655 // labels cannot be identifiers 0 or 1 656 IDENTIFIER ':' attribute_list_opt statement 654 657 { 655 658 $$ = $4->add_label( $1 ); … … 679 682 { $$ = new StatementNode( $1 ); } 680 683 | EXTENSION declaration // GCC 681 { $$ = new StatementNode( $2 ) ; }684 { $$ = new StatementNode( $2 )/*->set_extension( true )*/; } 682 685 | function_definition 683 686 { $$ = new StatementNode( $1 ); } … … 804 807 805 808 jump_statement: 806 GOTO no_attr_identifier';'809 GOTO IDENTIFIER ';' 807 810 { $$ = new StatementNode( StatementNode::Goto, $2 ); } 808 811 | GOTO '*' comma_expression ';' // GCC, computed goto … … 813 816 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 814 817 { $$ = new StatementNode( StatementNode::Continue ); } 815 | CONTINUE no_attr_identifier';' // CFA, multi-level continue818 | CONTINUE IDENTIFIER ';' // CFA, multi-level continue 816 819 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 817 820 // the target of the transfer appears only at the start of an iteration statement. … … 820 823 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 821 824 { $$ = new StatementNode( StatementNode::Break ); } 822 | BREAK no_attr_identifier';' // CFA, multi-level exit825 | BREAK IDENTIFIER ';' // CFA, multi-level exit 823 826 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 824 827 // the target of the transfer appears only at the start of an iteration statement. … … 1469 1472 new_field_declaring_list ';' // CFA, new style field declaration 1470 1473 | EXTENSION new_field_declaring_list ';' // GCC 1471 { $$ = $2 ; }1474 { $$ = $2/*->set_extension( true )*/; } 1472 1475 | field_declaring_list ';' 1473 1476 | EXTENSION field_declaring_list ';' // GCC 1474 { $$ = $2 ; }1477 { $$ = $2/*->set_extension( true )*/; } 1475 1478 ; 1476 1479 … … 1500 1503 // A semantic check is required to ensure bit_subrange only appears on base type int. 1501 1504 { $$ = $1->addBitfield( $2 ); } 1502 | type_redeclarator bit_subrange_size_opt1505 | variable_type_redeclarator bit_subrange_size_opt 1503 1506 // A semantic check is required to ensure bit_subrange only appears on base type int. 1504 1507 { $$ = $1->addBitfield( $2 ); } … … 1702 1705 { $$ = $2; } 1703 1706 | ATassign initializer 1704 { $$ = $2 ; }1707 { $$ = $2->set_maybeConstructed( false ); } 1705 1708 ; 1706 1709 … … 1744 1747 1745 1748 designator: 1746 // lexer ambiguity: designator ".0" is floating-point constant or designator for name 01747 // only ".0" and ".1"allowed => semantic check1749 // lexer ambiguity: designator ".0" is floating-point constant or designator for name 0 only ".0" and ".1" 1750 // allowed => semantic check 1748 1751 FLOATINGconstant 1749 1752 { $$ = new DesignatorNode( new VarRefNode( $1 ) ); } … … 1988 1991 } 1989 1992 | EXTENSION external_definition 1990 { $$ = $2 ; }1993 { $$ = $2/*->set_extension( true )*/; } 1991 1994 ; 1992 1995 … … 1994 1997 function_definition 1995 1998 // These rules are a concession to the "implicit int" type_specifier because there is a significant amount of 1996 // code with functions missing a type-specifier on the return type. Parsing is possible because 1997 // function_definition does not appear in the context of an expression (nested functions would preclude this 1998 // concession). A function prototype declaration must still have a type_specifier. OBSOLESCENT (see 1) 1999 // legacy code with global functions missing the type-specifier for the return type, and assuming "int". 2000 // Parsing is possible because function_definition does not appear in the context of an expression (nested 2001 // functions preclude this concession, i.e., all nested function must have a return type). A function prototype 2002 // declaration must still have a type_specifier. OBSOLESCENT (see 1) 1999 2003 | function_declarator compound_statement 2000 2004 { … … 2074 2078 declarator: 2075 2079 variable_declarator 2080 | variable_type_redeclarator 2076 2081 | function_declarator 2077 | type_redeclarator2078 2082 ; 2079 2083 … … 2175 2179 2176 2180 variable_ptr: 2177 '*'variable_declarator2181 ptrref_operator variable_declarator 2178 2182 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2179 | '*'type_qualifier_list variable_declarator2183 | ptrref_operator type_qualifier_list variable_declarator 2180 2184 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2181 2185 | '(' variable_ptr ')' … … 2201 2205 ; 2202 2206 2203 // This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot be nested, 2204 // there is no context where a function definition can redefine a typedef name. To allow nested functions requires 2205 // further separation of variable and function declarators in type_redeclarator. The pattern precludes returning 2206 // arrays and functions versus pointers to arrays and functions. 2207 // This pattern parses a function declarator that is not redefining a typedef name. For non-nested functions, there is 2208 // no context where a function definition can redefine a typedef name, i.e., the typedef and function name cannot exist 2209 // is the same scope. The pattern precludes returning arrays and functions versus pointers to arrays and functions. 2207 2210 2208 2211 function_declarator: … … 2224 2227 2225 2228 function_ptr: 2226 '*'function_declarator2229 ptrref_operator function_declarator 2227 2230 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2228 | '*'type_qualifier_list function_declarator2231 | ptrref_operator type_qualifier_list function_declarator 2229 2232 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2230 2233 | '(' function_ptr ')' … … 2261 2264 2262 2265 old_function_ptr: 2263 '*'old_function_declarator2266 ptrref_operator old_function_declarator 2264 2267 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2265 | '*'type_qualifier_list old_function_declarator2268 | ptrref_operator type_qualifier_list old_function_declarator 2266 2269 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2267 2270 | '(' old_function_ptr ')' … … 2288 2291 // and functions versus pointers to arrays and functions. 2289 2292 2290 type_redeclarator:2293 variable_type_redeclarator: 2291 2294 paren_type attribute_list_opt 2292 2295 { $$ = $1->addQualifiers( $2 ); } … … 2305 2308 2306 2309 type_ptr: 2307 '*'type_redeclarator2310 ptrref_operator variable_type_redeclarator 2308 2311 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2309 | '*' type_qualifier_listtype_redeclarator2312 | ptrref_operator type_qualifier_list variable_type_redeclarator 2310 2313 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2311 2314 | '(' type_ptr ')' … … 2349 2352 2350 2353 identifier_parameter_ptr: 2351 '*'identifier_parameter_declarator2354 ptrref_operator identifier_parameter_declarator 2352 2355 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2353 | '*'type_qualifier_list identifier_parameter_declarator2356 | ptrref_operator type_qualifier_list identifier_parameter_declarator 2354 2357 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2355 2358 | '(' identifier_parameter_ptr ')' … … 2390 2393 // not as redundant parentheses around the identifier." 2391 2394 // 2392 // which precludes the following cases:2395 // For example: 2393 2396 // 2394 2397 // typedef float T; … … 2427 2430 2428 2431 type_parameter_ptr: 2429 '*'type_parameter_redeclarator2432 ptrref_operator type_parameter_redeclarator 2430 2433 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2431 | '*'type_qualifier_list type_parameter_redeclarator2434 | ptrref_operator type_qualifier_list type_parameter_redeclarator 2432 2435 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2433 2436 | '(' type_parameter_ptr ')' … … 2467 2470 2468 2471 abstract_ptr: 2469 '*'2472 ptrref_operator 2470 2473 { $$ = DeclarationNode::newPointer( 0 ); } 2471 | '*'type_qualifier_list2474 | ptrref_operator type_qualifier_list 2472 2475 { $$ = DeclarationNode::newPointer( $2 ); } 2473 | '*'abstract_declarator2476 | ptrref_operator abstract_declarator 2474 2477 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2475 | '*'type_qualifier_list abstract_declarator2478 | ptrref_operator type_qualifier_list abstract_declarator 2476 2479 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2477 2480 | '(' abstract_ptr ')' … … 2536 2539 2537 2540 abstract_parameter_ptr: 2538 '*'2541 ptrref_operator 2539 2542 { $$ = DeclarationNode::newPointer( 0 ); } 2540 | '*'type_qualifier_list2543 | ptrref_operator type_qualifier_list 2541 2544 { $$ = DeclarationNode::newPointer( $2 ); } 2542 | '*'abstract_parameter_declarator2545 | ptrref_operator abstract_parameter_declarator 2543 2546 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2544 | '*'type_qualifier_list abstract_parameter_declarator2547 | ptrref_operator type_qualifier_list abstract_parameter_declarator 2545 2548 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2546 2549 | '(' abstract_parameter_ptr ')' … … 2614 2617 2615 2618 variable_abstract_ptr: 2616 '*'2619 ptrref_operator 2617 2620 { $$ = DeclarationNode::newPointer( 0 ); } 2618 | '*'type_qualifier_list2621 | ptrref_operator type_qualifier_list 2619 2622 { $$ = DeclarationNode::newPointer( $2 ); } 2620 | '*'variable_abstract_declarator2623 | ptrref_operator variable_abstract_declarator 2621 2624 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2622 | '*'type_qualifier_list variable_abstract_declarator2625 | ptrref_operator type_qualifier_list variable_abstract_declarator 2623 2626 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2624 2627 | '(' variable_abstract_ptr ')' … … 2659 2662 2660 2663 new_identifier_parameter_ptr: // CFA 2661 '*'type_specifier2664 ptrref_operator type_specifier 2662 2665 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2663 | type_qualifier_list '*'type_specifier2666 | type_qualifier_list ptrref_operator type_specifier 2664 2667 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2665 | '*'new_abstract_function2668 | ptrref_operator new_abstract_function 2666 2669 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2667 | type_qualifier_list '*'new_abstract_function2670 | type_qualifier_list ptrref_operator new_abstract_function 2668 2671 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2669 | '*'new_identifier_parameter_declarator_tuple2672 | ptrref_operator new_identifier_parameter_declarator_tuple 2670 2673 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2671 | type_qualifier_list '*'new_identifier_parameter_declarator_tuple2674 | type_qualifier_list ptrref_operator new_identifier_parameter_declarator_tuple 2672 2675 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2673 2676 ; … … 2746 2749 2747 2750 new_abstract_ptr: // CFA 2748 '*'type_specifier2751 ptrref_operator type_specifier 2749 2752 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2750 | type_qualifier_list '*'type_specifier2753 | type_qualifier_list ptrref_operator type_specifier 2751 2754 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2752 | '*'new_abstract_function2755 | ptrref_operator new_abstract_function 2753 2756 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2754 | type_qualifier_list '*'new_abstract_function2757 | type_qualifier_list ptrref_operator new_abstract_function 2755 2758 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2756 | '*'new_abstract_declarator_tuple2759 | ptrref_operator new_abstract_declarator_tuple 2757 2760 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2758 | type_qualifier_list '*'new_abstract_declarator_tuple2761 | type_qualifier_list ptrref_operator new_abstract_declarator_tuple 2759 2762 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2760 2763 ; -
src/ResolvExpr/AlternativeFinder.cc
r1b5c81ed rf80e0218 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 23:52:08 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Feb 10 17:00:04 201613 // Update Count : 2 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 13 16:13:54 2016 13 // Update Count : 25 14 14 // 15 15 … … 19 19 #include <functional> 20 20 #include <cassert> 21 #include <unordered_map> 22 #include <utility> 23 #include <vector> 21 24 22 25 #include "AlternativeFinder.h" … … 39 42 #include "Tuples/NameMatcher.h" 40 43 #include "Common/utility.h" 44 #include "InitTweak/InitTweak.h" 41 45 42 46 extern bool resolvep; … … 407 411 } 408 412 409 static const int recursionLimit = 10; 413 // /// Map of declaration uniqueIds (intended to be the assertions in an AssertionSet) to their parents and the number of times they've been included 414 //typedef std::unordered_map< UniqueId, std::unordered_map< UniqueId, unsigned > > AssertionParentSet; 415 416 static const int recursionLimit = /*10*/ 4; ///< Limit to depth of recursion satisfaction 417 //static const unsigned recursionParentLimit = 1; ///< Limit to the number of times an assertion can recursively use itself 410 418 411 419 void addToIndexer( AssertionSet &assertSet, SymTab::Indexer &indexer ) { … … 416 424 } 417 425 } 418 426 419 427 template< typename ForwardIterator, typename OutputIterator > 420 void inferRecursive( ForwardIterator begin, ForwardIterator end, const Alternative &newAlt, OpenVarSet &openVars, const SymTab::Indexer &decls, const AssertionSet &newNeed, int level, const SymTab::Indexer &indexer, OutputIterator out ) { 428 void inferRecursive( ForwardIterator begin, ForwardIterator end, const Alternative &newAlt, OpenVarSet &openVars, const SymTab::Indexer &decls, const AssertionSet &newNeed, /*const AssertionParentSet &needParents,*/ 429 int level, const SymTab::Indexer &indexer, OutputIterator out ) { 421 430 if ( begin == end ) { 422 431 if ( newNeed.empty() ) { … … 431 440 printAssertionSet( newNeed, std::cerr, 8 ); 432 441 ) 433 inferRecursive( newNeed.begin(), newNeed.end(), newAlt, openVars, decls, newerNeed, level+1, indexer, out );442 inferRecursive( newNeed.begin(), newNeed.end(), newAlt, openVars, decls, newerNeed, /*needParents,*/ level+1, indexer, out ); 434 443 return; 435 444 } … … 438 447 ForwardIterator cur = begin++; 439 448 if ( ! cur->second ) { 440 inferRecursive( begin, end, newAlt, openVars, decls, newNeed, level, indexer, out );449 inferRecursive( begin, end, newAlt, openVars, decls, newNeed, /*needParents,*/ level, indexer, out ); 441 450 } 442 451 DeclarationWithType *curDecl = cur->first; … … 455 464 std::cerr << std::endl; 456 465 ) 466 457 467 AssertionSet newHave, newerNeed( newNeed ); 458 468 TypeEnvironment newEnv( newAlt.env ); … … 477 487 newerAlt.env = newEnv; 478 488 assert( (*candidate)->get_uniqueId() ); 479 Expression *varExpr = new VariableExpr( static_cast< DeclarationWithType* >( Declaration::declFromId( (*candidate)->get_uniqueId() ) ) ); 489 DeclarationWithType *candDecl = static_cast< DeclarationWithType* >( Declaration::declFromId( (*candidate)->get_uniqueId() ) ); 490 //AssertionParentSet newNeedParents( needParents ); 491 // skip repeatingly-self-recursive assertion satisfaction 492 // DOESN'T WORK: grandchild nodes conflict with their cousins 493 //if ( newNeedParents[ curDecl->get_uniqueId() ][ candDecl->get_uniqueId() ]++ > recursionParentLimit ) continue; 494 Expression *varExpr = new VariableExpr( candDecl ); 480 495 deleteAll( varExpr->get_results() ); 481 496 varExpr->get_results().clear(); … … 491 506 // XXX: this is a memory leak, but adjType can't be deleted because it might contain assertions 492 507 appExpr->get_inferParams()[ curDecl->get_uniqueId() ] = ParamEntry( (*candidate)->get_uniqueId(), adjType->clone(), curDecl->get_type()->clone(), varExpr ); 493 inferRecursive( begin, end, newerAlt, newOpenVars, newDecls, newerNeed, level, indexer, out );508 inferRecursive( begin, end, newerAlt, newOpenVars, newDecls, newerNeed, /*newNeedParents,*/ level, indexer, out ); 494 509 } else { 495 510 delete adjType; … … 513 528 addToIndexer( have, decls ); 514 529 AssertionSet newNeed; 515 inferRecursive( need.begin(), need.end(), newAlt, openVars, decls, newNeed, 0, indexer, out ); 530 //AssertionParentSet needParents; 531 inferRecursive( need.begin(), need.end(), newAlt, openVars, decls, newNeed, /*needParents,*/ 0, indexer, out ); 516 532 // PRINT( 517 533 // std::cerr << "declaration 14 is "; … … 546 562 547 563 { 548 NameExpr *fname = 0;; 549 if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function())) 550 && ( fname->get_name() == std::string("&&")) ) { 564 std::string fname = InitTweak::getFunctionName( untypedExpr ); 565 if ( fname == "&&" ) { 551 566 VoidType v = Type::Qualifiers(); // resolve to type void * 552 567 PointerType pt( Type::Qualifiers(), v.clone() ); … … 757 772 for ( std::list< DeclarationWithType* >::iterator i = declList.begin(); i != declList.end(); ++i ) { 758 773 VariableExpr newExpr( *i, nameExpr->get_argName() ); 774 newExpr.set_extension( nameExpr->get_extension() ); 759 775 alternatives.push_back( Alternative( newExpr.clone(), env, Cost() ) ); 760 776 PRINT( … … 982 998 } // for 983 999 } 1000 1001 void AlternativeFinder::visit( ImplicitCopyCtorExpr * impCpCtorExpr ) { 1002 alternatives.push_back( Alternative( impCpCtorExpr->clone(), env, Cost::zero ) ); 1003 } 984 1004 } // namespace ResolvExpr 985 1005 -
src/ResolvExpr/AlternativeFinder.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // AlternativeFinder.h -- 7 // AlternativeFinder.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 23:56:12 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sat May 16 23:58:43 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Apr 19 11:44:53 2016 13 13 // Update Count : 2 14 // 14 // 15 15 16 16 #ifndef ALTERNATIVEFINDER_H … … 54 54 virtual void visit( NameExpr *variableExpr ); 55 55 virtual void visit( VariableExpr *variableExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 57 57 virtual void visit( SizeofExpr *sizeofExpr ); 58 58 virtual void visit( AlignofExpr *alignofExpr ); … … 65 65 virtual void visit( CommaExpr *commaExpr ); 66 66 virtual void visit( TupleExpr *tupleExpr ); 67 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ); 67 68 public: // xxx - temporary hack - should make Tuples::TupleAssignment a friend 68 69 template< typename InputIterator, typename OutputIterator > -
src/ResolvExpr/CommonType.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CommonType.cc -- 7 // CommonType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 134 134 result = new BasicType( basicType->get_qualifiers() + otherBasic->get_qualifiers(), newType ); 135 135 } // if 136 } else if ( EnumInstType *enumInstType = dynamic_cast< EnumInstType * > ( type2 ) ) { 137 // use signed int in lieu of the enum type 138 BasicType::Kind newType = combinedType[ basicType->get_kind() ][ BasicType::SignedInt ]; 139 if ( ( ( newType == basicType->get_kind() && basicType->get_qualifiers() >= enumInstType->get_qualifiers() ) || widenFirst ) && ( ( newType != basicType->get_kind() && basicType->get_qualifiers() <= enumInstType->get_qualifiers() ) || widenSecond ) ) { 140 result = new BasicType( basicType->get_qualifiers() + enumInstType->get_qualifiers(), newType ); 141 } // if 136 142 } // if 137 143 } … … 183 189 } 184 190 185 void CommonType::visit( EnumInstType *aggregateUseType ) { 191 void CommonType::visit( EnumInstType *enumInstType ) { 192 if ( dynamic_cast< BasicType * >( type2 ) ) { 193 // reuse BasicType, EnumInstType code by swapping type2 with enumInstType 194 Type * temp = type2; 195 type2 = enumInstType; 196 temp->accept( *this ); 197 type2 = temp; 198 } // if 186 199 } 187 200 -
src/ResolvExpr/ConversionCost.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ConversionCost.cc -- 7 // ConversionCost.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 157 157 cost = Cost( 0, 0, tableResult ); 158 158 } // if 159 } // if 159 } else if ( dynamic_cast< EnumInstType *>( dest ) ) { 160 // xxx - not positive this is correct, but appears to allow casting int => enum 161 cost = Cost( 1, 0, 0 ); 162 } // if 160 163 } 161 164 -
src/ResolvExpr/RenameVars.cc
r1b5c81ed rf80e0218 45 45 void RenameVars::visit( PointerType *pointerType ) { 46 46 typeBefore( pointerType ); 47 /// std::cout << "do pointer" << std::endl;48 47 maybeAccept( pointerType->get_base(), *this ); 49 /// std::cout << "done pointer" << std::endl;50 48 typeAfter( pointerType ); 51 49 } … … 60 58 void RenameVars::visit( FunctionType *functionType ) { 61 59 typeBefore( functionType ); 62 /// std::cout << "return vals" << std::endl;63 60 acceptAll( functionType->get_returnVals(), *this ); 64 /// std::cout << functionType->get_parameters().size() << " parameters" << std::endl;65 61 acceptAll( functionType->get_parameters(), *this ); 66 /// std::cout << "done function" << std::endl;67 62 typeAfter( functionType ); 68 63 } … … 95 90 void RenameVars::visit( TypeInstType *instType ) { 96 91 typeBefore( instType ); 97 /// std::cout << "instance of type " << instType->get_name() << std::endl;98 92 std::map< std::string, std::string >::const_iterator i = mapStack.front().find( instType->get_name() ); 99 93 if ( i != mapStack.front().end() ) { 100 /// std::cout << "found name " << i->second << std::endl;101 94 instType->set_name( i->second ); 102 95 } else { 103 /// std::cout << "no name found" << std::endl;104 96 } // if 105 97 acceptAll( instType->get_parameters(), *this ); … … 120 112 void RenameVars::typeBefore( Type *type ) { 121 113 if ( ! type->get_forall().empty() ) { 122 /// std::cout << "type with forall: ";123 /// type->print( std::cout );124 /// std::cout << std::endl;125 114 // copies current name mapping into new mapping 126 115 mapStack.push_front( mapStack.front() ); -
src/ResolvExpr/Resolver.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Resolver.cc -- 7 // Resolver.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 12:17:01 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Thu Mar 24 16:43:11201613 // Update Count : 18111 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri May 13 11:36:40 2016 13 // Update Count : 203 14 14 // 15 15 … … 25 25 #include "SymTab/Indexer.h" 26 26 #include "Common/utility.h" 27 #include "InitTweak/InitTweak.h" 27 28 28 29 #include <iostream> … … 33 34 public: 34 35 Resolver() : SymTab::Indexer( false ), switchType( 0 ) {} 35 36 36 37 virtual void visit( FunctionDecl *functionDecl ); 37 38 virtual void visit( ObjectDecl *functionDecl ); 38 39 virtual void visit( TypeDecl *typeDecl ); 40 virtual void visit( EnumDecl * enumDecl ); 39 41 40 42 virtual void visit( ArrayType * at ); … … 51 53 virtual void visit( BranchStmt *branchStmt ); 52 54 virtual void visit( ReturnStmt *returnStmt ); 55 virtual void visit( ImplicitCtorDtorStmt * impCtorDtorStmt ); 53 56 54 57 virtual void visit( SingleInit *singleInit ); 55 58 virtual void visit( ListInit *listInit ); 59 virtual void visit( ConstructorInit *ctorInit ); 56 60 private: 57 61 typedef std::list< Initializer * >::iterator InitIterator; … … 59 63 void resolveAggrInit( AggregateDecl *, InitIterator &, InitIterator & ); 60 64 void resolveSingleAggrInit( Declaration *, InitIterator &, InitIterator & ); 61 65 void fallbackInit( ConstructorInit * ctorInit ); 62 66 std::list< Type * > functionReturn; 63 67 Type *initContext; 64 68 Type *switchType; 69 bool inEnumDecl = false; 65 70 }; 66 71 … … 82 87 } 83 88 89 84 90 namespace { 85 91 void finishExpr( Expression *expr, const TypeEnvironment &env ) { … … 87 93 env.makeSubstitution( *expr->get_env() ); 88 94 } 89 90 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 91 global_renamer.reset(); 92 TypeEnvironment env; 93 Expression *newExpr = resolveInVoidContext( untyped, indexer, env ); 94 finishExpr( newExpr, env ); 95 return newExpr; 96 } 97 95 } // namespace 96 97 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 98 global_renamer.reset(); 99 TypeEnvironment env; 100 Expression *newExpr = resolveInVoidContext( untyped, indexer, env ); 101 finishExpr( newExpr, env ); 102 return newExpr; 103 } 104 105 namespace { 98 106 Expression *findSingleExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 99 107 TypeEnvironment env; … … 126 134 } // if 127 135 } 128 136 129 137 Expression *findIntegralExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 130 138 TypeEnvironment env; … … 159 167 return newExpr; 160 168 } 161 162 } 163 169 170 } 171 164 172 void Resolver::visit( ObjectDecl *objectDecl ) { 165 173 Type *new_type = resolveTypeof( objectDecl->get_type(), *this ); … … 172 180 Type *temp = initContext; 173 181 initContext = new_type; 182 if ( inEnumDecl && dynamic_cast< EnumInstType * >( initContext ) ) { 183 // enumerator initializers should not use the enum type to initialize, since 184 // the enum type is still incomplete at this point. Use signed int instead. 185 initContext = new BasicType( Type::Qualifiers(), BasicType::SignedInt ); 186 } 174 187 SymTab::Indexer::visit( objectDecl ); 188 if ( inEnumDecl && dynamic_cast< EnumInstType * >( initContext ) ) { 189 // delete newly created signed int type 190 delete initContext; 191 } 175 192 initContext = temp; 176 193 } … … 212 229 } 213 230 231 void Resolver::visit( EnumDecl * enumDecl ) { 232 // in case we decide to allow nested enums 233 bool oldInEnumDecl = inEnumDecl; 234 inEnumDecl = true; 235 SymTab::Indexer::visit( enumDecl ); 236 inEnumDecl = oldInEnumDecl; 237 } 238 214 239 void Resolver::visit( ExprStmt *exprStmt ) { 215 240 if ( exprStmt->get_expr() ) { … … 258 283 forStmt->set_condition( newExpr ); 259 284 } // if 260 285 261 286 if ( forStmt->get_increment() ) { 262 287 Expression * newExpr = findVoidExpression( forStmt->get_increment(), *this ); … … 272 297 delete switchStmt->get_condition(); 273 298 switchStmt->set_condition( newExpr ); 274 299 275 300 visitor.Visitor::visit( switchStmt ); 276 301 } … … 314 339 bool isCharType( T t ) { 315 340 if ( BasicType * bt = dynamic_cast< BasicType * >( t ) ) { 316 return bt->get_kind() == BasicType::Char || bt->get_kind() == BasicType::SignedChar || 341 return bt->get_kind() == BasicType::Char || bt->get_kind() == BasicType::SignedChar || 317 342 bt->get_kind() == BasicType::UnsignedChar; 318 343 } … … 326 351 string n = ne->get_name(); 327 352 if (n == "0") { 328 initContext = new BasicType(Type::Qualifiers(), 353 initContext = new BasicType(Type::Qualifiers(), 329 354 BasicType::SignedInt); 330 355 } else { … … 332 357 initContext = decl->get_type(); 333 358 } 334 } else if (ConstantExpr * e = 359 } else if (ConstantExpr * e = 335 360 dynamic_cast<ConstantExpr*>(singleInit->get_value())) { 336 361 Constant *c = e->get_constant(); … … 355 380 singleInit->set_value( ce->get_arg() ); 356 381 ce->set_arg( NULL ); 357 delete ce; 382 delete ce; 358 383 } 359 384 } … … 471 496 #endif 472 497 } 498 499 // ConstructorInit - fall back on C-style initializer 500 void Resolver::fallbackInit( ConstructorInit * ctorInit ) { 501 // could not find valid constructor, or found an intrinsic constructor 502 // fall back on C-style initializer 503 delete ctorInit->get_ctor(); 504 ctorInit->set_ctor( NULL ); 505 delete ctorInit->get_dtor(); 506 ctorInit->set_dtor( NULL ); 507 maybeAccept( ctorInit->get_init(), *this ); 508 } 509 510 void Resolver::visit( ConstructorInit *ctorInit ) { 511 try { 512 maybeAccept( ctorInit->get_ctor(), *this ); 513 maybeAccept( ctorInit->get_dtor(), *this ); 514 } catch ( SemanticError ) { 515 // no alternatives for the constructor initializer - fallback on C-style initializer 516 // xxx - not sure if this makes a ton of sense - should maybe never be able to have this situation? 517 fallbackInit( ctorInit ); 518 return; 519 } 520 521 // found a constructor - can get rid of C-style initializer 522 delete ctorInit->get_init(); 523 ctorInit->set_init( NULL ); 524 525 // intrinsic single parameter constructors and destructors do nothing. Since this was 526 // implicitly generated, there's no way for it to have side effects, so get rid of it 527 // to clean up generated code. 528 if ( InitTweak::isInstrinsicSingleArgCallStmt( ctorInit->get_ctor() ) ) { 529 delete ctorInit->get_ctor(); 530 ctorInit->set_ctor( NULL ); 531 } 532 if ( InitTweak::isInstrinsicSingleArgCallStmt( ctorInit->get_ctor() ) ) { 533 delete ctorInit->get_dtor(); 534 ctorInit->set_dtor( NULL ); 535 } 536 } 537 538 void Resolver::visit( ImplicitCtorDtorStmt * impCtorDtorStmt ) { 539 // before resolving ctor/dtor, need to remove type qualifiers from the first argument (the object being constructed). 540 // Do this through a cast expression to greatly simplify the code. 541 Expression * callExpr = InitTweak::getCtorDtorCall( impCtorDtorStmt ); 542 assert( callExpr ); 543 Expression *& constructee = InitTweak::getCallArg( callExpr, 0 ); 544 Type * type = 0; 545 546 // need to find the type of the first argument, which is unfortunately not uniform since array construction 547 // includes an untyped '+' expression. 548 if ( UntypedExpr * plusExpr = dynamic_cast< UntypedExpr * >( constructee ) ) { 549 // constructee is <array>+<index> 550 // get Variable <array>, then get the base type of the VariableExpr - this is the type that needs to be fixed 551 Expression * arr = InitTweak::getCallArg( plusExpr, 0 ); 552 assert( dynamic_cast< VariableExpr * >( arr ) ); 553 assert( arr && arr->get_results().size() == 1 ); 554 type = arr->get_results().front()->clone(); 555 } else { 556 // otherwise, constructing a plain object, which means the object's address is being taken. 557 // Need to get the type of the VariableExpr object, because the AddressExpr is rebuilt and uses the 558 // type of the VariableExpr to do so. 559 assert( constructee->get_results().size() == 1 ); 560 AddressExpr * addrExpr = dynamic_cast< AddressExpr * > ( constructee ); 561 assert( addrExpr && addrExpr->get_results().size() == 1); 562 type = addrExpr->get_results().front()->clone(); 563 } 564 // cast to T* with qualifiers removed. 565 // unfortunately, lvalue is considered a qualifier. For AddressExpr to resolve, its argument 566 // must have an lvalue qualified type, so remove all qualifiers except lvalue. If we ever 567 // remove lvalue as a qualifier, this can change to 568 // type->get_qualifiers() = Type::Qualifiers(); 569 Type * base = InitTweak::getPointerBase( type ); 570 assert( base ); 571 base->get_qualifiers() -= Type::Qualifiers(true, true, true, false, true, true); 572 // if pointer has lvalue qualifier, cast won't appear in output 573 type->set_isLvalue( false ); 574 constructee = new CastExpr( constructee, type ); 575 576 // finally, resolve the ctor/dtor 577 impCtorDtorStmt->get_callStmt()->accept( *this ); 578 } 473 579 } // namespace ResolvExpr 474 580 -
src/ResolvExpr/Resolver.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Resolver.h -- 7 // Resolver.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 12:18:34 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sun May 17 12:19:32 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 15:06:53 2016 13 13 // Update Count : 2 14 14 // … … 24 24 void resolve( std::list< Declaration * > translationUnit ); 25 25 Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer ); 26 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ); 26 27 } // namespace ResolvExpr 27 28 -
src/ResolvExpr/typeops.h
r1b5c81ed rf80e0218 54 54 55 55 // in AdjustExprType.cc 56 /// Replaces array types with the equivalent pointer, and function types with a pointer-to-function 56 57 void adjustExprType( Type *&type, const TypeEnvironment &env, const SymTab::Indexer &indexer ); 57 58 -
src/SymTab/AddVisit.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // AddVisit.h -- 7 // AddVisit.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 16:14:32 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Thu Apr 7 14:42:21201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 15:52:42 2016 13 13 // Update Count : 5 14 14 // … … 48 48 // maybeAccept( caseStmt->get_condition(), visitor ); 49 49 // } 50 51 template< typename Visitor > 52 void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) { 53 std::list< Declaration * >::iterator i = translationUnit.begin(); 54 while ( i != translationUnit.end() ) { 55 (*i)->accept( visitor ); 56 std::list< Declaration * >::iterator next = i; 57 next++; 58 if ( ! visitor.get_declsToAdd().empty() ) { 59 translationUnit.splice( addBefore ? i : next, visitor.get_declsToAdd() ); 60 } // if 61 i = next; 62 } // while 63 } 64 50 65 } // namespace SymTab 51 66 -
src/SymTab/Indexer.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Indexer.cc -- 7 // Indexer.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:37:33 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Mar 2 17:31:29201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri Apr 22 15:25:43 2016 13 13 // Update Count : 11 14 14 // … … 59 59 } 60 60 } 61 61 62 62 template< typename Decl > 63 63 void dump( const std::unordered_map< std::string, Decl* > &table, std::ostream &os ) { … … 66 66 } // for 67 67 } 68 68 69 69 struct Indexer::Impl { 70 70 Impl( unsigned long _scope ) : refCount(1), scope( _scope ), size( 0 ), base(), … … 76 76 unsigned long size; ///< Number of elements stored in this table 77 77 const Indexer base; ///< Base indexer this extends 78 78 79 79 IdTable idTable; ///< Identifier namespace 80 80 TypeTable typeTable; ///< Type namespace … … 213 213 void Indexer::visit( StructDecl *aggregateDecl ) { 214 214 // make up a forward declaration and add it before processing the members 215 StructDecl fwdDecl( aggregateDecl->get_name() ); 215 // needs to be on the heap because addStruct saves the pointer 216 StructDecl &fwdDecl = *new StructDecl( aggregateDecl->get_name() ); 216 217 cloneAll( aggregateDecl->get_parameters(), fwdDecl.get_parameters() ); 217 218 debugPrint( "Adding fwd decl for struct " << fwdDecl.get_name() << std::endl ); 218 219 addStruct( &fwdDecl ); 219 220 220 221 enterScope(); 221 222 acceptAll( aggregateDecl->get_parameters(), *this ); 222 223 acceptAll( aggregateDecl->get_members(), *this ); 223 224 leaveScope(); 224 225 225 226 debugPrint( "Adding struct " << aggregateDecl->get_name() << std::endl ); 226 227 // this addition replaces the forward declaration … … 234 235 debugPrint( "Adding fwd decl for union " << fwdDecl.get_name() << std::endl ); 235 236 addUnion( &fwdDecl ); 236 237 237 238 enterScope(); 238 239 acceptAll( aggregateDecl->get_parameters(), *this ); 239 240 acceptAll( aggregateDecl->get_members(), *this ); 240 241 leaveScope(); 241 242 242 243 debugPrint( "Adding union " << aggregateDecl->get_name() << std::endl ); 243 244 addUnion( aggregateDecl ); … … 256 257 acceptAll( aggregateDecl->get_members(), *this ); 257 258 leaveScope(); 258 259 259 260 debugPrint( "Adding context " << aggregateDecl->get_name() << std::endl ); 260 261 addTrait( aggregateDecl ); … … 438 439 } 439 440 440 441 441 442 442 443 void Indexer::lookupId( const std::string &id, std::list< DeclarationWithType* > &out ) const { 443 444 std::unordered_set< std::string > foundMangleNames; 444 445 445 446 Indexer::Impl *searchTables = tables; 446 447 while ( searchTables ) { … … 452 453 // mark the mangled name as found, skipping this insertion if a declaration for that name has already been found 453 454 if ( foundMangleNames.insert( decl->first ).second == false ) continue; 454 455 455 456 out.push_back( decl->second ); 456 457 } 457 458 } 458 459 459 460 // get declarations from base indexers 460 461 searchTables = searchTables->base.tables; … … 511 512 } 512 513 513 bool Indexer::hasIncompatibleCDecl( const std::string &id, const std::string &mangleName ) const {514 bool Indexer::hasIncompatibleCDecl( const std::string &id, const std::string &mangleName, unsigned long scope ) const { 514 515 if ( ! tables ) return false; 516 if ( tables->scope < scope ) return false; 515 517 516 518 IdTable::const_iterator decls = tables->idTable.find( id ); … … 518 520 const MangleTable &mangleTable = decls->second; 519 521 for ( MangleTable::const_iterator decl = mangleTable.begin(); decl != mangleTable.end(); ++decl ) { 520 // check for C decls with the same name, skipping 522 // check for C decls with the same name, skipping 521 523 // those with a compatible type (by mangleName) 522 524 if ( decl->second->get_linkage() == LinkageSpec::C && decl->first != mangleName ) return true; … … 524 526 } 525 527 526 return tables->base.hasIncompatibleCDecl( id, mangleName );527 } 528 528 return tables->base.hasIncompatibleCDecl( id, mangleName, scope ); 529 } 530 529 531 NamedTypeDecl *Indexer::lookupTypeAtScope( const std::string &id, unsigned long scope ) const { 530 532 if ( ! tables ) return 0; … … 534 536 return ret != tables->typeTable.end() ? ret->second : tables->base.lookupTypeAtScope( id, scope ); 535 537 } 536 538 537 539 StructDecl *Indexer::lookupStructAtScope( const std::string &id, unsigned long scope ) const { 538 540 if ( ! tables ) return 0; … … 542 544 return ret != tables->structTable.end() ? ret->second : tables->base.lookupStructAtScope( id, scope ); 543 545 } 544 546 545 547 EnumDecl *Indexer::lookupEnumAtScope( const std::string &id, unsigned long scope ) const { 546 548 if ( ! tables ) return 0; … … 550 552 return ret != tables->enumTable.end() ? ret->second : tables->base.lookupEnumAtScope( id, scope ); 551 553 } 552 554 553 555 UnionDecl *Indexer::lookupUnionAtScope( const std::string &id, unsigned long scope ) const { 554 556 if ( ! tables ) return 0; … … 558 560 return ret != tables->unionTable.end() ? ret->second : tables->base.lookupUnionAtScope( id, scope ); 559 561 } 560 562 561 563 TraitDecl *Indexer::lookupTraitAtScope( const std::string &id, unsigned long scope ) const { 562 564 if ( ! tables ) return 0; … … 601 603 return true; 602 604 } 603 605 604 606 void Indexer::addId( DeclarationWithType *decl ) { 605 607 makeWritable(); … … 617 619 DeclarationWithType *existing = lookupIdAtScope( name, mangleName, scope ); 618 620 if ( ! existing || ! addedIdConflicts( existing, decl ) ) { 619 // this ensures that no two declarations with the same unmangled name both have C linkage620 if ( decl->get_linkage() == LinkageSpec::C && hasIncompatibleCDecl( name, mangleName ) ) {621 // this ensures that no two declarations with the same unmangled name at the same scope both have C linkage 622 if ( decl->get_linkage() == LinkageSpec::C && hasIncompatibleCDecl( name, mangleName, scope ) ) { 621 623 throw SemanticError( "invalid overload of C function ", decl ); 622 } // NOTE this is broken in Richard's original code in such a way that it never triggers (it 623 // doesn't check decls that have the same manglename, and all C-linkage decls are defined to 624 } // NOTE this is broken in Richard's original code in such a way that it never triggers (it 625 // doesn't check decls that have the same manglename, and all C-linkage decls are defined to 624 626 // have their name as their manglename, hence the error can never trigger). 625 // The code here is closer to correct, but name mangling would have to be completely 627 // The code here is closer to correct, but name mangling would have to be completely 626 628 // isomorphic to C type-compatibility, which it may not be. 627 629 628 630 tables->idTable[ name ][ mangleName ] = decl; 629 631 ++tables->size; … … 640 642 } 641 643 } 642 644 643 645 void Indexer::addType( NamedTypeDecl *decl ) { 644 646 makeWritable(); … … 671 673 addStruct( new StructDecl( id ) ); 672 674 } 673 675 674 676 void Indexer::addStruct( StructDecl *decl ) { 675 677 makeWritable(); … … 689 691 } 690 692 } 691 693 692 694 void Indexer::addEnum( EnumDecl *decl ) { 693 695 makeWritable(); … … 711 713 addUnion( new UnionDecl( id ) ); 712 714 } 713 715 714 716 void Indexer::addUnion( UnionDecl *decl ) { 715 717 makeWritable(); … … 729 731 } 730 732 } 731 733 732 734 void Indexer::addTrait( TraitDecl *decl ) { 733 735 makeWritable(); … … 750 752 void Indexer::enterScope() { 751 753 ++scope; 752 754 753 755 if ( doDebug ) { 754 756 std::cout << "--- Entering scope " << scope << std::endl; … … 783 785 using std::cerr; 784 786 785 cerr << "===idTable===" << std::endl; 786 if ( tables ) dump( tables->idTable, os ); 787 cerr << "===typeTable===" << std::endl; 788 if ( tables ) dump( tables->typeTable, os ); 789 cerr << "===structTable===" << std::endl; 790 if ( tables ) dump( tables->structTable, os ); 791 cerr << "===enumTable===" << std::endl; 792 if ( tables ) dump( tables->enumTable, os ); 793 cerr << "===unionTable===" << std::endl; 794 if ( tables ) dump( tables->unionTable, os ); 795 cerr << "===contextTable===" << std::endl; 796 if ( tables ) dump( tables->traitTable, os ); 787 if ( tables ) { 788 os << "--- scope " << tables->scope << " ---" << std::endl; 789 790 os << "===idTable===" << std::endl; 791 dump( tables->idTable, os ); 792 os << "===typeTable===" << std::endl; 793 dump( tables->typeTable, os ); 794 os << "===structTable===" << std::endl; 795 dump( tables->structTable, os ); 796 os << "===enumTable===" << std::endl; 797 dump( tables->enumTable, os ); 798 os << "===unionTable===" << std::endl; 799 dump( tables->unionTable, os ); 800 os << "===contextTable===" << std::endl; 801 dump( tables->traitTable, os ); 802 803 tables->base.print( os, indent ); 804 } else { 805 os << "--- end ---" << std::endl; 806 } 807 797 808 } 798 809 } // namespace SymTab -
src/SymTab/Indexer.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Indexer.h -- 7 // Indexer.h -- 8 8 // 9 9 // Author : Richard C. Bilson … … 33 33 Indexer& operator= ( Indexer &&that ); 34 34 35 //using Visitor::visit;35 using Visitor::visit; 36 36 virtual void visit( ObjectDecl *objectDecl ); 37 37 virtual void visit( FunctionDecl *functionDecl ); … … 54 54 virtual void visit( MemberExpr *memberExpr ); 55 55 virtual void visit( VariableExpr *variableExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 57 57 virtual void visit( SizeofExpr *sizeofExpr ); 58 58 virtual void visit( AlignofExpr *alignofExpr ); … … 93 93 /// Gets the top-most trait declaration with the given ID 94 94 TraitDecl *lookupTrait( const std::string &id ) const; 95 95 96 96 void print( std::ostream &os, int indent = 0 ) const; 97 97 private: … … 99 99 DeclarationWithType *lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ) const; 100 100 /// returns true if there exists a declaration with C linkage and the given name with a different mangled name 101 bool hasIncompatibleCDecl( const std::string &id, const std::string &mangleName ) const;101 bool hasIncompatibleCDecl( const std::string &id, const std::string &mangleName, unsigned long scope ) const; 102 102 // equivalents to lookup functions that only look at tables at scope `scope` (which should be >= tables->scope) 103 103 NamedTypeDecl *lookupTypeAtScope( const std::string &id, unsigned long scope ) const; … … 106 106 UnionDecl *lookupUnionAtScope( const std::string &id, unsigned long scope ) const; 107 107 TraitDecl *lookupTraitAtScope( const std::string &id, unsigned long scope ) const; 108 108 109 109 void addId( DeclarationWithType *decl ); 110 110 void addType( NamedTypeDecl *decl ); … … 115 115 void addUnion( UnionDecl *decl ); 116 116 void addTrait( TraitDecl *decl ); 117 117 118 118 struct Impl; 119 119 Impl *tables; ///< Copy-on-write instance of table data structure -
src/SymTab/Validate.cc
r1b5c81ed rf80e0218 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:50:04 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Apr 13 16:39:30201613 // Update Count : 2 5111 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed May 11 13:17:52 2016 13 // Update Count : 297 14 14 // 15 15 … … 56 56 #include "MakeLibCfa.h" 57 57 #include "TypeEquality.h" 58 #include "Autogen.h" 58 59 #include "ResolvExpr/typeops.h" 59 60 … … 122 123 123 124 const Indexer *indexer; 124 };125 126 class AutogenerateRoutines : public Visitor {127 public:128 /// Generates assignment operators for aggregate types as required129 static void autogenerateRoutines( std::list< Declaration * > &translationUnit );130 131 std::list< Declaration * > &get_declsToAdd() { return declsToAdd; }132 133 virtual void visit( EnumDecl *enumDecl );134 virtual void visit( StructDecl *structDecl );135 virtual void visit( UnionDecl *structDecl );136 virtual void visit( TypeDecl *typeDecl );137 virtual void visit( TraitDecl *ctxDecl );138 virtual void visit( FunctionDecl *functionDecl );139 140 virtual void visit( FunctionType *ftype );141 virtual void visit( PointerType *ftype );142 143 virtual void visit( CompoundStmt *compoundStmt );144 virtual void visit( SwitchStmt *switchStmt );145 virtual void visit( ChooseStmt *chooseStmt );146 // virtual void visit( CaseStmt *caseStmt );147 148 AutogenerateRoutines() : functionNesting( 0 ) {}149 private:150 template< typename StmtClass > void visitStatement( StmtClass *stmt );151 152 std::list< Declaration * > declsToAdd;153 std::set< std::string > structsDone;154 unsigned int functionNesting; // current level of nested functions155 125 }; 156 126 … … 192 162 template<typename AggDecl> 193 163 void addImplicitTypedef( AggDecl * aggDecl ); 194 164 195 165 typedef std::map< std::string, std::pair< TypedefDecl *, int > > TypedefMap; 196 166 TypedefMap typedefNames; 197 167 int scopeLevel; 198 168 }; 169 170 class VerifyCtorDtor : public Visitor { 171 public: 172 /// ensure that constructors and destructors have at least one 173 /// parameter, the first of which must be a pointer, and no 174 /// return values. 175 static void verify( std::list< Declaration * > &translationUnit ); 176 177 virtual void visit( FunctionDecl *funcDecl ); 178 }; 199 179 200 180 class CompoundLiteral : public GenPoly::DeclMutator { … … 217 197 ReturnChecker::checkFunctionReturns( translationUnit ); 218 198 mutateAll( translationUnit, compoundliteral ); 219 AutogenerateRoutines::autogenerateRoutines( translationUnit );199 autogenerateRoutines( translationUnit ); 220 200 acceptAll( translationUnit, pass3 ); 201 VerifyCtorDtor::verify( translationUnit ); 221 202 } 222 203 … … 228 209 type->accept( pass2 ); 229 210 type->accept( pass3 ); 230 }231 232 template< typename Visitor >233 void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) {234 std::list< Declaration * >::iterator i = translationUnit.begin();235 while ( i != translationUnit.end() ) {236 (*i)->accept( visitor );237 std::list< Declaration * >::iterator next = i;238 next++;239 if ( ! visitor.get_declsToAdd().empty() ) {240 translationUnit.splice( addBefore ? i : next, visitor.get_declsToAdd() );241 } // if242 i = next;243 } // while244 211 } 245 212 … … 312 279 void Pass1::visit( EnumDecl *enumDecl ) { 313 280 // Set the type of each member of the enumeration to be EnumConstant 314 315 281 for ( std::list< Declaration * >::iterator i = enumDecl->get_members().begin(); i != enumDecl->get_members().end(); ++i ) { 316 282 ObjectDecl * obj = dynamic_cast< ObjectDecl * >( *i ); 317 283 assert( obj ); 318 // obj->set_type( new EnumInstType( Type::Qualifiers( true, false, false, false, false, false ), enumDecl->get_name() ) ); 319 BasicType * enumType = new BasicType( Type::Qualifiers(), BasicType::SignedInt ); 320 obj->set_type( enumType ) ; 284 obj->set_type( new EnumInstType( Type::Qualifiers( true, false, false, false, false, false ), enumDecl->get_name() ) ); 321 285 } // for 322 286 Parent::visit( enumDecl ); … … 324 288 325 289 namespace { 326 template< typename DWT Iterator>327 void fixFunctionList( DWT Iterator begin, DWTIterator end, FunctionType *func ) {290 template< typename DWTList > 291 void fixFunctionList( DWTList & dwts, FunctionType * func ) { 328 292 // the only case in which "void" is valid is where it is the only one in the list; then it should be removed 329 293 // entirely other fix ups are handled by the FixFunction class 294 typedef typename DWTList::iterator DWTIterator; 295 DWTIterator begin( dwts.begin() ), end( dwts.end() ); 330 296 if ( begin == end ) return; 331 297 FixFunction fixer; 332 298 DWTIterator i = begin; 333 *i = (*i 299 *i = (*i)->acceptMutator( fixer ); 334 300 if ( fixer.get_isVoid() ) { 335 301 DWTIterator j = i; 336 302 ++i; 337 func->get_parameters().erase( j );303 dwts.erase( j ); 338 304 if ( i != end ) { 339 305 throw SemanticError( "invalid type void in function type ", func ); … … 354 320 void Pass1::visit( FunctionType *func ) { 355 321 // Fix up parameters and return types 356 fixFunctionList( func->get_parameters() .begin(), func->get_parameters().end(), func );357 fixFunctionList( func->get_returnVals() .begin(), func->get_returnVals().end(), func );322 fixFunctionList( func->get_parameters(), func ); 323 fixFunctionList( func->get_returnVals(), func ); 358 324 Visitor::visit( func ); 359 325 } … … 418 384 419 385 void Pass2::visit( StructDecl *structDecl ) { 386 // visit struct members first so that the types of self-referencing members are updated properly 387 Parent::visit( structDecl ); 420 388 if ( ! structDecl->get_members().empty() ) { 421 389 ForwardStructsType::iterator fwds = forwardStructs.find( structDecl->get_name() ); … … 427 395 } // if 428 396 } // if 429 Indexer::visit( structDecl );430 397 } 431 398 432 399 void Pass2::visit( UnionDecl *unionDecl ) { 400 Parent::visit( unionDecl ); 433 401 if ( ! unionDecl->get_members().empty() ) { 434 402 ForwardUnionsType::iterator fwds = forwardUnions.find( unionDecl->get_name() ); … … 440 408 } // if 441 409 } // if 442 Indexer::visit( unionDecl );443 410 } 444 411 … … 503 470 } 504 471 505 static const std::list< std::string > noLabels;506 507 void AutogenerateRoutines::autogenerateRoutines( std::list< Declaration * > &translationUnit ) {508 AutogenerateRoutines visitor;509 acceptAndAdd( translationUnit, visitor, false );510 }511 512 template< typename OutputIterator >513 void makeScalarAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, OutputIterator out ) {514 ObjectDecl *obj = dynamic_cast<ObjectDecl *>( member );515 // unnamed bit fields are not copied as they cannot be accessed516 if ( obj != NULL && obj->get_name() == "" && obj->get_bitfieldWidth() != NULL ) return;517 518 UntypedExpr *assignExpr = new UntypedExpr( new NameExpr( "?=?" ) );519 520 UntypedExpr *derefExpr = new UntypedExpr( new NameExpr( "*?" ) );521 derefExpr->get_args().push_back( new VariableExpr( dstParam ) );522 523 // do something special for unnamed members524 Expression *dstselect = new AddressExpr( new MemberExpr( member, derefExpr ) );525 assignExpr->get_args().push_back( dstselect );526 527 Expression *srcselect = new MemberExpr( member, new VariableExpr( srcParam ) );528 assignExpr->get_args().push_back( srcselect );529 530 *out++ = new ExprStmt( noLabels, assignExpr );531 }532 533 template< typename OutputIterator >534 void makeArrayAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, ArrayType *array, OutputIterator out ) {535 static UniqueName indexName( "_index" );536 537 // for a flexible array member nothing is done -- user must define own assignment538 if ( ! array->get_dimension() ) return;539 540 ObjectDecl *index = new ObjectDecl( indexName.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 );541 *out++ = new DeclStmt( noLabels, index );542 543 UntypedExpr *init = new UntypedExpr( new NameExpr( "?=?" ) );544 init->get_args().push_back( new AddressExpr( new VariableExpr( index ) ) );545 init->get_args().push_back( new NameExpr( "0" ) );546 Statement *initStmt = new ExprStmt( noLabels, init );547 std::list<Statement *> initList;548 initList.push_back( initStmt );549 550 UntypedExpr *cond = new UntypedExpr( new NameExpr( "?<?" ) );551 cond->get_args().push_back( new VariableExpr( index ) );552 cond->get_args().push_back( array->get_dimension()->clone() );553 554 UntypedExpr *inc = new UntypedExpr( new NameExpr( "++?" ) );555 inc->get_args().push_back( new AddressExpr( new VariableExpr( index ) ) );556 557 UntypedExpr *assignExpr = new UntypedExpr( new NameExpr( "?=?" ) );558 559 UntypedExpr *derefExpr = new UntypedExpr( new NameExpr( "*?" ) );560 derefExpr->get_args().push_back( new VariableExpr( dstParam ) );561 562 Expression *dstselect = new MemberExpr( member, derefExpr );563 UntypedExpr *dstIndex = new UntypedExpr( new NameExpr( "?+?" ) );564 dstIndex->get_args().push_back( dstselect );565 dstIndex->get_args().push_back( new VariableExpr( index ) );566 assignExpr->get_args().push_back( dstIndex );567 568 Expression *srcselect = new MemberExpr( member, new VariableExpr( srcParam ) );569 UntypedExpr *srcIndex = new UntypedExpr( new NameExpr( "?[?]" ) );570 srcIndex->get_args().push_back( srcselect );571 srcIndex->get_args().push_back( new VariableExpr( index ) );572 assignExpr->get_args().push_back( srcIndex );573 574 *out++ = new ForStmt( noLabels, initList, cond, inc, new ExprStmt( noLabels, assignExpr ) );575 }576 577 template< typename OutputIterator >578 void makeUnionFieldsAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, UnionInstType *unionType, OutputIterator out ) {579 UntypedExpr *copy = new UntypedExpr( new NameExpr( "__builtin_memcpy" ) );580 copy->get_args().push_back( new VariableExpr( dstParam ) );581 copy->get_args().push_back( new AddressExpr( new VariableExpr( srcParam ) ) );582 copy->get_args().push_back( new SizeofExpr( unionType ) );583 584 *out++ = new ExprStmt( noLabels, copy );585 }586 587 //E ?=?(E volatile*, int),588 // ?=?(E _Atomic volatile*, int);589 void makeEnumAssignment( EnumDecl *enumDecl, EnumInstType *refType, unsigned int functionNesting, std::list< Declaration * > &declsToAdd ) {590 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );591 592 ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );593 assignType->get_returnVals().push_back( returnVal );594 595 // need two assignment operators with different types596 FunctionType * assignType2 = assignType->clone();597 598 // E ?=?(E volatile *, E)599 Type *etype = refType->clone();600 // etype->get_qualifiers() += Type::Qualifiers(false, true, false, false, false, false);601 602 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), etype ), 0 );603 assignType->get_parameters().push_back( dstParam );604 605 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, etype->clone(), 0 );606 assignType->get_parameters().push_back( srcParam );607 608 // E ?=?(E volatile *, int)609 assignType2->get_parameters().push_back( dstParam->clone() );610 BasicType * paramType = new BasicType(Type::Qualifiers(), BasicType::SignedInt);611 ObjectDecl *srcParam2 = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, paramType, 0 );612 assignType2->get_parameters().push_back( srcParam2 );613 614 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units615 // because each unit generates copies of the default routines for each aggregate.616 617 // since there is no definition, these should not be inline618 // make these intrinsic so that the code generator does not make use of them619 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::Intrinsic, assignType, 0, false, false );620 assignDecl->fixUniqueId();621 FunctionDecl *assignDecl2 = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::Intrinsic, assignType2, 0, false, false );622 assignDecl2->fixUniqueId();623 624 // these should be built in the same way that the prelude625 // functions are, so build a list containing the prototypes626 // and allow MakeLibCfa to autogenerate the bodies.627 std::list< Declaration * > assigns;628 assigns.push_back( assignDecl );629 assigns.push_back( assignDecl2 );630 631 LibCfa::makeLibCfa( assigns );632 633 // need to remove the prototypes, since this may be nested in a routine634 for (int start = 0, end = assigns.size()/2; start < end; start++) {635 delete assigns.front();636 assigns.pop_front();637 } // for638 639 declsToAdd.insert( declsToAdd.begin(), assigns.begin(), assigns.end() );640 }641 642 /// Clones a reference type, replacing any parameters it may have with a clone of the provided list643 template< typename GenericInstType >644 GenericInstType *cloneWithParams( GenericInstType *refType, const std::list< Expression* >& params ) {645 GenericInstType *clone = refType->clone();646 clone->get_parameters().clear();647 cloneAll( params, clone->get_parameters() );648 return clone;649 }650 651 /// Creates a new type decl that's the same as src, but renamed and with only the ?=? assertion (for complete types only)652 TypeDecl *cloneAndRename( TypeDecl *src, const std::string &name ) {653 TypeDecl *dst = new TypeDecl( name, src->get_storageClass(), 0, src->get_kind() );654 655 if ( src->get_kind() == TypeDecl::Any ) {656 // just include assignment operator assertion657 TypeInstType *assignParamType = new TypeInstType( Type::Qualifiers(), name, dst );658 FunctionType *assignFunctionType = new FunctionType( Type::Qualifiers(), false );659 assignFunctionType->get_returnVals().push_back(660 new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, assignParamType->clone(), 0 ) );661 assignFunctionType->get_parameters().push_back(662 new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), assignParamType->clone() ), 0 ) );663 assignFunctionType->get_parameters().push_back(664 new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, assignParamType, 0 ) );665 FunctionDecl *assignAssert = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignFunctionType, 0, false, false );666 dst->get_assertions().push_back( assignAssert );667 }668 669 return dst;670 }671 672 Declaration *makeStructAssignment( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting ) {673 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );674 675 // Make function polymorphic in same parameters as generic struct, if applicable676 bool isGeneric = false; // NOTE this flag is an incredibly ugly kludge; we should fix the assignment signature instead (ditto for union)677 std::list< TypeDecl* >& genericParams = aggregateDecl->get_parameters();678 std::list< Expression* > structParams; // List of matching parameters to put on types679 TypeSubstitution genericSubs; // Substitutions to make to member types of struct680 for ( std::list< TypeDecl* >::const_iterator param = genericParams.begin(); param != genericParams.end(); ++param ) {681 isGeneric = true;682 TypeDecl *typeParam = cloneAndRename( *param, "_autoassign_" + aggregateDecl->get_name() + "_" + (*param)->get_name() );683 assignType->get_forall().push_back( typeParam );684 TypeInstType *newParamType = new TypeInstType( Type::Qualifiers(), typeParam->get_name(), typeParam );685 genericSubs.add( (*param)->get_name(), newParamType );686 structParams.push_back( new TypeExpr( newParamType ) );687 }688 689 ObjectDecl *returnVal = new ObjectDecl( "_ret", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, structParams ), 0 );690 assignType->get_returnVals().push_back( returnVal );691 692 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), cloneWithParams( refType, structParams ) ), 0 );693 assignType->get_parameters().push_back( dstParam );694 695 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, structParams ), 0 );696 assignType->get_parameters().push_back( srcParam );697 698 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units699 // because each unit generates copies of the default routines for each aggregate.700 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false );701 assignDecl->fixUniqueId();702 703 for ( std::list< Declaration * >::const_iterator member = aggregateDecl->get_members().begin(); member != aggregateDecl->get_members().end(); ++member ) {704 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( *member ) ) {705 // query the type qualifiers of this field and skip assigning it if it is marked const.706 // If it is an array type, we need to strip off the array layers to find its qualifiers.707 Type * type = dwt->get_type();708 while ( ArrayType * at = dynamic_cast< ArrayType * >( type ) ) {709 type = at->get_base();710 }711 712 if ( type->get_qualifiers().isConst ) {713 // don't assign const members714 continue;715 }716 717 if ( isGeneric ) {718 // rewrite member type in terms of the type variables on this operator719 DeclarationWithType *fixedMember = dwt->clone();720 genericSubs.apply( fixedMember );721 722 // assign to both destination and return value723 if ( ArrayType *array = dynamic_cast< ArrayType * >( fixedMember->get_type() ) ) {724 makeArrayAssignment( srcParam, dstParam, fixedMember, array, back_inserter( assignDecl->get_statements()->get_kids() ) );725 makeArrayAssignment( srcParam, returnVal, fixedMember, array, back_inserter( assignDecl->get_statements()->get_kids() ) );726 } else {727 makeScalarAssignment( srcParam, dstParam, fixedMember, back_inserter( assignDecl->get_statements()->get_kids() ) );728 makeScalarAssignment( srcParam, returnVal, fixedMember, back_inserter( assignDecl->get_statements()->get_kids() ) );729 } // if730 } else {731 // assign to destination732 if ( ArrayType *array = dynamic_cast< ArrayType * >( dwt->get_type() ) ) {733 makeArrayAssignment( srcParam, dstParam, dwt, array, back_inserter( assignDecl->get_statements()->get_kids() ) );734 } else {735 makeScalarAssignment( srcParam, dstParam, dwt, back_inserter( assignDecl->get_statements()->get_kids() ) );736 } // if737 } // if738 } // if739 } // for740 if ( ! isGeneric ) assignDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new VariableExpr( srcParam ) ) );741 742 return assignDecl;743 }744 745 Declaration *makeUnionAssignment( UnionDecl *aggregateDecl, UnionInstType *refType, unsigned int functionNesting ) {746 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );747 748 // Make function polymorphic in same parameters as generic union, if applicable749 bool isGeneric = false; // NOTE this flag is an incredibly ugly kludge; we should fix the assignment signature instead (ditto for struct)750 std::list< TypeDecl* >& genericParams = aggregateDecl->get_parameters();751 std::list< Expression* > unionParams; // List of matching parameters to put on types752 for ( std::list< TypeDecl* >::const_iterator param = genericParams.begin(); param != genericParams.end(); ++param ) {753 isGeneric = true;754 TypeDecl *typeParam = cloneAndRename( *param, "_autoassign_" + aggregateDecl->get_name() + "_" + (*param)->get_name() );755 assignType->get_forall().push_back( typeParam );756 unionParams.push_back( new TypeExpr( new TypeInstType( Type::Qualifiers(), typeParam->get_name(), typeParam ) ) );757 }758 759 ObjectDecl *returnVal = new ObjectDecl( "_ret", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, unionParams ), 0 );760 assignType->get_returnVals().push_back( returnVal );761 762 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), cloneWithParams( refType, unionParams ) ), 0 );763 assignType->get_parameters().push_back( dstParam );764 765 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, unionParams ), 0 );766 assignType->get_parameters().push_back( srcParam );767 768 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units769 // because each unit generates copies of the default routines for each aggregate.770 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false );771 assignDecl->fixUniqueId();772 773 makeUnionFieldsAssignment( srcParam, dstParam, cloneWithParams( refType, unionParams ), back_inserter( assignDecl->get_statements()->get_kids() ) );774 if ( isGeneric ) makeUnionFieldsAssignment( srcParam, returnVal, cloneWithParams( refType, unionParams ), back_inserter( assignDecl->get_statements()->get_kids() ) );775 776 if ( ! isGeneric ) assignDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new VariableExpr( srcParam ) ) );777 778 return assignDecl;779 }780 781 void AutogenerateRoutines::visit( EnumDecl *enumDecl ) {782 if ( ! enumDecl->get_members().empty() ) {783 EnumInstType *enumInst = new EnumInstType( Type::Qualifiers(), enumDecl->get_name() );784 // enumInst->set_baseEnum( enumDecl );785 // declsToAdd.push_back(786 makeEnumAssignment( enumDecl, enumInst, functionNesting, declsToAdd );787 }788 }789 790 void AutogenerateRoutines::visit( StructDecl *structDecl ) {791 if ( ! structDecl->get_members().empty() && structsDone.find( structDecl->get_name() ) == structsDone.end() ) {792 StructInstType structInst( Type::Qualifiers(), structDecl->get_name() );793 structInst.set_baseStruct( structDecl );794 declsToAdd.push_back( makeStructAssignment( structDecl, &structInst, functionNesting ) );795 structsDone.insert( structDecl->get_name() );796 } // if797 }798 799 void AutogenerateRoutines::visit( UnionDecl *unionDecl ) {800 if ( ! unionDecl->get_members().empty() ) {801 UnionInstType unionInst( Type::Qualifiers(), unionDecl->get_name() );802 unionInst.set_baseUnion( unionDecl );803 declsToAdd.push_back( makeUnionAssignment( unionDecl, &unionInst, functionNesting ) );804 } // if805 }806 807 void AutogenerateRoutines::visit( TypeDecl *typeDecl ) {808 CompoundStmt *stmts = 0;809 TypeInstType *typeInst = new TypeInstType( Type::Qualifiers(), typeDecl->get_name(), false );810 typeInst->set_baseType( typeDecl );811 ObjectDecl *src = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst->clone(), 0 );812 ObjectDecl *dst = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 );813 if ( typeDecl->get_base() ) {814 stmts = new CompoundStmt( std::list< Label >() );815 UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) );816 assign->get_args().push_back( new CastExpr( new VariableExpr( dst ), new PointerType( Type::Qualifiers(), typeDecl->get_base()->clone() ) ) );817 assign->get_args().push_back( new CastExpr( new VariableExpr( src ), typeDecl->get_base()->clone() ) );818 stmts->get_kids().push_back( new ReturnStmt( std::list< Label >(), assign ) );819 } // if820 FunctionType *type = new FunctionType( Type::Qualifiers(), false );821 type->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst, 0 ) );822 type->get_parameters().push_back( dst );823 type->get_parameters().push_back( src );824 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false, false );825 declsToAdd.push_back( func );826 }827 828 void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) {829 for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {830 statements.insert( i, new DeclStmt( noLabels, *decl ) );831 } // for832 declsToAdd.clear();833 }834 835 void AutogenerateRoutines::visit( FunctionType *) {836 // ensure that we don't add assignment ops for types defined as part of the function837 }838 839 void AutogenerateRoutines::visit( PointerType *) {840 // ensure that we don't add assignment ops for types defined as part of the pointer841 }842 843 void AutogenerateRoutines::visit( TraitDecl *) {844 // ensure that we don't add assignment ops for types defined as part of the context845 }846 847 template< typename StmtClass >848 inline void AutogenerateRoutines::visitStatement( StmtClass *stmt ) {849 std::set< std::string > oldStructs = structsDone;850 addVisit( stmt, *this );851 structsDone = oldStructs;852 }853 854 void AutogenerateRoutines::visit( FunctionDecl *functionDecl ) {855 maybeAccept( functionDecl->get_functionType(), *this );856 acceptAll( functionDecl->get_oldDecls(), *this );857 functionNesting += 1;858 maybeAccept( functionDecl->get_statements(), *this );859 functionNesting -= 1;860 }861 862 void AutogenerateRoutines::visit( CompoundStmt *compoundStmt ) {863 visitStatement( compoundStmt );864 }865 866 void AutogenerateRoutines::visit( SwitchStmt *switchStmt ) {867 visitStatement( switchStmt );868 }869 870 void AutogenerateRoutines::visit( ChooseStmt *switchStmt ) {871 visitStatement( switchStmt );872 }873 874 // void AutogenerateRoutines::visit( CaseStmt *caseStmt ) {875 // visitStatement( caseStmt );876 // }877 878 472 void ReturnChecker::checkFunctionReturns( std::list< Declaration * > & translationUnit ) { 879 473 ReturnChecker checker; … … 889 483 890 484 void ReturnChecker::visit( ReturnStmt * returnStmt ) { 485 // Previously this also checked for the existence of an expr paired with no return values on 486 // the function return type. This is incorrect, since you can have an expression attached to 487 // a return statement in a void-returning function in C. The expression is treated as if it 488 // were cast to void. 891 489 if ( returnStmt->get_expr() == NULL && returnVals.size() != 0 ) { 892 490 throw SemanticError( "Non-void function returns no values: " , returnStmt ); 893 } else if ( returnStmt->get_expr() != NULL && returnVals.size() == 0 ) {894 throw SemanticError( "void function returns values: " , returnStmt );895 491 } 896 492 } … … 1033 629 return aggDecl; 1034 630 } 1035 631 1036 632 template<typename AggDecl> 1037 633 void EliminateTypedef::addImplicitTypedef( AggDecl * aggDecl ) { … … 1072 668 } 1073 669 670 void VerifyCtorDtor::verify( std::list< Declaration * > & translationUnit ) { 671 VerifyCtorDtor verifier; 672 acceptAll( translationUnit, verifier ); 673 } 674 675 void VerifyCtorDtor::visit( FunctionDecl * funcDecl ) { 676 FunctionType * funcType = funcDecl->get_functionType(); 677 std::list< DeclarationWithType * > &returnVals = funcType->get_returnVals(); 678 std::list< DeclarationWithType * > ¶ms = funcType->get_parameters(); 679 680 if ( funcDecl->get_name() == "?{}" || funcDecl->get_name() == "^?{}" ) { 681 if ( params.size() == 0 ) { 682 throw SemanticError( "Constructors and destructors require at least one parameter ", funcDecl ); 683 } 684 if ( ! dynamic_cast< PointerType * >( params.front()->get_type() ) ) { 685 throw SemanticError( "First parameter of a constructor or destructor must be a pointer ", funcDecl ); 686 } 687 if ( returnVals.size() != 0 ) { 688 throw SemanticError( "Constructors and destructors cannot have explicit return values ", funcDecl ); 689 } 690 } 691 692 Visitor::visit( funcDecl ); 693 // original idea: modify signature of ctor/dtors and insert appropriate return statements 694 // to cause desired behaviour 695 // new idea: add comma exprs to every ctor call to produce first parameter. 696 // this requires some memoization of the first parameter, because it can be a 697 // complicated expression with side effects (see: malloc). idea: add temporary variable 698 // that is assigned address of constructed object in ctor argument position and 699 // return the temporary. It should also be done after all implicit ctors are 700 // added, so not in this pass! 701 } 702 1074 703 DeclarationWithType * CompoundLiteral::mutate( ObjectDecl *objectDecl ) { 1075 704 storageclass = objectDecl->get_storageClass(); -
src/SymTab/module.mk
r1b5c81ed rf80e0218 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## module.mk -- 8 ## module.mk -- 9 9 ## 10 10 ## Author : Richard C. Bilson … … 20 20 SymTab/FixFunction.cc \ 21 21 SymTab/ImplementationType.cc \ 22 SymTab/TypeEquality.cc 22 SymTab/TypeEquality.cc \ 23 SymTab/Autogen.cc -
src/SynTree/AddressExpr.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // AddressExpr.cc -- 7 // AddressExpr.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 23:54:44 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue May 19 16:52:51 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Apr 26 12:35:13 2016 13 13 // Update Count : 6 14 14 // … … 32 32 33 33 void AddressExpr::print( std::ostream &os, int indent ) const { 34 os << std::string( indent, ' ' ) <<"Address of:" << std::endl;34 os << "Address of:" << std::endl; 35 35 if ( arg ) { 36 arg->print( os, indent+2 ); 36 os << std::string( indent+2, ' ' ); 37 arg->print( os, indent+2 ); 37 38 } // if 38 39 } -
src/SynTree/ApplicationExpr.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ApplicationExpr.cc.cc -- 7 // ApplicationExpr.cc.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon May 18 07:54:17 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Apr 26 12:41:06 2016 13 13 // Update Count : 4 14 14 // … … 47 47 FunctionType *function = dynamic_cast< FunctionType* >( pointer->get_base() ); 48 48 assert( function ); 49 49 50 50 for ( std::list< DeclarationWithType* >::const_iterator i = function->get_returnVals().begin(); i != function->get_returnVals().end(); ++i ) { 51 51 get_results().push_back( (*i)->get_type()->clone() ); … … 64 64 65 65 void ApplicationExpr::print( std::ostream &os, int indent ) const { 66 os << std::string( indent, ' ' ) << "Application of" << std::endl;66 os << "Application of" << std::endl << std::string(indent+2, ' '); 67 67 function->print( os, indent+2 ); 68 68 if ( ! args.empty() ) { -
src/SynTree/ArrayType.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ArrayType.cc -- 7 // ArrayType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 14:19:07 201512 // Last Modified On : Thu May 12 14:07:16 2016 13 13 // Update Count : 11 14 14 // … … 51 51 if ( dimension ) { 52 52 os << " with dimension of "; 53 dimension->print( os, 0);53 dimension->print( os, indent ); 54 54 } // if 55 55 } -
src/SynTree/CommaExpr.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CommaExpr.cc -- 7 // CommaExpr.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon May 18 08:09:58 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon May 02 15:19:44 2016 13 13 // Update Count : 1 14 14 // … … 20 20 CommaExpr::CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname ) 21 21 : Expression( _aname ), arg1( arg1 ), arg2( arg2 ) { 22 // xxx - result of a comma expression is never an lvalue, so should set lvalue 23 // to false on all result types. Actually doing this causes some strange things 24 // to happen in later passes (particularly, Specialize, Lvalue, and Box). This needs to be looked into. 22 25 cloneAll( arg2->get_results(), get_results() ); 26 // for ( Type *& type : get_results() ) { 27 // type->set_isLvalue( false ); 28 // } 23 29 } 24 30 … … 33 39 34 40 void CommaExpr::print( std::ostream &os, int indent ) const { 35 os << std::string( indent, ' ' ) << "Comma Expression:" << std::endl; 41 os << "Comma Expression:" << std::endl; 42 os << std::string( indent+2, ' ' ); 36 43 arg1->print( os, indent+2 ); 37 44 os << std::endl; 45 os << std::string( indent+2, ' ' ); 38 46 arg2->print( os, indent+2 ); 39 47 Expression::print( os, indent ); -
src/SynTree/CompoundStmt.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // XXX.cc -- 7 // XXX.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue Jun 23 11:37:49 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon May 02 15:19:17 2016 13 13 // Update Count : 3 14 14 // … … 18 18 #include <algorithm> 19 19 #include <functional> 20 #include "Expression.h" 21 #include "Declaration.h" 20 22 21 23 using std::string; 22 24 using std::endl; 25 26 class VarExprReplacer : public Visitor { 27 public: 28 typedef std::map< DeclarationWithType *, DeclarationWithType * > DeclMap; 29 private: 30 const DeclMap & declMap; 31 public: 32 VarExprReplacer( const DeclMap & declMap ) : declMap( declMap ) {} 33 34 // replace variable with new node from decl map 35 virtual void visit( VariableExpr * varExpr ) { 36 if ( declMap.count( varExpr->get_var() ) ) { 37 varExpr->set_var( declMap.at( varExpr->get_var() ) ); 38 } 39 } 40 }; 41 23 42 24 43 CompoundStmt::CompoundStmt( std::list<Label> labels ) : Statement( labels ) { … … 27 46 CompoundStmt::CompoundStmt( const CompoundStmt &other ) : Statement( other ) { 28 47 cloneAll( other.kids, kids ); 48 49 // when cloning a compound statement, we may end up cloning declarations which 50 // are referred to by VariableExprs throughout the block. Cloning a VariableExpr 51 // does a shallow copy, so the VariableExpr will end up pointing to the original 52 // declaration. If the original declaration is deleted, e.g. because the original 53 // CompoundStmt is deleted, then we have a dangling pointer. To avoid this case, 54 // find all DeclarationWithType nodes (since a VariableExpr must point to a 55 // DeclarationWithType) in the original CompoundStmt and map them to the cloned 56 // node in the new CompoundStmt ('this'), then replace the Declarations referred to 57 // by each VariableExpr according to the constructed map. Note that only the declarations 58 // in the current level are collected into the map, because child CompoundStmts will 59 // recursively execute this routine. There may be more efficient ways of doing 60 // this. 61 VarExprReplacer::DeclMap declMap; 62 std::list< Statement * >::const_iterator origit = other.kids.begin(); 63 for ( Statement * s : kids ) { 64 assert( origit != other.kids.end() ); 65 if ( DeclStmt * declStmt = dynamic_cast< DeclStmt * >( s ) ) { 66 DeclStmt * origDeclStmt = dynamic_cast< DeclStmt * >( *origit ); 67 assert( origDeclStmt ); 68 if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * > ( declStmt->get_decl() ) ) { 69 DeclarationWithType * origdwt = dynamic_cast< DeclarationWithType * > ( origDeclStmt->get_decl() ); 70 assert( origdwt ); 71 declMap[ origdwt ] = dwt; 72 } 73 } 74 } 75 if ( ! declMap.empty() ) { 76 VarExprReplacer replacer( declMap ); 77 accept( replacer ); 78 } 29 79 } 30 80 … … 34 84 35 85 void CompoundStmt::print( std::ostream &os, int indent ) const { 36 os << string( indent, ' ' ) <<"CompoundStmt" << endl ;86 os << "CompoundStmt" << endl ; 37 87 printAll( kids, os, indent + 2 ); 38 88 } -
src/SynTree/Constant.cc
r1b5c81ed rf80e0218 30 30 Constant::~Constant() { delete type; } 31 31 32 Constant Constant::from ( int i ) {32 Constant Constant::from_int( int i ) { 33 33 return Constant( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), std::to_string( i ) ); 34 34 } 35 35 36 Constant Constant::from ( unsigned long i ) {36 Constant Constant::from_ulong( unsigned long i ) { 37 37 return Constant( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), std::to_string( i ) ); 38 38 } 39 39 40 Constant Constant::from ( double d ) {40 Constant Constant::from_double( double d ) { 41 41 return Constant( new BasicType( Type::Qualifiers(), BasicType::Double ), std::to_string( d ) ); 42 42 } -
src/SynTree/Constant.h
r1b5c81ed rf80e0218 33 33 34 34 /// generates an integer constant of the given int 35 static Constant from ( int i );35 static Constant from_int( int i ); 36 36 /// generates an integer constant of the given unsigned long int 37 static Constant from ( unsigned long i );37 static Constant from_ulong( unsigned long i ); 38 38 /// generates a floating point constant of the given double 39 static Constant from ( double d );39 static Constant from_double( double d ); 40 40 41 41 virtual Constant *clone() const; -
src/SynTree/Declaration.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Declaration.h -- 7 // Declaration.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Mar 2 17:28:11201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri May 06 16:26:12 2016 13 13 // Update Count : 33 14 14 // … … 22 22 #include "Parser/LinkageSpec.h" 23 23 #include "Parser/ParseNode.h" 24 #include <string> 24 25 25 26 class Declaration { … … 67 68 void set_mangleName( std::string newValue ) { mangleName = newValue; } 68 69 70 std::string get_scopedMangleName() const { return mangleName + "_" + std::to_string(scopeLevel); } 71 72 int get_scopeLevel() const { return scopeLevel; } 73 void set_scopeLevel( int newValue ) { scopeLevel = newValue; } 74 69 75 virtual DeclarationWithType *clone() const = 0; 70 76 virtual DeclarationWithType *acceptMutator( Mutator &m ) = 0; … … 75 81 // this represents the type with all types and typedefs expanded it is generated by SymTab::Validate::Pass2 76 82 std::string mangleName; 83 // need to remember the scope level at which the variable was declared, so that 84 // shadowed identifiers can be accessed 85 int scopeLevel = 0; 77 86 }; 78 87 … … 106 115 typedef DeclarationWithType Parent; 107 116 public: 108 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn );117 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn, const std::list< Attribute * > attributes = std::list< Attribute * >() ); 109 118 FunctionDecl( const FunctionDecl &other ); 110 119 virtual ~FunctionDecl(); … … 119 128 std::list< std::string >& get_oldIdents() { return oldIdents; } 120 129 std::list< Declaration* >& get_oldDecls() { return oldDecls; } 130 std::list< Attribute * >& get_attributes() { return attributes; } 121 131 122 132 virtual FunctionDecl *clone() const { return new FunctionDecl( *this ); } … … 130 140 std::list< std::string > oldIdents; 131 141 std::list< Declaration* > oldDecls; 142 std::list< Attribute * > attributes; 132 143 }; 133 144 -
src/SynTree/DeclarationWithType.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // DeclarationWithType.cc -- 7 // DeclarationWithType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sat Jun 13 08:08:07 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon Apr 11 15:35:27 2016 13 13 // Update Count : 3 14 14 // … … 23 23 24 24 DeclarationWithType::DeclarationWithType( const DeclarationWithType &other ) 25 : Declaration( other ), mangleName( other.mangleName ) {25 : Declaration( other ), mangleName( other.mangleName ), scopeLevel( other.scopeLevel ) { 26 26 } 27 27 -
src/SynTree/Expression.cc
r1b5c81ed rf80e0218 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 8 17:16:23201613 // Update Count : 4 012 // Last Modified On : Mon Jun 13 16:03:39 2016 13 // Update Count : 42 14 14 // 15 15 … … 32 32 Expression::Expression( Expression *_aname ) : env( 0 ), argName( _aname ) {} 33 33 34 Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ) {34 Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ), extension( other.extension ) { 35 35 cloneAll( other.results, results ); 36 36 } … … 60 60 argName->print( os, indent+2 ); 61 61 } // if 62 63 if ( extension ) { 64 os << std::string( indent, ' ' ) << "with extension:"; 65 } // if 62 66 } 63 67 … … 72 76 73 77 void ConstantExpr::print( std::ostream &os, int indent ) const { 74 os << std::string( indent, ' ' ) <<"constant expression " ;78 os << "constant expression " ; 75 79 constant.print( os ); 76 80 Expression::print( os, indent ); 77 os << std::endl;78 81 } 79 82 80 83 VariableExpr::VariableExpr( DeclarationWithType *_var, Expression *_aname ) : Expression( _aname ), var( _var ) { 84 assert( var ); 85 assert( var->get_type() ); 81 86 add_result( var->get_type()->clone() ); 82 87 for ( std::list< Type* >::iterator i = get_results().begin(); i != get_results().end(); ++i ) { … … 93 98 94 99 void VariableExpr::print( std::ostream &os, int indent ) const { 95 os << std::string( indent, ' ' ) <<"Variable Expression: ";100 os << "Variable Expression: "; 96 101 97 102 Declaration *decl = get_var(); … … 122 127 123 128 void SizeofExpr::print( std::ostream &os, int indent) const { 124 os << std::string( indent, ' ' ) <<"Sizeof Expression on: ";129 os << "Sizeof Expression on: "; 125 130 126 131 if (isType) … … 295 300 296 301 void CastExpr::print( std::ostream &os, int indent ) const { 297 os << std::string( indent, ' ' ) << "Cast of:" << std::endl;302 os << "Cast of:" << std::endl << std::string( indent+2, ' ' ); 298 303 arg->print(os, indent+2); 299 304 os << std::endl << std::string( indent, ' ' ) << "to:" << std::endl; … … 318 323 319 324 void UntypedMemberExpr::print( std::ostream &os, int indent ) const { 320 os << std::string( indent, ' ' ) << "Member Expression, with field: " << get_member();325 os << "Untyped Member Expression, with field: " << get_member(); 321 326 322 327 Expression *agg = get_aggregate(); 323 os << std::string( indent, ' ' ) << "from aggregate: "; 324 if (agg != 0) agg->print(os, indent + 2); 328 os << ", from aggregate: "; 329 if (agg != 0) { 330 os << std::string( indent + 2, ' ' ); 331 agg->print(os, indent + 2); 332 } 333 os << std::string( indent+2, ' ' ); 325 334 Expression::print( os, indent ); 326 335 } … … 345 354 346 355 void MemberExpr::print( std::ostream &os, int indent ) const { 347 os << std::string( indent, ' ' ) <<"Member Expression, with field: " << std::endl;356 os << "Member Expression, with field: " << std::endl; 348 357 349 358 assert( member ); … … 354 363 Expression *agg = get_aggregate(); 355 364 os << std::string( indent, ' ' ) << "from aggregate: " << std::endl; 356 if (agg != 0) agg->print(os, indent + 2); 365 if (agg != 0) { 366 os << std::string( indent + 2, ' ' ); 367 agg->print(os, indent + 2); 368 } 369 os << std::string( indent+2, ' ' ); 357 370 Expression::print( os, indent ); 358 371 } … … 372 385 373 386 void UntypedExpr::print( std::ostream &os, int indent ) const { 374 os << std::string( indent, ' ' ) << "Applying untyped: " << std::endl; 375 function->print(os, indent + 4); 387 os << "Applying untyped: " << std::endl; 388 os << std::string( indent+2, ' ' ); 389 function->print(os, indent + 2); 376 390 os << std::string( indent, ' ' ) << "...to: " << std::endl; 377 printA rgs(os, indent + 4);391 printAll(args, os, indent + 2); 378 392 Expression::print( os, indent ); 379 393 } … … 381 395 void UntypedExpr::printArgs( std::ostream &os, int indent ) const { 382 396 std::list<Expression *>::const_iterator i; 383 for (i = args.begin(); i != args.end(); i++) 397 for (i = args.begin(); i != args.end(); i++) { 398 os << std::string(indent, ' ' ); 384 399 (*i)->print(os, indent); 400 } 385 401 } 386 402 … … 393 409 394 410 void NameExpr::print( std::ostream &os, int indent ) const { 395 os << std::string( indent, ' ' ) <<"Name: " << get_name() << std::endl;411 os << "Name: " << get_name() << std::endl; 396 412 Expression::print( os, indent ); 397 413 } … … 454 470 } 455 471 472 473 ImplicitCopyCtorExpr::ImplicitCopyCtorExpr( ApplicationExpr * callExpr ) : callExpr( callExpr ) { 474 assert( callExpr ); 475 cloneAll( callExpr->get_results(), results ); 476 } 477 478 ImplicitCopyCtorExpr::ImplicitCopyCtorExpr( const ImplicitCopyCtorExpr & other ) : Expression( other ), callExpr( maybeClone( other.callExpr ) ) { 479 cloneAll( other.tempDecls, tempDecls ); 480 cloneAll( other.returnDecls, returnDecls ); 481 cloneAll( other.dtors, dtors ); 482 } 483 484 ImplicitCopyCtorExpr::~ImplicitCopyCtorExpr() { 485 delete callExpr; 486 deleteAll( tempDecls ); 487 deleteAll( returnDecls ); 488 deleteAll( dtors ); 489 } 490 491 void ImplicitCopyCtorExpr::print( std::ostream &os, int indent ) const { 492 os << std::string( indent, ' ' ) << "Implicit Copy Constructor Expression: " << std::endl; 493 assert( callExpr ); 494 callExpr->print( os, indent + 2 ); 495 os << std::endl << std::string( indent, ' ' ) << "with temporaries:" << std::endl; 496 printAll(tempDecls, os, indent+2); 497 os << std::endl << std::string( indent, ' ' ) << "with return temporaries:" << std::endl; 498 printAll(returnDecls, os, indent+2); 499 Expression::print( os, indent ); 500 } 501 456 502 UntypedValofExpr::UntypedValofExpr( const UntypedValofExpr & other ) : Expression( other ), body ( maybeClone( other.body ) ) {} 457 503 -
src/SynTree/Expression.h
r1b5c81ed rf80e0218 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 8 17:18:06201613 // Update Count : 2 112 // Last Modified On : Wed Jun 8 17:05:30 2016 13 // Update Count : 22 14 14 // 15 15 … … 22 22 #include "Mutator.h" 23 23 #include "Constant.h" 24 #include "Common/UniqueName.h" 24 25 25 26 /// Expression is the root type for all expressions … … 37 38 Expression *get_argName() const { return argName; } 38 39 void set_argName( Expression *name ) { argName = name; } 40 bool get_extension() const { return extension; } 41 void set_extension( bool exten ) { extension = exten; } 39 42 40 43 virtual Expression *clone() const = 0; … … 46 49 TypeSubstitution *env; 47 50 Expression* argName; // if expression is used as an argument, it can be "designated" by this name 51 bool extension = false; 48 52 }; 49 53 … … 559 563 }; 560 564 565 /// ImplicitCopyCtorExpr represents the application of a function to a set of parameters, 566 /// along with a set of copy constructor calls, one for each argument. 567 class ImplicitCopyCtorExpr : public Expression { 568 public: 569 ImplicitCopyCtorExpr( ApplicationExpr * callExpr ); 570 ImplicitCopyCtorExpr( const ImplicitCopyCtorExpr & other ); 571 virtual ~ImplicitCopyCtorExpr(); 572 573 ApplicationExpr *get_callExpr() const { return callExpr; } 574 void set_callExpr( ApplicationExpr *newValue ) { callExpr = newValue; } 575 576 std::list< ObjectDecl * > & get_tempDecls() { return tempDecls; } 577 void set_tempDecls( std::list< ObjectDecl * > newValue ) { tempDecls = newValue; } 578 579 std::list< ObjectDecl * > & get_returnDecls() { return returnDecls; } 580 void set_returnDecls( std::list< ObjectDecl * > newValue ) { returnDecls = newValue; } 581 582 std::list< Expression * > & get_dtors() { return dtors; } 583 void set_dtors( std::list< Expression * > newValue ) { dtors = newValue; } 584 585 virtual ImplicitCopyCtorExpr *clone() const { return new ImplicitCopyCtorExpr( *this ); } 586 virtual void accept( Visitor &v ) { v.visit( this ); } 587 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 588 virtual void print( std::ostream &os, int indent = 0 ) const; 589 private: 590 ApplicationExpr * callExpr; 591 std::list< ObjectDecl * > tempDecls; 592 std::list< ObjectDecl * > returnDecls; 593 std::list< Expression * > dtors; 594 }; 595 561 596 /// ValofExpr represents a GCC 'lambda expression' 562 597 class UntypedValofExpr : public Expression { -
src/SynTree/FunctionDecl.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FunctionDecl.cc -- 7 // FunctionDecl.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon Jul 13 18:11:44 201511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri May 06 15:59:48 2016 13 13 // Update Count : 19 14 14 // … … 19 19 #include "Statement.h" 20 20 #include "Type.h" 21 #include "Attribute.h" 21 22 #include "Common/utility.h" 22 23 23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn )24 : Parent( name, sc, linkage ), type( type ), statements( statements ) {24 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn, std::list< Attribute * > attributes ) 25 : Parent( name, sc, linkage ), type( type ), statements( statements ), attributes( attributes ) { 25 26 set_isInline( isInline ); 26 27 set_isNoreturn( isNoreturn ); … … 33 34 FunctionDecl::FunctionDecl( const FunctionDecl &other ) 34 35 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ) { 36 cloneAll( other.attributes, attributes ); 35 37 } 36 38 … … 38 40 delete type; 39 41 delete statements; 42 deleteAll( attributes ); 40 43 } 41 44 … … 52 55 using std::endl; 53 56 using std::string; 54 57 55 58 if ( get_name() != "" ) { 56 59 os << get_name() << ": "; … … 65 68 os << "_Noreturn "; 66 69 } // if 70 71 printAll( attributes, os, indent ); 72 67 73 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 68 74 os << DeclarationNode::storageName[ get_storageClass() ] << ' '; … … 87 93 if ( statements ) { 88 94 os << string( indent + 2, ' ' ) << "with body " << endl; 95 os << string( indent + 4, ' ' ); 89 96 statements->print( os, indent + 4 ); 90 97 } // if … … 94 101 using std::endl; 95 102 using std::string; 96 103 97 104 if ( get_name() != "" ) { 98 105 os << get_name() << ": "; … … 104 111 os << "_Noreturn "; 105 112 } // if 113 114 // xxx - should printShort print attributes? 115 106 116 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 107 117 os << DeclarationNode::storageName[ get_storageClass() ] << ' '; -
src/SynTree/Initializer.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Initializer.cc -- 7 // Initializer.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 14:05:25 201513 // Update Count : 1412 // Last Modified On : Fri May 13 13:23:03 2016 13 // Update Count : 28 14 14 // 15 15 16 16 #include "Initializer.h" 17 17 #include "Expression.h" 18 #include "Statement.h" 18 19 #include "Common/utility.h" 19 20 20 Initializer::Initializer() {} 21 Initializer::Initializer( bool maybeConstructed ) : maybeConstructed( maybeConstructed ) {} 22 Initializer::Initializer( const Initializer & other ) : maybeConstructed( other.maybeConstructed ) { 23 } 24 21 25 22 26 Initializer::~Initializer() {} … … 31 35 void Initializer::print( std::ostream &os, int indent ) {} 32 36 33 SingleInit::SingleInit( Expression *v, std::list< Expression *> &_designators ) : value ( v ), designators( _designators ) {37 SingleInit::SingleInit( Expression *v, const std::list< Expression *> &_designators, bool maybeConstructed ) : Initializer( maybeConstructed ), value ( v ), designators( _designators ) { 34 38 } 35 39 36 SingleInit::SingleInit( const SingleInit &other ) : value ( other.value) {40 SingleInit::SingleInit( const SingleInit &other ) : Initializer(other), value ( maybeClone( other.value ) ) { 37 41 cloneAll(other.designators, designators ); 38 42 } 39 43 40 SingleInit::~SingleInit() { }41 42 SingleInit *SingleInit::clone() const { return new SingleInit( *this);}44 SingleInit::~SingleInit() { 45 deleteAll(designators); 46 } 43 47 44 48 void SingleInit::print( std::ostream &os, int indent ) { 45 49 os << std::endl << std::string(indent, ' ' ) << "Simple Initializer: " << std::endl; 50 os << std::string(indent+4, ' ' ); 46 51 value->print( os, indent+4 ); 47 52 48 53 if ( ! designators.empty() ) { 49 os << std::endl << std::string(indent + 2, ' ' ) << "designated by: " 54 os << std::endl << std::string(indent + 2, ' ' ) << "designated by: " << std::endl; 50 55 for ( std::list < Expression * >::iterator i = designators.begin(); i != designators.end(); i++ ) { 56 os << std::string(indent + 4, ' ' ); 51 57 ( *i )->print(os, indent + 4 ); 52 58 } … … 54 60 } 55 61 56 ListInit::ListInit( std::list<Initializer*> &_initializers, std::list<Expression *> &_designators)57 : initializers( _initializers ), designators( _designators ) {62 ListInit::ListInit( const std::list<Initializer*> &_initializers, const std::list<Expression *> &_designators, bool maybeConstructed ) 63 : Initializer( maybeConstructed ), initializers( _initializers ), designators( _designators ) { 58 64 } 59 65 60 ListInit::~ListInit() {} 61 62 ListInit *ListInit::clone() const { 63 return new ListInit( *this ); 66 ListInit::~ListInit() { 67 deleteAll( initializers ); 68 deleteAll( designators ); 64 69 } 65 70 66 71 void ListInit::print( std::ostream &os, int indent ) { 67 os << std::endl << std::string(indent, ' ') << "Compound initializer: "; 72 os << std::endl << std::string(indent, ' ') << "Compound initializer: "; 68 73 if ( ! designators.empty() ) { 69 74 os << std::string(indent + 2, ' ' ) << "designated by: ["; 70 75 for ( std::list < Expression * >::iterator i = designators.begin(); 71 76 i != designators.end(); i++ ) { 72 ( *i )->print(os, indent + 4 ); 77 ( *i )->print(os, indent + 4 ); 73 78 } // for 74 79 75 80 os << std::string(indent + 2, ' ' ) << "]"; 76 81 } // if 77 82 78 for ( std::list<Initializer *>::iterator i = initializers.begin(); i != initializers.end(); i++ ) 83 for ( std::list<Initializer *>::iterator i = initializers.begin(); i != initializers.end(); i++ ) 79 84 (*i)->print( os, indent + 2 ); 80 85 } 86 87 88 ConstructorInit::ConstructorInit( Statement * ctor, Statement * dtor, Initializer * init ) : Initializer( true ), ctor( ctor ), dtor( dtor ), init( init ) {} 89 ConstructorInit::ConstructorInit( const ConstructorInit &other ) : Initializer( other ), ctor( maybeClone( other.ctor ) ), dtor( maybeClone( other.dtor ) ), init( maybeClone( other.init ) ) { 90 } 91 92 ConstructorInit::~ConstructorInit() { 93 delete ctor; 94 delete dtor; 95 delete init; 96 } 97 98 void ConstructorInit::print( std::ostream &os, int indent ) { 99 os << std::endl << std::string(indent, ' ') << "Constructor initializer: " << std::endl; 100 if ( ctor ) { 101 os << std::string(indent+2, ' '); 102 os << "initially constructed with "; 103 ctor->print( os, indent+4 ); 104 } // if 105 106 if ( dtor ) { 107 os << std::string(indent+2, ' '); 108 os << "destructed with "; 109 dtor->print( os, indent+4 ); 110 } 111 112 if ( init ) { 113 os << std::string(indent+2, ' '); 114 os << "with fallback C-style initializer: "; 115 init->print( os, indent+4 ); 116 } 117 } 118 119 std::ostream & operator<<( std::ostream & out, Initializer * init ) { 120 init->print( out ); 121 return out; 122 } 123 81 124 // Local Variables: // 82 125 // tab-width: 4 // -
src/SynTree/Initializer.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Initializer.h -- 7 // Initializer.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon May 18 09:03:48 201513 // Update Count : 1 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Apr 12 13:49:13 2016 13 // Update Count : 19 14 14 // 15 15 … … 20 20 #include "Visitor.h" 21 21 #include "Mutator.h" 22 #include "Type.h" 22 23 23 24 #include <cassert> … … 27 28 public: 28 29 // Initializer( std::string _name = std::string(""), int _pos = 0 ); 29 Initializer( ); 30 Initializer( bool maybeConstructed ); 31 Initializer( const Initializer & other ); 30 32 virtual ~Initializer(); 31 33 … … 43 45 } 44 46 47 bool get_maybeConstructed() { return maybeConstructed; } 48 45 49 virtual Initializer *clone() const = 0; 46 50 virtual void accept( Visitor &v ) = 0; … … 50 54 // std::string name; 51 55 // int pos; 56 bool maybeConstructed; 52 57 }; 53 58 … … 55 60 class SingleInit : public Initializer { 56 61 public: 57 SingleInit( Expression *value, std::list< Expression *> &designators = *(new std::list<Expression *>()));62 SingleInit( Expression *value, const std::list< Expression *> &designators = std::list< Expression * >(), bool maybeConstructed = false ); 58 63 SingleInit( const SingleInit &other ); 59 64 virtual ~SingleInit(); 60 65 61 66 Expression *get_value() { return value; } 62 67 void set_value( Expression *newValue ) { value = newValue; } … … 65 70 std::list<Expression *> &get_designators() { return designators; } 66 71 67 virtual SingleInit *clone() const ;72 virtual SingleInit *clone() const { return new SingleInit( *this); } 68 73 virtual void accept( Visitor &v ) { v.visit( this ); } 69 74 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); } … … 79 84 class ListInit : public Initializer { 80 85 public: 81 ListInit( std::list<Initializer*> &,82 std::list<Expression *> &designators = *(new std::list<Expression *>()));86 ListInit( const std::list<Initializer*> &initializers, 87 const std::list<Expression *> &designators = std::list< Expression * >(), bool maybeConstructed = false ); 83 88 virtual ~ListInit(); 84 89 … … 91 96 std::list<Initializer*>::iterator end_initializers() { return initializers.end(); } 92 97 93 virtual ListInit *clone() const ;98 virtual ListInit *clone() const { return new ListInit( *this ); } 94 99 virtual void accept( Visitor &v ) { v.visit( this ); } 95 100 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); } … … 100 105 }; 101 106 107 // ConstructorInit represents an initializer that is either a constructor expression or 108 // a C-style initializer. 109 class ConstructorInit : public Initializer { 110 public: 111 ConstructorInit( Statement * ctor, Statement * dtor, Initializer * init ); 112 ConstructorInit( const ConstructorInit &other ); 113 virtual ~ConstructorInit(); 114 115 void set_ctor( Statement * newValue ) { ctor = newValue; } 116 Statement * get_ctor() const { return ctor; } 117 void set_dtor( Statement * newValue ) { dtor = newValue; } 118 Statement * get_dtor() const { return dtor; } 119 void set_init( Initializer * newValue ) { init = newValue; } 120 Initializer * get_init() const { return init; } 121 122 ConstructorInit *clone() const { return new ConstructorInit( *this ); } 123 virtual void accept( Visitor &v ) { v.visit( this ); } 124 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); } 125 virtual void print( std::ostream &os, int indent = 0 ); 126 127 private: 128 Statement * ctor; 129 Statement * dtor; 130 // C-style initializer made up of SingleInit and ListInit nodes to use as a fallback 131 // if an appropriate constructor definition is not found by the resolver 132 Initializer * init; 133 }; 134 135 std::ostream & operator<<( std::ostream & out, Initializer * init ); 136 102 137 #endif // INITIALIZER_H 103 138 -
src/SynTree/Mutator.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mutator.cc -- 7 // Mutator.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Apr 1 18:05:16201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Apr 27 17:07:29 2016 13 13 // Update Count : 16 14 14 // … … 182 182 } 183 183 184 Statement *Mutator::mutate( ImplicitCtorDtorStmt *impCtorDtorStmt ) { 185 impCtorDtorStmt->set_callStmt( maybeMutate( impCtorDtorStmt->get_callStmt(), *this ) ); 186 return impCtorDtorStmt; 187 } 188 184 189 Expression *Mutator::mutate( ApplicationExpr *applicationExpr ) { 185 190 mutateAll( applicationExpr->get_results(), *this ); … … 335 340 asmExpr->set_operand( maybeMutate( asmExpr->get_operand(), *this ) ); 336 341 return asmExpr; 342 } 343 344 Expression* Mutator::mutate( ImplicitCopyCtorExpr *impCpCtorExpr ) { 345 impCpCtorExpr->set_callExpr( maybeMutate( impCpCtorExpr->get_callExpr(), *this ) ); 346 mutateAll( impCpCtorExpr->get_tempDecls(), *this ); 347 mutateAll( impCpCtorExpr->get_returnDecls(), *this ); 348 return impCpCtorExpr; 337 349 } 338 350 … … 450 462 } 451 463 464 Initializer *Mutator::mutate( ConstructorInit *ctorInit ) { 465 ctorInit->set_ctor( maybeMutate( ctorInit->get_ctor(), *this ) ); 466 ctorInit->set_init( maybeMutate( ctorInit->get_init(), *this ) ); 467 return ctorInit; 468 } 469 452 470 Subrange *Mutator::mutate( Subrange *subrange ) { 453 471 return subrange; -
src/SynTree/Mutator.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mutator.h -- 7 // Mutator.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Apr 1 17:26:56201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 15:32:00 2016 13 13 // Update Count : 10 14 14 // … … 52 52 virtual NullStmt* mutate( NullStmt *nullStmt ); 53 53 virtual Statement* mutate( DeclStmt *declStmt ); 54 virtual Statement* mutate( ImplicitCtorDtorStmt *impCtorDtorStmt ); 54 55 55 56 virtual Expression* mutate( ApplicationExpr *applicationExpr ); … … 62 63 virtual Expression* mutate( MemberExpr *memberExpr ); 63 64 virtual Expression* mutate( VariableExpr *variableExpr ); 64 virtual Expression* mutate( ConstantExpr *constantExpr ); 65 virtual Expression* mutate( ConstantExpr *constantExpr ); 65 66 virtual Expression* mutate( SizeofExpr *sizeofExpr ); 66 67 virtual Expression* mutate( AlignofExpr *alignofExpr ); … … 76 77 virtual Expression* mutate( TypeExpr *typeExpr ); 77 78 virtual Expression* mutate( AsmExpr *asmExpr ); 79 virtual Expression* mutate( ImplicitCopyCtorExpr *impCpCtorExpr ); 78 80 virtual Expression* mutate( UntypedValofExpr *valofExpr ); 79 81 virtual Expression* mutate( CompoundLiteralExpr *compLitExpr ); … … 96 98 virtual Initializer* mutate( SingleInit *singleInit ); 97 99 virtual Initializer* mutate( ListInit *listInit ); 100 virtual Initializer* mutate( ConstructorInit *ctorInit ); 98 101 99 102 virtual Subrange *mutate( Subrange *subrange ); -
src/SynTree/ObjectDecl.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ObjectDecl.cc -- 7 // ObjectDecl.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Sep 29 14:13:01 201513 // Update Count : 1812 // Last Modified On : Fri May 13 13:23:32 2016 13 // Update Count : 30 14 14 // 15 15 … … 19 19 #include "Expression.h" 20 20 #include "Common/utility.h" 21 #include "Statement.h" 21 22 22 23 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init, bool isInline, bool isNoreturn ) … … 58 59 os << " with initializer "; 59 60 init->print( os, indent ); 61 os << std::endl << std::string(indent, ' '); 62 os << "maybeConstructed? " << init->get_maybeConstructed(); 60 63 } // if 61 64 62 65 if ( bitfieldWidth ) { 66 os << std::string(indent, ' '); 63 67 os << " with bitfield width "; 64 68 bitfieldWidth->print( os ); … … 69 73 #if 0 70 74 if ( get_mangleName() != "") { 71 os << get_mangleName() << ": "; 72 } else 75 os << get_mangleName() << ": "; 76 } else 73 77 #endif 74 78 if ( get_name() != "" ) { -
src/SynTree/Statement.cc
r1b5c81ed rf80e0218 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Dec 09 14:09:34 201512 // Last Modified On : Thu May 12 13:33:18 2016 13 13 // Update Count : 54 14 14 // … … 43 43 44 44 void ExprStmt::print( std::ostream &os, int indent ) const { 45 os << string( indent, ' ' ) << "Expression Statement:" << endl;45 os << "Expression Statement:" << endl << std::string( indent + 2, ' ' ); 46 46 expr->print( os, indent + 2 ); 47 47 } … … 87 87 Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) { 88 88 //actually this is a syntactic error signaled by the parser 89 if ( type == BranchStmt::Goto && target. size() == 0)89 if ( type == BranchStmt::Goto && target.empty() ) 90 90 throw SemanticError("goto without target"); 91 91 } … … 110 110 111 111 void ReturnStmt::print( std::ostream &os, int indent ) const { 112 os << std::string( indent, ' ' ) << string ( isThrow? "Throw":"Return" ) << " Statement, returning: "; 113 if ( expr != 0 ) expr->print( os ); 112 os << string ( isThrow? "Throw":"Return" ) << " Statement, returning: "; 113 if ( expr != 0 ) { 114 os << endl << string( indent+2, ' ' ); 115 expr->print( os, indent + 2 ); 116 } 114 117 os << endl; 115 118 } … … 124 127 125 128 void IfStmt::print( std::ostream &os, int indent ) const { 126 os << string( indent, ' ' ) << "If on condition: " << endl ; 129 os << "If on condition: " << endl ; 130 os << string( indent+4, ' ' ); 127 131 condition->print( os, indent + 4 ); 128 132 129 os << string( indent, ' ' ) << ".... and branches: " << endl; 130 133 os << string( indent+2, ' ' ) << "... then: " << endl; 134 135 os << string( indent+4, ' ' ); 131 136 thenPart->print( os, indent + 4 ); 132 137 133 138 if ( elsePart != 0 ) { 139 os << string( indent+2, ' ' ) << "... else: " << endl; 140 os << string( indent+4, ' ' ); 134 141 elsePart->print( os, indent + 4 ); 135 142 } // if … … 153 160 154 161 void SwitchStmt::print( std::ostream &os, int indent ) const { 155 os << string( indent, ' ' ) <<"Switch on condition: ";162 os << "Switch on condition: "; 156 163 condition->print( os ); 157 164 os << endl; … … 218 225 219 226 void ChooseStmt::print( std::ostream &os, int indent ) const { 220 os << string( indent, ' ' ) <<"Choose on condition: ";227 os << "Choose on condition: "; 221 228 condition->print( os ); 222 229 os << endl; … … 247 254 248 255 void WhileStmt::print( std::ostream &os, int indent ) const { 249 os << string( indent, ' ' ) <<"While on condition: " << endl ;256 os << "While on condition: " << endl ; 250 257 condition->print( os, indent + 4 ); 251 258 … … 273 280 274 281 void ForStmt::print( std::ostream &os, int indent ) const { 275 os << string( indent, ' ' ) <<"Labels: {";282 os << "Labels: {"; 276 283 for ( std::list<Label>::const_iterator it = get_labels().begin(); it != get_labels().end(); ++it) { 277 284 os << *it << ","; … … 283 290 os << string( indent + 2, ' ' ) << "initialization: \n"; 284 291 for ( std::list<Statement *>::const_iterator it = initialization.begin(); it != initialization.end(); ++it ) { 292 os << string( indent + 4, ' ' ); 285 293 (*it)->print( os, indent + 4 ); 286 294 } 287 295 288 296 os << "\n" << string( indent + 2, ' ' ) << "condition: \n"; 289 if ( condition != 0 ) 297 if ( condition != 0 ) { 298 os << string( indent + 4, ' ' ); 290 299 condition->print( os, indent + 4 ); 300 } 291 301 292 302 os << "\n" << string( indent + 2, ' ' ) << "increment: \n"; 293 if ( increment != 0 ) 303 if ( increment != 0 ) { 304 os << string( indent + 4, ' ' ); 294 305 increment->print( os, indent + 4 ); 306 } 295 307 296 308 os << "\n" << string( indent + 2, ' ' ) << "statement block: \n"; 297 if ( body != 0 ) 309 if ( body != 0 ) { 310 os << string( indent + 4, ' ' ); 298 311 body->print( os, indent + 4 ); 312 } 299 313 300 314 os << endl; … … 314 328 315 329 void TryStmt::print( std::ostream &os, int indent ) const { 316 os << string( indent, ' ' ) <<"Try Statement" << endl;330 os << "Try Statement" << endl; 317 331 os << string( indent + 2, ' ' ) << "with block: " << endl; 318 332 block->print( os, indent + 4 ); … … 344 358 345 359 void CatchStmt::print( std::ostream &os, int indent ) const { 346 os << string( indent, ' ' ) <<"Catch Statement" << endl;360 os << "Catch Statement" << endl; 347 361 348 362 os << string( indent, ' ' ) << "... catching" << endl; … … 369 383 370 384 void FinallyStmt::print( std::ostream &os, int indent ) const { 371 os << string( indent, ' ' ) <<"Finally Statement" << endl;385 os << "Finally Statement" << endl; 372 386 os << string( indent + 2, ' ' ) << "with block: " << endl; 373 387 block->print( os, indent + 4 ); … … 378 392 379 393 void NullStmt::print( std::ostream &os, int indent ) const { 380 os << string( indent, ' ' ) << "Null Statement" << endl ; 394 os << "Null Statement" << endl ; 395 } 396 397 ImplicitCtorDtorStmt::ImplicitCtorDtorStmt( Statement * callStmt ) : Statement( std::list<Label>() ), callStmt( callStmt ) { 398 assert( callStmt ); 399 } 400 401 ImplicitCtorDtorStmt::ImplicitCtorDtorStmt( const ImplicitCtorDtorStmt & other ) : Statement( other ), callStmt( maybeClone( other.callStmt ) ) { 402 } 403 404 ImplicitCtorDtorStmt::~ImplicitCtorDtorStmt() { 405 delete callStmt; 406 } 407 408 void ImplicitCtorDtorStmt::print( std::ostream &os, int indent ) const { 409 os << "Implicit Ctor Dtor Statement" << endl; 410 os << string( indent + 2, ' ' ) << "with Ctor/Dtor: "; 411 callStmt->print( os, indent + 2); 412 os << endl; 381 413 } 382 414 -
src/SynTree/Statement.h
r1b5c81ed rf80e0218 21 21 #include "Mutator.h" 22 22 #include "Common/SemanticError.h" 23 #include "Type.h" 24 #include "Label.h" 23 25 24 26 class Statement { … … 394 396 virtual ~DeclStmt(); 395 397 396 Declaration *get_decl() { return decl; }398 Declaration *get_decl() const { return decl; } 397 399 void set_decl( Declaration *newValue ) { decl = newValue; } 398 400 … … 404 406 Declaration *decl; 405 407 }; 408 409 410 /// represents an implicit application of a constructor or destructor. Qualifiers are replaced 411 /// immediately before and after the call so that qualified objects can be constructed 412 /// with the same functions as unqualified objects. 413 class ImplicitCtorDtorStmt : public Statement { 414 public: 415 ImplicitCtorDtorStmt( Statement * callStmt ); 416 ImplicitCtorDtorStmt( const ImplicitCtorDtorStmt & other ); 417 virtual ~ImplicitCtorDtorStmt(); 418 419 Statement *get_callStmt() const { return callStmt; } 420 void set_callStmt( Statement * newValue ) { callStmt = newValue; } 421 422 virtual ImplicitCtorDtorStmt *clone() const { return new ImplicitCtorDtorStmt( *this ); } 423 virtual void accept( Visitor &v ) { v.visit( this ); } 424 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 425 virtual void print( std::ostream &os, int indent = 0 ) const; 426 427 private: 428 // Non-owned pointer to the constructor/destructor statement 429 Statement * callStmt; 430 }; 431 406 432 407 433 std::ostream & operator<<( std::ostream & out, Statement * statement ); -
src/SynTree/SynTree.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // SynTree.h -- 7 // SynTree.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Apr 1 16:47:44201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 15:31:36 2016 13 13 // Update Count : 5 14 14 // … … 56 56 class DeclStmt; 57 57 class NullStmt; 58 class ImplicitCtorDtorStmt; 58 59 59 60 class Expression; … … 81 82 class TypeExpr; 82 83 class AsmExpr; 84 class ImplicitCopyCtorExpr; 83 85 class UntypedValofExpr; 84 86 class CompoundLiteralExpr; … … 104 106 class SingleInit; 105 107 class ListInit; 108 class ConstructorInit; 106 109 107 110 class Subrange; … … 110 113 class Constant; 111 114 112 typedef std::string Label; 115 // typedef std::string Label; 116 class Label; 113 117 typedef unsigned int UniqueId; 114 118 115 119 class TypeSubstitution; 120 121 // gcc attribute 122 class Attribute; 116 123 117 124 #endif // SYNTREE_H -
src/SynTree/Type.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Type.cc -- 7 // Type.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 54 54 } 55 55 56 void Type::Qualifiers::print( std::ostream &os, int indent ) const { 57 if ( isConst ) { 58 os << "const "; 59 } // if 60 if ( isVolatile ) { 61 os << "volatile "; 62 } // if 63 if ( isRestrict ) { 64 os << "restrict "; 65 } // if 66 if ( isLvalue ) { 67 os << "lvalue "; 68 } // if 69 if ( isAtomic ) { 70 os << "_Atomic "; 71 } // if 72 if ( isAttribute ) { 73 os << "__attribute(( )) "; 74 } // if 75 } 76 56 77 void Type::print( std::ostream &os, int indent ) const { 57 78 if ( ! forall.empty() ) { … … 60 81 os << std::string( indent+2, ' ' ); 61 82 } // if 62 if ( tq.isConst ) { 63 os << "const "; 64 } // if 65 if ( tq.isVolatile ) { 66 os << "volatile "; 67 } // if 68 if ( tq.isRestrict ) { 69 os << "restrict "; 70 } // if 71 if ( tq.isLvalue ) { 72 os << "lvalue "; 73 } // if 74 if ( tq.isAtomic ) { 75 os << "_Atomic "; 76 } // if 77 if ( tq.isAttribute ) { 78 os << "__attribute(( )) "; 79 } // if 83 tq.print( os, indent ); 80 84 } 81 85 -
src/SynTree/Type.h
r1b5c81ed rf80e0218 36 36 bool operator<( const Qualifiers &other ); 37 37 bool operator>( const Qualifiers &other ); 38 void print( std::ostream &os, int indent = 0 ) const; 38 39 39 40 bool isConst; -
src/SynTree/TypeSubstitution.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeSubstitution.cc -- 7 // TypeSubstitution.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Mar 2 17:29:15201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Apr 26 11:15:29 2016 13 13 // Update Count : 3 14 14 // … … 72 72 Type *TypeSubstitution::lookup( std::string formalType ) const { 73 73 TypeEnvType::const_iterator i = typeEnv.find( formalType ); 74 75 // break on not in substitution set 76 if ( i == typeEnv.end() ) return 0; 77 78 // attempt to transitively follow TypeInstType links. 79 while ( TypeInstType *actualType = dynamic_cast< TypeInstType* >( i->second ) ) { 80 const std::string& typeName = actualType->get_name(); 81 82 // break cycles in the transitive follow 83 if ( formalType == typeName ) break; 84 85 // Look for the type this maps to, returning previous mapping if none-such 86 i = typeEnv.find( typeName ); 87 if ( i == typeEnv.end() ) return actualType; 88 } 89 90 // return type from substitution set 91 return i->second; 92 93 #if 0 74 94 if ( i == typeEnv.end() ) { 75 95 return 0; … … 77 97 return i->second; 78 98 } // if 99 #endif 79 100 } 80 101 … … 96 117 BoundVarsType::const_iterator bound = boundVars.find( inst->get_name() ); 97 118 if ( bound != boundVars.end() ) return inst; 98 119 99 120 TypeEnvType::const_iterator i = typeEnv.find( inst->get_name() ); 100 121 if ( i == typeEnv.end() ) { … … 217 238 } 218 239 240 std::ostream & operator<<( std::ostream & out, const TypeSubstitution & sub ) { 241 sub.print( out ); 242 return out; 243 } 244 245 219 246 // Local Variables: // 220 247 // tab-width: 4 // -
src/SynTree/TypeSubstitution.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeSubstitution.h -- 7 // TypeSubstitution.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Mar 2 17:33:19201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri Apr 29 15:00:20 2016 13 13 // Update Count : 2 14 14 // … … 33 33 TypeSubstitution( const TypeSubstitution &other ); 34 34 virtual ~TypeSubstitution(); 35 35 36 36 TypeSubstitution &operator=( const TypeSubstitution &other ); 37 37 38 38 template< typename SynTreeClass > int apply( SynTreeClass *&input ); 39 39 template< typename SynTreeClass > int applyFree( SynTreeClass *&input ); 40 40 41 41 void add( std::string formalType, Type *actualType ); 42 42 void add( const TypeSubstitution &other ); … … 44 44 Type *lookup( std::string formalType ) const; 45 45 bool empty() const; 46 46 47 47 template< typename FormalIterator, typename ActualIterator > 48 48 void add( FormalIterator formalBegin, FormalIterator formalEnd, ActualIterator actualBegin ); 49 49 50 /// this function is unused... 50 51 template< typename TypeInstListIterator > 51 52 void extract( TypeInstListIterator begin, TypeInstListIterator end, TypeSubstitution &result ); 52 53 53 54 void normalize(); 54 55 … … 63 64 /// Records type variable bindings from forall-statements and instantiations of generic types 64 65 template< typename TypeClass > Type *handleAggregateType( TypeClass *type ); 65 66 66 67 virtual Type* mutate(VoidType *basicType); 67 68 virtual Type* mutate(BasicType *basicType); … … 75 76 virtual Type* mutate(TupleType *tupleType); 76 77 virtual Type* mutate(VarArgsType *varArgsType); 77 78 78 79 // TODO: worry about traversing into a forall-qualified function type or type decl with assertions 79 80 80 81 void initialize( const TypeSubstitution &src, TypeSubstitution &dest ); 81 82 … … 136 137 return subCount; 137 138 } 138 139 139 140 template< typename SynTreeClass > 140 141 int TypeSubstitution::applyFree( SynTreeClass *&input ) { … … 149 150 return subCount; 150 151 } 151 152 152 153 template< typename TypeInstListIterator > 153 154 void TypeSubstitution::extract( TypeInstListIterator begin, TypeInstListIterator end, TypeSubstitution &result ) { 155 // xxx - this function doesn't extract varEnv - is this intentional? 154 156 while ( begin != end ) { 155 157 TypeEnvType::iterator cur = typeEnv.find( (*begin++)->get_name() ); … … 173 175 } 174 176 177 std::ostream & operator<<( std::ostream & out, const TypeSubstitution & sub ); 178 175 179 #endif // TYPESUBSTITUTION_H 176 180 -
src/SynTree/Visitor.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Visitor.cc -- 7 // Visitor.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Apr 1 18:05:13201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Apr 27 17:07:40 2016 13 13 // Update Count : 18 14 14 // … … 39 39 } 40 40 41 void Visitor:: visit( AggregateDecl *aggregateDecl ) {41 void Visitor::handleAggregateDecl( AggregateDecl *aggregateDecl ) { 42 42 acceptAll( aggregateDecl->get_parameters(), *this ); 43 43 acceptAll( aggregateDecl->get_members(), *this ); … … 45 45 46 46 void Visitor::visit( StructDecl *aggregateDecl ) { 47 visit( static_cast< AggregateDecl* >( aggregateDecl ) );47 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 48 48 } 49 49 50 50 void Visitor::visit( UnionDecl *aggregateDecl ) { 51 visit( static_cast< AggregateDecl* >( aggregateDecl ) );51 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 52 52 } 53 53 54 54 void Visitor::visit( EnumDecl *aggregateDecl ) { 55 visit( static_cast< AggregateDecl* >( aggregateDecl ) );55 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 56 56 } 57 57 58 58 void Visitor::visit( TraitDecl *aggregateDecl ) { 59 visit( static_cast< AggregateDecl* >( aggregateDecl ) );60 } 61 62 void Visitor:: visit( NamedTypeDecl *typeDecl ) {59 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 60 } 61 62 void Visitor::handleNamedTypeDecl( NamedTypeDecl *typeDecl ) { 63 63 acceptAll( typeDecl->get_parameters(), *this ); 64 64 acceptAll( typeDecl->get_assertions(), *this ); … … 67 67 68 68 void Visitor::visit( TypeDecl *typeDecl ) { 69 visit( static_cast< NamedTypeDecl* >( typeDecl ) );69 handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) ); 70 70 } 71 71 72 72 void Visitor::visit( TypedefDecl *typeDecl ) { 73 visit( static_cast< NamedTypeDecl* >( typeDecl ) );73 handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) ); 74 74 } 75 75 … … 150 150 void Visitor::visit( DeclStmt *declStmt ) { 151 151 maybeAccept( declStmt->get_decl(), *this ); 152 } 153 154 void Visitor::visit( ImplicitCtorDtorStmt *impCtorDtorStmt ) { 155 maybeAccept( impCtorDtorStmt->get_callStmt(), *this ); 152 156 } 153 157 … … 284 288 } 285 289 290 void Visitor::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) { 291 maybeAccept( impCpCtorExpr->get_callExpr(), *this ); 292 acceptAll( impCpCtorExpr->get_tempDecls(), *this ); 293 acceptAll( impCpCtorExpr->get_returnDecls(), *this ); 294 } 295 286 296 void Visitor::visit( UntypedValofExpr *valofExpr ) { 287 297 acceptAll( valofExpr->get_results(), *this ); … … 320 330 } 321 331 322 void Visitor:: visit( ReferenceToType *aggregateUseType ) {332 void Visitor::handleReferenceToType( ReferenceToType *aggregateUseType ) { 323 333 acceptAll( aggregateUseType->get_forall(), *this ); 324 334 acceptAll( aggregateUseType->get_parameters(), *this ); … … 326 336 327 337 void Visitor::visit( StructInstType *aggregateUseType ) { 328 visit( static_cast< ReferenceToType * >( aggregateUseType ) );338 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 329 339 } 330 340 331 341 void Visitor::visit( UnionInstType *aggregateUseType ) { 332 visit( static_cast< ReferenceToType * >( aggregateUseType ) );342 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 333 343 } 334 344 335 345 void Visitor::visit( EnumInstType *aggregateUseType ) { 336 visit( static_cast< ReferenceToType * >( aggregateUseType ) );346 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 337 347 } 338 348 339 349 void Visitor::visit( TraitInstType *aggregateUseType ) { 340 visit( static_cast< ReferenceToType * >( aggregateUseType ) );350 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 341 351 acceptAll( aggregateUseType->get_members(), *this ); 342 352 } 343 353 344 354 void Visitor::visit( TypeInstType *aggregateUseType ) { 345 visit( static_cast< ReferenceToType * >( aggregateUseType ) );355 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 346 356 } 347 357 … … 379 389 } 380 390 391 void Visitor::visit( ConstructorInit *ctorInit ) { 392 maybeAccept( ctorInit->get_ctor(), *this ); 393 maybeAccept( ctorInit->get_init(), *this ); 394 } 395 381 396 void Visitor::visit( Subrange *subrange ) {} 382 397 -
src/SynTree/Visitor.h
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Visitor.h -- 7 // Visitor.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Apr 1 17:26:55201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 15:30:58 2016 13 13 // Update Count : 7 14 14 // … … 52 52 virtual void visit( NullStmt *nullStmt ); 53 53 virtual void visit( DeclStmt *declStmt ); 54 virtual void visit( ImplicitCtorDtorStmt *impCtorDtorStmt ); 54 55 55 56 virtual void visit( ApplicationExpr *applicationExpr ); … … 62 63 virtual void visit( MemberExpr *memberExpr ); 63 64 virtual void visit( VariableExpr *variableExpr ); 64 virtual void visit( ConstantExpr *constantExpr ); 65 virtual void visit( ConstantExpr *constantExpr ); 65 66 virtual void visit( SizeofExpr *sizeofExpr ); 66 67 virtual void visit( AlignofExpr *alignofExpr ); … … 76 77 virtual void visit( TypeExpr *typeExpr ); 77 78 virtual void visit( AsmExpr *asmExpr ); 79 virtual void visit( ImplicitCopyCtorExpr *impCpCtorExpr ); 78 80 virtual void visit( UntypedValofExpr *valofExpr ); 79 81 virtual void visit( CompoundLiteralExpr *compLitExpr ); … … 96 98 virtual void visit( SingleInit *singleInit ); 97 99 virtual void visit( ListInit *listInit ); 100 virtual void visit( ConstructorInit *ctorInit ); 98 101 99 102 virtual void visit( Subrange *subrange ); … … 101 104 virtual void visit( Constant *constant ); 102 105 private: 103 virtual void visit( AggregateDecl *aggregateDecl );104 virtual void visit( NamedTypeDecl *typeDecl );105 virtual void visit( ReferenceToType *aggregateUseType );106 virtual void handleAggregateDecl( AggregateDecl *aggregateDecl ); 107 virtual void handleNamedTypeDecl( NamedTypeDecl *typeDecl ); 108 virtual void handleReferenceToType( ReferenceToType *aggregateUseType ); 106 109 }; 107 110 -
src/SynTree/module.mk
r1b5c81ed rf80e0218 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## module.mk -- 8 ## module.mk -- 9 9 ## 10 10 ## Author : Richard C. Bilson … … 46 46 SynTree/Visitor.cc \ 47 47 SynTree/Mutator.cc \ 48 SynTree/TypeSubstitution.cc 48 SynTree/AddStmtVisitor.cc \ 49 SynTree/TypeSubstitution.cc \ 50 SynTree/Attribute.cc 49 51 -
src/driver/Makefile.in
r1b5c81ed rf80e0218 62 62 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 63 63 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) 64 AM_V_CXX = $(am__v_CXX_@AM_V@) 65 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 66 am__v_CXX_0 = @echo " CXX " $@; 67 AM_V_at = $(am__v_at_@AM_V@) 68 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 69 am__v_at_0 = @ 64 70 CXXLD = $(CXX) 65 71 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ 66 72 -o $@ 73 AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) 74 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 75 am__v_CXXLD_0 = @echo " CXXLD " $@; 76 AM_V_GEN = $(am__v_GEN_@AM_V@) 77 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 78 am__v_GEN_0 = @echo " GEN " $@; 67 79 SOURCES = $(cc1_SOURCES) $(cfa_SOURCES) 68 80 DIST_SOURCES = $(cc1_SOURCES) $(cfa_SOURCES) … … 73 85 ALLOCA = @ALLOCA@ 74 86 AMTAR = @AMTAR@ 87 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 75 88 AUTOCONF = @AUTOCONF@ 76 89 AUTOHEADER = @AUTOHEADER@ … … 80 93 CC = @CC@ 81 94 CCDEPMODE = @CCDEPMODE@ 95 CFA_BACKEND_CC = @CFA_BACKEND_CC@ 82 96 CFA_BINDIR = @CFA_BINDIR@ 83 97 CFA_INCDIR = @CFA_INCDIR@ … … 98 112 EGREP = @EGREP@ 99 113 EXEEXT = @EXEEXT@ 100 GCC_PATH = @GCC_PATH@101 114 GREP = @GREP@ 102 115 INSTALL = @INSTALL@ … … 293 306 cc1$(EXEEXT): $(cc1_OBJECTS) $(cc1_DEPENDENCIES) $(EXTRA_cc1_DEPENDENCIES) 294 307 @rm -f cc1$(EXEEXT) 295 $( CXXLINK) $(cc1_OBJECTS) $(cc1_LDADD) $(LIBS)308 $(AM_V_CXXLD)$(CXXLINK) $(cc1_OBJECTS) $(cc1_LDADD) $(LIBS) 296 309 cfa$(EXEEXT): $(cfa_OBJECTS) $(cfa_DEPENDENCIES) $(EXTRA_cfa_DEPENDENCIES) 297 310 @rm -f cfa$(EXEEXT) 298 $( CXXLINK) $(cfa_OBJECTS) $(cfa_LDADD) $(LIBS)311 $(AM_V_CXXLD)$(CXXLINK) $(cfa_OBJECTS) $(cfa_LDADD) $(LIBS) 299 312 300 313 mostlyclean-compile: … … 308 321 309 322 .cc.o: 310 @am__fastdepCXX_TRUE@ $( CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<311 @am__fastdepCXX_TRUE@ $( am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po312 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@323 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 324 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 325 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 313 326 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 314 @am__fastdepCXX_FALSE@ $( CXXCOMPILE) -c -o $@ $<327 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< 315 328 316 329 .cc.obj: 317 @am__fastdepCXX_TRUE@ $( CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`318 @am__fastdepCXX_TRUE@ $( am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po319 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@330 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 331 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 332 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 320 333 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 321 @am__fastdepCXX_FALSE@ $( CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`334 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 322 335 323 336 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -
src/driver/cc1.cc
r1b5c81ed rf80e0218 10 10 // Created On : Fri Aug 26 14:23:51 2005 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jan 25 16:05:15201613 // Update Count : 5612 // Last Modified On : Fri Jun 10 09:27:37 2016 13 // Update Count : 80 14 14 // 15 15 … … 30 30 31 31 32 string compiler_name( GCC_PATH );// path/name of C compiler32 string compiler_name( CFA_BACKEND_CC ); // path/name of C compiler 33 33 34 34 string D__GCC_BPREFIX__( "-D__GCC_BPREFIX__=" ); … … 108 108 const char *args[argc + 100]; // leave space for 100 additional cpp command line values 109 109 int nargs = 1; // number of arguments in args list; 0 => command name 110 const char * uargs[20]; // leave space for 20 additional cfa-cpp command line values111 int n uargs = 1; // 0 => command name110 const char *cargs[20]; // leave space for 20 additional cfa-cpp command line values 111 int ncargs = 1; // 0 => command name 112 112 113 113 signal( SIGINT, sigTermHandler ); 114 114 signal( SIGTERM, sigTermHandler ); 115 116 #ifdef __DEBUG_H__ 117 cerr << "Stage1" << endl; 118 #endif // __DEBUG_H__ 115 119 116 120 // process all the arguments … … 147 151 i += 1; // and the argument 148 152 cpp_flag = true; 149 } else if ( arg == "-D__CFA_ _" ) {153 } else if ( arg == "-D__CFA_PREPROCESS__" ) { 150 154 CFA_flag = true; 151 } else if ( arg == "-D" && string( argv[i + 1] ) == "__CFA_ _" ) {155 } else if ( arg == "-D" && string( argv[i + 1] ) == "__CFA_PREPROCESS__" ) { 152 156 i += 1; // and the argument 153 157 CFA_flag = true; 154 158 } else if ( prefix( arg, D__CFA_FLAGPREFIX__ ) ) { 155 uargs[nuargs] = ( *new string( arg.substr( D__CFA_FLAGPREFIX__.size() ) ) ).c_str();156 n uargs += 1;159 cargs[ncargs] = ( *new string( arg.substr( D__CFA_FLAGPREFIX__.size() ) ) ).c_str(); 160 ncargs += 1; 157 161 } else if ( arg == "-D" && prefix( argv[i + 1], D__CFA_FLAGPREFIX__.substr(2) ) ) { 158 uargs[nuargs] = ( *new string( string( argv[i + 1] ).substr( D__CFA_FLAGPREFIX__.size() - 2 ) ) ).c_str();159 n uargs += 1;162 cargs[ncargs] = ( *new string( string( argv[i + 1] ).substr( D__CFA_FLAGPREFIX__.size() - 2 ) ) ).c_str(); 163 ncargs += 1; 160 164 i += 1; // and the argument 161 165 } else if ( prefix( arg, D__GCC_BPREFIX__ ) ) { … … 317 321 318 322 if ( fork() == 0 ) { // child runs CFA 319 uargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 320 321 uargs[nuargs] = tmpname; 322 nuargs += 1; 323 cargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 324 325 // Source file-name used to generate routine names containing global initializations for TU. 326 cargs[ncargs] = ( *new string( "-F" ) ).c_str(); 327 ncargs += 1; 328 cargs[ncargs] = ( *new string( string( cpp_in ) ) ).c_str(); 329 ncargs += 1; 330 331 cargs[ncargs] = tmpname; 332 ncargs += 1; 323 333 if ( o_name != NULL ) { 324 uargs[nuargs] = o_name;325 n uargs += 1;334 cargs[ncargs] = o_name; 335 ncargs += 1; 326 336 } else if ( ! CFA_flag ) { // run cfa-cpp ? 327 uargs[nuargs] = cpp_out;328 n uargs += 1;337 cargs[ncargs] = cpp_out; 338 ncargs += 1; 329 339 } // if 330 uargs[nuargs] = NULL; // terminate argument list331 332 #ifdef __DEBUG_H__ 333 cerr << "cfa-cpp n uargs: " << o_name << " " << CFA_flag << " " << nuargs << endl;334 for ( i = 0; uargs[i] != NULL; i += 1 ) {335 cerr << uargs[i] << " ";340 cargs[ncargs] = NULL; // terminate argument list 341 342 #ifdef __DEBUG_H__ 343 cerr << "cfa-cpp ncargs: " << o_name << " " << CFA_flag << " " << ncargs << endl; 344 for ( i = 0; cargs[i] != NULL; i += 1 ) { 345 cerr << cargs[i] << " "; 336 346 } // for 337 347 cerr << endl; 338 348 #endif // __DEBUG_H__ 339 349 340 execvp( uargs[0], (char * const *)uargs ); // should not return350 execvp( cargs[0], (char * const *)cargs ); // should not return 341 351 perror( "CFA Translator error: cpp level, execvp" ); 342 352 exit( EXIT_FAILURE ); … … 370 380 const char *args[argc + 100]; // leave space for 100 additional cfa command line values 371 381 int nargs = 1; // number of arguments in args list; 0 => command name 382 383 #ifdef __DEBUG_H__ 384 cerr << "Stage2" << endl; 385 #endif // __DEBUG_H__ 372 386 373 387 // process all the arguments … … 467 481 468 482 if ( arg == "-E" ) { 469 #ifdef __DEBUG_H__470 cerr << "Stage1" << endl;471 #endif // __DEBUG_H__472 483 Stage1( argc, argv ); 473 484 } else if ( arg == "-fpreprocessed" ) { 474 #ifdef __DEBUG_H__475 cerr << "Stage2" << endl;476 #endif // __DEBUG_H__477 485 Stage2( argc, argv ); 478 486 } else { -
src/driver/cfa.cc
r1b5c81ed rf80e0218 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 6 14:04:22201613 // Update Count : 13 212 // Last Modified On : Fri Jun 10 09:26:19 2016 13 // Update Count : 138 14 14 // 15 15 … … 75 75 string langstd; // language standard 76 76 77 string compiler_path( GCC_PATH );// path/name of C compiler77 string compiler_path( CFA_BACKEND_CC ); // path/name of C compiler 78 78 string compiler_name; // name of C compiler 79 79 … … 263 263 args[nargs] = ( *new string( string("-D__CFA_PATCHLEVEL__=") + Patch ) ).c_str(); 264 264 nargs += 1; 265 args[nargs] = "-D__CFORALL__=1"; 265 args[nargs] = "-D__CFA__"; 266 nargs += 1; 267 args[nargs] = "-D__CFORALL__"; 266 268 nargs += 1; 267 269 … … 272 274 273 275 if ( CFA_flag ) { 274 args[nargs] = "-D__CFA_ _";276 args[nargs] = "-D__CFA_PREPROCESS_"; 275 277 nargs += 1; 276 278 } // if … … 310 312 nargs += 1; 311 313 } // if 314 args[nargs] = "-fgnu89-inline"; 315 nargs += 1; 312 316 args[nargs] = ( *new string( string("-B") + Bprefix + "/" ) ).c_str(); 313 317 nargs += 1; … … 315 319 nargs += 1; 316 320 } else { 317 cerr << argv[0] << " error, compiler " << compiler_name << " notsupported." << endl;321 cerr << argv[0] << " error, compiler \"" << compiler_name << "\" unsupported." << endl; 318 322 exit( EXIT_FAILURE ); 319 323 } // if -
src/examples/Makefile.am
r1b5c81ed rf80e0218 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## Makefile.am -- 8 ## Makefile.am -- 9 9 ## 10 10 ## Author : Peter A. Buhr … … 19 19 CC = @CFA_BINDIR@/cfa 20 20 21 noinst_PROGRAMS = fstream_test vector_test # build but do not install21 noinst_PROGRAMS = fstream_test vector_test avl_test # build but do not install 22 22 fstream_test_SOURCES = fstream_test.c 23 23 vector_test_SOURCES = vector_int.c array.c vector_test.c 24 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c -
src/examples/Makefile.in
r1b5c81ed rf80e0218 36 36 PRE_UNINSTALL = : 37 37 POST_UNINSTALL = : 38 noinst_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) 38 noinst_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \ 39 avl_test$(EXEEXT) 39 40 subdir = src/examples 40 41 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in … … 48 49 CONFIG_CLEAN_VPATH_FILES = 49 50 PROGRAMS = $(noinst_PROGRAMS) 51 am_avl_test_OBJECTS = avl_test.$(OBJEXT) avl0.$(OBJEXT) avl1.$(OBJEXT) \ 52 avl2.$(OBJEXT) avl3.$(OBJEXT) avl4.$(OBJEXT) \ 53 avl-private.$(OBJEXT) 54 avl_test_OBJECTS = $(am_avl_test_OBJECTS) 55 avl_test_LDADD = $(LDADD) 50 56 am_fstream_test_OBJECTS = fstream_test.$(OBJEXT) 51 57 fstream_test_OBJECTS = $(am_fstream_test_OBJECTS) … … 59 65 am__depfiles_maybe = depfiles 60 66 am__mv = mv -f 67 AM_V_lt = $(am__v_lt_@AM_V@) 68 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 69 am__v_lt_0 = --silent 61 70 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 62 71 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 72 AM_V_CC = $(am__v_CC_@AM_V@) 73 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 74 am__v_CC_0 = @echo " CC " $@; 75 AM_V_at = $(am__v_at_@AM_V@) 76 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 77 am__v_at_0 = @ 63 78 CCLD = $(CC) 64 79 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 65 SOURCES = $(fstream_test_SOURCES) $(vector_test_SOURCES) 66 DIST_SOURCES = $(fstream_test_SOURCES) $(vector_test_SOURCES) 80 AM_V_CCLD = $(am__v_CCLD_@AM_V@) 81 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 82 am__v_CCLD_0 = @echo " CCLD " $@; 83 AM_V_GEN = $(am__v_GEN_@AM_V@) 84 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 85 am__v_GEN_0 = @echo " GEN " $@; 86 SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 87 $(vector_test_SOURCES) 88 DIST_SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 89 $(vector_test_SOURCES) 67 90 ETAGS = etags 68 91 CTAGS = ctags … … 71 94 ALLOCA = @ALLOCA@ 72 95 AMTAR = @AMTAR@ 96 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 73 97 AUTOCONF = @AUTOCONF@ 74 98 AUTOHEADER = @AUTOHEADER@ … … 78 102 CC = @CFA_BINDIR@/cfa 79 103 CCDEPMODE = @CCDEPMODE@ 104 CFA_BACKEND_CC = @CFA_BACKEND_CC@ 80 105 CFA_BINDIR = @CFA_BINDIR@ 81 106 CFA_INCDIR = @CFA_INCDIR@ … … 98 123 EGREP = @EGREP@ 99 124 EXEEXT = @EXEEXT@ 100 GCC_PATH = @GCC_PATH@101 125 GREP = @GREP@ 102 126 INSTALL = @INSTALL@ … … 176 200 fstream_test_SOURCES = fstream_test.c 177 201 vector_test_SOURCES = vector_int.c array.c vector_test.c 202 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c 178 203 all: all-am 179 204 … … 213 238 clean-noinstPROGRAMS: 214 239 -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) 240 avl_test$(EXEEXT): $(avl_test_OBJECTS) $(avl_test_DEPENDENCIES) $(EXTRA_avl_test_DEPENDENCIES) 241 @rm -f avl_test$(EXEEXT) 242 $(AM_V_CCLD)$(LINK) $(avl_test_OBJECTS) $(avl_test_LDADD) $(LIBS) 215 243 fstream_test$(EXEEXT): $(fstream_test_OBJECTS) $(fstream_test_DEPENDENCIES) $(EXTRA_fstream_test_DEPENDENCIES) 216 244 @rm -f fstream_test$(EXEEXT) 217 $( LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS)245 $(AM_V_CCLD)$(LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS) 218 246 vector_test$(EXEEXT): $(vector_test_OBJECTS) $(vector_test_DEPENDENCIES) $(EXTRA_vector_test_DEPENDENCIES) 219 247 @rm -f vector_test$(EXEEXT) 220 $( LINK) $(vector_test_OBJECTS) $(vector_test_LDADD) $(LIBS)248 $(AM_V_CCLD)$(LINK) $(vector_test_OBJECTS) $(vector_test_LDADD) $(LIBS) 221 249 222 250 mostlyclean-compile: … … 227 255 228 256 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@ 257 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl-private.Po@am__quote@ 258 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl0.Po@am__quote@ 259 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl1.Po@am__quote@ 260 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl2.Po@am__quote@ 261 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl3.Po@am__quote@ 262 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl4.Po@am__quote@ 263 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl_test.Po@am__quote@ 229 264 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream_test.Po@am__quote@ 230 265 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector_int.Po@am__quote@ … … 232 267 233 268 .c.o: 234 @am__fastdepCC_TRUE@ $( COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<235 @am__fastdepCC_TRUE@ $( am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po236 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@237 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 238 @am__fastdepCC_FALSE@ $( COMPILE) -c $<269 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 270 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 271 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 272 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 273 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< 239 274 240 275 .c.obj: 241 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 242 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 243 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 244 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 245 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 276 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 277 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 278 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 279 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 280 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` 281 282 avl_test.o: avltree/avl_test.c 283 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl_test.o -MD -MP -MF $(DEPDIR)/avl_test.Tpo -c -o avl_test.o `test -f 'avltree/avl_test.c' || echo '$(srcdir)/'`avltree/avl_test.c 284 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl_test.Tpo $(DEPDIR)/avl_test.Po 285 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl_test.c' object='avl_test.o' libtool=no @AMDEPBACKSLASH@ 286 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 287 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl_test.o `test -f 'avltree/avl_test.c' || echo '$(srcdir)/'`avltree/avl_test.c 288 289 avl_test.obj: avltree/avl_test.c 290 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl_test.obj -MD -MP -MF $(DEPDIR)/avl_test.Tpo -c -o avl_test.obj `if test -f 'avltree/avl_test.c'; then $(CYGPATH_W) 'avltree/avl_test.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl_test.c'; fi` 291 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl_test.Tpo $(DEPDIR)/avl_test.Po 292 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl_test.c' object='avl_test.obj' libtool=no @AMDEPBACKSLASH@ 293 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 294 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl_test.obj `if test -f 'avltree/avl_test.c'; then $(CYGPATH_W) 'avltree/avl_test.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl_test.c'; fi` 295 296 avl0.o: avltree/avl0.c 297 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl0.o -MD -MP -MF $(DEPDIR)/avl0.Tpo -c -o avl0.o `test -f 'avltree/avl0.c' || echo '$(srcdir)/'`avltree/avl0.c 298 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl0.Tpo $(DEPDIR)/avl0.Po 299 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl0.c' object='avl0.o' libtool=no @AMDEPBACKSLASH@ 300 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 301 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl0.o `test -f 'avltree/avl0.c' || echo '$(srcdir)/'`avltree/avl0.c 302 303 avl0.obj: avltree/avl0.c 304 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl0.obj -MD -MP -MF $(DEPDIR)/avl0.Tpo -c -o avl0.obj `if test -f 'avltree/avl0.c'; then $(CYGPATH_W) 'avltree/avl0.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl0.c'; fi` 305 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl0.Tpo $(DEPDIR)/avl0.Po 306 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl0.c' object='avl0.obj' libtool=no @AMDEPBACKSLASH@ 307 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 308 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl0.obj `if test -f 'avltree/avl0.c'; then $(CYGPATH_W) 'avltree/avl0.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl0.c'; fi` 309 310 avl1.o: avltree/avl1.c 311 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl1.o -MD -MP -MF $(DEPDIR)/avl1.Tpo -c -o avl1.o `test -f 'avltree/avl1.c' || echo '$(srcdir)/'`avltree/avl1.c 312 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl1.Tpo $(DEPDIR)/avl1.Po 313 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl1.c' object='avl1.o' libtool=no @AMDEPBACKSLASH@ 314 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 315 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl1.o `test -f 'avltree/avl1.c' || echo '$(srcdir)/'`avltree/avl1.c 316 317 avl1.obj: avltree/avl1.c 318 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl1.obj -MD -MP -MF $(DEPDIR)/avl1.Tpo -c -o avl1.obj `if test -f 'avltree/avl1.c'; then $(CYGPATH_W) 'avltree/avl1.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl1.c'; fi` 319 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl1.Tpo $(DEPDIR)/avl1.Po 320 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl1.c' object='avl1.obj' libtool=no @AMDEPBACKSLASH@ 321 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 322 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl1.obj `if test -f 'avltree/avl1.c'; then $(CYGPATH_W) 'avltree/avl1.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl1.c'; fi` 323 324 avl2.o: avltree/avl2.c 325 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl2.o -MD -MP -MF $(DEPDIR)/avl2.Tpo -c -o avl2.o `test -f 'avltree/avl2.c' || echo '$(srcdir)/'`avltree/avl2.c 326 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl2.Tpo $(DEPDIR)/avl2.Po 327 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl2.c' object='avl2.o' libtool=no @AMDEPBACKSLASH@ 328 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 329 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl2.o `test -f 'avltree/avl2.c' || echo '$(srcdir)/'`avltree/avl2.c 330 331 avl2.obj: avltree/avl2.c 332 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl2.obj -MD -MP -MF $(DEPDIR)/avl2.Tpo -c -o avl2.obj `if test -f 'avltree/avl2.c'; then $(CYGPATH_W) 'avltree/avl2.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl2.c'; fi` 333 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl2.Tpo $(DEPDIR)/avl2.Po 334 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl2.c' object='avl2.obj' libtool=no @AMDEPBACKSLASH@ 335 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 336 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl2.obj `if test -f 'avltree/avl2.c'; then $(CYGPATH_W) 'avltree/avl2.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl2.c'; fi` 337 338 avl3.o: avltree/avl3.c 339 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl3.o -MD -MP -MF $(DEPDIR)/avl3.Tpo -c -o avl3.o `test -f 'avltree/avl3.c' || echo '$(srcdir)/'`avltree/avl3.c 340 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl3.Tpo $(DEPDIR)/avl3.Po 341 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl3.c' object='avl3.o' libtool=no @AMDEPBACKSLASH@ 342 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 343 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl3.o `test -f 'avltree/avl3.c' || echo '$(srcdir)/'`avltree/avl3.c 344 345 avl3.obj: avltree/avl3.c 346 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl3.obj -MD -MP -MF $(DEPDIR)/avl3.Tpo -c -o avl3.obj `if test -f 'avltree/avl3.c'; then $(CYGPATH_W) 'avltree/avl3.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl3.c'; fi` 347 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl3.Tpo $(DEPDIR)/avl3.Po 348 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl3.c' object='avl3.obj' libtool=no @AMDEPBACKSLASH@ 349 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 350 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl3.obj `if test -f 'avltree/avl3.c'; then $(CYGPATH_W) 'avltree/avl3.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl3.c'; fi` 351 352 avl4.o: avltree/avl4.c 353 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl4.o -MD -MP -MF $(DEPDIR)/avl4.Tpo -c -o avl4.o `test -f 'avltree/avl4.c' || echo '$(srcdir)/'`avltree/avl4.c 354 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl4.Tpo $(DEPDIR)/avl4.Po 355 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl4.c' object='avl4.o' libtool=no @AMDEPBACKSLASH@ 356 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 357 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl4.o `test -f 'avltree/avl4.c' || echo '$(srcdir)/'`avltree/avl4.c 358 359 avl4.obj: avltree/avl4.c 360 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl4.obj -MD -MP -MF $(DEPDIR)/avl4.Tpo -c -o avl4.obj `if test -f 'avltree/avl4.c'; then $(CYGPATH_W) 'avltree/avl4.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl4.c'; fi` 361 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl4.Tpo $(DEPDIR)/avl4.Po 362 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl4.c' object='avl4.obj' libtool=no @AMDEPBACKSLASH@ 363 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 364 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl4.obj `if test -f 'avltree/avl4.c'; then $(CYGPATH_W) 'avltree/avl4.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl4.c'; fi` 365 366 avl-private.o: avltree/avl-private.c 367 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl-private.o -MD -MP -MF $(DEPDIR)/avl-private.Tpo -c -o avl-private.o `test -f 'avltree/avl-private.c' || echo '$(srcdir)/'`avltree/avl-private.c 368 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl-private.Tpo $(DEPDIR)/avl-private.Po 369 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl-private.c' object='avl-private.o' libtool=no @AMDEPBACKSLASH@ 370 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 371 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl-private.o `test -f 'avltree/avl-private.c' || echo '$(srcdir)/'`avltree/avl-private.c 372 373 avl-private.obj: avltree/avl-private.c 374 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl-private.obj -MD -MP -MF $(DEPDIR)/avl-private.Tpo -c -o avl-private.obj `if test -f 'avltree/avl-private.c'; then $(CYGPATH_W) 'avltree/avl-private.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl-private.c'; fi` 375 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl-private.Tpo $(DEPDIR)/avl-private.Po 376 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl-private.c' object='avl-private.obj' libtool=no @AMDEPBACKSLASH@ 377 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 378 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl-private.obj `if test -f 'avltree/avl-private.c'; then $(CYGPATH_W) 'avltree/avl-private.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl-private.c'; fi` 246 379 247 380 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -
src/examples/abstype.c
r1b5c81ed rf80e0218 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 27 18:10:01 201513 // Update Count : 412 // Last Modified On : Tue Jun 14 14:27:48 2016 13 // Update Count : 9 14 14 // 15 15 16 type T | { T x( T ); };16 otype T | { T x( T ); }; 17 17 18 18 T y( T t ) { … … 21 21 } 22 22 23 forall( type T) lvalue T *?( T* );24 int ?++( int * );25 int ?=?( int *, int );26 forall( dtype DT) DT* ?=?( DT **, DT* );23 forall( otype T ) lvalue T *?( T * ); 24 int ?++( int * ); 25 int ?=?( int *, int ); 26 forall( dtype DT ) DT * ?=?( DT **, DT * ); 27 27 28 type U = int*;28 otype U = int *; 29 29 30 30 U x( U u ) { -
src/examples/alloc.c
r1b5c81ed rf80e0218 11 11 // Created On : Wed Feb 3 07:56:22 2016 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Wed Feb 17 11:43:23201614 // Update Count : 4013 // Last Modified On : Fri Mar 11 17:42:08 2016 14 // Update Count : 59 15 15 // 16 16 17 forall( otype T ) T * malloc( char fill ); 18 forall( dtype T ) T *?=?( T **, void * ); 19 void *malloc( unsigned long int ); 20 #if 0 17 21 #include <fstream> 18 22 #include <stdlib> … … 25 29 int * bar( int * p, int c ) { return p; } 26 30 int * baz( int * p, int c ) { return p; } 31 #endif 27 32 28 33 int main( void ) { 34 #if 0 29 35 size_t size = 10; 30 36 int * p; 31 37 struct S { int x; double y; } * s; 38 #endif 32 39 40 #if 0 33 41 p = malloc( sizeof(*p) ); // C malloc, type unsafe 34 42 printf( "here1\n" ); … … 37 45 printf( "here2\n" ); 38 46 free( p ); 39 p = malloc( (char)'\0' ); // CFA malloc, type safe 47 #endif 48 // int * p; 49 // p = malloc( (char)'\0' ); // CFA malloc, type safe 50 (int *)malloc( (char)'\0' ); // CFA malloc, type safe 51 (void *)malloc( (char)'\0' ); // CFA malloc, type safe 52 #if 0 40 53 printf( "here3\n" ); 41 54 p = malloc( p, 1000 ); // CFA remalloc, type safe … … 60 73 printf( "here9\n" ); 61 74 free( p ); 62 #if 0 75 63 76 float * fp = malloc() + 1; 64 77 fprintf( stderr, "%p %p\n", fp, fp - 1 ); -
src/examples/includes.c
r1b5c81ed rf80e0218 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 23:28:02 201613 // Update Count : 3 2812 // Last Modified On : Wed Apr 13 22:30:02 2016 13 // Update Count : 370 14 14 // 15 15 … … 24 24 #if 1 25 25 #define _GNU_SOURCE 26 #include <aio.h>27 #include <a.out.h>28 #include <aliases.h>29 #include <alloca.h>30 #include <ansidecl.h>31 #include <ar.h>32 #include <argp.h>26 //#include <aio.h> 27 //#include <a.out.h> 28 //#include <aliases.h> 29 //#include <alloca.h> 30 //#include <ansidecl.h> 31 //#include <ar.h> 32 //#include <argp.h> 33 33 #include <argz.h> 34 #include <assert.h>34 //#include <assert.h> 35 35 #include <bfd.h> 36 #if 0 36 37 #include <bfdlink.h> 37 38 #include <byteswap.h> … … 56 57 #include <err.h> 57 58 #include <errno.h> 58 #if 059 59 #include <error.h> 60 #endif61 60 #include <eti.h> 62 61 #include <evdns.h> 63 62 #include <event.h> 64 63 #include <evhttp.h> 64 #endif 65 65 #if 0 66 66 #include <evrpc.h> … … 129 129 130 130 //#define _GNU_SOURCE 131 #include <error.h> 131 #include <bfd.h> 132 //#include <error.h> 132 133 133 134 #endif // 0 -
src/examples/sum.c
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // sum.c -- 7 // sum.c -- test resolvers ability to deal with many variables with the same name and to use the minimum number of casts 8 // necessary to disambiguate overloaded variable names. 8 9 // 9 10 // Author : Peter A. Buhr 10 11 // Created On : Wed May 27 17:56:53 2015 11 12 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Mar 4 15:06:47201613 // Update Count : 19613 // Last Modified On : Thu May 26 09:25:42 2016 14 // Update Count : 201 14 15 // 15 16 … … 48 49 } // for 49 50 sout | "sum from" | low | "to" | High | "is" 50 | (int)sum( size, a ) | " " | ", check" | (int)s | endl;51 | (int)sum( size, a ) | ", check" | (int)s | endl; 51 52 52 53 int s = 0, a[size], v = low; … … 56 57 } // for 57 58 sout | "sum from" | low | "to" | High | "is" 58 | sum( size, (int *)a ) | " " | ", check" | (int)s | endl;59 | sum( size, (int *)a ) | ", check" | (int)s | endl; 59 60 60 61 float s = 0.0, a[size], v = low / 10.0; … … 64 65 } // for 65 66 sout | "sum from" | low / 10.0 | "to" | High / 10.0 | "is" 66 | sum( size, (float *)a ) | " " | ", check" | (float)s | endl;67 | sum( size, (float *)a ) | ", check" | (float)s | endl; 67 68 68 69 double s = 0, a[size], v = low / 10.0; … … 72 73 } // for 73 74 sout | "sum from" | low / 10.0 | "to" | High / 10.0 | "is" 74 | sum( size, (double *)a ) | " " | ", check" | (double)s | endl;75 | sum( size, (double *)a ) | ", check" | (double)s | endl; 75 76 76 77 struct S { int i, j; } 0 = { 0, 0 }, 1 = { 1, 1 }; 77 S ?+?( S t1, S t2 ) { S s = { t1.i + t2.i, t1.j + t2.j }; return s; }78 S ?+?( S t1, S t2 ) { return (S){ t1.i + t2.i, t1.j + t2.j }; } 78 79 S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; } 79 80 S ++?( S *t ) { *t += 1; return *t; } … … 87 88 } // for 88 89 sout | "sum from" | low | "to" | High | "is" 89 | sum( size, (S *)a ) | " " | ", check" | (S)s | endl;90 | sum( size, (S *)a ) | ", check" | (S)s | endl; 90 91 } // main 91 92 -
src/initialization.txt
r1b5c81ed rf80e0218 34 34 sure that resolved initializers for all declarations are being 35 35 generated. 36 37 38 ------ 39 40 More recent email: (I am quoted; Richard is the responder) 41 > As far as I'm aware, the only way that I could currently get the correct 42 > results from the unification engine is by feeding it an expression that 43 > looks like "?=?( ((struct Y)x.y).a, 10 )", then picking out the pieces that 44 > I need (namely the correct choice for a). Does this seem like a reasonable 45 > approach to solve this problem? 46 47 No, unfortunately. Initialization isn't being rewritten as assignment, 48 so you shouldn't allow the particular selection of assignment 49 operators that happen to be in scope (and which may include 50 user-defined operators) to guide the type resolution. 51 52 I don't think there is any way to rewrite an initializer as a single 53 expression and have the resolver just do the right thing. I see the 54 algorithm as: 55 56 For each alternative interpretation of the designator: 57 Construct an expression that casts the initializer to the type of 58 the designator 59 Construct an AlternativeFinder and use it to find the lowest cost 60 interpretation of the expression 61 Add this interpretation to a list of possibilities 62 Go through the list of possibilities and pick the lowest cost 63 64 As with many things in the resolver, it's conceptually simple but the 65 implementation may be a bit of a pain. It fits in with functions like 66 findSingleExpression, findIntegralExpression in Resolver.cc, although 67 it will be significantly more complicated than any of the existing 68 ones. 69 70 71 -
src/libcfa/Makefile.am
r1b5c81ed rf80e0218 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## Makefile.am -- 8 ## Makefile.am -- 9 9 ## 10 10 ## Author : Peter A. Buhr 11 11 ## Created On : Sun May 31 08:54:01 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Wed Apr 6 21:10:44201614 ## Update Count : 1 2313 ## Last Modified On : Mon Jun 13 14:27:22 2016 14 ## Update Count : 166 15 15 ############################################################################### 16 16 … … 50 50 @BACKEND_CC@ -c -o $@ $< 51 51 52 CFLAGS = - g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O253 CC = ${abs_top_srcdir}/src/driver/cfa 52 CFLAGS = -quiet -g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 53 CC = ${abs_top_srcdir}/src/driver/cfa 54 54 55 # extension-less header files are overridden by default make rules => explicitly override rule 55 headers = limits stdlib math iostream fstream iterator rational 56 libobjs = ${headers:=.o} 57 58 # extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing 56 59 % : %.c 57 true60 @true 58 61 59 .c.o : ${abs_top_srcdir}/src/driver/cfa-cpp 60 ${CC} ${CFLAGS} -c -o $@ $< 62 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp # add dependency to cfa-cpp so all libraries are rebuilt with new translator 61 63 62 libs = limits stdlib iostream fstream iterator rational 63 libcfa_a_SOURCES = libcfa-prelude.c ${libs:=.c} 64 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} 64 65 65 cheaders = # expat 66 cfaheaders = # limits 67 include_HEADERS = ${cheaders:=.h} ${libs} ${cfaheaders} 66 include_HEADERS = ${headers} 68 67 68 CLEANFILES = libcfa-prelude.c 69 69 MAINTAINERCLEANFILES += ${includedir}/* -
src/libcfa/Makefile.in
r1b5c81ed rf80e0218 81 81 AR = ar 82 82 ARFLAGS = cru 83 AM_V_AR = $(am__v_AR_@AM_V@) 84 am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) 85 am__v_AR_0 = @echo " AR " $@; 86 AM_V_at = $(am__v_at_@AM_V@) 87 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 88 am__v_at_0 = @ 83 89 libcfa_a_AR = $(AR) $(ARFLAGS) 84 90 libcfa_a_LIBADD = 85 am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) iostream.$(OBJEXT) \ 86 fstream.$(OBJEXT) iterator.$(OBJEXT) rational.$(OBJEXT) 91 am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) math.$(OBJEXT) \ 92 iostream.$(OBJEXT) fstream.$(OBJEXT) iterator.$(OBJEXT) \ 93 rational.$(OBJEXT) 87 94 am_libcfa_a_OBJECTS = libcfa-prelude.$(OBJEXT) $(am__objects_1) 88 95 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS) … … 93 100 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 94 101 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 102 AM_V_CC = $(am__v_CC_@AM_V@) 103 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 104 am__v_CC_0 = @echo " CC " $@; 95 105 CCLD = $(CC) 96 106 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 107 AM_V_CCLD = $(am__v_CCLD_@AM_V@) 108 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 109 am__v_CCLD_0 = @echo " CCLD " $@; 110 AM_V_GEN = $(am__v_GEN_@AM_V@) 111 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 112 am__v_GEN_0 = @echo " GEN " $@; 97 113 SOURCES = $(libcfa_a_SOURCES) 98 114 DIST_SOURCES = $(libcfa_a_SOURCES) … … 105 121 ALLOCA = @ALLOCA@ 106 122 AMTAR = @AMTAR@ 123 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 107 124 AUTOCONF = @AUTOCONF@ 108 125 AUTOHEADER = @AUTOHEADER@ … … 110 127 AWK = @AWK@ 111 128 BACKEND_CC = @BACKEND_CC@ 112 CC = ${abs_top_srcdir}/src/driver/cfa 129 CC = ${abs_top_srcdir}/src/driver/cfa 113 130 CCDEPMODE = @CCDEPMODE@ 131 CFA_BACKEND_CC = @CFA_BACKEND_CC@ 114 132 CFA_BINDIR = @CFA_BINDIR@ 115 133 CFA_INCDIR = @CFA_INCDIR@ 116 134 CFA_LIBDIR = @CFA_LIBDIR@ 117 135 CFA_PREFIX = @CFA_PREFIX@ 118 CFLAGS = - g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2136 CFLAGS = -quiet -g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 119 137 CPP = @CPP@ 120 138 CPPFLAGS = @CPPFLAGS@ … … 130 148 EGREP = @EGREP@ 131 149 EXEEXT = @EXEEXT@ 132 GCC_PATH = @GCC_PATH@133 150 GREP = @GREP@ 134 151 INSTALL = @INSTALL@ … … 213 230 MAINTAINERCLEANFILES = ${addprefix ${libdir}/,${cfalib_DATA}} \ 214 231 ${addprefix ${libdir}/,${lib_LIBRARIES}} ${includedir}/* 215 libs = limits stdlibiostream fstream iterator rational216 lib cfa_a_SOURCES = libcfa-prelude.c ${libs:=.c}217 cheaders = # expat 218 cfaheaders = # limits 219 include_HEADERS = ${cheaders:=.h} ${libs} ${cfaheaders} 232 headers = limits stdlib math iostream fstream iterator rational 233 libobjs = ${headers:=.o} 234 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} 235 include_HEADERS = ${headers} 236 CLEANFILES = libcfa-prelude.c 220 237 all: all-am 221 238 … … 283 300 -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) 284 301 libcfa.a: $(libcfa_a_OBJECTS) $(libcfa_a_DEPENDENCIES) $(EXTRA_libcfa_a_DEPENDENCIES) 285 -rm -f libcfa.a286 $( libcfa_a_AR) libcfa.a $(libcfa_a_OBJECTS) $(libcfa_a_LIBADD)287 $( RANLIB) libcfa.a302 $(AM_V_at)-rm -f libcfa.a 303 $(AM_V_AR)$(libcfa_a_AR) libcfa.a $(libcfa_a_OBJECTS) $(libcfa_a_LIBADD) 304 $(AM_V_at)$(RANLIB) libcfa.a 288 305 289 306 mostlyclean-compile: … … 298 315 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa-prelude.Po@am__quote@ 299 316 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/limits.Po@am__quote@ 317 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Po@am__quote@ 300 318 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rational.Po@am__quote@ 301 319 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdlib.Po@am__quote@ 302 320 321 .c.o: 322 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 323 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 324 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 325 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 326 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< 327 303 328 .c.obj: 304 @am__fastdepCC_TRUE@ $( COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`305 @am__fastdepCC_TRUE@ $( am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po306 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@329 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 330 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 331 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 307 332 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 308 @am__fastdepCC_FALSE@ $( COMPILE) -c `$(CYGPATH_W) '$<'`333 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` 309 334 install-cfalibDATA: $(cfalib_DATA) 310 335 @$(NORMAL_INSTALL) … … 455 480 456 481 clean-generic: 482 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) 457 483 458 484 distclean-generic: … … 579 605 @BACKEND_CC@ -c -o $@ $< 580 606 581 # extension -less header files are overridden by default make rules => explicitly override rule607 # extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing 582 608 % : %.c 583 true 584 585 .c.o : ${abs_top_srcdir}/src/driver/cfa-cpp 586 ${CC} ${CFLAGS} -c -o $@ $< 609 @true 610 611 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp # add dependency to cfa-cpp so all libraries are rebuilt with new translator 587 612 588 613 # Tell versions [3.59,3.63) of GNU make to not export all variables. -
src/libcfa/fstream
r1b5c81ed rf80e0218 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Apr 5 22:37:12201613 // Update Count : 8 212 // Last Modified On : Thu Apr 28 08:08:04 2016 13 // Update Count : 88 14 14 // 15 15 … … 23 23 void *file; 24 24 _Bool sepDefault; 25 _Bool sepOnOff;25 int sepOnOff; // FIX ME: type should be _Bool 26 26 char separator[separateSize]; 27 27 }; // ofstream -
src/libcfa/fstream.c
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // fstream.c -- 7 // fstream.c -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed May 27 17:56:53 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Apr 6 17:55:27201613 // Update Count : 1 7611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon May 02 15:14:52 2016 13 // Update Count : 187 14 14 // 15 15 … … 75 75 if ( fclose( (FILE *)(os->file) ) == EOF ) { 76 76 perror( IO_MSG "close output" ); 77 } // if 77 } // if 78 78 } // close 79 79 … … 93 93 int prtfmt( ofstream * os, const char fmt[], ... ) { 94 94 va_list args; 95 96 95 va_start( args, fmt ); 97 96 int len = vfprintf( (FILE *)(os->file), fmt, args ); … … 103 102 } // if 104 103 va_end( args ); 104 105 sepReset( os ); // reset separator 105 106 return len; 106 107 } // prtfmt … … 139 140 if ( fclose( (FILE *)(is->file) ) == EOF ) { 140 141 perror( IO_MSG "close input" ); 141 } // if 142 } // if 142 143 } // close 143 144 … … 154 155 return is; 155 156 } // read 156 157 157 158 ifstream *ungetc( ifstream * is, char c ) { 158 159 if ( fail( is ) ) { -
src/libcfa/iostream.c
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // iostream.c -- 7 // iostream.c -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 6 16:13:29201613 // Update Count : 27812 // Last Modified On : Thu May 26 10:08:31 2016 13 // Update Count : 305 14 14 // 15 15 … … 21 21 #include <float.h> // DBL_DIG, LDBL_DIG 22 22 #include <complex.h> // creal, cimag 23 #include <ctype.h> // isspace, ispunct24 23 } 25 24 … … 34 33 ostype * ?|?( ostype *os, short int si ) { 35 34 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 36 sepReset( os );37 35 prtfmt( os, "%hd", si ); 38 36 return os; … … 42 40 ostype * ?|?( ostype *os, unsigned short int usi ) { 43 41 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 44 sepReset( os );45 42 prtfmt( os, "%hu", usi ); 46 43 return os; … … 50 47 ostype * ?|?( ostype *os, int i ) { 51 48 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 52 sepReset( os );53 49 prtfmt( os, "%d", i ); 54 50 return os; … … 58 54 ostype * ?|?( ostype *os, unsigned int ui ) { 59 55 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 60 sepReset( os );61 56 prtfmt( os, "%u", ui ); 62 57 return os; … … 66 61 ostype * ?|?( ostype *os, long int li ) { 67 62 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 68 sepReset( os );69 63 prtfmt( os, "%ld", li ); 70 64 return os; … … 74 68 ostype * ?|?( ostype *os, unsigned long int uli ) { 75 69 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 76 sepReset( os );77 70 prtfmt( os, "%lu", uli ); 78 71 return os; … … 82 75 ostype * ?|?( ostype *os, long long int lli ) { 83 76 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 84 sepReset( os );85 77 prtfmt( os, "%lld", lli ); 86 78 return os; … … 90 82 ostype * ?|?( ostype *os, unsigned long long int ulli ) { 91 83 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 92 sepReset( os );93 84 prtfmt( os, "%llu", ulli ); 94 85 return os; … … 98 89 ostype * ?|?( ostype *os, float f ) { 99 90 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 100 sepReset( os );101 91 prtfmt( os, "%g", f ); 102 92 return os; … … 106 96 ostype * ?|?( ostype *os, double d ) { 107 97 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 108 sepReset( os );109 98 prtfmt( os, "%.*lg", DBL_DIG, d ); 110 99 return os; … … 114 103 ostype * ?|?( ostype *os, long double ld ) { 115 104 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 116 sepReset( os );117 105 prtfmt( os, "%.*Lg", LDBL_DIG, ld ); 118 106 return os; … … 155 143 // opening delimiters 156 144 ['('] : Open, ['['] : Open, ['{'] : Open, 157 ['$'] : Open, [(unsigned char)'£'] : Open, [(unsigned char)'¥'] : Open, [(unsigned char)'¿'] : Open, [(unsigned char)'«'] : Open, 145 ['$'] : Open, [(unsigned char)'£'] : Open, [(unsigned char)'¥'] : Open, 146 [(unsigned char)'¡'] : Open, [(unsigned char)'¿'] : Open, [(unsigned char)'«'] : Open, 158 147 // closing delimiters 159 148 [','] : Close, ['.'] : Close, [':'] : Close, [';'] : Close, ['!'] : Close, ['?'] : Close, … … 162 151 // opening-closing delimiters 163 152 ['\''] : OpenClose, ['`'] : OpenClose, ['"'] : OpenClose, 164 [' \f'] : OpenClose, ['\n'] : OpenClose, ['\r'] : OpenClose, ['\t'] : OpenClose, ['\v'] : OpenClose, // isspace153 [' '] : OpenClose, ['\f'] : OpenClose, ['\n'] : OpenClose, ['\r'] : OpenClose, ['\t'] : OpenClose, ['\v'] : OpenClose, // isspace 165 154 }; // mask 166 155 167 int len = strlen( cp ); 168 // null string => no separator 169 if ( len == 0 ) { sepOff( os ); return os; } 156 if ( cp[0] == '\0' ) { sepOff( os ); return os; } // null string => no separator 157 170 158 // first character IS NOT spacing or closing punctuation => add left separator 171 159 unsigned char ch = cp[0]; // must make unsigned … … 173 161 prtfmt( os, "%s", sepGet( os ) ); 174 162 } // if 163 164 // if string starts line, must reset to determine open state because separator is off 165 sepReset( os ); // reset separator 166 175 167 // last character IS spacing or opening punctuation => turn off separator for next item 176 unsigned int posn = len - 1;168 unsigned int len = strlen( cp ), posn = len - 1; 177 169 ch = cp[posn]; // must make unsigned 178 if ( mask[ ch ] == Open || mask[ ch ] == OpenClose ) { 170 if ( sepPrt( os ) && mask[ ch ] != Open && mask[ ch ] != OpenClose ) { 171 sepOn( os ); 172 } else { 179 173 sepOff( os ); 180 } else {181 sepOn( os );182 174 } // if 183 175 return write( os, cp, len ); … … 187 179 ostype * ?|?( ostype *os, const void *p ) { 188 180 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 189 sepReset( os );190 181 prtfmt( os, "%p", p ); 191 182 return os; … … 193 184 194 185 195 forall( dtype ostype | ostream( ostype ) ) 186 forall( dtype ostype | ostream( ostype ) ) 196 187 ostype * ?|?( ostype *os, ostype * (* manip)( ostype * ) ) { 197 188 return manip( os ); 198 189 } // ?|? 199 190 200 forall( dtype ostype | ostream( ostype ) ) 191 forall( dtype ostype | ostream( ostype ) ) 201 192 ostype * endl( ostype * os ) { 202 193 os | '\n'; … … 206 197 } // endl 207 198 208 forall( dtype ostype | ostream( ostype ) ) 199 forall( dtype ostype | ostream( ostype ) ) 209 200 ostype * sepOn( ostype * os ) { 210 201 sepOn( os ); … … 212 203 } // sepOn 213 204 214 forall( dtype ostype | ostream( ostype ) ) 205 forall( dtype ostype | ostream( ostype ) ) 215 206 ostype * sepOff( ostype * os ) { 216 207 sepOff( os ); … … 218 209 } // sepOff 219 210 220 forall( dtype ostype | ostream( ostype ) ) 211 forall( dtype ostype | ostream( ostype ) ) 221 212 ostype * sepEnable( ostype * os ) { 222 213 sepEnable( os ); … … 224 215 } // sepEnable 225 216 226 forall( dtype ostype | ostream( ostype ) ) 217 forall( dtype ostype | ostream( ostype ) ) 227 218 ostype * sepDisable( ostype * os ) { 228 219 sepDisable( os ); … … 344 335 } // ?|? 345 336 346 _Istream_cstrUC cstr( char * s ) { _Istream_cstrUC s = { s }; return s; }337 _Istream_cstrUC cstr( char * str ) { return (_Istream_cstrUC){ str }; } 347 338 forall( dtype istype | istream( istype ) ) 348 339 istype * ?|?( istype * is, _Istream_cstrUC cstr ) { … … 351 342 } // cstr 352 343 353 _Istream_cstrC cstr( char * s , int size ) { _Istream_cstrC s = { s, size }; return s; }344 _Istream_cstrC cstr( char * str, int size ) { return (_Istream_cstrC){ str, size }; } 354 345 forall( dtype istype | istream( istype ) ) 355 346 istype * ?|?( istype * is, _Istream_cstrC cstr ) { -
src/libcfa/prelude.cf
r1b5c81ed rf80e0218 1 1 # 2 "prelude.cf" // needed for error messages from this file 2 // -*- Mode: C -*- 3 // 2 // -*- Mode: C -*- 3 // 4 4 // Copyright (C) Glen Ditchfield 1994, 1999 5 // 5 // 6 6 // prelude.cf -- Standard Cforall Preample for C99 7 // 7 // 8 8 // Author : Glen Ditchfield 9 9 // Created On : Sat Nov 29 07:23:41 2014 … … 117 117 forall( ftype FT ) lvalue FT *?( FT * ); 118 118 119 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 120 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 121 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); 122 signed long int +?( signed long int ), -?( signed long int ), ~?( signed long int ); 123 unsigned long int +?( unsigned long int ), -?( unsigned long int ), ~?( unsigned long int ); 124 signed long long int +?( signed long long int ), -?( signed long long int ), ~?( signed long long int ); 125 unsigned long long int +?( unsigned long long int ), -?( unsigned long long int ), ~?( unsigned long long int ); 119 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 120 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 121 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); 122 signed long int +?( signed long int ), -?( signed long int ), ~?( signed long int ); 123 unsigned long int +?( unsigned long int ), -?( unsigned long int ), ~?( unsigned long int ); 124 signed long long int +?( signed long long int ), -?( signed long long int ), ~?( signed long long int ); 125 unsigned long long int +?( unsigned long long int ), -?( unsigned long long int ), ~?( unsigned long long int ); 126 126 float +?( float ), -?( float ); 127 127 double +?( double ), -?( double ); … … 627 627 ?+=?( long double _Complex *, long double _Complex ), ?+=?( volatile long double _Complex *, long double _Complex ), 628 628 ?-=?( long double _Complex *, long double _Complex ), ?-=?( volatile long double _Complex *, long double _Complex ); 629 630 631 632 633 634 // ------------------------------------------------------------ 635 // 636 // Section ??? Constructors and Destructors 637 // 638 // ------------------------------------------------------------ 639 640 // default ctor 641 void ?{}( _Bool * ), ?{}( volatile _Bool * ); 642 void ?{}( char * ), ?{}( volatile char * ); 643 void ?{}( unsigned char * ), ?{}( volatile unsigned char * ); 644 void ?{}( char signed * ), ?{}( volatile char signed * ); 645 void ?{}( int short * ), ?{}( volatile int short * ); 646 void ?{}( int short unsigned * ), ?{}( volatile int short unsigned * ); 647 void ?{}( signed int * ), ?{}( volatile signed int * ); 648 void ?{}( unsigned int * ), ?{}( volatile unsigned int * ); 649 void ?{}( signed long int * ), ?{}( volatile signed long int * ); 650 void ?{}( unsigned long int * ), ?{}( volatile unsigned long int * ); 651 void ?{}( signed long long int * ), ?{}( volatile signed long long int * ); 652 void ?{}( unsigned long long int * ), ?{}( volatile unsigned long long int * ); 653 void ?{}( float * ), ?{}( volatile float * ); 654 void ?{}( double * ), ?{}( volatile double * ); 655 void ?{}( long double * ), ?{}( volatile long double * ); 656 void ?{}( float _Complex * ), ?{}( volatile float _Complex * ); 657 void ?{}( double _Complex * ), ?{}( volatile double _Complex * ); 658 void ?{}( long double _Complex * ), ?{}( volatile long double _Complex * ); 659 660 // copy ctor 661 void ?{}( _Bool *, _Bool ), ?{}( volatile _Bool *, _Bool ); 662 void ?{}( char *, char ), ?{}( volatile char *, char ); 663 void ?{}( unsigned char *, unsigned char ), ?{}( volatile unsigned char *, unsigned char ); 664 void ?{}( char signed *, char signed ), ?{}( volatile char signed *, char signed ); 665 void ?{}( int short *, int short ), ?{}( volatile int short *, int short ); 666 void ?{}( int short unsigned *, int short unsigned ), ?{}( volatile int short unsigned *, int short unsigned ); 667 void ?{}( signed int *, signed int), ?{}( volatile signed int *, signed int ); 668 void ?{}( unsigned int *, unsigned int), ?{}( volatile unsigned int *, unsigned int ); 669 void ?{}( signed long int *, signed long int), ?{}( volatile signed long int *, signed long int ); 670 void ?{}( unsigned long int *, unsigned long int), ?{}( volatile unsigned long int *, unsigned long int ); 671 void ?{}( signed long long int *, signed long long int), ?{}( volatile signed long long int *, signed long long int ); 672 void ?{}( unsigned long long int *, unsigned long long int), ?{}( volatile unsigned long long int *, unsigned long long int ); 673 void ?{}( float *, float), ?{}( volatile float *, float ); 674 void ?{}( double *, double), ?{}( volatile double *, double ); 675 void ?{}( long double *, long double), ?{}( volatile long double *, long double ); 676 void ?{}( float _Complex *, float _Complex), ?{}( volatile float _Complex *, float _Complex ); 677 void ?{}( double _Complex *, double _Complex), ?{}( volatile double _Complex *, double _Complex ); 678 void ?{}( long double _Complex *, long double _Complex), ?{}( volatile long double _Complex *, long double _Complex ); 679 680 // dtor 681 void ^?{}( _Bool * ), ^?{}( volatile _Bool * ); 682 void ^?{}( char * ), ^?{}( volatile char * ); 683 void ^?{}( char unsigned * ), ^?{}( volatile char unsigned * ); 684 void ^?{}( char signed * ), ^?{}( volatile char signed * ); 685 void ^?{}( int short * ), ^?{}( volatile int short * ); 686 void ^?{}( int short unsigned * ), ^?{}( volatile int short unsigned * ); 687 void ^?{}( signed int * ), ^?{}( volatile signed int * ); 688 void ^?{}( unsigned int * ), ^?{}( volatile unsigned int * ); 689 void ^?{}( signed long int * ), ^?{}( volatile signed long int * ); 690 void ^?{}( unsigned long int * ), ^?{}( volatile unsigned long int * ); 691 void ^?{}( signed long long int * ), ^?{}( volatile signed long long int * ); 692 void ^?{}( unsigned long long int * ), ^?{}( volatile unsigned long long int * ); 693 void ^?{}( float * ), ^?{}( volatile float * ); 694 void ^?{}( double * ), ^?{}( volatile double * ); 695 void ^?{}( long double * ), ^?{}( volatile long double * ); 696 void ^?{}( float _Complex * ), ^?{}( volatile float _Complex * ); 697 void ^?{}( double _Complex * ), ^?{}( volatile double _Complex * ); 698 void ^?{}( long double _Complex * ), ^?{}( volatile long double _Complex * ); 699 700 // // default ctor 701 // forall( dtype DT ) void ?{}( DT ** ); 702 // forall( dtype DT ) void ?{}( const DT ** ); 703 // forall( dtype DT ) void ?{}( volatile DT ** ); 704 // forall( dtype DT ) void ?{}( const volatile DT ** ); 705 706 // // copy ctor 707 // forall( dtype DT ) void ?{}( DT **, DT* ); 708 // forall( dtype DT ) void ?{}( const DT **, DT* ); 709 // forall( dtype DT ) void ?{}( volatile DT **, DT* ); 710 // forall( dtype DT ) void ?{}( const volatile DT **, DT* ); 711 712 // // dtor 713 // forall( dtype DT ) void ^?{}( DT ** ); 714 // forall( dtype DT ) void ^?{}( const DT ** ); 715 // forall( dtype DT ) void ^?{}( volatile DT ** ); 716 // forall( dtype DT ) void ^?{}( const volatile DT ** ); 717 718 // copied from assignment section 719 // copy constructors 720 forall( ftype FT ) void ?{}( FT **, FT * ); 721 forall( ftype FT ) void ?{}( FT * volatile *, FT * ); 722 723 forall( dtype DT ) void ?{}( DT * *, DT * ); 724 forall( dtype DT ) void ?{}( DT * volatile *, DT * ); 725 forall( dtype DT ) void ?{}( const DT * *, DT * ); 726 forall( dtype DT ) void ?{}( const DT * volatile *, DT * ); 727 forall( dtype DT ) void ?{}( const DT * *, const DT * ); 728 forall( dtype DT ) void ?{}( const DT * volatile *, const DT * ); 729 forall( dtype DT ) void ?{}( volatile DT * *, DT * ); 730 forall( dtype DT ) void ?{}( volatile DT * volatile *, DT * ); 731 forall( dtype DT ) void ?{}( volatile DT * *, volatile DT * ); 732 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile DT * ); 733 734 forall( dtype DT ) void ?{}( const volatile DT * *, DT * ); 735 forall( dtype DT ) void ?{}( const volatile DT * volatile *, DT * ); 736 forall( dtype DT ) void ?{}( const volatile DT * *, const DT * ); 737 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const DT * ); 738 forall( dtype DT ) void ?{}( const volatile DT * *, volatile DT * ); 739 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile DT * ); 740 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile DT * ); 741 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile DT * ); 742 743 forall( dtype DT ) void ?{}( DT * *, void * ); 744 forall( dtype DT ) void ?{}( DT * volatile *, void * ); 745 forall( dtype DT ) void ?{}( const DT * *, void * ); 746 forall( dtype DT ) void ?{}( const DT * volatile *, void * ); 747 forall( dtype DT ) void ?{}( const DT * *, const void * ); 748 forall( dtype DT ) void ?{}( const DT * volatile *, const void * ); 749 forall( dtype DT ) void ?{}( volatile DT * *, void * ); 750 forall( dtype DT ) void ?{}( volatile DT * volatile *, void * ); 751 forall( dtype DT ) void ?{}( volatile DT * *, volatile void * ); 752 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile void * ); 753 754 forall( dtype DT ) void ?{}( const volatile DT * *, void * ); 755 forall( dtype DT ) void ?{}( const volatile DT * volatile *, void * ); 756 forall( dtype DT ) void ?{}( const volatile DT * *, const void * ); 757 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const void * ); 758 forall( dtype DT ) void ?{}( const volatile DT * *, volatile void * ); 759 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile void * ); 760 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile void * ); 761 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile void * ); 762 763 forall( dtype DT ) void ?{}( void * *, DT * ); 764 forall( dtype DT ) void ?{}( void * volatile *, DT * ); 765 forall( dtype DT ) void ?{}( const void * *, DT * ); 766 forall( dtype DT ) void ?{}( const void * volatile *, DT * ); 767 forall( dtype DT ) void ?{}( const void * *, const DT * ); 768 forall( dtype DT ) void ?{}( const void * volatile *, const DT * ); 769 forall( dtype DT ) void ?{}( volatile void * *, DT * ); 770 forall( dtype DT ) void ?{}( volatile void * volatile *, DT * ); 771 forall( dtype DT ) void ?{}( volatile void * *, volatile DT * ); 772 forall( dtype DT ) void ?{}( volatile void * volatile *, volatile DT * ); 773 forall( dtype DT ) void ?{}( const volatile void * *, DT * ); 774 forall( dtype DT ) void ?{}( const volatile void * volatile *, DT * ); 775 forall( dtype DT ) void ?{}( const volatile void * *, const DT * ); 776 forall( dtype DT ) void ?{}( const volatile void * volatile *, const DT * ); 777 forall( dtype DT ) void ?{}( const volatile void * *, volatile DT * ); 778 forall( dtype DT ) void ?{}( const volatile void * volatile *, volatile DT * ); 779 forall( dtype DT ) void ?{}( const volatile void * *, const volatile DT * ); 780 forall( dtype DT ) void ?{}( const volatile void * volatile *, const volatile DT * ); 781 782 void ?{}( void * *, void * ); 783 void ?{}( void * volatile *, void * ); 784 void ?{}( const void * *, void * ); 785 void ?{}( const void * volatile *, void * ); 786 void ?{}( const void * *, const void * ); 787 void ?{}( const void * volatile *, const void * ); 788 void ?{}( volatile void * *, void * ); 789 void ?{}( volatile void * volatile *, void * ); 790 void ?{}( volatile void * *, volatile void * ); 791 void ?{}( volatile void * volatile *, volatile void * ); 792 void ?{}( const volatile void * *, void * ); 793 void ?{}( const volatile void * volatile *, void * ); 794 void ?{}( const volatile void * *, const void * ); 795 void ?{}( const volatile void * volatile *, const void * ); 796 void ?{}( const volatile void * *, volatile void * ); 797 void ?{}( const volatile void * volatile *, volatile void * ); 798 void ?{}( const volatile void * *, const volatile void * ); 799 void ?{}( const volatile void * volatile *, const volatile void * ); 800 801 //forall( dtype DT ) void ?{}( DT * *, forall( dtype DT2 ) const DT2 * ); 802 //forall( dtype DT ) void ?{}( DT * volatile *, forall( dtype DT2 ) const DT2 * ); 803 forall( dtype DT ) void ?{}( const DT * *, forall( dtype DT2 ) const DT2 * ); 804 forall( dtype DT ) void ?{}( const DT * volatile *, forall( dtype DT2 ) const DT2 * ); 805 //forall( dtype DT ) void ?{}( volatile DT * *, forall( dtype DT2 ) const DT2 * ); 806 //forall( dtype DT ) void ?{}( volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); 807 forall( dtype DT ) void ?{}( const volatile DT * *, forall( dtype DT2 ) const DT2 * ); 808 forall( dtype DT ) void ?{}( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); 809 810 forall( ftype FT ) void ?{}( FT * *, forall( ftype FT2 ) FT2 * ); 811 forall( ftype FT ) void ?{}( FT * volatile *, forall( ftype FT2 ) FT2 * ); 812 813 // default ctors 814 forall( ftype FT ) void ?{}( FT * * ); 815 forall( ftype FT ) void ?{}( FT * volatile * ); 816 817 forall( dtype DT ) void ?{}( DT * *); 818 forall( dtype DT ) void ?{}( DT * volatile *); 819 forall( dtype DT ) void ?{}( const DT * *); 820 forall( dtype DT ) void ?{}( const DT * volatile *); 821 forall( dtype DT ) void ?{}( volatile DT * *); 822 forall( dtype DT ) void ?{}( volatile DT * volatile *); 823 forall( dtype DT ) void ?{}( const volatile DT * *); 824 forall( dtype DT ) void ?{}( const volatile DT * volatile *); 825 826 void ?{}( void * *); 827 void ?{}( void * volatile *); 828 void ?{}( const void * *); 829 void ?{}( const void * volatile *); 830 void ?{}( volatile void * *); 831 void ?{}( volatile void * volatile *); 832 void ?{}( const volatile void * *); 833 void ?{}( const volatile void * volatile *); 834 835 // dtors 836 forall( ftype FT ) void ^?{}( FT * * ); 837 forall( ftype FT ) void ^?{}( FT * volatile * ); 838 839 forall( dtype DT ) void ^?{}( DT * *); 840 forall( dtype DT ) void ^?{}( DT * volatile *); 841 forall( dtype DT ) void ^?{}( const DT * *); 842 forall( dtype DT ) void ^?{}( const DT * volatile *); 843 forall( dtype DT ) void ^?{}( volatile DT * *); 844 forall( dtype DT ) void ^?{}( volatile DT * volatile *); 845 forall( dtype DT ) void ^?{}( const volatile DT * *); 846 forall( dtype DT ) void ^?{}( const volatile DT * volatile *); 847 848 void ^?{}( void * *); 849 void ^?{}( void * volatile *); 850 void ^?{}( const void * *); 851 void ^?{}( const void * volatile *); 852 void ^?{}( volatile void * *); 853 void ^?{}( volatile void * volatile *); 854 void ^?{}( const volatile void * *); 855 void ^?{}( const volatile void * volatile *); -
src/libcfa/rational
r1b5c81ed rf80e0218 12 12 // Created On : Wed Apr 6 17:56:25 2016 13 13 // Last Modified By : Peter A. Buhr 14 // Last Modified On : Fri Apr 8 11:38:27201615 // Update Count : 1 514 // Last Modified On : Wed May 4 14:11:45 2016 15 // Update Count : 16 16 16 // 17 17 … … 28 28 29 29 // constructors 30 Rational rational();31 Rational rational(long int n );32 Rational rational(long int n, long int d );30 void ?{}( Rational * r ); 31 void ?{}( Rational * r, long int n ); 32 void ?{}( Rational * r, long int n, long int d ); 33 33 34 34 // getter/setter for numerator/denominator -
src/libcfa/rational.c
r1b5c81ed rf80e0218 11 11 // Created On : Wed Apr 6 17:54:28 2016 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Tue Apr 12 21:26:42201614 // Update Count : 2 113 // Last Modified On : Wed May 4 14:16:14 2016 14 // Update Count : 25 15 15 // 16 16 … … 18 18 #include "fstream" 19 19 #include "stdlib" 20 #include "math" // floor 20 21 21 22 … … 52 53 // constructors 53 54 54 Rational rational() {55 r eturn (Rational){ 0, 1 };55 void ?{}( Rational * r ) { 56 r{ 0, 1 }; 56 57 } // rational 57 58 58 Rational rational(long int n ) {59 r eturn (Rational){ n, 1 };59 void ?{}( Rational * r, long int n ) { 60 r{ n, 1 }; 60 61 } // rational 61 62 62 Rational rational(long int n, long int d ) {63 void ?{}( Rational * r, long int n, long int d ) { 63 64 long int t = simplify( &n, &d ); // simplify 64 return (Rational){ n / t, d / t }; 65 r->numerator = n / t; 66 r->denominator = d / t; 65 67 } // rational 66 68 … … 171 173 Rational narrow( double f, long int md ) { 172 174 if ( md <= 1 ) { // maximum fractional digits too small? 173 Rational t = rational( f, 1 ); // truncate fraction 174 return t; 175 return (Rational){ f, 1}; // truncate fraction 175 176 } // if 176 177 … … 198 199 k[2] = x * k[1] + k[0]; k[0] = k[1]; k[1] = k[2]; 199 200 } // for 200 Rational t = rational( neg ? -h[1] : h[1], k[1] ); 201 return t; 201 return (Rational){ neg ? -h[1] : h[1], k[1] }; 202 202 } // narrow 203 203 -
src/libcfa/stdlib
r1b5c81ed rf80e0218 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 14:45:53201613 // Update Count : 8512 // Last Modified On : Wed Apr 27 22:03:29 2016 13 // Update Count : 96 14 14 // 15 15 … … 28 28 #endif // ! EXIT_FAILURE 29 29 void exit( int rc ); 30 void abort( void ); 30 31 } // extern "C" 31 32 32 33 //--------------------------------------- 33 34 34 extern "C" { 35 void * malloc( size_t ); // use default C routine for void * 36 } // extern "C" 35 extern "C" { void * malloc( size_t ); } // use default C routine for void * 37 36 forall( otype T ) T * malloc( void ); 38 37 forall( otype T ) T * malloc( char fill ); 39 38 forall( otype T ) T * malloc( T * ptr, size_t size ); 40 39 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ); 41 extern "C" { 42 void * calloc( size_t nmemb, size_t size ); // use default C routine for void * 43 } // extern "C" 40 extern "C" { void * calloc( size_t nmemb, size_t size ); } // use default C routine for void * 44 41 forall( otype T ) T * calloc( size_t nmemb ); 45 extern "C" { 46 void * realloc( void * ptr, size_t size ); // use default C routine for void * 47 } // extern "C" 42 extern "C" { void * realloc( void * ptr, size_t size ); } // use default C routine for void * 48 43 forall( otype T ) T * realloc( T * ptr, size_t size ); 49 44 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ); … … 53 48 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment ); 54 49 55 forall( otype T ) T * memset( T * ptr, unsigned char fill ); // use default value '\0' for fill 56 forall( otype T ) T * memset( T * ptr ); // remove when default value available 50 extern "C" { 51 void * memset( void * ptr, int fill, size_t size ); 52 void free( void * ptr ); 53 } // extern "C" 57 54 58 55 //--------------------------------------- … … 100 97 101 98 char abs( char ); 102 extern "C" { 103 int abs( int ); // use default C routine for int 104 } // extern "C" 99 extern "C" { int abs( int ); } // use default C routine for int 105 100 long int abs( long int ); 106 101 long long int abs( long long int ); … … 108 103 double abs( double ); 109 104 long double abs( long double ); 110 float _Complex abs( float _Complex ); 111 double _Complex abs( double _Complex ); 112 long double _Complex abs( long double _Complex ); 113 114 //--------------------------------------- 115 116 float floor( float ); 117 extern "C" { 118 double floor( double ); // use C routine for double 119 } // extern "C" 120 long double floor( long double ); 121 122 float ceil( float ); 123 extern "C" { 124 double ceil( double ); // use C routine for double 125 } // extern "C" 126 long double ceil( long double ); 105 float abs( float _Complex ); 106 double abs( double _Complex ); 107 long double abs( long double _Complex ); 127 108 128 109 //--------------------------------------- -
src/libcfa/stdlib.c
r1b5c81ed rf80e0218 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 14:49:58201613 // Update Count : 1 5512 // Last Modified On : Thu Apr 28 07:54:21 2016 13 // Update Count : 166 14 14 // 15 15 … … 24 24 #include <malloc.h> // malloc_usable_size 25 25 #include <math.h> // fabsf, fabs, fabsl 26 #include <complex.h> // _Complex_I , cabsf, cabs, cabsl26 #include <complex.h> // _Complex_I 27 27 } // extern "C" 28 28 … … 34 34 //printf( "malloc3\n" ); 35 35 T * ptr = (T *)malloc( sizeof(T) ); 36 return memset( ptr );36 return memset( ptr, (int)fill, sizeof(T) ); 37 37 } // malloc 38 38 … … 78 78 } // posix_memalign 79 79 80 forall( otype T ) T * memset( T * ptr, unsigned char fill ) { // use default value '\0' for fill81 //printf( "memset1\n" );82 return (T *)memset( ptr, (int)fill, malloc_usable_size( ptr ) );83 } // memset84 forall( otype T ) T * memset( T * ptr ) { // remove when default value available85 //printf( "memset2\n" );86 return (T *)memset( ptr, 0, malloc_usable_size( ptr ) );87 } // memset88 89 80 //--------------------------------------- 90 81 91 82 int ato( const char * ptr ) { 92 83 int i; 93 if ( sscanf( ptr, "%d", &i ) == EOF ) {} // check return code84 if ( sscanf( ptr, "%d", &i ) == EOF ) {} 94 85 return i; 95 86 } 96 87 unsigned int ato( const char * ptr ) { 97 88 unsigned int ui; 98 if ( sscanf( ptr, "%u", &ui ) == EOF ) {} // check return code89 if ( sscanf( ptr, "%u", &ui ) == EOF ) {} 99 90 return ui; 100 91 } 101 92 long int ato( const char * ptr ) { 102 93 long int li; 103 if ( sscanf( ptr, "%ld", &li ) == EOF ) {} // check return code94 if ( sscanf( ptr, "%ld", &li ) == EOF ) {} 104 95 return li; 105 96 } 106 97 unsigned long int ato( const char * ptr ) { 107 98 unsigned long int uli; 108 if ( sscanf( ptr, "%lu", &uli ) == EOF ) {} // check return code99 if ( sscanf( ptr, "%lu", &uli ) == EOF ) {} 109 100 return uli; 110 101 } 111 102 long long int ato( const char * ptr ) { 112 103 long long int lli; 113 if ( sscanf( ptr, "%lld", &lli ) == EOF ) {} // check return code104 if ( sscanf( ptr, "%lld", &lli ) == EOF ) {} 114 105 return lli; 115 106 } 116 107 unsigned long long int ato( const char * ptr ) { 117 108 unsigned long long int ulli; 118 if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {} // check return code109 if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {} 119 110 return ulli; 120 111 } … … 122 113 float ato( const char * ptr ) { 123 114 float f; 124 if ( sscanf( ptr, "%f", &f ) == EOF ) {} // check return code115 if ( sscanf( ptr, "%f", &f ) == EOF ) {} 125 116 return f; 126 117 } 127 118 double ato( const char * ptr ) { 128 119 double d; 129 if ( sscanf( ptr, "%lf", &d ) == EOF ) {} // check return code120 if ( sscanf( ptr, "%lf", &d ) == EOF ) {} 130 121 return d; 131 122 } 132 123 long double ato( const char * ptr ) { 133 124 long double ld; 134 if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {} // check return code125 if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {} 135 126 return ld; 136 127 } … … 138 129 float _Complex ato( const char * ptr ) { 139 130 float re, im; 140 if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {} // check return code131 if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {} 141 132 return re + im * _Complex_I; 142 133 } 143 134 double _Complex ato( const char * ptr ) { 144 135 double re, im; 145 if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {} // check return code136 if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {} 146 137 return re + im * _Complex_I; 147 138 } 148 139 long double _Complex ato( const char * ptr ) { 149 140 long double re, im; 150 if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {} // check return code141 if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {} 151 142 return re + im * _Complex_I; 152 143 } … … 222 213 //--------------------------------------- 223 214 224 forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )225 [ T, T ] div( T t1, T t2 ) { /* return [ t1 / t2, t1 % t2 ]; */}215 // forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } ) 216 // [ T, T ] div( T t1, T t2 ) { return [ t1 / t2, t1 % t2 ]; } 226 217 227 218 //--------------------------------------- … … 230 221 long int abs( long int v ) { return labs( v ); } 231 222 long long int abs( long long int v ) { return llabs( v ); } 232 float abs( float v ) { return fabsf( v ); } 233 double abs( double v ) { return fabs( v ); } 234 long double abs( long double v ) { return fabsl( v ); } 235 float _Complex abs( float _Complex v ) { return cabsf( v ); } 236 double _Complex abs( double _Complex v ) { return cabs( v ); } 237 long double _Complex abs( long double _Complex v ) { return cabsl( v ); } 238 239 //--------------------------------------- 240 241 float floor( float v ) { return floorf( v ); } 242 long double floor( long double v ) { return floorl( v ); } 243 244 float ceil( float v ) { return ceilf( v ); } 245 long double ceil( long double v ) { return ceill( v ); } 223 float abs( float x ) { return fabsf( x ); } 224 double abs( double x ) { return fabs( x ); } 225 long double abs( long double x ) { return fabsl( x ); } 226 float abs( float _Complex x ) { return cabsf( x ); } 227 double abs( double _Complex x ) { return cabs( x ); } 228 long double abs( long double _Complex x ) { return cabsl( x ); } 246 229 247 230 //--------------------------------------- -
src/main.cc
r1b5c81ed rf80e0218 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // main.cc -- 7 // main.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 27 22:20:20 201613 // Update Count : 19912 // Last Modified On : Sun Jun 5 15:57:30 2016 13 // Update Count : 205 14 14 // 15 15 … … 40 40 #include "MakeLibCfa.h" 41 41 #include "InitTweak/Mutate.h" 42 #include "InitTweak/RemoveInit.h" 42 #include "InitTweak/GenInit.h" 43 #include "InitTweak/FixInit.h" 44 #include "InitTweak/FixGlobalInit.h" 43 45 //#include "Explain/GenProlog.h" 44 46 //#include "Try/Visit.h" … … 55 57 56 58 static void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false ); 57 static void dump( std::list< Declaration * > & translationUnit );59 static void dump( std::list< Declaration * > & translationUnit, std::ostream & out = std::cout ); 58 60 59 61 bool 60 62 astp = false, 61 63 bresolvep = false, 64 bboxp = false, 65 ctorinitp = false, 62 66 exprp = false, 63 67 expraltp = false, … … 74 78 codegenp = false; 75 79 76 enum { Ast, B resolver, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, Validate, };80 enum { Ast, Bbox, Bresolver, CtorInitFix, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, Validate, }; 77 81 78 82 static struct option long_opts[] = { 79 83 { "ast", no_argument, 0, Ast }, 84 { "before-box", no_argument, 0, Bbox }, 80 85 { "before-resolver", no_argument, 0, Bresolver }, 86 { "ctorinitfix", no_argument, 0, CtorInitFix }, 81 87 { "expr", no_argument, 0, Expr }, 82 88 { "expralt", no_argument, 0, ExprAlt }, … … 97 103 std::ostream *output = &std::cout; 98 104 int long_index; 99 std::list< Declaration* > translationUnit; 105 std::list< Declaration * > translationUnit; 106 const char *filename = NULL; 100 107 101 108 opterr = 0; // prevent getopt from printing error messages 102 109 103 110 int c; 104 while ( (c = getopt_long( argc, argv, "ab efglnpqrstvyzD:", long_opts, &long_index )) != -1 ) {111 while ( (c = getopt_long( argc, argv, "abBcefglnpqrstvyzD:F:", long_opts, &long_index )) != -1 ) { 105 112 switch ( c ) { 106 113 case Ast: … … 112 119 bresolvep = true; 113 120 break; 121 case 'B': // print before resolver steps 122 bboxp = true; 123 break; 124 case CtorInitFix: 125 case 'c': 126 ctorinitp = true; 127 break; 114 128 case Expr: 115 129 case 'e': // dump AST after expression analysis … … 163 177 case 'D': // ignore -Dxxx 164 178 break; 179 case 'F': // source file-name without suffix 180 filename = optarg; 181 break; 165 182 case '?': 166 183 cout << "Unknown option: '" << (char)optopt << "'" << endl; 167 exit( 1);184 exit( EXIT_FAILURE ); 168 185 default: 169 186 abort(); … … 176 193 input = fopen( argv[ optind ], "r" ); 177 194 if ( ! input ) { 178 std::cout << "Error: can't open " << argv[ optind] << std::endl;179 exit( 1);195 std::cout << "Error: can't open " << argv[ optind ] << std::endl; 196 exit( EXIT_FAILURE ); 180 197 } // if 198 // if running cfa-cpp directly, might forget to pass -F option (and really shouldn't have to) 199 if ( filename == NULL ) filename = argv[ optind ]; 200 // prelude filename comes in differently 201 if ( libcfap ) filename = "prelude.cf"; 181 202 optind += 1; 182 203 } else { 183 204 input = stdin; 205 // if running cfa-cpp directly, might forget to pass -F option. Since this takes from stdin, pass 206 // a fake name along 207 if ( filename == NULL ) filename = "stdin"; 184 208 } // if 185 209 … … 187 211 output = new ofstream( argv[ optind ] ); 188 212 } // if 189 213 190 214 Parser::get_parser().set_debug( grammarp ); 191 215 … … 196 220 if ( builtins == NULL ) { 197 221 std::cerr << "Error: can't open builtins.cf" << std::endl; 198 exit( 1);222 exit( EXIT_FAILURE ); 199 223 } // if 200 224 … … 206 230 if ( prelude == NULL ) { 207 231 std::cerr << "Error: can't open prelude.cf" << std::endl; 208 exit( 1);232 exit( EXIT_FAILURE ); 209 233 } // if 210 234 211 235 parse( prelude, LinkageSpec::Intrinsic ); 212 236 } // if 213 237 } // if 214 238 215 parse( input, libcfap ? LinkageSpec::Intrinsic : LinkageSpec::Cforall, grammarp ); 216 239 parse( input, libcfap ? LinkageSpec::Intrinsic : LinkageSpec::Cforall, grammarp ); 240 217 241 if ( parsep ) { 218 242 Parser::get_parser().get_parseTree()->printList( std::cout ); … … 249 273 OPTPRINT( "mutate" ) 250 274 ControlStruct::mutate( translationUnit ); 251 OPTPRINT( "fixNames" ) 275 OPTPRINT( "fixNames" ) 252 276 CodeGen::fixNames( translationUnit ); 253 OPTPRINT( "tweak" ) 254 InitTweak::tweak( translationUnit ); 277 OPTPRINT( "fixGlobalInit" ); 278 InitTweak::fixGlobalInit( translationUnit, filename, libcfap || treep ); 279 OPTPRINT( "tweakInit" ) 280 InitTweak::genInit( translationUnit ); 255 281 256 282 if ( libcfap ) { … … 268 294 if ( exprp ) { 269 295 dump( translationUnit ); 296 return 0; 297 } 298 299 OPTPRINT( "fixInit" ) 300 // fix ObjectDecl - replaces ConstructorInit nodes 301 InitTweak::fix( translationUnit ); 302 if ( ctorinitp ) { 303 dump ( translationUnit ); 304 return 0; 270 305 } 271 306 … … 276 311 OPTPRINT( "convertLvalue" ) 277 312 GenPoly::convertLvalue( translationUnit ); 313 314 if ( bboxp ) { 315 dump( translationUnit ); 316 return 0; 317 } 278 318 OPTPRINT( "box" ) 279 319 GenPoly::box( translationUnit ); 280 320 281 321 // print tree right before code generation 282 322 if ( codegenp ) { … … 292 332 } catch ( SemanticError &e ) { 293 333 if ( errorp ) { 294 dump( translationUnit ); 334 std::cerr << "---AST at error:---" << std::endl; 335 dump( translationUnit, std::cerr ); 336 std::cerr << std::endl << "---End of AST, begin error message:---\n" << std::endl; 295 337 } 296 338 e.print( std::cerr ); … … 314 356 } // try 315 357 358 deleteAll( translationUnit ); 316 359 return 0; 317 360 } // main … … 331 374 } 332 375 333 static void dump( std::list< Declaration * > & translationUnit ) {376 static void dump( std::list< Declaration * > & translationUnit, std::ostream & out ) { 334 377 std::list< Declaration * > decls; 335 378 if ( noprotop ) { 336 filter( translationUnit.begin(), translationUnit.end(), 379 filter( translationUnit.begin(), translationUnit.end(), 337 380 std::back_inserter( decls ), notPrelude ); 338 381 } else { … … 340 383 } 341 384 342 printAll( decls, std::cout );385 printAll( decls, out ); 343 386 deleteAll( translationUnit ); 344 387 }
Note:
See TracChangeset
for help on using the changeset viewer.